@ngutil/common 0.0.51 → 0.0.53
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/disabled.mjs
CHANGED
|
@@ -31,7 +31,7 @@ export class DisabledState {
|
|
|
31
31
|
this.#disabled.set(value);
|
|
32
32
|
}
|
|
33
33
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: DisabledState, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
34
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.6", type: DisabledState, isStandalone: true, host: { properties: { "attr.disabled": "isDisabled() ? '' : null" } }, exportAs: ["nuDisabled"], ngImport: i0 }); }
|
|
34
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.6", type: DisabledState, isStandalone: true, host: { properties: { "attr.disabled": "isDisabled() ? '' : null", "attr.inert": "isDisabled() ? '' : null" } }, exportAs: ["nuDisabled"], ngImport: i0 }); }
|
|
35
35
|
}
|
|
36
36
|
_a = DisabledState;
|
|
37
37
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: DisabledState, decorators: [{
|
|
@@ -40,7 +40,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImpor
|
|
|
40
40
|
standalone: true,
|
|
41
41
|
exportAs: "nuDisabled",
|
|
42
42
|
host: {
|
|
43
|
-
"[attr.disabled]": "isDisabled() ? '' : null"
|
|
43
|
+
"[attr.disabled]": "isDisabled() ? '' : null",
|
|
44
|
+
"[attr.inert]": "isDisabled() ? '' : null"
|
|
44
45
|
}
|
|
45
46
|
}]
|
|
46
47
|
}], ctorParameters: () => [] });
|
|
@@ -85,4 +86,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImpor
|
|
|
85
86
|
hostDirectives: [DisabledState]
|
|
86
87
|
}]
|
|
87
88
|
}], ctorParameters: () => [] });
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzYWJsZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2Rpc2FibGVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUE7QUFDMUYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRTFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUE7O0FBRTdCOzs7Ozs7Ozs7Ozs7R0FZRztBQVNILE1BQU0sT0FBTyxhQUFhO0lBQ2IsT0FBTyxDQUE0RDtJQUNuRSxLQUFLLENBQStDO0lBQ3BELFNBQVMsQ0FBeUI7SUFNM0M7UUFSUyxZQUFPLEdBQUcsTUFBTSxDQUFDLEVBQWEsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7UUFDbkUsVUFBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO1FBQ3BELGNBQVMsR0FBRyxNQUFNLENBQVUsS0FBSyxDQUFDLENBQUE7UUFFbEMsZUFBVSxHQUFvQixRQUFRLENBQzNDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FDekYsQ0FBQTtRQUdHLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQTtJQUNuQyxDQUFDO0lBRUQsR0FBRyxDQUFDLEtBQWM7UUFDZCxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUM3QixDQUFDOzhHQWZRLGFBQWE7a0dBQWIsYUFBYTs7OzJGQUFiLGFBQWE7a0JBUnpCLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxZQUFZO29CQUN0QixJQUFJLEVBQUU7d0JBQ0YsaUJBQWlCLEVBQUUsMEJBQTBCO3dCQUM3QyxjQUFjLEVBQUUsMEJBQTBCO3FCQUM3QztpQkFDSjs7QUFtQkQ7Ozs7Ozs7R0FPRztBQU1ILE1BQU0sT0FBTyxRQUFRO0lBQ1IsTUFBTSxDQUF3QztJQUM5QyxRQUFRLENBQW9EO0lBR3JFO1FBSlMsV0FBTSxHQUFHLE1BQU0sQ0FBQyxhQUFhLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtRQUM5QyxhQUFRLEdBQUcsTUFBTSxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7UUFDNUQsZUFBVSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUc5QixNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO1FBQzdFLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDUixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQTtZQUN0QyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ1gsY0FBYztnQkFDZCxPQUFNO1lBQ1YsQ0FBQztZQUVELElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO2dCQUMzQixPQUFPLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQTtZQUN4QyxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osT0FBTyxDQUFDLFFBQVEsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUE7WUFDeEMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQzs4R0FwQlEsUUFBUTtrR0FBUixRQUFRLGlPQS9CUixhQUFhOzsyRkErQmIsUUFBUTtrQkFMcEIsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLGNBQWMsRUFBRSxDQUFDLGFBQWEsQ0FBQztpQkFDbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21wdXRlZCwgRGlyZWN0aXZlLCBlZmZlY3QsIGluamVjdCwgaW5wdXQsIHNpZ25hbCwgU2lnbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIlxuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCJcblxuaW1wb3J0IHsgQnVzeSB9IGZyb20gXCIuL2J1c3lcIlxuXG4vKipcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBAQ29tcG9uZW50KHtcbiAqICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAqICAgaG9zdERpcmVjdGl2ZXM6IFtEaXNhYmxlZFN0YXRlXSxcbiAqICAgdGVtcGxhdGU6IGA8YnV0dG9uIFtkaXNhYmxlZF09XCJkaXNhYmxlZFN0YXRlLmlzRGlzYWJsZWQoKVwiPlN1Ym1pdDwvYnV0dG9uPmAsXG4gKiB9KVxuICogZXhwb3J0IGNsYXNzIEJ1dHRvbiB7XG4gKiAgIHJlYWRvbmx5IGRpc2FibGVkU3RhdGUgPSBpbmplY3QoRGlzYWJsZWRTdGF0ZSlcbiAqIH1cbiAqIGBgYFxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGV4cG9ydEFzOiBcIm51RGlzYWJsZWRcIixcbiAgICBob3N0OiB7XG4gICAgICAgIFwiW2F0dHIuZGlzYWJsZWRdXCI6IFwiaXNEaXNhYmxlZCgpID8gJycgOiBudWxsXCIsXG4gICAgICAgIFwiW2F0dHIuaW5lcnRdXCI6IFwiaXNEaXNhYmxlZCgpID8gJycgOiBudWxsXCJcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIERpc2FibGVkU3RhdGUge1xuICAgIHJlYWRvbmx5ICNwYXJlbnQgPSBpbmplY3QoRGlzYWJsZWRTdGF0ZSwgeyBza2lwU2VsZjogdHJ1ZSwgb3B0aW9uYWw6IHRydWUgfSlcbiAgICByZWFkb25seSAjYnVzeSA9IGluamVjdChCdXN5LCB7IHNlbGY6IHRydWUsIG9wdGlvbmFsOiB0cnVlIH0pXG4gICAgcmVhZG9ubHkgI2Rpc2FibGVkID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKVxuXG4gICAgcmVhZG9ubHkgaXNEaXNhYmxlZDogU2lnbmFsPGJvb2xlYW4+ID0gY29tcHV0ZWQoXG4gICAgICAgICgpID0+ICEhKHRoaXMuI3BhcmVudD8uaXNEaXNhYmxlZCgpIHx8IHRoaXMuI2J1c3k/LmlzT3RoZXJzQnVzeSgpIHx8IHRoaXMuI2Rpc2FibGVkKCkpXG4gICAgKVxuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIGVmZmVjdCgoKSA9PiB0aGlzLmlzRGlzYWJsZWQoKSlcbiAgICB9XG5cbiAgICBzZXQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy4jZGlzYWJsZWQuc2V0KHZhbHVlKVxuICAgIH1cbn1cblxuLyoqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogICAgPGZvcm0gbnVEaXNhYmxlZCBudUJ1c3k9XCJzdWJtaXRcIj5cbiAqICAgICAgPGJ1dHRvbiBbbnVEaXNhYmxlZF09XCJmb3JtLmludmFsaWRcIiBudUJ1c3k9XCJzdWJtaXRcIj5TdWJtaXQ8L2J1dHRvbj5cbiAqICAgIDwvZm9ybT5cbiAqIGBgYFxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiBcIltudURpc2FibGVkXVwiLFxuICAgIGhvc3REaXJlY3RpdmVzOiBbRGlzYWJsZWRTdGF0ZV1cbn0pXG5leHBvcnQgY2xhc3MgRGlzYWJsZWQge1xuICAgIHJlYWRvbmx5ICNzdGF0ZSA9IGluamVjdChEaXNhYmxlZFN0YXRlLCB7IHNlbGY6IHRydWUgfSlcbiAgICByZWFkb25seSAjY29udHJvbCA9IGluamVjdChOZ0NvbnRyb2wsIHsgc2VsZjogdHJ1ZSwgb3B0aW9uYWw6IHRydWUgfSlcbiAgICByZWFkb25seSBudURpc2FibGVkID0gaW5wdXQoZmFsc2UpXG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgZWZmZWN0KCgpID0+IHRoaXMuI3N0YXRlLnNldCh0aGlzLm51RGlzYWJsZWQoKSksIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSlcbiAgICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLiNjb250cm9sPy5jb250cm9sXG4gICAgICAgICAgICBpZiAoIWNvbnRyb2wpIHtcbiAgICAgICAgICAgICAgICAvLyBUT0RPOiByZXRyeVxuICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodGhpcy4jc3RhdGUuaXNEaXNhYmxlZCgpKSB7XG4gICAgICAgICAgICAgICAgY29udHJvbC5lbmFibGVkICYmIGNvbnRyb2wuZGlzYWJsZSgpXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnRyb2wuZGlzYWJsZWQgJiYgY29udHJvbC5lbmFibGUoKVxuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgIH1cbn1cblxuLy8gQERpcmVjdGl2ZSh7XG4vLyAgICAgc3RhbmRhbG9uZTogdHJ1ZSxcbi8vICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlblxuLy8gICAgIHNlbGVjdG9yOiBcIltudURpc2FibGVkXVtmb3JtQ29udHJvbF0sW251RGlzYWJsZWRdW2Zvcm1Db250cm9sTmFtZV0sW251RGlzYWJsZWRdW2Zvcm1Hcm91cF0sW251RGlzYWJsZWRdW2Zvcm1Hcm91cE5hbWVdXCJcbi8vIH0pXG4vLyBleHBvcnQgY2xhc3MgRm9ybUNvbnRyb2xEaXNhYmxlZCB7XG4vLyAgICAgcmVhZG9ubHkgI2Rpc2FibGVkID0gaW5qZWN0KERpc2FibGVkU3RhdGUsIHsgc2VsZjogdHJ1ZSB9KVxuLy8gICAgIHJlYWRvbmx5ICNjb250cm9sID0gaW5qZWN0KE5nQ29udHJvbCwgeyBzZWxmOiB0cnVlIH0pXG5cbi8vICAgICBjb25zdHJ1Y3RvcigpIHtcbi8vICAgICAgICAgZWZmZWN0KCgpID0+IHtcbi8vICAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLiNjb250cm9sLmNvbnRyb2xcbi8vICAgICAgICAgICAgIGlmICghY29udHJvbCkge1xuLy8gICAgICAgICAgICAgICAgIC8vIFRPRE86IHJldHJ5XG4vLyAgICAgICAgICAgICAgICAgcmV0dXJuXG4vLyAgICAgICAgICAgICB9XG5cbi8vICAgICAgICAgICAgIGlmICh0aGlzLiNkaXNhYmxlZC5pc0Rpc2FibGVkKCkpIHtcbi8vICAgICAgICAgICAgICAgICBjb250cm9sLmVuYWJsZWQgJiYgY29udHJvbC5kaXNhYmxlKClcbi8vICAgICAgICAgICAgIH0gZWxzZSB7XG4vLyAgICAgICAgICAgICAgICAgY29udHJvbC5kaXNhYmxlZCAmJiBjb250cm9sLmVuYWJsZSgpXG4vLyAgICAgICAgICAgICB9XG4vLyAgICAgICAgIH0pXG4vLyAgICAgfVxuLy8gfVxuIl19
|
|
@@ -361,7 +361,7 @@ class DisabledState {
|
|
|
361
361
|
this.#disabled.set(value);
|
|
362
362
|
}
|
|
363
363
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: DisabledState, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
364
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.6", type: DisabledState, isStandalone: true, host: { properties: { "attr.disabled": "isDisabled() ? '' : null" } }, exportAs: ["nuDisabled"], ngImport: i0 }); }
|
|
364
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.6", type: DisabledState, isStandalone: true, host: { properties: { "attr.disabled": "isDisabled() ? '' : null", "attr.inert": "isDisabled() ? '' : null" } }, exportAs: ["nuDisabled"], ngImport: i0 }); }
|
|
365
365
|
}
|
|
366
366
|
_a = DisabledState;
|
|
367
367
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: DisabledState, decorators: [{
|
|
@@ -370,7 +370,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImpor
|
|
|
370
370
|
standalone: true,
|
|
371
371
|
exportAs: "nuDisabled",
|
|
372
372
|
host: {
|
|
373
|
-
"[attr.disabled]": "isDisabled() ? '' : null"
|
|
373
|
+
"[attr.disabled]": "isDisabled() ? '' : null",
|
|
374
|
+
"[attr.inert]": "isDisabled() ? '' : null"
|
|
374
375
|
}
|
|
375
376
|
}]
|
|
376
377
|
}], ctorParameters: () => [] });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngutil-common.mjs","sources":["../../../../packages/common/src/destruct.ts","../../../../packages/common/src/busy.ts","../../../../packages/common/src/disabled.ts","../../../../packages/common/src/number-with-unit.ts","../../../../packages/common/src/coerce/bool-attr.ts","../../../../packages/common/src/coerce/element.ts","../../../../packages/common/src/util.ts","../../../../packages/common/src/form/observable.ts","../../../../packages/common/src/unngzone.ts","../../../../packages/common/src/dom.ts","../../../../packages/common/src/lifecycle.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","import {\n computed,\n DestroyRef,\n Directive,\n inject,\n Inject,\n Injectable,\n input,\n InputSignal,\n isSignal,\n Optional,\n Signal,\n SkipSelf\n} from \"@angular/core\"\nimport { takeUntilDestroyed, toObservable, toSignal } from \"@angular/core/rxjs-interop\"\n\nimport {\n BehaviorSubject,\n combineLatest,\n filter,\n finalize,\n isObservable,\n map,\n Observable,\n scan,\n shareReplay,\n switchMap,\n tap,\n throwError\n} from \"rxjs\"\n\nimport { isEqual } from \"lodash\"\n\nimport { ConnectProtocol } from \"./connect-protocol\"\n\nexport type BusyProgress = { total: number; current: number; message?: string }\nexport type BusyEventParams = { busy?: boolean; progress?: BusyProgress }\nexport type BusyEvent = { name: string } & BusyEventParams\n\nexport type BusyConnectable = Observable<boolean | BusyEventParams> | BusyTracker<any> | Signal<boolean>\n\nexport class BusyTrackerState<T extends string> implements ConnectProtocol {\n readonly #events = new BehaviorSubject<BusyEvent | null>(null)\n\n #data: { [key: string]: BusyEventParams } = {}\n\n readonly current$ = this.#events.pipe(\n scan((state, current) => {\n if (current == null) {\n return state\n }\n\n if (current.busy == null) {\n delete state[current.name]\n } else {\n state[current.name] = { busy: current.busy, progress: current.progress }\n }\n return state\n }, {} as any),\n tap(state => (this.#data = state)),\n map(() => this),\n shareReplay(1)\n )\n\n get isBusy(): boolean {\n return Object.values(this.#data).some(v => v.busy)\n }\n\n get progress(): BusyProgress | undefined {\n let total = 0\n let current = 0\n const messages = []\n\n for (const v of Object.values(this.#data)) {\n if (v.progress) {\n total += v.progress.total\n current += v.progress.current\n if (v.progress.message) {\n messages.push(v.progress.message)\n }\n }\n }\n\n if (total !== 0 && current !== 0) {\n return { total, current, message: messages.length > 0 ? messages.join(\"\\n\") : undefined }\n }\n\n return undefined\n }\n\n is(name: T): boolean {\n return this.#data[name]?.busy === true\n }\n\n has(name: T): boolean {\n return this.#data[name] != null\n }\n\n set(name: T, busy: boolean | undefined, progress?: BusyProgress) {\n const current = this.#data[name]\n if (current == null || current.busy !== busy || !isEqual(current.progress, progress)) {\n this.#events.next({ name, busy, progress })\n }\n }\n\n get(name: T): BusyEventParams | undefined {\n return this.#data[name]\n }\n\n keys() {\n return Object.keys(this.#data)\n }\n\n entries() {\n return Object.entries(this.#data)\n }\n\n connect(o: Observable<typeof this> | typeof this, prefix?: string): Observable<unknown> {\n if (o instanceof BusyTrackerState) {\n return this.connect(o.current$, prefix)\n } else {\n return new Observable(() => {\n const otherKeys: string[] = []\n\n const sub = o.subscribe(otherState => {\n for (const [k, v] of otherState.entries()) {\n const key = prefix ? `${prefix}-${k}` : k\n if (!otherKeys.includes(key)) {\n otherKeys.push(key)\n }\n this.set(key as T, v.busy, v.progress)\n }\n })\n\n return () => {\n sub.unsubscribe()\n for (const k of otherKeys) {\n this.set(k as T, undefined, undefined)\n }\n }\n })\n }\n }\n}\n\n/**\n * ```ts\n * @Component({\n * provides: [BusyTracker],\n * template: `\n * <spinner *ngIf=\"busy.is('reload') | async\">\n * <spinner *ngIf=\"busy.any | async\">\n * <button nuBusy=\"reload\"></button>\n * `\n * })\n * export class Grid {\n * readonly busy = inject(BusyTracker<\"create\" | \"reload\" | \"update\" | \"delete\">)\n * }\n * ```\n */\n@Injectable()\nexport class BusyTracker<T extends string> implements ConnectProtocol {\n private readonly destroyRef = inject(DestroyRef)\n\n private readonly _state = this.parent\n ? (this.parent as unknown as { _state: BusyTrackerState<T> })._state\n : new BusyTrackerState()\n\n readonly state$ = this._state.current$\n\n readonly state: Signal<BusyTrackerState<T>> = toSignal(this.state$, { requireSync: true })\n\n readonly any = computed(() => this.state().isBusy)\n\n readonly progress = computed(() => this.state().progress)\n\n constructor(@Inject(BusyTracker) @SkipSelf() @Optional() private readonly parent?: BusyTracker<any>) {}\n\n init(name: T, busy: boolean, progress?: BusyProgress) {\n const state = this.state()\n if (!state.has(name)) {\n this.set(name, busy, progress)\n }\n }\n\n set(name: T, busy: boolean, progress?: BusyProgress) {\n this._state.set(name, busy, progress)\n }\n\n is(name: T): Observable<boolean> {\n return this.state$.pipe(map(state => state.is(name)))\n }\n\n watch(name: T): Observable<BusyEventParams | undefined> {\n return this.state$.pipe(map(state => state.get(name)))\n }\n\n /**\n * ```ts\n * observable.pipe(this.busy.rx(\"save\"))\n * ```\n */\n rx(name: T) {\n return <S>(src: Observable<S>) =>\n src.pipe(\n tap(() => this.set(name, true)),\n finalize(() => this.set(name, false))\n )\n }\n\n connect(value: BusyConnectable, name?: T): Observable<unknown> {\n if (isObservable(value)) {\n if (name == null) {\n return throwError(() => new Error(\"Missing `name` param\"))\n }\n\n return new Observable(() => {\n const sub = value.subscribe(busyValue => {\n if (typeof busyValue === \"boolean\") {\n this.set(name as T, busyValue)\n } else {\n this.set(name as T, !!busyValue.busy, busyValue.progress)\n }\n })\n return sub.unsubscribe.bind(sub)\n }).pipe(takeUntilDestroyed(this.destroyRef))\n } else if (value instanceof BusyTracker) {\n return this._state.connect(value.state$, name).pipe(takeUntilDestroyed(this.destroyRef))\n } else if (isSignal(value)) {\n return this.connect(toObservable(value), name)\n }\n return throwError(() => new Error(\"Unsupported Busy source\"))\n }\n}\n\n// TODO: BusyState directive\n\n/**\n * ```ts\n * @Component({\n * template: `\n * <button nuBusy=\"save\">SAVE</button>\n * <progress nuBusy=\"fileUpload\">\n * <progress nuBusy=\"*\">\n * `\n * })\n * ```\n */\n@Directive({\n standalone: true,\n selector: \"[nuBusy]\",\n exportAs: \"nuBusy\"\n})\nexport class Busy<T extends string> implements ConnectProtocol {\n readonly tracker: BusyTracker<T> = inject(BusyTracker, { skipSelf: true })\n\n readonly name: InputSignal<T> = input.required<T>({ alias: \"nuBusy\" })\n readonly #name = toObservable(this.name)\n\n readonly state$ = combineLatest({ name: this.#name, state: this.tracker.state$ }).pipe(\n map(({ name, state }) => {\n if (name === \"*\") {\n const isBusy = state.isBusy\n return {\n isBusy: isBusy,\n isOthersBusy: isBusy,\n progress: state.progress\n }\n }\n\n const self = state.get(name)\n if (self) {\n const isBusy = self.busy === true\n return {\n isBusy: isBusy,\n isOthersBusy: state.isBusy && !isBusy,\n progress: self.progress\n }\n } else {\n return {\n isBusy: false,\n isOthersBusy: state.isBusy,\n progress: undefined\n }\n }\n }),\n shareReplay(1)\n )\n\n readonly isBusy$ = this.state$.pipe(\n map(v => v.isBusy),\n shareReplay(1)\n )\n readonly isBusy = toSignal(this.isBusy$, { rejectErrors: true })\n\n readonly isOthersBusy$ = this.state$.pipe(\n map(v => v.isOthersBusy),\n shareReplay(1)\n )\n readonly isOthersBusy = toSignal(this.isOthersBusy$, { rejectErrors: true })\n\n readonly progress$ = this.state$.pipe(\n map(v => v.progress),\n shareReplay(1)\n )\n readonly progress = toSignal(this.progress$, { rejectErrors: true })\n\n connect(value: BusyConnectable) {\n return new Observable(() => {\n const tsub = this.#name\n .pipe(\n filter(name => name !== \"*\"),\n switchMap(name => this.tracker.connect(value, name))\n )\n .subscribe()\n return tsub.unsubscribe.bind(tsub)\n })\n }\n}\n","import { computed, Directive, effect, inject, input, signal, Signal } from \"@angular/core\"\nimport { NgControl } from \"@angular/forms\"\n\nimport { Busy } from \"./busy\"\n\n/**\n * @example\n * ```typescript\n * @Component({\n * standalone: true,\n * hostDirectives: [DisabledState],\n * template: `<button [disabled]=\"disabledState.isDisabled()\">Submit</button>`,\n * })\n * export class Button {\n * readonly disabledState = inject(DisabledState)\n * }\n * ```\n */\n@Directive({\n standalone: true,\n exportAs: \"nuDisabled\",\n host: {\n \"[attr.disabled]\": \"isDisabled() ? '' : null\"\n }\n})\nexport class DisabledState {\n readonly #parent = inject(DisabledState, { skipSelf: true, optional: true })\n readonly #busy = inject(Busy, { self: true, optional: true })\n readonly #disabled = signal<boolean>(false)\n\n readonly isDisabled: Signal<boolean> = computed(\n () => !!(this.#parent?.isDisabled() || this.#busy?.isOthersBusy() || this.#disabled())\n )\n\n constructor() {\n effect(() => this.isDisabled())\n }\n\n set(value: boolean) {\n this.#disabled.set(value)\n }\n}\n\n/**\n * @example\n * ```html\n * <form nuDisabled nuBusy=\"submit\">\n * <button [nuDisabled]=\"form.invalid\" nuBusy=\"submit\">Submit</button>\n * </form>\n * ```\n */\n@Directive({\n standalone: true,\n selector: \"[nuDisabled]\",\n hostDirectives: [DisabledState]\n})\nexport class Disabled {\n readonly #state = inject(DisabledState, { self: true })\n readonly #control = inject(NgControl, { self: true, optional: true })\n readonly nuDisabled = input(false)\n\n constructor() {\n effect(() => this.#state.set(this.nuDisabled()), { allowSignalWrites: true })\n effect(() => {\n const control = this.#control?.control\n if (!control) {\n // TODO: retry\n return\n }\n\n if (this.#state.isDisabled()) {\n control.enabled && control.disable()\n } else {\n control.disabled && control.enable()\n }\n })\n }\n}\n\n// @Directive({\n// standalone: true,\n// // eslint-disable-next-line max-len\n// selector: \"[nuDisabled][formControl],[nuDisabled][formControlName],[nuDisabled][formGroup],[nuDisabled][formGroupName]\"\n// })\n// export class FormControlDisabled {\n// readonly #disabled = inject(DisabledState, { self: true })\n// readonly #control = inject(NgControl, { self: true })\n\n// constructor() {\n// effect(() => {\n// const control = this.#control.control\n// if (!control) {\n// // TODO: retry\n// return\n// }\n\n// if (this.#disabled.isDisabled()) {\n// control.enabled && control.disable()\n// } else {\n// control.disabled && control.enable()\n// }\n// })\n// }\n// }\n","export type NumberWithUnitInput = number | string | NumberWithUnit\n\nconst specials = [\"auto\", \"inherit\"]\n\nexport const UNIT_REGEX = \"v[h|w|min|max]|p[c|t|x]|[re|e|c|m]m|[l|c]h|%|in|Q|ex|m?s\"\nexport const NUMBER_REGEX = \"[+-]?(?:\\\\d*\\\\.\\\\d+|\\\\d+\\\\.\\\\d*|\\\\d+)\"\n\nconst regex = new RegExp(`^(${NUMBER_REGEX})\\\\s*(${UNIT_REGEX})?$`)\n\nexport class NumberWithUnit {\n static coerce(value: any, defaultUnit?: string) {\n if (value instanceof NumberWithUnit) {\n return value\n } else 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","import { ElementRef } from \"@angular/core\"\n\nexport type ElementInput<T extends Element = HTMLElement> = T | ElementRef<T>\n\nexport function coerceElement<T>(value: T | ElementRef<T>): T {\n if (value instanceof ElementRef) {\n return value.nativeElement\n }\n return value\n}\n\nexport function isElementInput(value: any): value is ElementInput {\n return value instanceof Element || value instanceof ElementRef\n}\n","import { isPlainObject as _isPlainObject, cloneDeep } from \"lodash\"\n\nimport { DeepReadonly } from \"./types/readonly\"\n\n// export { deepFreeze }\n\nexport const deepClone: <T>(obj: T) => T = typeof structuredClone === \"function\" ? structuredClone : cloneDeep\n// export const deepFreeze: <T>(obj: T) => DeepReadonly<T> = o => Object.freeze(o) as any\nexport const isPlainObject: (arg: any) => arg is { [key: string]: any } = _isPlainObject as any\n\nexport function deepFreeze<T>(obj: T): DeepReadonly<T> {\n if (obj == null) {\n return obj as any\n }\n\n if (obj instanceof Map) {\n obj.clear =\n obj.delete =\n obj.set =\n function () {\n throw new Error(\"map is read-only\")\n }\n } else if (obj instanceof Set) {\n obj.add =\n obj.clear =\n obj.delete =\n function () {\n throw new Error(\"set is read-only\")\n }\n }\n\n // Freeze self\n Object.freeze(obj)\n\n Object.getOwnPropertyNames(obj).forEach(name => {\n const prop = (obj as any)[name]\n const type = typeof prop\n\n // Freeze prop if it is an object or function and also not already frozen\n if ((type === \"object\" || type === \"function\") && !Object.isFrozen(prop)) {\n deepFreeze(prop)\n }\n })\n\n return obj as any\n}\n\n/**\n * @example\n * ```ts\n * toSorted([{id: 1}, {id: 2}, {id: 3}], sortBy([{id: \"desc\"}]))\n * ```\n */\nexport function toSorted<T>(items: readonly T[], fn: (a: T, b: T) => number): T[] {\n if (typeof (items as any).toSorted === \"function\") {\n return (items as any).toSorted(fn)\n } else {\n return items.slice(0).sort(fn)\n }\n}\n\nexport function isFalsy(value: any): boolean {\n if (value == null) {\n return true\n } else if (Array.isArray(value)) {\n return value.length === 0\n } else if (isPlainObject(value)) {\n return Object.keys(value).length === 0\n } else if (value instanceof Set) {\n return value.size === 0\n } else if (value instanceof Map) {\n return value.size === 0\n } else if (typeof value === \"string\") {\n return value.length === 0\n } else if (typeof value === \"number\") {\n return isNaN(value) || value === 0\n }\n return value === false\n}\n\nexport function isTruthy(value: any): boolean {\n return !isFalsy(value)\n}\n","import { takeUntilDestroyed } from \"@angular/core/rxjs-interop\"\nimport { FormControl } from \"@angular/forms\"\n\nimport { debounceTime, distinctUntilChanged, map, Observable, shareReplay, startWith } from \"rxjs\"\n\nimport { isEqual } from \"lodash\"\n\nimport { isFalsy } from \"../util\"\n\nexport interface ObservableOptions {\n distinct?: boolean\n destruct?: boolean\n}\n\nexport interface ObservableValueOptions extends ObservableOptions {\n debounce?: number\n falsyToNull?: boolean\n}\n\nexport type FormControlProperties =\n | \"valid\"\n | \"invalid\"\n | \"status\"\n | \"pristine\"\n | \"dirty\"\n | \"touched\"\n | \"untouched\"\n | \"disabled\"\n | \"enabled\"\n | \"errors\"\n\nexport const DEFAULT: ObservableOptions = { distinct: true, destruct: true }\nexport const VALUE_DEFAULT: ObservableValueOptions = { ...DEFAULT, falsyToNull: true }\n\nexport function fcObservableValue<T, O extends ObservableValueOptions>(\n fc: FormControl<T>,\n opts: O = VALUE_DEFAULT as any\n): Observable<O extends { falsyToNull: true } ? T | null : T> {\n let result: Observable<any> = fc.valueChanges.pipe(\n startWith(null),\n map(() => fc.value)\n )\n\n if (opts.debounce) {\n result = result.pipe(debounceTime(opts.debounce))\n }\n\n if (opts.falsyToNull) {\n result = result.pipe(map(v => (isFalsy(v) ? null : v)))\n }\n\n return handleCommonOptions(result, opts) as any\n}\n\nexport function fcObservableProperty<T, P extends FormControlProperties>(\n fc: FormControl<T>,\n property: P,\n opts: ObservableOptions = DEFAULT\n): Observable<FormControl<T>[P]> {\n const result = fc.statusChanges.pipe(\n startWith(null),\n map(() => fc[property])\n )\n\n return handleCommonOptions(result, opts)\n}\n\nfunction handleCommonOptions<T>(o: Observable<T>, opts: ObservableOptions): Observable<T> {\n if (opts.distinct) {\n o = o.pipe(distinctUntilChanged(isEqual))\n }\n\n if (opts.destruct) {\n o = o.pipe(takeUntilDestroyed())\n }\n\n return o.pipe(shareReplay(1))\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","import { rawRequestAnimationFrame } from \"./unngzone\"\n\ntype FastDomHandler = () => void\n\nclass _FastDOM {\n #rafId: any\n #mutate: Array<FastDomHandler> = []\n #measure: Array<FastDomHandler> = []\n\n public mutate(handler: FastDomHandler) {\n this.#mutate.push(handler)\n this._schedule()\n }\n\n public mutateNext(handler: FastDomHandler) {\n this.#mutate.push(() => {\n this.#mutate.push(handler)\n })\n this._schedule()\n }\n\n public measure(handler: FastDomHandler) {\n this.#measure.push(handler)\n this._schedule()\n }\n\n public setStyle(el: HTMLElement, style: { [key: string]: any }, chain?: FastDomHandler) {\n this.mutate(() => {\n for (const [k, v] of Object.entries(style)) {\n if (v == null) {\n el.style.removeProperty(k)\n } else {\n el.style.setProperty(k, v)\n }\n }\n\n chain && chain()\n })\n }\n\n public setAttributes(el: HTMLElement, attrs: { [key: string]: any }, chain?: FastDomHandler) {\n this.mutate(() => {\n for (const [k, v] of Object.entries(attrs)) {\n if (v == null) {\n el.removeAttribute(k)\n } else {\n el.setAttribute(k, v)\n }\n }\n\n chain && chain()\n })\n }\n\n private _schedule() {\n if (!this.#rafId) {\n this.#rafId = rawRequestAnimationFrame(this._apply.bind(this))\n }\n }\n\n private _apply() {\n this.#rafId = null\n\n const measure = this.#measure.slice()\n const mutate = this.#mutate.slice()\n this.#measure.length = 0\n this.#mutate.length = 0\n\n runQ(measure)\n runQ(mutate)\n\n if (this.#measure.length || this.#mutate.length) {\n this._schedule()\n }\n }\n}\n\nfunction runQ(items: FastDomHandler[]) {\n let item: FastDomHandler\n while ((item = items.shift()!)) {\n item()\n }\n}\n\nexport const FastDOM = new _FastDOM()\n","import {\n catchError,\n concat,\n concatMap,\n filter,\n forkJoin,\n from,\n map,\n Observable,\n ObservableInput,\n of,\n reduce,\n ReplaySubject,\n scan,\n share,\n shareReplay,\n Subject,\n Subscriber,\n take,\n takeLast,\n takeUntil,\n takeWhile,\n tap,\n throwError\n} from \"rxjs\"\n\nimport { flatten } from \"lodash\"\n\nexport type LifecycleHandler = () => ObservableInput<unknown> | null | undefined | void\n\nexport class StopLifecycle extends Error {}\n\nexport type LifecycleOptions = Record<string, { order?: \"parallel\" | \"sequential\"; cancellable?: boolean }>\n\nexport type LifecycleRemap<A, B> =\n A extends Lifecycle<infer AO, infer AS>\n ? B extends Lifecycle<infer BO, infer BS>\n ? Partial<{ [K in AS]: BS }>\n : never\n : never\n\nexport class Lifecycle<T extends LifecycleOptions, S extends keyof T = keyof T> {\n readonly states: T\n readonly #handlers: Partial<Record<S, Array<LifecycleHandler>>> = {}\n\n readonly #until = new Subject<void>()\n readonly #trigger = new Subject<S>()\n readonly #status = this.#trigger.pipe(\n takeUntil(this.#until),\n scan(\n (result, trigger) => {\n if (!result[trigger]) {\n result[trigger] = this.#run(trigger as S).pipe(\n tap(executed => {\n if (executed === false) {\n delete result[trigger]\n }\n }),\n map(executed => [trigger, !!executed] as [S, boolean]),\n shareReplay(1)\n )\n }\n return result\n },\n {} as Record<S, Observable<[S, boolean]>>\n ),\n concatMap(triggers => {\n const srcs = Object.values(triggers) as Array<Observable<[S, boolean]>>\n return concat(...srcs).pipe(\n takeWhile(([_, executed]) => executed, false),\n reduce(\n (result, [name, executed]) => {\n return { ...result, [name]: executed }\n },\n {} as Record<S, boolean>\n )\n )\n }),\n tap(status => {\n if (this.#handlers == null) {\n return\n }\n\n for (const [k, v] of Object.entries(status)) {\n if (v) {\n delete (this.#handlers as any)[k]\n }\n }\n }),\n share()\n )\n\n readonly status$ = this.#status.pipe(shareReplay(1))\n readonly current$ = new ReplaySubject<S>()\n\n constructor(states: T) {\n this.states = { ...states }\n\n for (const value of Object.values(states)) {\n if (value.order == null) {\n value.order = \"parallel\"\n }\n }\n }\n\n on(state: S, fn: LifecycleHandler) {\n if (state in this.#handlers) {\n this.#handlers[state]!.push(fn)\n } else {\n this.#handlers[state] = [fn]\n }\n\n return () => {\n const idx = this.#handlers[state]!.indexOf(fn)\n if (idx > -1) {\n this.#handlers[state]!.splice(idx, 1)\n }\n }\n }\n\n onExecute(state: S) {\n return this.current$.pipe(\n takeUntil(this.#until),\n filter(current => current === state)\n )\n }\n\n onDone(state: S) {\n return this.status$.pipe(\n filter(status => status[state]),\n take(1)\n )\n }\n\n run(...states: Array<S | S[]>) {\n const flattened = flatten(states).filter((v, i, a) => a.indexOf(v) === i)\n const expectedCount = flattened.length\n return new Observable((dest: Subscriber<void>) => {\n dest.add(\n this.#status.subscribe(currentStatus => {\n const executedCount = Object.entries(currentStatus).reduce(\n (result, [name, done]) => result + (done && flattened.includes(name as S) ? 1 : 0),\n 0\n )\n\n if (executedCount >= expectedCount) {\n dest.next()\n dest.complete()\n }\n })\n )\n\n for (const s of flattened) {\n this.#trigger.next(s)\n }\n })\n }\n\n /**\n * Run this state changes on other state\n */\n control<T extends Lifecycle<any, any>>(state: T, remap?: LifecycleRemap<this, T>) {\n const remove: Array<() => void> = []\n\n for (const selfState of Object.keys(this.states)) {\n const otherState = (remap as unknown as any)?.[selfState] || selfState\n if (otherState in state.states) {\n remove.push(this.on(selfState as any, () => state.run(otherState)))\n }\n }\n\n return () => {\n for (const fn of remove) {\n fn()\n }\n }\n }\n\n destroy() {\n ;(this as any).#handlers = null\n this.#until.next()\n this.#until.complete()\n }\n\n #run(state: S) {\n if (this.#handlers == null || !this.states[state]) {\n return of(true)\n }\n\n return new Observable((dest: Subscriber<boolean>) => {\n this.current$.next(state)\n\n const handlers = this.#handlers[state]\n if (handlers == null || handlers.length === 0) {\n dest.next(true)\n dest.complete()\n return\n }\n\n const observables: Array<Observable<any>> = handlers.map(handler => {\n const observable = handler()\n if (observable == null) {\n return of(null)\n } else {\n return from(observable)\n }\n })\n\n const config = this.states[state]\n\n if (observables.length === 1) {\n return observables[0].pipe(map(() => true)).subscribe(dest)\n } else if (config.order === \"parallel\") {\n return forkJoin(observables)\n .pipe(map(() => true))\n .subscribe(dest)\n } else if (config.order === \"sequential\") {\n return concat(...observables)\n .pipe(map(() => true))\n .subscribe(dest)\n } else {\n dest.next(true)\n dest.complete()\n }\n\n return\n }).pipe(\n takeLast(1),\n catchError(error => {\n if (error instanceof StopLifecycle) {\n return of(false)\n } else {\n return throwError(() => error)\n }\n })\n )\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["_isPlainObject"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngutil-common.mjs","sources":["../../../../packages/common/src/destruct.ts","../../../../packages/common/src/busy.ts","../../../../packages/common/src/disabled.ts","../../../../packages/common/src/number-with-unit.ts","../../../../packages/common/src/coerce/bool-attr.ts","../../../../packages/common/src/coerce/element.ts","../../../../packages/common/src/util.ts","../../../../packages/common/src/form/observable.ts","../../../../packages/common/src/unngzone.ts","../../../../packages/common/src/dom.ts","../../../../packages/common/src/lifecycle.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","import {\n computed,\n DestroyRef,\n Directive,\n inject,\n Inject,\n Injectable,\n input,\n InputSignal,\n isSignal,\n Optional,\n Signal,\n SkipSelf\n} from \"@angular/core\"\nimport { takeUntilDestroyed, toObservable, toSignal } from \"@angular/core/rxjs-interop\"\n\nimport {\n BehaviorSubject,\n combineLatest,\n filter,\n finalize,\n isObservable,\n map,\n Observable,\n scan,\n shareReplay,\n switchMap,\n tap,\n throwError\n} from \"rxjs\"\n\nimport { isEqual } from \"lodash\"\n\nimport { ConnectProtocol } from \"./connect-protocol\"\n\nexport type BusyProgress = { total: number; current: number; message?: string }\nexport type BusyEventParams = { busy?: boolean; progress?: BusyProgress }\nexport type BusyEvent = { name: string } & BusyEventParams\n\nexport type BusyConnectable = Observable<boolean | BusyEventParams> | BusyTracker<any> | Signal<boolean>\n\nexport class BusyTrackerState<T extends string> implements ConnectProtocol {\n readonly #events = new BehaviorSubject<BusyEvent | null>(null)\n\n #data: { [key: string]: BusyEventParams } = {}\n\n readonly current$ = this.#events.pipe(\n scan((state, current) => {\n if (current == null) {\n return state\n }\n\n if (current.busy == null) {\n delete state[current.name]\n } else {\n state[current.name] = { busy: current.busy, progress: current.progress }\n }\n return state\n }, {} as any),\n tap(state => (this.#data = state)),\n map(() => this),\n shareReplay(1)\n )\n\n get isBusy(): boolean {\n return Object.values(this.#data).some(v => v.busy)\n }\n\n get progress(): BusyProgress | undefined {\n let total = 0\n let current = 0\n const messages = []\n\n for (const v of Object.values(this.#data)) {\n if (v.progress) {\n total += v.progress.total\n current += v.progress.current\n if (v.progress.message) {\n messages.push(v.progress.message)\n }\n }\n }\n\n if (total !== 0 && current !== 0) {\n return { total, current, message: messages.length > 0 ? messages.join(\"\\n\") : undefined }\n }\n\n return undefined\n }\n\n is(name: T): boolean {\n return this.#data[name]?.busy === true\n }\n\n has(name: T): boolean {\n return this.#data[name] != null\n }\n\n set(name: T, busy: boolean | undefined, progress?: BusyProgress) {\n const current = this.#data[name]\n if (current == null || current.busy !== busy || !isEqual(current.progress, progress)) {\n this.#events.next({ name, busy, progress })\n }\n }\n\n get(name: T): BusyEventParams | undefined {\n return this.#data[name]\n }\n\n keys() {\n return Object.keys(this.#data)\n }\n\n entries() {\n return Object.entries(this.#data)\n }\n\n connect(o: Observable<typeof this> | typeof this, prefix?: string): Observable<unknown> {\n if (o instanceof BusyTrackerState) {\n return this.connect(o.current$, prefix)\n } else {\n return new Observable(() => {\n const otherKeys: string[] = []\n\n const sub = o.subscribe(otherState => {\n for (const [k, v] of otherState.entries()) {\n const key = prefix ? `${prefix}-${k}` : k\n if (!otherKeys.includes(key)) {\n otherKeys.push(key)\n }\n this.set(key as T, v.busy, v.progress)\n }\n })\n\n return () => {\n sub.unsubscribe()\n for (const k of otherKeys) {\n this.set(k as T, undefined, undefined)\n }\n }\n })\n }\n }\n}\n\n/**\n * ```ts\n * @Component({\n * provides: [BusyTracker],\n * template: `\n * <spinner *ngIf=\"busy.is('reload') | async\">\n * <spinner *ngIf=\"busy.any | async\">\n * <button nuBusy=\"reload\"></button>\n * `\n * })\n * export class Grid {\n * readonly busy = inject(BusyTracker<\"create\" | \"reload\" | \"update\" | \"delete\">)\n * }\n * ```\n */\n@Injectable()\nexport class BusyTracker<T extends string> implements ConnectProtocol {\n private readonly destroyRef = inject(DestroyRef)\n\n private readonly _state = this.parent\n ? (this.parent as unknown as { _state: BusyTrackerState<T> })._state\n : new BusyTrackerState()\n\n readonly state$ = this._state.current$\n\n readonly state: Signal<BusyTrackerState<T>> = toSignal(this.state$, { requireSync: true })\n\n readonly any = computed(() => this.state().isBusy)\n\n readonly progress = computed(() => this.state().progress)\n\n constructor(@Inject(BusyTracker) @SkipSelf() @Optional() private readonly parent?: BusyTracker<any>) {}\n\n init(name: T, busy: boolean, progress?: BusyProgress) {\n const state = this.state()\n if (!state.has(name)) {\n this.set(name, busy, progress)\n }\n }\n\n set(name: T, busy: boolean, progress?: BusyProgress) {\n this._state.set(name, busy, progress)\n }\n\n is(name: T): Observable<boolean> {\n return this.state$.pipe(map(state => state.is(name)))\n }\n\n watch(name: T): Observable<BusyEventParams | undefined> {\n return this.state$.pipe(map(state => state.get(name)))\n }\n\n /**\n * ```ts\n * observable.pipe(this.busy.rx(\"save\"))\n * ```\n */\n rx(name: T) {\n return <S>(src: Observable<S>) =>\n src.pipe(\n tap(() => this.set(name, true)),\n finalize(() => this.set(name, false))\n )\n }\n\n connect(value: BusyConnectable, name?: T): Observable<unknown> {\n if (isObservable(value)) {\n if (name == null) {\n return throwError(() => new Error(\"Missing `name` param\"))\n }\n\n return new Observable(() => {\n const sub = value.subscribe(busyValue => {\n if (typeof busyValue === \"boolean\") {\n this.set(name as T, busyValue)\n } else {\n this.set(name as T, !!busyValue.busy, busyValue.progress)\n }\n })\n return sub.unsubscribe.bind(sub)\n }).pipe(takeUntilDestroyed(this.destroyRef))\n } else if (value instanceof BusyTracker) {\n return this._state.connect(value.state$, name).pipe(takeUntilDestroyed(this.destroyRef))\n } else if (isSignal(value)) {\n return this.connect(toObservable(value), name)\n }\n return throwError(() => new Error(\"Unsupported Busy source\"))\n }\n}\n\n// TODO: BusyState directive\n\n/**\n * ```ts\n * @Component({\n * template: `\n * <button nuBusy=\"save\">SAVE</button>\n * <progress nuBusy=\"fileUpload\">\n * <progress nuBusy=\"*\">\n * `\n * })\n * ```\n */\n@Directive({\n standalone: true,\n selector: \"[nuBusy]\",\n exportAs: \"nuBusy\"\n})\nexport class Busy<T extends string> implements ConnectProtocol {\n readonly tracker: BusyTracker<T> = inject(BusyTracker, { skipSelf: true })\n\n readonly name: InputSignal<T> = input.required<T>({ alias: \"nuBusy\" })\n readonly #name = toObservable(this.name)\n\n readonly state$ = combineLatest({ name: this.#name, state: this.tracker.state$ }).pipe(\n map(({ name, state }) => {\n if (name === \"*\") {\n const isBusy = state.isBusy\n return {\n isBusy: isBusy,\n isOthersBusy: isBusy,\n progress: state.progress\n }\n }\n\n const self = state.get(name)\n if (self) {\n const isBusy = self.busy === true\n return {\n isBusy: isBusy,\n isOthersBusy: state.isBusy && !isBusy,\n progress: self.progress\n }\n } else {\n return {\n isBusy: false,\n isOthersBusy: state.isBusy,\n progress: undefined\n }\n }\n }),\n shareReplay(1)\n )\n\n readonly isBusy$ = this.state$.pipe(\n map(v => v.isBusy),\n shareReplay(1)\n )\n readonly isBusy = toSignal(this.isBusy$, { rejectErrors: true })\n\n readonly isOthersBusy$ = this.state$.pipe(\n map(v => v.isOthersBusy),\n shareReplay(1)\n )\n readonly isOthersBusy = toSignal(this.isOthersBusy$, { rejectErrors: true })\n\n readonly progress$ = this.state$.pipe(\n map(v => v.progress),\n shareReplay(1)\n )\n readonly progress = toSignal(this.progress$, { rejectErrors: true })\n\n connect(value: BusyConnectable) {\n return new Observable(() => {\n const tsub = this.#name\n .pipe(\n filter(name => name !== \"*\"),\n switchMap(name => this.tracker.connect(value, name))\n )\n .subscribe()\n return tsub.unsubscribe.bind(tsub)\n })\n }\n}\n","import { computed, Directive, effect, inject, input, signal, Signal } from \"@angular/core\"\nimport { NgControl } from \"@angular/forms\"\n\nimport { Busy } from \"./busy\"\n\n/**\n * @example\n * ```typescript\n * @Component({\n * standalone: true,\n * hostDirectives: [DisabledState],\n * template: `<button [disabled]=\"disabledState.isDisabled()\">Submit</button>`,\n * })\n * export class Button {\n * readonly disabledState = inject(DisabledState)\n * }\n * ```\n */\n@Directive({\n standalone: true,\n exportAs: \"nuDisabled\",\n host: {\n \"[attr.disabled]\": \"isDisabled() ? '' : null\",\n \"[attr.inert]\": \"isDisabled() ? '' : null\"\n }\n})\nexport class DisabledState {\n readonly #parent = inject(DisabledState, { skipSelf: true, optional: true })\n readonly #busy = inject(Busy, { self: true, optional: true })\n readonly #disabled = signal<boolean>(false)\n\n readonly isDisabled: Signal<boolean> = computed(\n () => !!(this.#parent?.isDisabled() || this.#busy?.isOthersBusy() || this.#disabled())\n )\n\n constructor() {\n effect(() => this.isDisabled())\n }\n\n set(value: boolean) {\n this.#disabled.set(value)\n }\n}\n\n/**\n * @example\n * ```html\n * <form nuDisabled nuBusy=\"submit\">\n * <button [nuDisabled]=\"form.invalid\" nuBusy=\"submit\">Submit</button>\n * </form>\n * ```\n */\n@Directive({\n standalone: true,\n selector: \"[nuDisabled]\",\n hostDirectives: [DisabledState]\n})\nexport class Disabled {\n readonly #state = inject(DisabledState, { self: true })\n readonly #control = inject(NgControl, { self: true, optional: true })\n readonly nuDisabled = input(false)\n\n constructor() {\n effect(() => this.#state.set(this.nuDisabled()), { allowSignalWrites: true })\n effect(() => {\n const control = this.#control?.control\n if (!control) {\n // TODO: retry\n return\n }\n\n if (this.#state.isDisabled()) {\n control.enabled && control.disable()\n } else {\n control.disabled && control.enable()\n }\n })\n }\n}\n\n// @Directive({\n// standalone: true,\n// // eslint-disable-next-line max-len\n// selector: \"[nuDisabled][formControl],[nuDisabled][formControlName],[nuDisabled][formGroup],[nuDisabled][formGroupName]\"\n// })\n// export class FormControlDisabled {\n// readonly #disabled = inject(DisabledState, { self: true })\n// readonly #control = inject(NgControl, { self: true })\n\n// constructor() {\n// effect(() => {\n// const control = this.#control.control\n// if (!control) {\n// // TODO: retry\n// return\n// }\n\n// if (this.#disabled.isDisabled()) {\n// control.enabled && control.disable()\n// } else {\n// control.disabled && control.enable()\n// }\n// })\n// }\n// }\n","export type NumberWithUnitInput = number | string | NumberWithUnit\n\nconst specials = [\"auto\", \"inherit\"]\n\nexport const UNIT_REGEX = \"v[h|w|min|max]|p[c|t|x]|[re|e|c|m]m|[l|c]h|%|in|Q|ex|m?s\"\nexport const NUMBER_REGEX = \"[+-]?(?:\\\\d*\\\\.\\\\d+|\\\\d+\\\\.\\\\d*|\\\\d+)\"\n\nconst regex = new RegExp(`^(${NUMBER_REGEX})\\\\s*(${UNIT_REGEX})?$`)\n\nexport class NumberWithUnit {\n static coerce(value: any, defaultUnit?: string) {\n if (value instanceof NumberWithUnit) {\n return value\n } else 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","import { ElementRef } from \"@angular/core\"\n\nexport type ElementInput<T extends Element = HTMLElement> = T | ElementRef<T>\n\nexport function coerceElement<T>(value: T | ElementRef<T>): T {\n if (value instanceof ElementRef) {\n return value.nativeElement\n }\n return value\n}\n\nexport function isElementInput(value: any): value is ElementInput {\n return value instanceof Element || value instanceof ElementRef\n}\n","import { isPlainObject as _isPlainObject, cloneDeep } from \"lodash\"\n\nimport { DeepReadonly } from \"./types/readonly\"\n\n// export { deepFreeze }\n\nexport const deepClone: <T>(obj: T) => T = typeof structuredClone === \"function\" ? structuredClone : cloneDeep\n// export const deepFreeze: <T>(obj: T) => DeepReadonly<T> = o => Object.freeze(o) as any\nexport const isPlainObject: (arg: any) => arg is { [key: string]: any } = _isPlainObject as any\n\nexport function deepFreeze<T>(obj: T): DeepReadonly<T> {\n if (obj == null) {\n return obj as any\n }\n\n if (obj instanceof Map) {\n obj.clear =\n obj.delete =\n obj.set =\n function () {\n throw new Error(\"map is read-only\")\n }\n } else if (obj instanceof Set) {\n obj.add =\n obj.clear =\n obj.delete =\n function () {\n throw new Error(\"set is read-only\")\n }\n }\n\n // Freeze self\n Object.freeze(obj)\n\n Object.getOwnPropertyNames(obj).forEach(name => {\n const prop = (obj as any)[name]\n const type = typeof prop\n\n // Freeze prop if it is an object or function and also not already frozen\n if ((type === \"object\" || type === \"function\") && !Object.isFrozen(prop)) {\n deepFreeze(prop)\n }\n })\n\n return obj as any\n}\n\n/**\n * @example\n * ```ts\n * toSorted([{id: 1}, {id: 2}, {id: 3}], sortBy([{id: \"desc\"}]))\n * ```\n */\nexport function toSorted<T>(items: readonly T[], fn: (a: T, b: T) => number): T[] {\n if (typeof (items as any).toSorted === \"function\") {\n return (items as any).toSorted(fn)\n } else {\n return items.slice(0).sort(fn)\n }\n}\n\nexport function isFalsy(value: any): boolean {\n if (value == null) {\n return true\n } else if (Array.isArray(value)) {\n return value.length === 0\n } else if (isPlainObject(value)) {\n return Object.keys(value).length === 0\n } else if (value instanceof Set) {\n return value.size === 0\n } else if (value instanceof Map) {\n return value.size === 0\n } else if (typeof value === \"string\") {\n return value.length === 0\n } else if (typeof value === \"number\") {\n return isNaN(value) || value === 0\n }\n return value === false\n}\n\nexport function isTruthy(value: any): boolean {\n return !isFalsy(value)\n}\n","import { takeUntilDestroyed } from \"@angular/core/rxjs-interop\"\nimport { FormControl } from \"@angular/forms\"\n\nimport { debounceTime, distinctUntilChanged, map, Observable, shareReplay, startWith } from \"rxjs\"\n\nimport { isEqual } from \"lodash\"\n\nimport { isFalsy } from \"../util\"\n\nexport interface ObservableOptions {\n distinct?: boolean\n destruct?: boolean\n}\n\nexport interface ObservableValueOptions extends ObservableOptions {\n debounce?: number\n falsyToNull?: boolean\n}\n\nexport type FormControlProperties =\n | \"valid\"\n | \"invalid\"\n | \"status\"\n | \"pristine\"\n | \"dirty\"\n | \"touched\"\n | \"untouched\"\n | \"disabled\"\n | \"enabled\"\n | \"errors\"\n\nexport const DEFAULT: ObservableOptions = { distinct: true, destruct: true }\nexport const VALUE_DEFAULT: ObservableValueOptions = { ...DEFAULT, falsyToNull: true }\n\nexport function fcObservableValue<T, O extends ObservableValueOptions>(\n fc: FormControl<T>,\n opts: O = VALUE_DEFAULT as any\n): Observable<O extends { falsyToNull: true } ? T | null : T> {\n let result: Observable<any> = fc.valueChanges.pipe(\n startWith(null),\n map(() => fc.value)\n )\n\n if (opts.debounce) {\n result = result.pipe(debounceTime(opts.debounce))\n }\n\n if (opts.falsyToNull) {\n result = result.pipe(map(v => (isFalsy(v) ? null : v)))\n }\n\n return handleCommonOptions(result, opts) as any\n}\n\nexport function fcObservableProperty<T, P extends FormControlProperties>(\n fc: FormControl<T>,\n property: P,\n opts: ObservableOptions = DEFAULT\n): Observable<FormControl<T>[P]> {\n const result = fc.statusChanges.pipe(\n startWith(null),\n map(() => fc[property])\n )\n\n return handleCommonOptions(result, opts)\n}\n\nfunction handleCommonOptions<T>(o: Observable<T>, opts: ObservableOptions): Observable<T> {\n if (opts.distinct) {\n o = o.pipe(distinctUntilChanged(isEqual))\n }\n\n if (opts.destruct) {\n o = o.pipe(takeUntilDestroyed())\n }\n\n return o.pipe(shareReplay(1))\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","import { rawRequestAnimationFrame } from \"./unngzone\"\n\ntype FastDomHandler = () => void\n\nclass _FastDOM {\n #rafId: any\n #mutate: Array<FastDomHandler> = []\n #measure: Array<FastDomHandler> = []\n\n public mutate(handler: FastDomHandler) {\n this.#mutate.push(handler)\n this._schedule()\n }\n\n public mutateNext(handler: FastDomHandler) {\n this.#mutate.push(() => {\n this.#mutate.push(handler)\n })\n this._schedule()\n }\n\n public measure(handler: FastDomHandler) {\n this.#measure.push(handler)\n this._schedule()\n }\n\n public setStyle(el: HTMLElement, style: { [key: string]: any }, chain?: FastDomHandler) {\n this.mutate(() => {\n for (const [k, v] of Object.entries(style)) {\n if (v == null) {\n el.style.removeProperty(k)\n } else {\n el.style.setProperty(k, v)\n }\n }\n\n chain && chain()\n })\n }\n\n public setAttributes(el: HTMLElement, attrs: { [key: string]: any }, chain?: FastDomHandler) {\n this.mutate(() => {\n for (const [k, v] of Object.entries(attrs)) {\n if (v == null) {\n el.removeAttribute(k)\n } else {\n el.setAttribute(k, v)\n }\n }\n\n chain && chain()\n })\n }\n\n private _schedule() {\n if (!this.#rafId) {\n this.#rafId = rawRequestAnimationFrame(this._apply.bind(this))\n }\n }\n\n private _apply() {\n this.#rafId = null\n\n const measure = this.#measure.slice()\n const mutate = this.#mutate.slice()\n this.#measure.length = 0\n this.#mutate.length = 0\n\n runQ(measure)\n runQ(mutate)\n\n if (this.#measure.length || this.#mutate.length) {\n this._schedule()\n }\n }\n}\n\nfunction runQ(items: FastDomHandler[]) {\n let item: FastDomHandler\n while ((item = items.shift()!)) {\n item()\n }\n}\n\nexport const FastDOM = new _FastDOM()\n","import {\n catchError,\n concat,\n concatMap,\n filter,\n forkJoin,\n from,\n map,\n Observable,\n ObservableInput,\n of,\n reduce,\n ReplaySubject,\n scan,\n share,\n shareReplay,\n Subject,\n Subscriber,\n take,\n takeLast,\n takeUntil,\n takeWhile,\n tap,\n throwError\n} from \"rxjs\"\n\nimport { flatten } from \"lodash\"\n\nexport type LifecycleHandler = () => ObservableInput<unknown> | null | undefined | void\n\nexport class StopLifecycle extends Error {}\n\nexport type LifecycleOptions = Record<string, { order?: \"parallel\" | \"sequential\"; cancellable?: boolean }>\n\nexport type LifecycleRemap<A, B> =\n A extends Lifecycle<infer AO, infer AS>\n ? B extends Lifecycle<infer BO, infer BS>\n ? Partial<{ [K in AS]: BS }>\n : never\n : never\n\nexport class Lifecycle<T extends LifecycleOptions, S extends keyof T = keyof T> {\n readonly states: T\n readonly #handlers: Partial<Record<S, Array<LifecycleHandler>>> = {}\n\n readonly #until = new Subject<void>()\n readonly #trigger = new Subject<S>()\n readonly #status = this.#trigger.pipe(\n takeUntil(this.#until),\n scan(\n (result, trigger) => {\n if (!result[trigger]) {\n result[trigger] = this.#run(trigger as S).pipe(\n tap(executed => {\n if (executed === false) {\n delete result[trigger]\n }\n }),\n map(executed => [trigger, !!executed] as [S, boolean]),\n shareReplay(1)\n )\n }\n return result\n },\n {} as Record<S, Observable<[S, boolean]>>\n ),\n concatMap(triggers => {\n const srcs = Object.values(triggers) as Array<Observable<[S, boolean]>>\n return concat(...srcs).pipe(\n takeWhile(([_, executed]) => executed, false),\n reduce(\n (result, [name, executed]) => {\n return { ...result, [name]: executed }\n },\n {} as Record<S, boolean>\n )\n )\n }),\n tap(status => {\n if (this.#handlers == null) {\n return\n }\n\n for (const [k, v] of Object.entries(status)) {\n if (v) {\n delete (this.#handlers as any)[k]\n }\n }\n }),\n share()\n )\n\n readonly status$ = this.#status.pipe(shareReplay(1))\n readonly current$ = new ReplaySubject<S>()\n\n constructor(states: T) {\n this.states = { ...states }\n\n for (const value of Object.values(states)) {\n if (value.order == null) {\n value.order = \"parallel\"\n }\n }\n }\n\n on(state: S, fn: LifecycleHandler) {\n if (state in this.#handlers) {\n this.#handlers[state]!.push(fn)\n } else {\n this.#handlers[state] = [fn]\n }\n\n return () => {\n const idx = this.#handlers[state]!.indexOf(fn)\n if (idx > -1) {\n this.#handlers[state]!.splice(idx, 1)\n }\n }\n }\n\n onExecute(state: S) {\n return this.current$.pipe(\n takeUntil(this.#until),\n filter(current => current === state)\n )\n }\n\n onDone(state: S) {\n return this.status$.pipe(\n filter(status => status[state]),\n take(1)\n )\n }\n\n run(...states: Array<S | S[]>) {\n const flattened = flatten(states).filter((v, i, a) => a.indexOf(v) === i)\n const expectedCount = flattened.length\n return new Observable((dest: Subscriber<void>) => {\n dest.add(\n this.#status.subscribe(currentStatus => {\n const executedCount = Object.entries(currentStatus).reduce(\n (result, [name, done]) => result + (done && flattened.includes(name as S) ? 1 : 0),\n 0\n )\n\n if (executedCount >= expectedCount) {\n dest.next()\n dest.complete()\n }\n })\n )\n\n for (const s of flattened) {\n this.#trigger.next(s)\n }\n })\n }\n\n /**\n * Run this state changes on other state\n */\n control<T extends Lifecycle<any, any>>(state: T, remap?: LifecycleRemap<this, T>) {\n const remove: Array<() => void> = []\n\n for (const selfState of Object.keys(this.states)) {\n const otherState = (remap as unknown as any)?.[selfState] || selfState\n if (otherState in state.states) {\n remove.push(this.on(selfState as any, () => state.run(otherState)))\n }\n }\n\n return () => {\n for (const fn of remove) {\n fn()\n }\n }\n }\n\n destroy() {\n ;(this as any).#handlers = null\n this.#until.next()\n this.#until.complete()\n }\n\n #run(state: S) {\n if (this.#handlers == null || !this.states[state]) {\n return of(true)\n }\n\n return new Observable((dest: Subscriber<boolean>) => {\n this.current$.next(state)\n\n const handlers = this.#handlers[state]\n if (handlers == null || handlers.length === 0) {\n dest.next(true)\n dest.complete()\n return\n }\n\n const observables: Array<Observable<any>> = handlers.map(handler => {\n const observable = handler()\n if (observable == null) {\n return of(null)\n } else {\n return from(observable)\n }\n })\n\n const config = this.states[state]\n\n if (observables.length === 1) {\n return observables[0].pipe(map(() => true)).subscribe(dest)\n } else if (config.order === \"parallel\") {\n return forkJoin(observables)\n .pipe(map(() => true))\n .subscribe(dest)\n } else if (config.order === \"sequential\") {\n return concat(...observables)\n .pipe(map(() => true))\n .subscribe(dest)\n } else {\n dest.next(true)\n dest.complete()\n }\n\n return\n }).pipe(\n takeLast(1),\n catchError(error => {\n if (error instanceof StopLifecycle) {\n return of(false)\n } else {\n return throwError(() => error)\n }\n })\n )\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["_isPlainObject"],"mappings":"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"}
|