@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.
@@ -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: "17.3.6", ngImport: i0, type: ActivityService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
43
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ActivityService, providedIn: "root" }); }
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: "17.3.6", ngImport: i0, type: ActivityService, decorators: [{
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: "17.3.6", ngImport: i0, type: FocusState, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
50
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.6", type: FocusState, isStandalone: true, host: { properties: { "attr.focus": "origin()", "attr.focusWithin": "within()" } }, ngImport: i0 }); }
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: "17.3.6", ngImport: i0, type: FocusState, decorators: [{
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: "17.3.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: "17.3.6", ngImport: i0, type: FocusService, providedIn: "root" }); }
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: "17.3.6", ngImport: i0, type: FocusService, decorators: [{
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 { DisabledState, isElementInput } from "@ngutil/common";
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
- const isDisabled = this.#disabled?.isDisabled();
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: "17.3.6", ngImport: i0, type: Focusable, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
41
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "17.3.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 }); }
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: "17.3.6", ngImport: i0, type: Focusable, decorators: [{
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXNhYmxlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FyaWEvc3JjL2ZvY3VzL2ZvY3VzYWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFMUUsT0FBTyxFQUFtQixhQUFhLEVBQWdCLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRTdGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTs7O0FBRXBELDhDQUE4QztBQVc5QyxNQUFNLE9BQU8sU0FBUztJQUNULFNBQVMsQ0FBd0Q7SUEwQjFFO1FBMUJTLGNBQVMsR0FBRyxNQUFNLENBQUMsYUFBYSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtRQUNqRSxVQUFLLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBRTFCLGNBQVMsR0FBRyxLQUFLLENBQW1CLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFBO1FBQ25FLGFBQVEsR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUE7UUFFMUMsY0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDL0IsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFBO1lBQ2xDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQTtZQUNoQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxDQUFBO1lBRS9DLElBQUksU0FBUyxLQUFLLEtBQUssSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDcEMsT0FBTyxDQUFDLENBQUMsQ0FBQTtZQUNiLENBQUM7WUFFRCxJQUFJLE9BQU8sU0FBUyxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUNoQyxPQUFPLFNBQVMsQ0FBQTtZQUNwQixDQUFDO1lBRUQsSUFBSSxTQUFTLEtBQUssSUFBSSxJQUFJLFFBQVEsSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztnQkFDN0QsT0FBTyxRQUFRLENBQUE7WUFDbkIsQ0FBQztZQUVELE9BQU8sQ0FBQyxDQUFBO1FBQ1osQ0FBQyxDQUFDLENBQUE7UUFHRSx1REFBdUQ7UUFDdkQsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxDQUFDLENBQUE7SUFDaEUsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUE0QztRQUNoRCxJQUFJLEtBQUssWUFBWSxVQUFVLElBQUksY0FBYyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdkQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNwQyxDQUFDO2FBQU0sQ0FBQztZQUNKLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQzFDLENBQUM7SUFDTCxDQUFDOzhHQXRDUSxTQUFTO2tHQUFULFNBQVM7OzJGQUFULFNBQVM7a0JBVHJCLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxlQUFlO29CQUN6QixRQUFRLEVBQUUsYUFBYTtvQkFDdkIsSUFBSSxFQUFFO3dCQUNGLGlCQUFpQixFQUFFLGFBQWE7cUJBQ25DO29CQUNELGNBQWMsRUFBRSxDQUFDLFVBQVUsQ0FBQztpQkFDL0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21wdXRlZCwgRGlyZWN0aXZlLCBlZmZlY3QsIGluamVjdCwgaW5wdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiXG5cbmltcG9ydCB7IENvbm5lY3RQcm90b2NvbCwgRGlzYWJsZWRTdGF0ZSwgRWxlbWVudElucHV0LCBpc0VsZW1lbnRJbnB1dCB9IGZyb20gXCJAbmd1dGlsL2NvbW1vblwiXG5cbmltcG9ydCB7IEZvY3VzU3RhdGUgfSBmcm9tIFwiLi9mb2N1cy1zdGF0ZS5kaXJlY3RpdmVcIlxuXG4vLyBUT0RPOiB3aGF0IGhhcHBlbnMgd2hlbiBkaXNhYmxlZCBpcyBjaGFuZ2VkXG5cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6IFwiW251Rm9jdXNhYmxlXVwiLFxuICAgIGV4cG9ydEFzOiBcIm51Rm9jdXNhYmxlXCIsXG4gICAgaG9zdDoge1xuICAgICAgICBcIlthdHRyLnRhYmluZGV4XVwiOiBcIl90YWJpbmRleCgpXCJcbiAgICB9LFxuICAgIGhvc3REaXJlY3RpdmVzOiBbRm9jdXNTdGF0ZV1cbn0pXG5leHBvcnQgY2xhc3MgRm9jdXNhYmxlIGltcGxlbWVudHMgQ29ubmVjdFByb3RvY29sIHtcbiAgICByZWFkb25seSAjZGlzYWJsZWQgPSBpbmplY3QoRGlzYWJsZWRTdGF0ZSwgeyBvcHRpb25hbDogdHJ1ZSwgc2VsZjogdHJ1ZSB9KVxuICAgIHJlYWRvbmx5IHN0YXRlID0gaW5qZWN0KEZvY3VzU3RhdGUpXG5cbiAgICByZWFkb25seSBmb2N1c2FibGUgPSBpbnB1dDxib29sZWFuIHwgbnVtYmVyPih0cnVlLCB7IGFsaWFzOiBcIm51Rm9jdXNhYmxlXCIgfSlcbiAgICByZWFkb25seSB0YWJpbmRleCA9IGlucHV0KDAsIHsgdHJhbnNmb3JtOiBOdW1iZXIgfSlcblxuICAgIHJlYWRvbmx5IF90YWJpbmRleCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3QgZm9jdXNhYmxlID0gdGhpcy5mb2N1c2FibGUoKVxuICAgICAgICBjb25zdCB0YWJpbmRleCA9IHRoaXMudGFiaW5kZXgoKVxuICAgICAgICBjb25zdCBpc0Rpc2FibGVkID0gdGhpcy4jZGlzYWJsZWQ/LmlzRGlzYWJsZWQoKVxuXG4gICAgICAgIGlmIChmb2N1c2FibGUgPT09IGZhbHNlIHx8IGlzRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybiAtMVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGVvZiBmb2N1c2FibGUgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBmb2N1c2FibGVcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmb2N1c2FibGUgPT09IHRydWUgJiYgdGFiaW5kZXggIT0gbnVsbCAmJiAhaXNOYU4odGFiaW5kZXgpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGFiaW5kZXhcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAwXG4gICAgfSlcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICAvLyBUT0RPOiBtacOpcnQga2VsbCBlej8sIGhhIG5pbmNzIGl0dCBha2tvciBuZW0gZnJpc3PDvGxcbiAgICAgICAgZWZmZWN0KCgpID0+IHRoaXMuX3RhYmluZGV4KCksIHsgYWxsb3dTaWduYWxXcml0ZXM6IGZhbHNlIH0pXG4gICAgfVxuXG4gICAgY29ubmVjdCh2YWx1ZTogRm9jdXNhYmxlIHwgRm9jdXNTdGF0ZSB8IEVsZW1lbnRJbnB1dCkge1xuICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBGb2N1c1N0YXRlIHx8IGlzRWxlbWVudElucHV0KHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGUuY29ubmVjdCh2YWx1ZSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnN0YXRlLmNvbm5lY3QodmFsdWUuc3RhdGUpXG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
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: "17.3.6", ngImport: i0, type: GesturesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
96
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: GesturesService, providedIn: "root" }); }
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: "17.3.6", ngImport: i0, type: GesturesService, decorators: [{
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
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9hcmlhL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlDLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUMzRSxPQUFPLEVBQWUsWUFBWSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFnQyxNQUFNLFNBQVMsQ0FBQTtBQUNuSCxPQUFPLEVBQTZCLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ3pFLGNBQWMsWUFBWSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQWN0aXZpdHlFdmVudCwgQWN0aXZpdHlPcmlnaW4sIEFjdGl2aXR5U2VydmljZSB9IGZyb20gXCIuL2FjdGl2aXR5XCJcbmV4cG9ydCB7IEZvY3VzT3JpZ2luLCBGb2N1c1NlcnZpY2UsIEZvY3VzVHJhcCwgRm9jdXNhYmxlLCBGb2N1c1N0YXRlLCBGb2N1c2FibGVFdmVudCwgRm9jdXNDaGFuZ2VzIH0gZnJvbSBcIi4vZm9jdXNcIlxuZXhwb3J0IHsgS2V5c3Ryb2tlLCBLZXlzdHJva2VFdmVudCwgS2V5c3Ryb2tlU2VydmljZSB9IGZyb20gXCIuL2tleXN0cm9rZVwiXG5leHBvcnQgKiBmcm9tIFwiLi9nZXN0dXJlc1wiXG4iXX0=
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: "17.3.6", ngImport: i0, type: KeystrokeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
64
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: KeystrokeService, providedIn: "root" }); }
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: "17.3.6", ngImport: i0, type: KeystrokeService, decorators: [{
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