@ngutil/aria 0.0.53 → 0.0.56
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/activity/activity.service.mjs +3 -3
- package/esm2022/focus/focus-state.directive.mjs +3 -3
- package/esm2022/focus/focus.service.mjs +3 -3
- package/esm2022/focus/focusable.directive.mjs +6 -9
- package/esm2022/gestures/gestures.service.mjs +3 -3
- package/esm2022/index.mjs +2 -1
- package/esm2022/keystroke/keystroke.service.mjs +4 -5
- package/esm2022/ui-state/abstract.mjs +41 -0
- package/esm2022/ui-state/busy.directive.mjs +27 -0
- package/esm2022/ui-state/disabled.directive.mjs +28 -0
- package/esm2022/ui-state/index.mjs +25 -0
- package/esm2022/ui-state/progress-state.mjs +150 -0
- package/esm2022/ui-state/readonly.directive.mjs +28 -0
- package/esm2022/ui-state/ui-state.mjs +99 -0
- package/fesm2022/ngutil-aria.mjs +390 -31
- package/fesm2022/ngutil-aria.mjs.map +1 -1
- package/focus/focusable.directive.d.ts +0 -1
- package/index.d.ts +1 -0
- package/package.json +6 -6
- package/ui-state/abstract.d.ts +19 -0
- package/ui-state/busy.directive.d.ts +9 -0
- package/ui-state/disabled.directive.d.ts +9 -0
- package/ui-state/index.d.ts +15 -0
- package/ui-state/progress-state.d.ts +50 -0
- package/ui-state/readonly.directive.d.ts +9 -0
- package/ui-state/ui-state.d.ts +34 -0
|
@@ -39,10 +39,10 @@ export class ActivityService {
|
|
|
39
39
|
watchInactvity(timeout) {
|
|
40
40
|
return this.events$.pipe(startWith(null), throttleTime(timeout / 2), switchMap(() => timer(0, timeout).pipe(take(2))), map(v => v !== 0), distinctUntilChanged(), shareReplay(1));
|
|
41
41
|
}
|
|
42
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
43
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
42
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: ActivityService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
43
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: ActivityService, providedIn: "root" }); }
|
|
44
44
|
}
|
|
45
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: ActivityService, decorators: [{
|
|
46
46
|
type: Injectable,
|
|
47
47
|
args: [{ providedIn: "root" }]
|
|
48
48
|
}] });
|
|
@@ -46,11 +46,11 @@ export class FocusState {
|
|
|
46
46
|
};
|
|
47
47
|
});
|
|
48
48
|
}
|
|
49
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
50
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
49
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: FocusState, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
50
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.6", type: FocusState, isStandalone: true, host: { properties: { "attr.focus": "origin()", "attr.focusWithin": "within()" } }, ngImport: i0 }); }
|
|
51
51
|
}
|
|
52
52
|
_a = FocusState;
|
|
53
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
53
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: FocusState, decorators: [{
|
|
54
54
|
type: Directive,
|
|
55
55
|
args: [{
|
|
56
56
|
standalone: true,
|
|
@@ -82,10 +82,10 @@ export class FocusService {
|
|
|
82
82
|
focusTrap(inside, deferCaptureElements = false) {
|
|
83
83
|
return this.#focusTrap.create(inside, deferCaptureElements);
|
|
84
84
|
}
|
|
85
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
86
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
85
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: FocusService, deps: [{ token: DOCUMENT }, { token: NgZone }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
86
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: FocusService, providedIn: "root" }); }
|
|
87
87
|
}
|
|
88
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
88
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: FocusService, decorators: [{
|
|
89
89
|
type: Injectable,
|
|
90
90
|
args: [{ providedIn: "root" }]
|
|
91
91
|
}], ctorParameters: () => [{ type: Document, decorators: [{
|
|
@@ -1,21 +1,18 @@
|
|
|
1
1
|
import { computed, Directive, effect, inject, input } from "@angular/core";
|
|
2
|
-
import {
|
|
2
|
+
import { isElementInput } from "@ngutil/common";
|
|
3
3
|
import { FocusState } from "./focus-state.directive";
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "./focus-state.directive";
|
|
6
6
|
// TODO: what happens when disabled is changed
|
|
7
7
|
export class Focusable {
|
|
8
|
-
#disabled;
|
|
9
8
|
constructor() {
|
|
10
|
-
this.#disabled = inject(DisabledState, { optional: true, self: true });
|
|
11
9
|
this.state = inject(FocusState);
|
|
12
10
|
this.focusable = input(true, { alias: "nuFocusable" });
|
|
13
11
|
this.tabindex = input(0, { transform: Number });
|
|
14
12
|
this._tabindex = computed(() => {
|
|
15
13
|
const focusable = this.focusable();
|
|
16
14
|
const tabindex = this.tabindex();
|
|
17
|
-
|
|
18
|
-
if (focusable === false || isDisabled) {
|
|
15
|
+
if (focusable === false) {
|
|
19
16
|
return -1;
|
|
20
17
|
}
|
|
21
18
|
if (typeof focusable === "number") {
|
|
@@ -37,10 +34,10 @@ export class Focusable {
|
|
|
37
34
|
return this.state.connect(value.state);
|
|
38
35
|
}
|
|
39
36
|
}
|
|
40
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
41
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
37
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: Focusable, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
38
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.6", type: Focusable, isStandalone: true, selector: "[nuFocusable]", inputs: { focusable: { classPropertyName: "focusable", publicName: "nuFocusable", isSignal: true, isRequired: false, transformFunction: null }, tabindex: { classPropertyName: "tabindex", publicName: "tabindex", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.tabindex": "_tabindex()" } }, exportAs: ["nuFocusable"], hostDirectives: [{ directive: i1.FocusState }], ngImport: i0 }); }
|
|
42
39
|
}
|
|
43
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
40
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: Focusable, decorators: [{
|
|
44
41
|
type: Directive,
|
|
45
42
|
args: [{
|
|
46
43
|
standalone: true,
|
|
@@ -52,4 +49,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImpor
|
|
|
52
49
|
hostDirectives: [FocusState]
|
|
53
50
|
}]
|
|
54
51
|
}], ctorParameters: () => [] });
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXNhYmxlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FyaWEvc3JjL2ZvY3VzL2ZvY3VzYWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFMUUsT0FBTyxFQUFpQyxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUU5RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUE7OztBQUVwRCw4Q0FBOEM7QUFXOUMsTUFBTSxPQUFPLFNBQVM7SUF5QmxCO1FBeEJTLFVBQUssR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUE7UUFFMUIsY0FBUyxHQUFHLEtBQUssQ0FBbUIsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUE7UUFDbkUsYUFBUSxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQTtRQUUxQyxjQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUMvQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUE7WUFDbEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFBO1lBRWhDLElBQUksU0FBUyxLQUFLLEtBQUssRUFBRSxDQUFDO2dCQUN0QixPQUFPLENBQUMsQ0FBQyxDQUFBO1lBQ2IsQ0FBQztZQUVELElBQUksT0FBTyxTQUFTLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQ2hDLE9BQU8sU0FBUyxDQUFBO1lBQ3BCLENBQUM7WUFFRCxJQUFJLFNBQVMsS0FBSyxJQUFJLElBQUksUUFBUSxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO2dCQUM3RCxPQUFPLFFBQVEsQ0FBQTtZQUNuQixDQUFDO1lBRUQsT0FBTyxDQUFDLENBQUE7UUFDWixDQUFDLENBQUMsQ0FBQTtRQUdFLHVEQUF1RDtRQUN2RCxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQTtJQUNoRSxDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQTRDO1FBQ2hELElBQUksS0FBSyxZQUFZLFVBQVUsSUFBSSxjQUFjLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN2RCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3BDLENBQUM7YUFBTSxDQUFDO1lBQ0osT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDMUMsQ0FBQztJQUNMLENBQUM7OEdBcENRLFNBQVM7a0dBQVQsU0FBUzs7MkZBQVQsU0FBUztrQkFUckIsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFFBQVEsRUFBRSxhQUFhO29CQUN2QixJQUFJLEVBQUU7d0JBQ0YsaUJBQWlCLEVBQUUsYUFBYTtxQkFDbkM7b0JBQ0QsY0FBYyxFQUFFLENBQUMsVUFBVSxDQUFDO2lCQUMvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCBEaXJlY3RpdmUsIGVmZmVjdCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCJcblxuaW1wb3J0IHsgQ29ubmVjdFByb3RvY29sLCBFbGVtZW50SW5wdXQsIGlzRWxlbWVudElucHV0IH0gZnJvbSBcIkBuZ3V0aWwvY29tbW9uXCJcblxuaW1wb3J0IHsgRm9jdXNTdGF0ZSB9IGZyb20gXCIuL2ZvY3VzLXN0YXRlLmRpcmVjdGl2ZVwiXG5cbi8vIFRPRE86IHdoYXQgaGFwcGVucyB3aGVuIGRpc2FibGVkIGlzIGNoYW5nZWRcblxuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogXCJbbnVGb2N1c2FibGVdXCIsXG4gICAgZXhwb3J0QXM6IFwibnVGb2N1c2FibGVcIixcbiAgICBob3N0OiB7XG4gICAgICAgIFwiW2F0dHIudGFiaW5kZXhdXCI6IFwiX3RhYmluZGV4KClcIlxuICAgIH0sXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtGb2N1c1N0YXRlXVxufSlcbmV4cG9ydCBjbGFzcyBGb2N1c2FibGUgaW1wbGVtZW50cyBDb25uZWN0UHJvdG9jb2wge1xuICAgIHJlYWRvbmx5IHN0YXRlID0gaW5qZWN0KEZvY3VzU3RhdGUpXG5cbiAgICByZWFkb25seSBmb2N1c2FibGUgPSBpbnB1dDxib29sZWFuIHwgbnVtYmVyPih0cnVlLCB7IGFsaWFzOiBcIm51Rm9jdXNhYmxlXCIgfSlcbiAgICByZWFkb25seSB0YWJpbmRleCA9IGlucHV0KDAsIHsgdHJhbnNmb3JtOiBOdW1iZXIgfSlcblxuICAgIHJlYWRvbmx5IF90YWJpbmRleCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3QgZm9jdXNhYmxlID0gdGhpcy5mb2N1c2FibGUoKVxuICAgICAgICBjb25zdCB0YWJpbmRleCA9IHRoaXMudGFiaW5kZXgoKVxuXG4gICAgICAgIGlmIChmb2N1c2FibGUgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICByZXR1cm4gLTFcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgZm9jdXNhYmxlID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICByZXR1cm4gZm9jdXNhYmxlXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZm9jdXNhYmxlID09PSB0cnVlICYmIHRhYmluZGV4ICE9IG51bGwgJiYgIWlzTmFOKHRhYmluZGV4KSkge1xuICAgICAgICAgICAgcmV0dXJuIHRhYmluZGV4XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gMFxuICAgIH0pXG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgLy8gVE9ETzogbWnDqXJ0IGtlbGwgZXo/LCBoYSBuaW5jcyBpdHQgYWtrb3IgbmVtIGZyaXNzw7xsXG4gICAgICAgIGVmZmVjdCgoKSA9PiB0aGlzLl90YWJpbmRleCgpLCB7IGFsbG93U2lnbmFsV3JpdGVzOiBmYWxzZSB9KVxuICAgIH1cblxuICAgIGNvbm5lY3QodmFsdWU6IEZvY3VzYWJsZSB8IEZvY3VzU3RhdGUgfCBFbGVtZW50SW5wdXQpIHtcbiAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRm9jdXNTdGF0ZSB8fCBpc0VsZW1lbnRJbnB1dCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnN0YXRlLmNvbm5lY3QodmFsdWUpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZS5jb25uZWN0KHZhbHVlLnN0YXRlKVxuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -92,10 +92,10 @@ export class GesturesService {
|
|
|
92
92
|
return listener;
|
|
93
93
|
});
|
|
94
94
|
}
|
|
95
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
96
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
95
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: GesturesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
96
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: GesturesService, providedIn: "root" }); }
|
|
97
97
|
}
|
|
98
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
98
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: GesturesService, decorators: [{
|
|
99
99
|
type: Injectable,
|
|
100
100
|
args: [{ providedIn: "root" }]
|
|
101
101
|
}] });
|
package/esm2022/index.mjs
CHANGED
|
@@ -2,4 +2,5 @@ export { ActivityService } from "./activity";
|
|
|
2
2
|
export { FocusService, FocusTrap, Focusable, FocusState } from "./focus";
|
|
3
3
|
export { KeystrokeService } from "./keystroke";
|
|
4
4
|
export * from "./gestures";
|
|
5
|
-
|
|
5
|
+
export * from "./ui-state";
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9hcmlhL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlDLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUMzRSxPQUFPLEVBQWUsWUFBWSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFnQyxNQUFNLFNBQVMsQ0FBQTtBQUNuSCxPQUFPLEVBQTZCLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ3pFLGNBQWMsWUFBWSxDQUFBO0FBQzFCLGNBQWMsWUFBWSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQWN0aXZpdHlFdmVudCwgQWN0aXZpdHlPcmlnaW4sIEFjdGl2aXR5U2VydmljZSB9IGZyb20gXCIuL2FjdGl2aXR5XCJcbmV4cG9ydCB7IEZvY3VzT3JpZ2luLCBGb2N1c1NlcnZpY2UsIEZvY3VzVHJhcCwgRm9jdXNhYmxlLCBGb2N1c1N0YXRlLCBGb2N1c2FibGVFdmVudCwgRm9jdXNDaGFuZ2VzIH0gZnJvbSBcIi4vZm9jdXNcIlxuZXhwb3J0IHsgS2V5c3Ryb2tlLCBLZXlzdHJva2VFdmVudCwgS2V5c3Ryb2tlU2VydmljZSB9IGZyb20gXCIuL2tleXN0cm9rZVwiXG5leHBvcnQgKiBmcm9tIFwiLi9nZXN0dXJlc1wiXG5leHBvcnQgKiBmcm9tIFwiLi91aS1zdGF0ZVwiXG4iXX0=
|
|
@@ -12,7 +12,6 @@ export class KeystrokeService {
|
|
|
12
12
|
watch(activation, ...keystrokes) {
|
|
13
13
|
return new Observable((dst) => this.#trigger(activation)
|
|
14
14
|
.pipe(distinctUntilChanged(), switchMap(enabled => {
|
|
15
|
-
console.log({ enabled }, keystrokes);
|
|
16
15
|
if (enabled) {
|
|
17
16
|
return this.#keyEvent;
|
|
18
17
|
}
|
|
@@ -60,10 +59,10 @@ export class KeystrokeService {
|
|
|
60
59
|
#focusActivation(element) {
|
|
61
60
|
return this.#focusEvent.pipe(map(focused => focused === element || element.contains(focused)));
|
|
62
61
|
}
|
|
63
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
64
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
62
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KeystrokeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
63
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KeystrokeService, providedIn: "root" }); }
|
|
65
64
|
}
|
|
66
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
65
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KeystrokeService, decorators: [{
|
|
67
66
|
type: Injectable,
|
|
68
67
|
args: [{ providedIn: "root" }]
|
|
69
68
|
}] });
|
|
@@ -90,4 +89,4 @@ function eventToKeystroke(event) {
|
|
|
90
89
|
state: event.type === "keyup" ? "up" : "down"
|
|
91
90
|
};
|
|
92
91
|
}
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5c3Ryb2tlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hcmlhL3NyYy9rZXlzdHJva2Uva2V5c3Ryb2tlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUUxRCxPQUFPLEVBQ0gsb0JBQW9CLEVBQ3BCLEtBQUssRUFDTCxNQUFNLEVBQ04sSUFBSSxFQUNKLFNBQVMsRUFDVCxHQUFHLEVBQ0gsS0FBSyxFQUNMLFVBQVUsRUFDVixFQUFFLEVBQ0YsS0FBSyxFQUNMLFdBQVcsRUFDWCxTQUFTLEVBRVQsU0FBUyxFQUNaLE1BQU0sTUFBTSxDQUFBO0FBRWIsT0FBTyxFQUFFLGFBQWEsRUFBZ0IsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFNUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQTs7QUFtQnJDLE1BQU0sT0FBTyxnQkFBZ0I7SUFDaEIsU0FBUyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUM1QixLQUFLLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBRXRCLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxDQUNuRCxLQUFLLENBQ0QsU0FBUyxDQUFnQixJQUFJLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQ3RGLFNBQVMsQ0FBZ0IsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUN2RixDQUFD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LEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRztRQUNkLEtBQUssRUFBRSxLQUFLLENBQUMsUUFBUTtRQUNyQixJQUFJLEVBQUUsS0FBSyxDQUFDLE9BQU87UUFDbkIsR0FBRyxFQUFFLEtBQUssQ0FBQyxNQUFNO1FBQ2pCLEtBQUssRUFBRSxLQUFLLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNO0tBQ2hELENBQUE7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCJcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgTmdab25lIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIlxuXG5pbXBvcnQge1xuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICAgIEVNUFRZLFxuICAgIGZpbHRlcixcbiAgICBmcm9tLFxuICAgIGZyb21FdmVudCxcbiAgICBtYXAsXG4gICAgbWVyZ2UsXG4gICAgT2JzZXJ2YWJsZSxcbiAgICBvZixcbiAgICBzaGFyZSxcbiAgICBzaGFyZVJlcGxheSxcbiAgICBzdGFydFdpdGgsXG4gICAgU3Vic2NyaWJlcixcbiAgICBzd2l0Y2hNYXBcbn0gZnJvbSBcInJ4anNcIlxuXG5pbXBvcnQgeyBjb2VyY2VFbGVtZW50LCBFbGVtZW50SW5wdXQsIGlzRWxlbWVudElucHV0IH0gZnJvbSBcIkBuZ3V0aWwvY29tbW9uXCJcblxuaW1wb3J0IHsgRm9jdXNTdGF0ZSB9IGZyb20gXCIuLi9mb2N1c1wiXG5cbmV4cG9ydCBpbnRlcmZhY2UgS2V5c3Ryb2tlIHtcbiAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvVUlfRXZlbnRzL0tleWJvYXJkX2V2ZW50X2tleV92YWx1ZXNcbiAgICBrZXk6IEtleWJvYXJkRXZlbnRbXCJrZXlcIl1cbiAgICBzaGlmdD86IGJvb2xlYW5cbiAgICBjdHJsPzogYm9vbGVhblxuICAgIGFsdD86IGJvb2xlYW5cbiAgICBzdGF0ZTogXCJkb3duXCIgfCBcInVwXCJcbn1cblxuZXhwb3J0IGludGVyZmFjZSBLZXlzdHJva2VFdmVudCB7XG4gICAgb3JpZ2luYWw6IEtleWJvYXJkRXZlbnRcbiAgICBrZXlzdHJva2U6IEtleXN0cm9rZVxufVxuXG5leHBvcnQgdHlwZSBLZXlzdHJva2VBY3RpdmF0aW9uID0gRWxlbWVudElucHV0IHwgRm9jdXNTdGF0ZSB8IE9ic2VydmFibGU8RWxlbWVudElucHV0IHwgRm9jdXNTdGF0ZSB8IGJvb2xlYW4+XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogXCJyb290XCIgfSlcbmV4cG9ydCBjbGFzcyBLZXlzdHJva2VTZXJ2aWNlIHtcbiAgICByZWFkb25seSAjZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpXG4gICAgcmVhZG9ubHkgI3pvbmUgPSBpbmplY3QoTmdab25lKVxuXG4gICAgcmVhZG9ubHkgI2tleUV2ZW50ID0gdGhpcy4jem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PlxuICAgICAgICBtZXJnZShcbiAgICAgICAgICAgIGZyb21FdmVudDxLZXlib2FyZEV2ZW50Pih0aGlzLiNkb2N1bWVudCwgXCJrZXlkb3duXCIsIHsgY2FwdHVyZTogdHJ1ZSwgcGFzc2l2ZTogZmFsc2UgfSksXG4gICAgICAgICAgICBmcm9tRXZlbnQ8S2V5Ym9hcmRFdmVudD4odGhpcy4jZG9jdW1lbnQsIFwia2V5dXBcIiwgeyBjYXB0dXJlOiB0cnVlLCBwYXNzaXZlOiBmYWxzZSB9KVxuICAgICAgICApLnBpcGUoXG4gICAgICAgICAgICBmaWx0ZXIoZXZlbnQgPT4gZXZlbnQuZGVmYXVsdFByZXZlbnRlZCA9PT0gZmFsc2UpLFxuICAgICAgICAgICAgc2hhcmUoKVxuICAgICAgICApXG4gICAgKVxuXG4gICAgcmVhZG9ubHkgI2ZvY3VzRXZlbnQgPSB0aGlzLiN6b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+XG4gICAgICAgIGZyb21FdmVudCh0aGlzLiNkb2N1bWVudCwgXCJmb2N1c1wiLCB7IGNhcHR1cmU6IHRydWUsIHBhc3NpdmU6IHRydWUgfSkucGlwZShcbiAgICAgICAgICAgIHN0YXJ0V2l0aChudWxsKSxcbiAgICAgICAgICAgIG1hcCgoKSA9PiB0aGlzLiNkb2N1bWVudC5hY3RpdmVFbGVtZW50KSxcbiAgICAgICAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgICAgIClcbiAgICApXG5cbiAgICB3YXRjaChhY3RpdmF0aW9uOiBLZXlzdHJva2VBY3RpdmF0aW9uLCAuLi5rZXlzdHJva2VzOiBLZXlzdHJva2VbXSk6IE9ic2VydmFibGU8S2V5c3Ryb2tlRXZlbnQ+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChkc3Q6IFN1YnNjcmliZXI8S2V5c3Ryb2tlRXZlbnQ+KSA9PlxuICAgICAgICAgICAgdGhpcy4jdHJpZ2dlcihhY3RpdmF0aW9uKVxuICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoZW5hYmxlZCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyh7IGVuYWJsZWQgfSwga2V5c3Ryb2tlcylcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbmFibGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuI2tleUV2ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFTVBUWVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgbWFwKGV2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFtdXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlkRnJvbUV2ZW50ID0ga2V5c3Ryb2tlSWQoZXZlbnRUb0tleXN0cm9rZShldmVudCkpXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYXRjaGVzID0ga2V5c3Ryb2tlc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoa3MgPT4ga2V5c3Ryb2tlSWQoa3MpID09PSBpZEZyb21FdmVudClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWFwKGtzID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yaWdpbmFsOiBldmVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleXN0cm9rZToga3NcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtYXRjaGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtYXRjaGVzXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXIobWF0Y2hlcyA9PiBtYXRjaGVzLmxlbmd0aCA+IDApLFxuICAgICAgICAgICAgICAgICAgICBzd2l0Y2hNYXAobWF0Y2hlcyA9PiBvZiguLi5tYXRjaGVzKSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShkc3QpXG4gICAgICAgIClcbiAgICB9XG5cbiAgICAjdHJpZ2dlcihhY3RpdmF0aW9uOiBLZXlzdHJva2VBY3RpdmF0aW9uKTogT2JzZXJ2YWJsZTxib29sZWFuIHwgSFRNTEVsZW1lbnQ+IHtcbiAgICAgICAgaWYgKGlzRWxlbWVudElucHV0KGFjdGl2YXRpb24pKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy4jZm9jdXNBY3RpdmF0aW9uKGNvZXJjZUVsZW1lbnQoYWN0aXZhdGlvbikpXG4gICAgICAgIH0gZWxzZSBpZiAoYWN0aXZhdGlvbiBpbnN0YW5jZW9mIEZvY3VzU3RhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiBhY3RpdmF0aW9uLm9yaWdpbiQucGlwZShtYXAob3JpZ2luID0+IG9yaWdpbiAhPSBudWxsKSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBmcm9tKGFjdGl2YXRpb24pLnBpcGUoXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKHZhbHVlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzRWxlbWVudElucHV0KHZhbHVlKSB8fCB2YWx1ZSBpbnN0YW5jZW9mIEZvY3VzU3RhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLiN0cmlnZ2VyKHZhbHVlKVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKHZhbHVlKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgfVxuICAgIH1cblxuICAgICNmb2N1c0FjdGl2YXRpb24oZWxlbWVudDogSFRNTEVsZW1lbnQpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuI2ZvY3VzRXZlbnQucGlwZShtYXAoZm9jdXNlZCA9PiBmb2N1c2VkID09PSBlbGVtZW50IHx8IGVsZW1lbnQuY29udGFpbnMoZm9jdXNlZCkpKVxuICAgIH1cbn1cblxuZnVuY3Rpb24ga2V5c3Ryb2tlSWQoa3M6IEtleXN0cm9rZSk6IHN0cmluZyB7XG4gICAgbGV0IHJlcyA9IGtzLmtleVxuICAgIGlmIChrcy5zaGlmdCkge1xuICAgICAgICByZXMgKz0gXCIrc2hpZnRcIlxuICAgIH1cbiAgICBpZiAoa3MuY3RybCkge1xuICAgICAgICByZXMgKz0gXCIrY3RybFwiXG4gICAgfVxuICAgIGlmIChrcy5hbHQpIHtcbiAgICAgICAgcmVzICs9IFwiK2FsdFwiXG4gICAgfVxuICAgIHJlcyArPSBgJHtrcy5zdGF0ZX1gXG4gICAgcmV0dXJuIHJlc1xufVxuXG5mdW5jdGlvbiBldmVudFRvS2V5c3Ryb2tlKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogS2V5c3Ryb2tlIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBrZXk6IGV2ZW50LmtleSxcbiAgICAgICAgc2hpZnQ6IGV2ZW50LnNoaWZ0S2V5LFxuICAgICAgICBjdHJsOiBldmVudC5jdHJsS2V5LFxuICAgICAgICBhbHQ6IGV2ZW50LmFsdEtleSxcbiAgICAgICAgc3RhdGU6IGV2ZW50LnR5cGUgPT09IFwia2V5dXBcIiA/IFwidXBcIiA6IFwiZG93blwiXG4gICAgfVxufVxuIl19
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5c3Ryb2tlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hcmlhL3NyYy9rZXlzdHJva2Uva2V5c3Ryb2tlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUUxRCxPQUFPLEVBQ0gsb0JBQW9CLEVBQ3BCLEtBQUssRUFDTCxNQUFNLEVBQ04sSUFBSSxFQUNKLFNBQVMsRUFDVCxHQUFHLEVBQ0gsS0FBSyxFQUNMLFVBQVUsRUFDVixFQUFFLEVBQ0YsS0FBSyxFQUNMLFdBQVcsRUFDWCxTQUFTLEVBRVQsU0FBUyxFQUNaLE1BQU0sTUFBTSxDQUFBO0FBRWIsT0FBTyxFQUFFLGFBQWEsRUFBZ0IsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFNUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQTs7QUFtQnJDLE1BQU0sT0FBTyxnQkFBZ0I7SUFDaEIsU0FBUyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUM1QixLQUFLLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBRXRCLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxDQUNuRCxLQUFLLENBQ0QsU0FBUyxDQUFnQixJQUFJLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQ3RGLFNBQVMsQ0FBZ0IsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUN2RixDQUFD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LElBQUksRUFBRSxLQUFLLENBQUMsT0FBTztRQUNuQixHQUFHLEVBQUUsS0FBSyxDQUFDLE1BQU07UUFDakIsS0FBSyxFQUFFLEtBQUssQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU07S0FDaEQsQ0FBQTtBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIlxuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBOZ1pvbmUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiXG5cbmltcG9ydCB7XG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gICAgRU1QVFksXG4gICAgZmlsdGVyLFxuICAgIGZyb20sXG4gICAgZnJvbUV2ZW50LFxuICAgIG1hcCxcbiAgICBtZXJnZSxcbiAgICBPYnNlcnZhYmxlLFxuICAgIG9mLFxuICAgIHNoYXJlLFxuICAgIHNoYXJlUmVwbGF5LFxuICAgIHN0YXJ0V2l0aCxcbiAgICBTdWJzY3JpYmVyLFxuICAgIHN3aXRjaE1hcFxufSBmcm9tIFwicnhqc1wiXG5cbmltcG9ydCB7IGNvZXJjZUVsZW1lbnQsIEVsZW1lbnRJbnB1dCwgaXNFbGVtZW50SW5wdXQgfSBmcm9tIFwiQG5ndXRpbC9jb21tb25cIlxuXG5pbXBvcnQgeyBGb2N1c1N0YXRlIH0gZnJvbSBcIi4uL2ZvY3VzXCJcblxuZXhwb3J0IGludGVyZmFjZSBLZXlzdHJva2Uge1xuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9VSV9FdmVudHMvS2V5Ym9hcmRfZXZlbnRfa2V5X3ZhbHVlc1xuICAgIGtleTogS2V5Ym9hcmRFdmVudFtcImtleVwiXVxuICAgIHNoaWZ0PzogYm9vbGVhblxuICAgIGN0cmw/OiBib29sZWFuXG4gICAgYWx0PzogYm9vbGVhblxuICAgIHN0YXRlOiBcImRvd25cIiB8IFwidXBcIlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEtleXN0cm9rZUV2ZW50IHtcbiAgICBvcmlnaW5hbDogS2V5Ym9hcmRFdmVudFxuICAgIGtleXN0cm9rZTogS2V5c3Ryb2tlXG59XG5cbmV4cG9ydCB0eXBlIEtleXN0cm9rZUFjdGl2YXRpb24gPSBFbGVtZW50SW5wdXQgfCBGb2N1c1N0YXRlIHwgT2JzZXJ2YWJsZTxFbGVtZW50SW5wdXQgfCBGb2N1c1N0YXRlIHwgYm9vbGVhbj5cblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiBcInJvb3RcIiB9KVxuZXhwb3J0IGNsYXNzIEtleXN0cm9rZVNlcnZpY2Uge1xuICAgIHJlYWRvbmx5ICNkb2N1bWVudCA9IGluamVjdChET0NVTUVOVClcbiAgICByZWFkb25seSAjem9uZSA9IGluamVjdChOZ1pvbmUpXG5cbiAgICByZWFkb25seSAja2V5RXZlbnQgPSB0aGlzLiN6b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+XG4gICAgICAgIG1lcmdlKFxuICAgICAgICAgICAgZnJvbUV2ZW50PEtleWJvYXJkRXZlbnQ+KHRoaXMuI2RvY3VtZW50LCBcImtleWRvd25cIiwgeyBjYXB0dXJlOiB0cnVlLCBwYXNzaXZlOiBmYWxzZSB9KSxcbiAgICAgICAgICAgIGZyb21FdmVudDxLZXlib2FyZEV2ZW50Pih0aGlzLiNkb2N1bWVudCwgXCJrZXl1cFwiLCB7IGNhcHR1cmU6IHRydWUsIHBhc3NpdmU6IGZhbHNlIH0pXG4gICAgICAgICkucGlwZShcbiAgICAgICAgICAgIGZpbHRlcihldmVudCA9PiBldmVudC5kZWZhdWx0UHJldmVudGVkID09PSBmYWxzZSksXG4gICAgICAgICAgICBzaGFyZSgpXG4gICAgICAgIClcbiAgICApXG5cbiAgICByZWFkb25seSAjZm9jdXNFdmVudCA9IHRoaXMuI3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT5cbiAgICAgICAgZnJvbUV2ZW50KHRoaXMuI2RvY3VtZW50LCBcImZvY3VzXCIsIHsgY2FwdHVyZTogdHJ1ZSwgcGFzc2l2ZTogdHJ1ZSB9KS5waXBlKFxuICAgICAgICAgICAgc3RhcnRXaXRoKG51bGwpLFxuICAgICAgICAgICAgbWFwKCgpID0+IHRoaXMuI2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQpLFxuICAgICAgICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICAgICAgKVxuICAgIClcblxuICAgIHdhdGNoKGFjdGl2YXRpb246IEtleXN0cm9rZUFjdGl2YXRpb24sIC4uLmtleXN0cm9rZXM6IEtleXN0cm9rZVtdKTogT2JzZXJ2YWJsZTxLZXlzdHJva2VFdmVudD4ge1xuICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKGRzdDogU3Vic2NyaWJlcjxLZXlzdHJva2VFdmVudD4pID0+XG4gICAgICAgICAgICB0aGlzLiN0cmlnZ2VyKGFjdGl2YXRpb24pXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaE1hcChlbmFibGVkID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbmFibGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuI2tleUV2ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFTVBUWVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgbWFwKGV2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFtdXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlkRnJvbUV2ZW50ID0ga2V5c3Ryb2tlSWQoZXZlbnRUb0tleXN0cm9rZShldmVudCkpXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYXRjaGVzID0ga2V5c3Ryb2tlc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoa3MgPT4ga2V5c3Ryb2tlSWQoa3MpID09PSBpZEZyb21FdmVudClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWFwKGtzID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yaWdpbmFsOiBldmVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleXN0cm9rZToga3NcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtYXRjaGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtYXRjaGVzXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXIobWF0Y2hlcyA9PiBtYXRjaGVzLmxlbmd0aCA+IDApLFxuICAgICAgICAgICAgICAgICAgICBzd2l0Y2hNYXAobWF0Y2hlcyA9PiBvZiguLi5tYXRjaGVzKSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShkc3QpXG4gICAgICAgIClcbiAgICB9XG5cbiAgICAjdHJpZ2dlcihhY3RpdmF0aW9uOiBLZXlzdHJva2VBY3RpdmF0aW9uKTogT2JzZXJ2YWJsZTxib29sZWFuIHwgSFRNTEVsZW1lbnQ+IHtcbiAgICAgICAgaWYgKGlzRWxlbWVudElucHV0KGFjdGl2YXRpb24pKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy4jZm9jdXNBY3RpdmF0aW9uKGNvZXJjZUVsZW1lbnQoYWN0aXZhdGlvbikpXG4gICAgICAgIH0gZWxzZSBpZiAoYWN0aXZhdGlvbiBpbnN0YW5jZW9mIEZvY3VzU3RhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiBhY3RpdmF0aW9uLm9yaWdpbiQucGlwZShtYXAob3JpZ2luID0+IG9yaWdpbiAhPSBudWxsKSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBmcm9tKGFjdGl2YXRpb24pLnBpcGUoXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKHZhbHVlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzRWxlbWVudElucHV0KHZhbHVlKSB8fCB2YWx1ZSBpbnN0YW5jZW9mIEZvY3VzU3RhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLiN0cmlnZ2VyKHZhbHVlKVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKHZhbHVlKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgfVxuICAgIH1cblxuICAgICNmb2N1c0FjdGl2YXRpb24oZWxlbWVudDogSFRNTEVsZW1lbnQpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuI2ZvY3VzRXZlbnQucGlwZShtYXAoZm9jdXNlZCA9PiBmb2N1c2VkID09PSBlbGVtZW50IHx8IGVsZW1lbnQuY29udGFpbnMoZm9jdXNlZCkpKVxuICAgIH1cbn1cblxuZnVuY3Rpb24ga2V5c3Ryb2tlSWQoa3M6IEtleXN0cm9rZSk6IHN0cmluZyB7XG4gICAgbGV0IHJlcyA9IGtzLmtleVxuICAgIGlmIChrcy5zaGlmdCkge1xuICAgICAgICByZXMgKz0gXCIrc2hpZnRcIlxuICAgIH1cbiAgICBpZiAoa3MuY3RybCkge1xuICAgICAgICByZXMgKz0gXCIrY3RybFwiXG4gICAgfVxuICAgIGlmIChrcy5hbHQpIHtcbiAgICAgICAgcmVzICs9IFwiK2FsdFwiXG4gICAgfVxuICAgIHJlcyArPSBgJHtrcy5zdGF0ZX1gXG4gICAgcmV0dXJuIHJlc1xufVxuXG5mdW5jdGlvbiBldmVudFRvS2V5c3Ryb2tlKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogS2V5c3Ryb2tlIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBrZXk6IGV2ZW50LmtleSxcbiAgICAgICAgc2hpZnQ6IGV2ZW50LnNoaWZ0S2V5LFxuICAgICAgICBjdHJsOiBldmVudC5jdHJsS2V5LFxuICAgICAgICBhbHQ6IGV2ZW50LmFsdEtleSxcbiAgICAgICAgc3RhdGU6IGV2ZW50LnR5cGUgPT09IFwia2V5dXBcIiA/IFwidXBcIiA6IFwiZG93blwiXG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { computed, Directive, effect, inject } from "@angular/core";
|
|
2
|
+
import { coerceBoolAttr } from "@ngutil/common";
|
|
3
|
+
import { UiState } from "./ui-state";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export const NOTSET = Symbol("NOTSET");
|
|
6
|
+
export class AbstractUiState {
|
|
7
|
+
constructor(name) {
|
|
8
|
+
this.name = name;
|
|
9
|
+
this.state = inject(UiState);
|
|
10
|
+
this.yes = computed(() => {
|
|
11
|
+
const when = this.when();
|
|
12
|
+
if (when !== NOTSET) {
|
|
13
|
+
return this.state.is(this.name, `${when},self`);
|
|
14
|
+
}
|
|
15
|
+
return this.state.is(this.name);
|
|
16
|
+
});
|
|
17
|
+
this.no = computed(() => !this.yes());
|
|
18
|
+
effect(() => {
|
|
19
|
+
const input = this.input();
|
|
20
|
+
if (input !== NOTSET) {
|
|
21
|
+
this.state.set(name, !!coerceBoolAttr(input));
|
|
22
|
+
}
|
|
23
|
+
this.yes();
|
|
24
|
+
}, { allowSignalWrites: true });
|
|
25
|
+
}
|
|
26
|
+
set(value, source) {
|
|
27
|
+
this.state.set(this.name, value, source);
|
|
28
|
+
}
|
|
29
|
+
intercept(source) {
|
|
30
|
+
return this.state.intercept(this.name, source);
|
|
31
|
+
}
|
|
32
|
+
wrap(observable, source) {
|
|
33
|
+
return this.state.wrap(observable, this.name, source);
|
|
34
|
+
}
|
|
35
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: AbstractUiState, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
|
|
36
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.6", type: AbstractUiState, ngImport: i0 }); }
|
|
37
|
+
}
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: AbstractUiState, decorators: [{
|
|
39
|
+
type: Directive
|
|
40
|
+
}], ctorParameters: () => [{ type: undefined }] });
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hcmlhL3NyYy91aS1zdGF0ZS9hYnN0cmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFBO0FBSTNFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUUvQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sWUFBWSxDQUFBOztBQUVwQyxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQVEsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0FBRzNDLE1BQU0sT0FBZ0IsZUFBZTtJQWVqQyxZQUFxQixJQUFPO1FBQVAsU0FBSSxHQUFKLElBQUksQ0FBRztRQWRuQixVQUFLLEdBQWUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBS25DLFFBQUcsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3pCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQTtZQUN4QixJQUFJLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FBQztnQkFDbEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxPQUFPLENBQUMsQ0FBQTtZQUNuRCxDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDbkMsQ0FBQyxDQUFDLENBQUE7UUFDTyxPQUFFLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUE7UUFHckMsTUFBTSxDQUNGLEdBQUcsRUFBRTtZQUNELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQTtZQUMxQixJQUFJLEtBQUssS0FBSyxNQUFNLEVBQUUsQ0FBQztnQkFDbkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtZQUNqRCxDQUFDO1lBQ0QsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFBO1FBQ2QsQ0FBQyxFQUNELEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQzlCLENBQUE7SUFDTCxDQUFDO0lBRUQsR0FBRyxDQUFDLEtBQWMsRUFBRSxNQUFjO1FBQzlCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBQzVDLENBQUM7SUFFRCxTQUFTLENBQUMsTUFBYztRQUNwQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUE7SUFDbEQsQ0FBQztJQUVELElBQUksQ0FBSSxVQUF5QixFQUFFLE1BQWM7UUFDN0MsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQTtJQUN6RCxDQUFDOzhHQXRDaUIsZUFBZTtrR0FBZixlQUFlOzsyRkFBZixlQUFlO2tCQURwQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcHV0ZWQsIERpcmVjdGl2ZSwgZWZmZWN0LCBpbmplY3QsIFNpZ25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCJcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCJcblxuaW1wb3J0IHsgY29lcmNlQm9vbEF0dHIgfSBmcm9tIFwiQG5ndXRpbC9jb21tb25cIlxuXG5pbXBvcnQgeyBVaVN0YXRlIH0gZnJvbSBcIi4vdWktc3RhdGVcIlxuXG5leHBvcnQgY29uc3QgTk9UU0VUOiBhbnkgPSBTeW1ib2woXCJOT1RTRVRcIilcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RVaVN0YXRlPE4gZXh0ZW5kcyBzdHJpbmc+IHtcbiAgICByZWFkb25seSBzdGF0ZTogVWlTdGF0ZTxOPiA9IGluamVjdChVaVN0YXRlKVxuXG4gICAgYWJzdHJhY3QgcmVhZG9ubHkgaW5wdXQ6IFNpZ25hbDxib29sZWFuPlxuICAgIGFic3RyYWN0IHJlYWRvbmx5IHdoZW46IFNpZ25hbDxzdHJpbmc+XG5cbiAgICByZWFkb25seSB5ZXMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHdoZW4gPSB0aGlzLndoZW4oKVxuICAgICAgICBpZiAod2hlbiAhPT0gTk9UU0VUKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZS5pcyh0aGlzLm5hbWUsIGAke3doZW59LHNlbGZgKVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnN0YXRlLmlzKHRoaXMubmFtZSlcbiAgICB9KVxuICAgIHJlYWRvbmx5IG5vID0gY29tcHV0ZWQoKCkgPT4gIXRoaXMueWVzKCkpXG5cbiAgICBjb25zdHJ1Y3RvcihyZWFkb25seSBuYW1lOiBOKSB7XG4gICAgICAgIGVmZmVjdChcbiAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBpbnB1dCA9IHRoaXMuaW5wdXQoKVxuICAgICAgICAgICAgICAgIGlmIChpbnB1dCAhPT0gTk9UU0VUKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUuc2V0KG5hbWUsICEhY29lcmNlQm9vbEF0dHIoaW5wdXQpKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnllcygpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9XG4gICAgICAgIClcbiAgICB9XG5cbiAgICBzZXQodmFsdWU6IGJvb2xlYW4sIHNvdXJjZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc3RhdGUuc2V0KHRoaXMubmFtZSwgdmFsdWUsIHNvdXJjZSlcbiAgICB9XG5cbiAgICBpbnRlcmNlcHQoc291cmNlOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGUuaW50ZXJjZXB0KHRoaXMubmFtZSwgc291cmNlKVxuICAgIH1cblxuICAgIHdyYXA8VD4ob2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxUPiwgc291cmNlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGUud3JhcChvYnNlcnZhYmxlLCB0aGlzLm5hbWUsIHNvdXJjZSlcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Directive, input } from "@angular/core";
|
|
2
|
+
import { AbstractUiState, NOTSET } from "./abstract";
|
|
3
|
+
import { UiState } from "./ui-state";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class BusyDirective extends AbstractUiState {
|
|
6
|
+
constructor() {
|
|
7
|
+
super("busy");
|
|
8
|
+
this.input = input(NOTSET, { alias: "nuBusy" });
|
|
9
|
+
this.when = input(NOTSET, { alias: "nuBusyWhen" });
|
|
10
|
+
}
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: BusyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
12
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.6", type: BusyDirective, isStandalone: true, selector: "[nuBusy], [nuBusyWhen]", inputs: { input: { classPropertyName: "input", publicName: "nuBusy", isSignal: true, isRequired: false, transformFunction: null }, when: { classPropertyName: "when", publicName: "nuBusyWhen", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.aria-busy": "yes() ? 'true' : 'false'", "attr.inert": "yes() ? '' : null" } }, providers: [UiState], exportAs: ["busy"], usesInheritance: true, ngImport: i0 }); }
|
|
13
|
+
}
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: BusyDirective, decorators: [{
|
|
15
|
+
type: Directive,
|
|
16
|
+
args: [{
|
|
17
|
+
selector: "[nuBusy], [nuBusyWhen]",
|
|
18
|
+
exportAs: "busy",
|
|
19
|
+
standalone: true,
|
|
20
|
+
host: {
|
|
21
|
+
"[attr.aria-busy]": "yes() ? 'true' : 'false'",
|
|
22
|
+
"[attr.inert]": "yes() ? '' : null"
|
|
23
|
+
},
|
|
24
|
+
providers: [UiState]
|
|
25
|
+
}]
|
|
26
|
+
}], ctorParameters: () => [] });
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVzeS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hcmlhL3NyYy91aS1zdGF0ZS9idXN5LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUVoRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUNwRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sWUFBWSxDQUFBOztBQVlwQyxNQUFNLE9BQU8sYUFBYyxTQUFRLGVBQXVCO0lBSXREO1FBQ0ksS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBSlIsVUFBSyxHQUFHLEtBQUssQ0FBQyxNQUFpQixFQUFFLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUE7UUFDckQsU0FBSSxHQUFHLEtBQUssQ0FBQyxNQUFnQixFQUFFLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUE7SUFJaEUsQ0FBQzs4R0FOUSxhQUFhO2tHQUFiLGFBQWEsZ2JBRlgsQ0FBQyxPQUFPLENBQUM7OzJGQUVYLGFBQWE7a0JBVnpCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsUUFBUSxFQUFFLE1BQU07b0JBQ2hCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUU7d0JBQ0Ysa0JBQWtCLEVBQUUsMEJBQTBCO3dCQUM5QyxjQUFjLEVBQUUsbUJBQW1CO3FCQUN0QztvQkFDRCxTQUFTLEVBQUUsQ0FBQyxPQUFPLENBQUM7aUJBQ3ZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBpbnB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCJcblxuaW1wb3J0IHsgQWJzdHJhY3RVaVN0YXRlLCBOT1RTRVQgfSBmcm9tIFwiLi9hYnN0cmFjdFwiXG5pbXBvcnQgeyBVaVN0YXRlIH0gZnJvbSBcIi4vdWktc3RhdGVcIlxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogXCJbbnVCdXN5XSwgW251QnVzeVdoZW5dXCIsXG4gICAgZXhwb3J0QXM6IFwiYnVzeVwiLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaG9zdDoge1xuICAgICAgICBcIlthdHRyLmFyaWEtYnVzeV1cIjogXCJ5ZXMoKSA/ICd0cnVlJyA6ICdmYWxzZSdcIixcbiAgICAgICAgXCJbYXR0ci5pbmVydF1cIjogXCJ5ZXMoKSA/ICcnIDogbnVsbFwiXG4gICAgfSxcbiAgICBwcm92aWRlcnM6IFtVaVN0YXRlXVxufSlcbmV4cG9ydCBjbGFzcyBCdXN5RGlyZWN0aXZlIGV4dGVuZHMgQWJzdHJhY3RVaVN0YXRlPFwiYnVzeVwiPiB7XG4gICAgcmVhZG9ubHkgaW5wdXQgPSBpbnB1dChOT1RTRVQgYXMgYm9vbGVhbiwgeyBhbGlhczogXCJudUJ1c3lcIiB9KVxuICAgIHJlYWRvbmx5IHdoZW4gPSBpbnB1dChOT1RTRVQgYXMgc3RyaW5nLCB7IGFsaWFzOiBcIm51QnVzeVdoZW5cIiB9KVxuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKFwiYnVzeVwiKVxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Directive, input } from "@angular/core";
|
|
2
|
+
import { AbstractUiState, NOTSET } from "./abstract";
|
|
3
|
+
import { UiState } from "./ui-state";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class DisabledDirective extends AbstractUiState {
|
|
6
|
+
constructor() {
|
|
7
|
+
super("disabled");
|
|
8
|
+
this.input = input(NOTSET, { alias: "nuDisabled" });
|
|
9
|
+
this.when = input(NOTSET, { alias: "nuDisabledWhen" });
|
|
10
|
+
}
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: DisabledDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
12
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.6", type: DisabledDirective, isStandalone: true, selector: "[nuDisabled], [nuDisabledWhen]", inputs: { input: { classPropertyName: "input", publicName: "nuDisabled", isSignal: true, isRequired: false, transformFunction: null }, when: { classPropertyName: "when", publicName: "nuDisabledWhen", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.aria-disabled": "yes() ? 'true' : 'false'", "attr.disabled": "yes() ? '' : null", "attr.inert": "yes() ? '' : null" } }, providers: [UiState], exportAs: ["disabled"], usesInheritance: true, ngImport: i0 }); }
|
|
13
|
+
}
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: DisabledDirective, decorators: [{
|
|
15
|
+
type: Directive,
|
|
16
|
+
args: [{
|
|
17
|
+
selector: "[nuDisabled], [nuDisabledWhen]",
|
|
18
|
+
exportAs: "disabled",
|
|
19
|
+
standalone: true,
|
|
20
|
+
host: {
|
|
21
|
+
"[attr.aria-disabled]": "yes() ? 'true' : 'false'",
|
|
22
|
+
"[attr.disabled]": "yes() ? '' : null",
|
|
23
|
+
"[attr.inert]": "yes() ? '' : null"
|
|
24
|
+
},
|
|
25
|
+
providers: [UiState]
|
|
26
|
+
}]
|
|
27
|
+
}], ctorParameters: () => [] });
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzYWJsZWQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYXJpYS9zcmMvdWktc3RhdGUvZGlzYWJsZWQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRWhELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ3BELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxZQUFZLENBQUE7O0FBYXBDLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxlQUEyQjtJQUk5RDtRQUNJLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUpaLFVBQUssR0FBRyxLQUFLLENBQUMsTUFBaUIsRUFBRSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFBO1FBQ3pELFNBQUksR0FBRyxLQUFLLENBQUMsTUFBZ0IsRUFBRSxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUE7SUFJcEUsQ0FBQzs4R0FOUSxpQkFBaUI7a0dBQWpCLGlCQUFpQiwwZUFGZixDQUFDLE9BQU8sQ0FBQzs7MkZBRVgsaUJBQWlCO2tCQVg3QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxnQ0FBZ0M7b0JBQzFDLFFBQVEsRUFBRSxVQUFVO29CQUNwQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFO3dCQUNGLHNCQUFzQixFQUFFLDBCQUEwQjt3QkFDbEQsaUJBQWlCLEVBQUUsbUJBQW1CO3dCQUN0QyxjQUFjLEVBQUUsbUJBQW1CO3FCQUN0QztvQkFDRCxTQUFTLEVBQUUsQ0FBQyxPQUFPLENBQUM7aUJBQ3ZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBpbnB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCJcblxuaW1wb3J0IHsgQWJzdHJhY3RVaVN0YXRlLCBOT1RTRVQgfSBmcm9tIFwiLi9hYnN0cmFjdFwiXG5pbXBvcnQgeyBVaVN0YXRlIH0gZnJvbSBcIi4vdWktc3RhdGVcIlxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogXCJbbnVEaXNhYmxlZF0sIFtudURpc2FibGVkV2hlbl1cIixcbiAgICBleHBvcnRBczogXCJkaXNhYmxlZFwiLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaG9zdDoge1xuICAgICAgICBcIlthdHRyLmFyaWEtZGlzYWJsZWRdXCI6IFwieWVzKCkgPyAndHJ1ZScgOiAnZmFsc2UnXCIsXG4gICAgICAgIFwiW2F0dHIuZGlzYWJsZWRdXCI6IFwieWVzKCkgPyAnJyA6IG51bGxcIixcbiAgICAgICAgXCJbYXR0ci5pbmVydF1cIjogXCJ5ZXMoKSA/ICcnIDogbnVsbFwiXG4gICAgfSxcbiAgICBwcm92aWRlcnM6IFtVaVN0YXRlXVxufSlcbmV4cG9ydCBjbGFzcyBEaXNhYmxlZERpcmVjdGl2ZSBleHRlbmRzIEFic3RyYWN0VWlTdGF0ZTxcImRpc2FibGVkXCI+IHtcbiAgICByZWFkb25seSBpbnB1dCA9IGlucHV0KE5PVFNFVCBhcyBib29sZWFuLCB7IGFsaWFzOiBcIm51RGlzYWJsZWRcIiB9KVxuICAgIHJlYWRvbmx5IHdoZW4gPSBpbnB1dChOT1RTRVQgYXMgc3RyaW5nLCB7IGFsaWFzOiBcIm51RGlzYWJsZWRXaGVuXCIgfSlcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcihcImRpc2FibGVkXCIpXG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { NgModule } from "@angular/core";
|
|
2
|
+
import { BusyDirective } from "./busy.directive";
|
|
3
|
+
import { DisabledDirective } from "./disabled.directive";
|
|
4
|
+
import { ReadonlyDirective } from "./readonly.directive";
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export * from "./abstract";
|
|
7
|
+
export * from "./busy.directive";
|
|
8
|
+
export * from "./disabled.directive";
|
|
9
|
+
export * from "./progress-state";
|
|
10
|
+
export * from "./readonly.directive";
|
|
11
|
+
export * from "./ui-state";
|
|
12
|
+
const entries = [BusyDirective, DisabledDirective, ReadonlyDirective];
|
|
13
|
+
export class UiStateModule {
|
|
14
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: UiStateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
15
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: UiStateModule, imports: [BusyDirective, DisabledDirective, ReadonlyDirective], exports: [BusyDirective, DisabledDirective, ReadonlyDirective] }); }
|
|
16
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: UiStateModule }); }
|
|
17
|
+
}
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: UiStateModule, decorators: [{
|
|
19
|
+
type: NgModule,
|
|
20
|
+
args: [{
|
|
21
|
+
imports: entries,
|
|
22
|
+
exports: entries
|
|
23
|
+
}]
|
|
24
|
+
}] });
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hcmlhL3NyYy91aS1zdGF0ZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRXhDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUNoRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUN4RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTs7QUFFeEQsY0FBYyxZQUFZLENBQUE7QUFDMUIsY0FBYyxrQkFBa0IsQ0FBQTtBQUNoQyxjQUFjLHNCQUFzQixDQUFBO0FBQ3BDLGNBQWMsa0JBQWtCLENBQUE7QUFDaEMsY0FBYyxzQkFBc0IsQ0FBQTtBQUNwQyxjQUFjLFlBQVksQ0FBQTtBQUUxQixNQUFNLE9BQU8sR0FBRyxDQUFDLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsQ0FBQyxDQUFBO0FBTXJFLE1BQU0sT0FBTyxhQUFhOzhHQUFiLGFBQWE7K0dBQWIsYUFBYSxZQU5ULGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsYUFBbkQsYUFBYSxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQjsrR0FNdkQsYUFBYTs7MkZBQWIsYUFBYTtrQkFKekIsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsT0FBTztvQkFDaEIsT0FBTyxFQUFFLE9BQU87aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiXG5cbmltcG9ydCB7IEJ1c3lEaXJlY3RpdmUgfSBmcm9tIFwiLi9idXN5LmRpcmVjdGl2ZVwiXG5pbXBvcnQgeyBEaXNhYmxlZERpcmVjdGl2ZSB9IGZyb20gXCIuL2Rpc2FibGVkLmRpcmVjdGl2ZVwiXG5pbXBvcnQgeyBSZWFkb25seURpcmVjdGl2ZSB9IGZyb20gXCIuL3JlYWRvbmx5LmRpcmVjdGl2ZVwiXG5cbmV4cG9ydCAqIGZyb20gXCIuL2Fic3RyYWN0XCJcbmV4cG9ydCAqIGZyb20gXCIuL2J1c3kuZGlyZWN0aXZlXCJcbmV4cG9ydCAqIGZyb20gXCIuL2Rpc2FibGVkLmRpcmVjdGl2ZVwiXG5leHBvcnQgKiBmcm9tIFwiLi9wcm9ncmVzcy1zdGF0ZVwiXG5leHBvcnQgKiBmcm9tIFwiLi9yZWFkb25seS5kaXJlY3RpdmVcIlxuZXhwb3J0ICogZnJvbSBcIi4vdWktc3RhdGVcIlxuXG5jb25zdCBlbnRyaWVzID0gW0J1c3lEaXJlY3RpdmUsIERpc2FibGVkRGlyZWN0aXZlLCBSZWFkb25seURpcmVjdGl2ZV1cblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBlbnRyaWVzLFxuICAgIGV4cG9ydHM6IGVudHJpZXNcbn0pXG5leHBvcnQgY2xhc3MgVWlTdGF0ZU1vZHVsZSB7fVxuIl19
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { Directive } from "@angular/core";
|
|
2
|
+
import { animationFrames, map, Observable, of, scan, shareReplay, startWith, Subject, switchMap, takeWhile, tap } from "rxjs";
|
|
3
|
+
import { clamp } from "lodash";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
const SEGMENT_REGISTER = { type: "fix", percent: 0 };
|
|
6
|
+
const SEGMENT_COMPLETE = { type: "fix", percent: 1 };
|
|
7
|
+
export class ProgressState {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.#segments = {};
|
|
10
|
+
this.#input = new Subject();
|
|
11
|
+
this.#state = this.#input.pipe(startWith(null), scan((state, input) => {
|
|
12
|
+
if (Object.keys(state).length === 0) {
|
|
13
|
+
state = this.#initialState();
|
|
14
|
+
}
|
|
15
|
+
if (input == null) {
|
|
16
|
+
return state;
|
|
17
|
+
}
|
|
18
|
+
let current = state[input.name] ?? { ratio: 0, share: 0, done: false };
|
|
19
|
+
current = { ...current, ...input };
|
|
20
|
+
if (input.progress.type === "lax") {
|
|
21
|
+
delete current.laxBegin;
|
|
22
|
+
delete current.laxPercent;
|
|
23
|
+
}
|
|
24
|
+
return { ...state, [input.name]: { ...current, ...input } };
|
|
25
|
+
}, {}), switchMap(state => {
|
|
26
|
+
const laxCount = Object.values(state).filter(({ progress }) => progress.type === "lax").length;
|
|
27
|
+
if (laxCount > 0) {
|
|
28
|
+
return animationFrames().pipe(map(({ timestamp }) => {
|
|
29
|
+
for (const entry of Object.values(state)) {
|
|
30
|
+
if (entry.progress.type === "lax") {
|
|
31
|
+
if (entry.laxBegin == null) {
|
|
32
|
+
entry.laxBegin = timestamp;
|
|
33
|
+
}
|
|
34
|
+
let percent = (timestamp - entry.laxBegin) / entry.progress.predictedTime;
|
|
35
|
+
if (percent >= 0.8) {
|
|
36
|
+
const final = (timestamp - entry.laxBegin) / (entry.progress.predictedTime * 50);
|
|
37
|
+
percent = 0.8 + Math.log1p(final);
|
|
38
|
+
}
|
|
39
|
+
entry.laxPercent = clamp(percent, 0, 0.99);
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
delete entry.laxPercent;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return state;
|
|
46
|
+
}), takeWhile(() => {
|
|
47
|
+
const doneCount = Object.values(state).filter(item => item.progress.type === "lax" && item.laxPercent >= 1).length;
|
|
48
|
+
return doneCount !== laxCount;
|
|
49
|
+
}, true));
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
return of(state);
|
|
53
|
+
}
|
|
54
|
+
}), tap(state => {
|
|
55
|
+
const slist = Object.values(state);
|
|
56
|
+
const min = slist.reduce((min, current) => Math.min(min, current.distribution || 0), Infinity) || 1;
|
|
57
|
+
const totalDistribution = slist.reduce((total, current) => total + (current.distribution || min), 0);
|
|
58
|
+
for (const segment of slist) {
|
|
59
|
+
if (segment.distribution == null) {
|
|
60
|
+
segment.distribution = min;
|
|
61
|
+
}
|
|
62
|
+
segment.ratio = segment.distribution / totalDistribution + 0.0001;
|
|
63
|
+
if (segment.progress.type === "fix") {
|
|
64
|
+
const percent = clamp(segment.progress.percent, 0, 1);
|
|
65
|
+
segment.share = percent * segment.ratio;
|
|
66
|
+
segment.done = percent >= 1;
|
|
67
|
+
}
|
|
68
|
+
else if (segment.progress.type === "lax" && segment.laxPercent != null) {
|
|
69
|
+
const percent = segment.laxPercent;
|
|
70
|
+
segment.share = percent * segment.ratio;
|
|
71
|
+
segment.done = percent >= 1;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}), shareReplay({ bufferSize: 1, refCount: true }));
|
|
75
|
+
this.value$ = this.#state;
|
|
76
|
+
this.percent$ = this.value$.pipe(map(value => clamp(Object.values(value).reduce((a, b) => a + b.share, 0), 0, 1)), shareReplay({ bufferSize: 1, refCount: true }));
|
|
77
|
+
}
|
|
78
|
+
#segments;
|
|
79
|
+
#input;
|
|
80
|
+
#state;
|
|
81
|
+
segment(name, distribution) {
|
|
82
|
+
const segment = this.#segments[name] ?? (this.#segments[name] = new ProgressSegmentRef(this.#input, name, distribution));
|
|
83
|
+
segment.next(SEGMENT_REGISTER);
|
|
84
|
+
return segment;
|
|
85
|
+
}
|
|
86
|
+
connect(state, name, distribution) {
|
|
87
|
+
return new Observable(() => {
|
|
88
|
+
const segment = this.segment(name, distribution);
|
|
89
|
+
return state.percent$.subscribe(percent => {
|
|
90
|
+
segment.next({ type: "fix", percent });
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
#initialState() {
|
|
95
|
+
return Object.values(this.#segments).reduce((res, segment) => {
|
|
96
|
+
if (segment.value) {
|
|
97
|
+
res[segment.name] = {
|
|
98
|
+
name: segment.name,
|
|
99
|
+
distribution: segment.distribution,
|
|
100
|
+
progress: segment.value,
|
|
101
|
+
ratio: 0,
|
|
102
|
+
share: 0,
|
|
103
|
+
done: false
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
return res;
|
|
107
|
+
}, {});
|
|
108
|
+
}
|
|
109
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: ProgressState, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
110
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.6", type: ProgressState, ngImport: i0 }); }
|
|
111
|
+
}
|
|
112
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: ProgressState, decorators: [{
|
|
113
|
+
type: Directive
|
|
114
|
+
}] });
|
|
115
|
+
export class ProgressSegmentRef {
|
|
116
|
+
#subject;
|
|
117
|
+
set distribution(value) {
|
|
118
|
+
if (this.#distribution !== value) {
|
|
119
|
+
this.#distribution = value;
|
|
120
|
+
if (this.#value != null) {
|
|
121
|
+
this.#next(this.#value);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
get distribution() {
|
|
126
|
+
return this.#distribution;
|
|
127
|
+
}
|
|
128
|
+
#distribution;
|
|
129
|
+
get value() {
|
|
130
|
+
return this.#value;
|
|
131
|
+
}
|
|
132
|
+
#value;
|
|
133
|
+
constructor(subject, name, distribution) {
|
|
134
|
+
this.name = name;
|
|
135
|
+
this.#subject = subject;
|
|
136
|
+
this.#distribution = distribution;
|
|
137
|
+
}
|
|
138
|
+
next(progress) {
|
|
139
|
+
return this.#next(progress);
|
|
140
|
+
}
|
|
141
|
+
complete() {
|
|
142
|
+
return this.#next(SEGMENT_COMPLETE);
|
|
143
|
+
}
|
|
144
|
+
#next(progress) {
|
|
145
|
+
this.#value = progress;
|
|
146
|
+
this.#subject.next({ name: this.name, distribution: this.distribution, progress });
|
|
147
|
+
return this;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3Mtc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hcmlhL3NyYy91aS1zdGF0ZS9wcm9ncmVzcy1zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRXpDLE9BQU8sRUFDSCxlQUFlLEVBQ2YsR0FBRyxFQUNILFVBQVUsRUFDVixFQUFFLEVBQ0YsSUFBSSxFQUNKLFdBQVcsRUFDWCxTQUFTLEVBQ1QsT0FBTyxFQUNQLFNBQVMsRUFDVCxTQUFTLEVBQ1QsR0FBRyxFQUNOLE1BQU0sTUFBTSxDQUFBO0FBRWIsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFFBQVEsQ0FBQTs7QUF1QzlCLE1BQU0sZ0JBQWdCLEdBQWEsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQTtBQUM5RCxNQUFNLGdCQUFnQixHQUFhLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUE7QUFHOUQsTUFBTSxPQUFPLGFBQWE7SUFEMUI7UUFFYSxjQUFTLEdBQTBDLEVBQUUsQ0FBQTtRQUVyRCxXQUFNLEdBQUcsSUFBSSxPQUFPLEVBQXdCLENBQUE7UUFFNUMsV0FBTSxHQUFrQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDN0QsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUNmLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNsQixJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNsQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFBO1lBQ2hDLENBQUM7WUFFRCxJQUFJLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDaEIsT0FBTyxLQUFL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TyxJQUFJLENBQUE7SUFDZixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiXG5cbmltcG9ydCB7XG4gICAgYW5pbWF0aW9uRnJhbWVzLFxuICAgIG1hcCxcbiAgICBPYnNlcnZhYmxlLFxuICAgIG9mLFxuICAgIHNjYW4sXG4gICAgc2hhcmVSZXBsYXksXG4gICAgc3RhcnRXaXRoLFxuICAgIFN1YmplY3QsXG4gICAgc3dpdGNoTWFwLFxuICAgIHRha2VXaGlsZSxcbiAgICB0YXBcbn0gZnJvbSBcInJ4anNcIlxuXG5pbXBvcnQgeyBjbGFtcCB9IGZyb20gXCJsb2Rhc2hcIlxuaW1wb3J0IHsgTXV0YWJsZSB9IGZyb20gXCJ1dGlsaXR5LXR5cGVzXCJcblxuaW1wb3J0IHsgRGVlcFJlYWRvbmx5IH0gZnJvbSBcIkBuZ3V0aWwvY29tbW9uXCJcblxuZXhwb3J0IGludGVyZmFjZSBQcm9ncmVzc0NvbW1vbiB7XG4gICAgcmVhZG9ubHkgbWVzc2FnZT86IHN0cmluZ1xuICAgIHJlYWRvbmx5IFtvdGhlcjogc3RyaW5nXTogdW5rbm93blxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb2dyZXNzTGF4IHtcbiAgICByZWFkb25seSB0eXBlOiBcImxheFwiXG4gICAgcmVhZG9ubHkgcHJlZGljdGVkVGltZTogbnVtYmVyXG4gICAgLy8gcmVhZG9ubHkgdXBkYXRlSW50ZXJ2YWw6IG51bWJlclxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb2dyZXNzRml4IHtcbiAgICByZWFkb25seSB0eXBlOiBcImZpeFwiXG4gICAgcmVhZG9ubHkgcGVyY2VudDogbnVtYmVyXG59XG5cbmV4cG9ydCB0eXBlIFByb2dyZXNzID0gKFByb2dyZXNzTGF4IHwgUHJvZ3Jlc3NGaXgpICYgUHJvZ3Jlc3NDb21tb25cblxuZXhwb3J0IGludGVyZmFjZSBQcm9ncmVzc1NlZ21lbnRJbnB1dCB7XG4gICAgcmVhZG9ubHkgbmFtZTogc3RyaW5nXG4gICAgcmVhZG9ubHkgZGlzdHJpYnV0aW9uPzogbnVtYmVyXG4gICAgcmVhZG9ubHkgcHJvZ3Jlc3M6IERlZXBSZWFkb25seTxQcm9ncmVzcz5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9ncmVzc1NlZ2VtZW50IGV4dGVuZHMgUHJvZ3Jlc3NTZWdtZW50SW5wdXQge1xuICAgIHJhdGlvOiBudW1iZXJcbiAgICBzaGFyZTogbnVtYmVyXG4gICAgZG9uZTogYm9vbGVhblxuICAgIGxheFBlcmNlbnQ/OiBudW1iZXJcbiAgICBsYXhCZWdpbj86IG51bWJlclxufVxuXG5leHBvcnQgdHlwZSBQcm9ncmVzc1NlZ2VtZW50cyA9IHsgW2tleTogc3RyaW5nXTogUHJvZ3Jlc3NTZWdlbWVudCB9XG5cbmNvbnN0IFNFR01FTlRfUkVHSVNURVI6IFByb2dyZXNzID0geyB0eXBlOiBcImZpeFwiLCBwZXJjZW50OiAwIH1cbmNvbnN0IFNFR01FTlRfQ09NUExFVEU6IFByb2dyZXNzID0geyB0eXBlOiBcImZpeFwiLCBwZXJjZW50OiAxIH1cblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgUHJvZ3Jlc3NTdGF0ZSB7XG4gICAgcmVhZG9ubHkgI3NlZ21lbnRzOiB7IFtrZXk6IHN0cmluZ106IFByb2dyZXNzU2VnbWVudFJlZiB9ID0ge31cblxuICAgIHJlYWRvbmx5ICNpbnB1dCA9IG5ldyBTdWJqZWN0PFByb2dyZXNzU2VnbWVudElucHV0PigpXG5cbiAgICByZWFkb25seSAjc3RhdGU6IE9ic2VydmFibGU8UHJvZ3Jlc3NTZWdlbWVudHM+ID0gdGhpcy4jaW5wdXQucGlwZShcbiAgICAgICAgc3RhcnRXaXRoKG51bGwpLFxuICAgICAgICBzY2FuKChzdGF0ZSwgaW5wdXQpID0+IHtcbiAgICAgICAgICAgIGlmIChPYmplY3Qua2V5cyhzdGF0ZSkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgc3RhdGUgPSB0aGlzLiNpbml0aWFsU3RhdGUoKVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoaW5wdXQgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBzdGF0ZVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsZXQgY3VycmVudCA9IHN0YXRlW2lucHV0Lm5hbWVdID8/IHsgcmF0aW86IDAsIHNoYXJlOiAwLCBkb25lOiBmYWxzZSB9XG4gICAgICAgICAgICBjdXJyZW50ID0geyAuLi5jdXJyZW50LCAuLi5pbnB1dCB9XG5cbiAgICAgICAgICAgIGlmIChpbnB1dC5wcm9ncmVzcy50eXBlID09PSBcImxheFwiKSB7XG4gICAgICAgICAgICAgICAgZGVsZXRlIGN1cnJlbnQubGF4QmVnaW5cbiAgICAgICAgICAgICAgICBkZWxldGUgY3VycmVudC5sYXhQZXJjZW50XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB7IC4uLnN0YXRlLCBbaW5wdXQubmFtZV06IHsgLi4uY3VycmVudCwgLi4uaW5wdXQgfSB9XG4gICAgICAgIH0sIHt9IGFzIFByb2dyZXNzU2VnZW1lbnRzKSxcbiAgICAgICAgc3dpdGNoTWFwKHN0YXRlID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxheENvdW50ID0gT2JqZWN0LnZhbHVlcyhzdGF0ZSkuZmlsdGVyKCh7IHByb2dyZXNzIH0pID0+IHByb2dyZXNzLnR5cGUgPT09IFwibGF4XCIpLmxlbmd0aFxuXG4gICAgICAgICAgICBpZiAobGF4Q291bnQgPiAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFuaW1hdGlvbkZyYW1lcygpLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIG1hcCgoeyB0aW1lc3RhbXAgfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiBPYmplY3QudmFsdWVzKHN0YXRlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbnRyeS5wcm9ncmVzcy50eXBlID09PSBcImxheFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbnRyeS5sYXhCZWdpbiA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnRyeS5sYXhCZWdpbiA9IHRpbWVzdGFtcFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHBlcmNlbnQgPSAodGltZXN0YW1wIC0gZW50cnkubGF4QmVnaW4pIC8gZW50cnkucHJvZ3Jlc3MucHJlZGljdGVkVGltZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGVyY2VudCA+PSAwLjgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpbmFsID0gKHRpbWVzdGFtcCAtIGVudHJ5LmxheEJlZ2luKSAvIChlbnRyeS5wcm9ncmVzcy5wcmVkaWN0ZWRUaW1lICogNTApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZXJjZW50ID0gMC44ICsgTWF0aC5sb2cxcChmaW5hbClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnRyeS5sYXhQZXJjZW50ID0gY2xhbXAocGVyY2VudCwgMCwgMC45OSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgZW50cnkubGF4UGVyY2VudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzdGF0ZVxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgdGFrZVdoaWxlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRvbmVDb3VudCA9IE9iamVjdC52YWx1ZXMoc3RhdGUpLmZpbHRlcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtID0+IGl0ZW0ucHJvZ3Jlc3MudHlwZSA9PT0gXCJsYXhcIiAmJiBpdGVtLmxheFBlcmNlbnQhID49IDFcbiAgICAgICAgICAgICAgICAgICAgICAgICkubGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZG9uZUNvdW50ICE9PSBsYXhDb3VudFxuICAgICAgICAgICAgICAgICAgICB9LCB0cnVlKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mKHN0YXRlKVxuICAgICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgdGFwKHN0YXRlID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNsaXN0ID0gT2JqZWN0LnZhbHVlcyhzdGF0ZSkgYXMgQXJyYXk8TXV0YWJsZTxQcm9ncmVzc1NlZ2VtZW50Pj5cbiAgICAgICAgICAgIGNvbnN0IG1pbiA9IHNsaXN0LnJlZHVjZSgobWluLCBjdXJyZW50KSA9PiBNYXRoLm1pbihtaW4sIGN1cnJlbnQuZGlzdHJpYnV0aW9uIHx8IDApLCBJbmZpbml0eSkgfHwgMVxuICAgICAgICAgICAgY29uc3QgdG90YWxEaXN0cmlidXRpb24gPSBzbGlzdC5yZWR1Y2UoKHRvdGFsLCBjdXJyZW50KSA9PiB0b3RhbCArIChjdXJyZW50LmRpc3RyaWJ1dGlvbiB8fCBtaW4pLCAwKVxuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHNlZ21lbnQgb2Ygc2xpc3QpIHtcbiAgICAgICAgICAgICAgICBpZiAoc2VnbWVudC5kaXN0cmlidXRpb24gPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBzZWdtZW50LmRpc3RyaWJ1dGlvbiA9IG1pblxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHNlZ21lbnQucmF0aW8gPSBzZWdtZW50LmRpc3RyaWJ1dGlvbiAvIHRvdGFsRGlzdHJpYnV0aW9uICsgMC4wMDAxXG5cbiAgICAgICAgICAgICAgICBpZiAoc2VnbWVudC5wcm9ncmVzcy50eXBlID09PSBcImZpeFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBlcmNlbnQgPSBjbGFtcChzZWdtZW50LnByb2dyZXNzLnBlcmNlbnQsIDAsIDEpXG4gICAgICAgICAgICAgICAgICAgIHNlZ21lbnQuc2hhcmUgPSBwZXJjZW50ICogc2VnbWVudC5yYXRpb1xuICAgICAgICAgICAgICAgICAgICBzZWdtZW50LmRvbmUgPSBwZXJjZW50ID49IDFcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHNlZ21lbnQucHJvZ3Jlc3MudHlwZSA9PT0gXCJsYXhcIiAmJiBzZWdtZW50LmxheFBlcmNlbnQgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwZXJjZW50ID0gc2VnbWVudC5sYXhQZXJjZW50XG4gICAgICAgICAgICAgICAgICAgIHNlZ21lbnQuc2hhcmUgPSBwZXJjZW50ICogc2VnbWVudC5yYXRpb1xuICAgICAgICAgICAgICAgICAgICBzZWdtZW50LmRvbmUgPSBwZXJjZW50ID49IDFcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pXG4gICAgKVxuXG4gICAgcmVhZG9ubHkgdmFsdWUkOiBPYnNlcnZhYmxlPERlZXBSZWFkb25seTxQcm9ncmVzc1NlZ2VtZW50cz4+ID0gdGhpcy4jc3RhdGVcblxuICAgIHJlYWRvbmx5IHBlcmNlbnQkOiBPYnNlcnZhYmxlPG51bWJlcj4gPSB0aGlzLnZhbHVlJC5waXBlKFxuICAgICAgICBtYXAodmFsdWUgPT5cbiAgICAgICAgICAgIGNsYW1wKFxuICAgICAgICAgICAgICAgIE9iamVjdC52YWx1ZXModmFsdWUpLnJlZHVjZSgoYSwgYikgPT4gYSArIGIuc2hhcmUsIDApLFxuICAgICAgICAgICAgICAgIDAsXG4gICAgICAgICAgICAgICAgMVxuICAgICAgICAgICAgKVxuICAgICAgICApLFxuICAgICAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pXG4gICAgKVxuXG4gICAgc2VnbWVudChuYW1lOiBzdHJpbmcsIGRpc3RyaWJ1dGlvbj86IG51bWJlcik6IFByb2dyZXNzU2VnbWVudFJlZiB7XG4gICAgICAgIGNvbnN0IHNlZ21lbnQgPVxuICAgICAgICAgICAgdGhpcy4jc2VnbWVudHNbbmFtZV0gPz8gKHRoaXMuI3NlZ21lbnRzW25hbWVdID0gbmV3IFByb2dyZXNzU2VnbWVudFJlZih0aGlzLiNpbnB1dCwgbmFtZSwgZGlzdHJpYnV0aW9uKSlcbiAgICAgICAgc2VnbWVudC5uZXh0KFNFR01FTlRfUkVHSVNURVIpXG4gICAgICAgIHJldHVybiBzZWdtZW50XG4gICAgfVxuXG4gICAgY29ubmVjdChzdGF0ZTogUHJvZ3Jlc3NTdGF0ZSwgbmFtZTogc3RyaW5nLCBkaXN0cmlidXRpb24/OiBudW1iZXIpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNlZ21lbnQgPSB0aGlzLnNlZ21lbnQobmFtZSwgZGlzdHJpYnV0aW9uKVxuICAgICAgICAgICAgcmV0dXJuIHN0YXRlLnBlcmNlbnQkLnN1YnNjcmliZShwZXJjZW50ID0+IHtcbiAgICAgICAgICAgICAgICBzZWdtZW50Lm5leHQoeyB0eXBlOiBcImZpeFwiLCBwZXJjZW50IH0pXG4gICAgICAgICAgICB9KVxuICAgICAgICB9KVxuICAgIH1cblxuICAgICNpbml0aWFsU3RhdGUoKSB7XG4gICAgICAgIHJldHVybiBPYmplY3QudmFsdWVzKHRoaXMuI3NlZ21lbnRzKS5yZWR1Y2UoKHJlcywgc2VnbWVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKHNlZ21lbnQudmFsdWUpIHtcbiAgICAgICAgICAgICAgICByZXNbc2VnbWVudC5uYW1lXSA9IHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogc2VnbWVudC5uYW1lLFxuICAgICAgICAgICAgICAgICAgICBkaXN0cmlidXRpb246IHNlZ21lbnQuZGlzdHJpYnV0aW9uLFxuICAgICAgICAgICAgICAgICAgICBwcm9ncmVzczogc2VnbWVudC52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgcmF0aW86IDAsXG4gICAgICAgICAgICAgICAgICAgIHNoYXJlOiAwLFxuICAgICAgICAgICAgICAgICAgICBkb25lOiBmYWxzZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByZXNcbiAgICAgICAgfSwge30gYXMgUHJvZ3Jlc3NTZWdlbWVudHMpXG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUHJvZ3Jlc3NTZWdtZW50UmVmIHtcbiAgICByZWFkb25seSAjc3ViamVjdDogU3ViamVjdDxQcm9ncmVzc1NlZ21lbnRJbnB1dD5cblxuICAgIHNldCBkaXN0cmlidXRpb24odmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAodGhpcy4jZGlzdHJpYnV0aW9uICE9PSB2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy4jZGlzdHJpYnV0aW9uID0gdmFsdWVcbiAgICAgICAgICAgIGlmICh0aGlzLiN2YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy4jbmV4dCh0aGlzLiN2YWx1ZSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBkaXN0cmlidXRpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLiNkaXN0cmlidXRpb25cbiAgICB9XG4gICAgI2Rpc3RyaWJ1dGlvbj86IG51bWJlclxuXG4gICAgZ2V0IHZhbHVlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy4jdmFsdWVcbiAgICB9XG4gICAgI3ZhbHVlPzogUHJvZ3Jlc3NcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBzdWJqZWN0OiBTdWJqZWN0PFByb2dyZXNzU2VnbWVudElucHV0PixcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IG5hbWU6IHN0cmluZyxcbiAgICAgICAgZGlzdHJpYnV0aW9uPzogbnVtYmVyXG4gICAgKSB7XG4gICAgICAgIHRoaXMuI3N1YmplY3QgPSBzdWJqZWN0XG4gICAgICAgIHRoaXMuI2Rpc3RyaWJ1dGlvbiA9IGRpc3RyaWJ1dGlvblxuICAgIH1cblxuICAgIG5leHQocHJvZ3Jlc3M6IFByb2dyZXNzKSB7XG4gICAgICAgIHJldHVybiB0aGlzLiNuZXh0KHByb2dyZXNzKVxuICAgIH1cblxuICAgIGNvbXBsZXRlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy4jbmV4dChTRUdNRU5UX0NPTVBMRVRFKVxuICAgIH1cblxuICAgICNuZXh0KHByb2dyZXNzOiBQcm9ncmVzcykge1xuICAgICAgICB0aGlzLiN2YWx1ZSA9IHByb2dyZXNzXG4gICAgICAgIHRoaXMuI3N1YmplY3QubmV4dCh7IG5hbWU6IHRoaXMubmFtZSwgZGlzdHJpYnV0aW9uOiB0aGlzLmRpc3RyaWJ1dGlvbiwgcHJvZ3Jlc3MgfSlcbiAgICAgICAgcmV0dXJuIHRoaXNcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Directive, input } from "@angular/core";
|
|
2
|
+
import { AbstractUiState, NOTSET } from "./abstract";
|
|
3
|
+
import { UiState } from "./ui-state";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class ReadonlyDirective extends AbstractUiState {
|
|
6
|
+
constructor() {
|
|
7
|
+
super("readonly");
|
|
8
|
+
this.input = input(NOTSET, { alias: "nuReadonly" });
|
|
9
|
+
this.when = input(NOTSET, { alias: "nuReadonlyWhen" });
|
|
10
|
+
}
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: ReadonlyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
12
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.6", type: ReadonlyDirective, isStandalone: true, selector: "[nuReadonly], [nuReadonlyWhen]", inputs: { input: { classPropertyName: "input", publicName: "nuReadonly", isSignal: true, isRequired: false, transformFunction: null }, when: { classPropertyName: "when", publicName: "nuReadonlyWhen", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.aria-readonly": "yes() ? 'true' : 'false'", "attr.readonly": "yes() ? '' : null", "attr.inert": "yes() ? '' : null" } }, providers: [UiState], exportAs: ["readonly"], usesInheritance: true, ngImport: i0 }); }
|
|
13
|
+
}
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: ReadonlyDirective, decorators: [{
|
|
15
|
+
type: Directive,
|
|
16
|
+
args: [{
|
|
17
|
+
selector: "[nuReadonly], [nuReadonlyWhen]",
|
|
18
|
+
exportAs: "readonly",
|
|
19
|
+
standalone: true,
|
|
20
|
+
host: {
|
|
21
|
+
"[attr.aria-readonly]": "yes() ? 'true' : 'false'",
|
|
22
|
+
"[attr.readonly]": "yes() ? '' : null",
|
|
23
|
+
"[attr.inert]": "yes() ? '' : null"
|
|
24
|
+
},
|
|
25
|
+
providers: [UiState]
|
|
26
|
+
}]
|
|
27
|
+
}], ctorParameters: () => [] });
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZG9ubHkuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYXJpYS9zcmMvdWktc3RhdGUvcmVhZG9ubHkuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRWhELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ3BELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxZQUFZLENBQUE7O0FBYXBDLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxlQUEyQjtJQUk5RDtRQUNJLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUpaLFVBQUssR0FBRyxLQUFLLENBQUMsTUFBaUIsRUFBRSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFBO1FBQ3pELFNBQUksR0FBRyxLQUFLLENBQUMsTUFBZ0IsRUFBRSxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUE7SUFJcEUsQ0FBQzs4R0FOUSxpQkFBaUI7a0dBQWpCLGlCQUFpQiwwZUFGZixDQUFDLE9BQU8sQ0FBQzs7MkZBRVgsaUJBQWlCO2tCQVg3QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxnQ0FBZ0M7b0JBQzFDLFFBQVEsRUFBRSxVQUFVO29CQUNwQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFO3dCQUNGLHNCQUFzQixFQUFFLDBCQUEwQjt3QkFDbEQsaUJBQWlCLEVBQUUsbUJBQW1CO3dCQUN0QyxjQUFjLEVBQUUsbUJBQW1CO3FCQUN0QztvQkFDRCxTQUFTLEVBQUUsQ0FBQyxPQUFPLENBQUM7aUJBQ3ZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBpbnB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCJcblxuaW1wb3J0IHsgQWJzdHJhY3RVaVN0YXRlLCBOT1RTRVQgfSBmcm9tIFwiLi9hYnN0cmFjdFwiXG5pbXBvcnQgeyBVaVN0YXRlIH0gZnJvbSBcIi4vdWktc3RhdGVcIlxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogXCJbbnVSZWFkb25seV0sIFtudVJlYWRvbmx5V2hlbl1cIixcbiAgICBleHBvcnRBczogXCJyZWFkb25seVwiLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaG9zdDoge1xuICAgICAgICBcIlthdHRyLmFyaWEtcmVhZG9ubHldXCI6IFwieWVzKCkgPyAndHJ1ZScgOiAnZmFsc2UnXCIsXG4gICAgICAgIFwiW2F0dHIucmVhZG9ubHldXCI6IFwieWVzKCkgPyAnJyA6IG51bGxcIixcbiAgICAgICAgXCJbYXR0ci5pbmVydF1cIjogXCJ5ZXMoKSA/ICcnIDogbnVsbFwiXG4gICAgfSxcbiAgICBwcm92aWRlcnM6IFtVaVN0YXRlXVxufSlcbmV4cG9ydCBjbGFzcyBSZWFkb25seURpcmVjdGl2ZSBleHRlbmRzIEFic3RyYWN0VWlTdGF0ZTxcInJlYWRvbmx5XCI+IHtcbiAgICByZWFkb25seSBpbnB1dCA9IGlucHV0KE5PVFNFVCBhcyBib29sZWFuLCB7IGFsaWFzOiBcIm51UmVhZG9ubHlcIiB9KVxuICAgIHJlYWRvbmx5IHdoZW4gPSBpbnB1dChOT1RTRVQgYXMgc3RyaW5nLCB7IGFsaWFzOiBcIm51UmVhZG9ubHlXaGVuXCIgfSlcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcihcInJlYWRvbmx5XCIpXG4gICAgfVxufVxuIl19
|