@fundamental-ngx/core 0.48.2 → 0.48.3

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.
@@ -1,5 +1,5 @@
1
1
  import { coerceNumberProperty } from '@angular/cdk/coercion';
2
- import { Directive, ElementRef, EventEmitter, HostBinding, HostListener, Input, inject } from '@angular/core';
2
+ import { Directive, ElementRef, EventEmitter, HostListener, Input, computed, inject, signal } from '@angular/core';
3
3
  import { Subject } from 'rxjs';
4
4
  import * as i0 from "@angular/core";
5
5
  export class ListFocusItem {
@@ -13,17 +13,23 @@ export class ListFocusItem {
13
13
  /** @hidden */
14
14
  this._clicked$ = new Subject();
15
15
  /** @hidden */
16
- this._isFirstItem = false;
16
+ this._isFirstItem$ = signal(false);
17
+ /** @hidden */
18
+ this._tabIndex$ = signal(undefined);
19
+ /** @hidden */
20
+ this._normalizedTabIndex$ = computed(() => {
21
+ if (this._isFirstItem$() && isNaN(this._tabIndex$())) {
22
+ return 0;
23
+ }
24
+ return this._tabIndex$() ?? -1;
25
+ });
17
26
  }
18
27
  /** tab index attribute */
19
28
  set tabindex(value) {
20
- this._tabIndex = coerceNumberProperty(value, -1);
29
+ this._tabIndex$.set(coerceNumberProperty(value, -1));
21
30
  }
22
31
  get tabindex() {
23
- if (this._isFirstItem && isNaN(this._tabIndex)) {
24
- return 0;
25
- }
26
- return this._tabIndex ?? -1;
32
+ return this._normalizedTabIndex$();
27
33
  }
28
34
  /** @hidden */
29
35
  onFocus(event) {
@@ -41,22 +47,19 @@ export class ListFocusItem {
41
47
  }
42
48
  /** @hidden */
43
49
  setIsFirst(value) {
44
- this._isFirstItem = value;
50
+ this._isFirstItem$.set(value);
45
51
  }
46
52
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ListFocusItem, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
47
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.8", type: ListFocusItem, inputs: { tabindex: "tabindex", value: "value" }, host: { listeners: { "focusin": "onFocus($event)" }, properties: { "attr.tabindex": "this.tabindex" } }, ngImport: i0 }); }
53
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.8", type: ListFocusItem, inputs: { tabindex: "tabindex", value: "value" }, host: { listeners: { "focusin": "onFocus($event)" } }, ngImport: i0 }); }
48
54
  }
49
55
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ListFocusItem, decorators: [{
50
56
  type: Directive
51
57
  }], propDecorators: { tabindex: [{
52
58
  type: Input
53
- }, {
54
- type: HostBinding,
55
- args: ['attr.tabindex']
56
59
  }], value: [{
57
60
  type: Input
58
61
  }], onFocus: [{
59
62
  type: HostListener,
60
63
  args: ['focusin', ['$event']]
61
64
  }] } });
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1mb2N1cy1pdGVtLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL2xpc3QvbGlzdC1mb2N1cy1pdGVtLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdELE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFHL0IsTUFBTSxPQUFnQixhQUFhO0lBRG5DO1FBc0JJLDZEQUE2RDtRQUM3RCxZQUFPLEdBQWdDLElBQUksWUFBWSxFQUFpQixDQUFDO1FBRXpFLGNBQWM7UUFDTCxlQUFVLEdBQWUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXJELGNBQWM7UUFDTCxjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQThCLENBQUM7UUFFL0QsY0FBYztRQUNMLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBYyxDQUFDO1FBRS9DLGNBQWM7UUFDSixpQkFBWSxHQUFHLEtBQUssQ0FBQztLQTJCbEM7SUE1REcsMEJBQTBCO0lBQzFCLElBRUksUUFBUSxDQUFDLEtBQWE7UUFDdEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBQ0QsSUFBSSxRQUFRO1FBQ1IsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBbUIsQ0FBQyxFQUFFO1lBQ3RELE9BQU8sQ0FBQyxDQUFDO1NBQ1o7UUFDRCxPQUFPLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQTJCRCxjQUFjO0lBRUosT0FBTyxDQUFDLEtBQWlCO1FBQy9CLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO1lBQ2hCLGFBQWEsRUFBRSxLQUFLLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxVQUFVLEVBQUUsYUFBYTtTQUNqRSxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsY0FBYztJQUNkLEtBQUs7UUFDRCxJQUFJLENBQUMsVUFBVSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRUQsY0FBYztJQUNkLEtBQUs7UUFDRCxJQUFJLENBQUMsVUFBVSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRUQsY0FBYztJQUNkLFVBQVUsQ0FBQyxLQUFjO1FBQ3JCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQzlCLENBQUM7OEdBNURpQixhQUFhO2tHQUFiLGFBQWE7OzJGQUFiLGFBQWE7a0JBRGxDLFNBQVM7OEJBS0YsUUFBUTtzQkFGWCxLQUFLOztzQkFDTCxXQUFXO3VCQUFDLGVBQWU7Z0JBZ0I1QixLQUFLO3NCQURKLEtBQUs7Z0JBdUJJLE9BQU87c0JBRGhCLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29lcmNlTnVtYmVyUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBIb3N0TGlzdGVuZXIsIElucHV0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEtleWJvYXJkU3VwcG9ydEl0ZW1JbnRlcmZhY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIExpc3RGb2N1c0l0ZW08VCA9IGFueT4gaW1wbGVtZW50cyBLZXlib2FyZFN1cHBvcnRJdGVtSW50ZXJmYWNlIHtcbiAgICAvKiogdGFiIGluZGV4IGF0dHJpYnV0ZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnRhYmluZGV4JylcbiAgICBzZXQgdGFiaW5kZXgodmFsdWU6IG51bWJlcikge1xuICAgICAgICB0aGlzLl90YWJJbmRleCA9IGNvZXJjZU51bWJlclByb3BlcnR5KHZhbHVlLCAtMSk7XG4gICAgfVxuICAgIGdldCB0YWJpbmRleCgpOiBudW1iZXIge1xuICAgICAgICBpZiAodGhpcy5faXNGaXJzdEl0ZW0gJiYgaXNOYU4odGhpcy5fdGFiSW5kZXggYXMgbnVtYmVyKSkge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX3RhYkluZGV4ID8/IC0xO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbHVlIG9mIHRoZSBsaXN0IGl0ZW0uXG4gICAgICogVXNlZCBmb3IgZHJvcGRvd24tYmFzZWQgY29udHJvbHMgc3VjaCBhcyBjb21ib2JveCwgc2VsZWN0LCBldGMuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB2YWx1ZTogVDtcblxuICAgIC8qKiBAaGlkZGVuIEltcGxlbWVudGF0aW9uIG9mIEtleWJvYXJkU3VwcG9ydEl0ZW1JbnRlcmZhY2UgKi9cbiAgICBrZXlEb3duOiBFdmVudEVtaXR0ZXI8S2V5Ym9hcmRFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEtleWJvYXJkRXZlbnQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IF9mb2N1c2VkJCA9IG5ldyBTdWJqZWN0PHsgZm9jdXNlZFdpdGhpbjogYm9vbGVhbiB9PigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfY2xpY2tlZCQgPSBuZXcgU3ViamVjdDxNb3VzZUV2ZW50PigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgX2lzRmlyc3RJdGVtID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfdGFiSW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RMaXN0ZW5lcignZm9jdXNpbicsIFsnJGV2ZW50J10pXG4gICAgcHJvdGVjdGVkIG9uRm9jdXMoZXZlbnQ6IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZm9jdXNlZCQubmV4dCh7XG4gICAgICAgICAgICBmb2N1c2VkV2l0aGluOiBldmVudC50YXJnZXQgIT09IHRoaXMuZWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNsaWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQ/LmNsaWNrKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBmb2N1cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgc2V0SXNGaXJzdCh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLl9pc0ZpcnN0SXRlbSA9IHZhbHVlO1xuICAgIH1cbn1cbiJdfQ==
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1mb2N1cy1pdGVtLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL2xpc3QvbGlzdC1mb2N1cy1pdGVtLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdELE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ILE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBRy9CLE1BQU0sT0FBZ0IsYUFBYTtJQURuQztRQWtCSSw2REFBNkQ7UUFDN0QsWUFBTyxHQUFnQyxJQUFJLFlBQVksRUFBaUIsQ0FBQztRQUV6RSxjQUFjO1FBQ0wsZUFBVSxHQUFlLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVyRCxjQUFjO1FBQ0wsY0FBUyxHQUFHLElBQUksT0FBTyxFQUE4QixDQUFDO1FBRS9ELGNBQWM7UUFDTCxjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQWMsQ0FBQztRQUUvQyxjQUFjO1FBQ0osa0JBQWEsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFeEMsY0FBYztRQUNKLGVBQVUsR0FBRyxNQUFNLENBQXFCLFNBQVMsQ0FBQyxDQUFDO1FBRTdELGNBQWM7UUFDSix5QkFBb0IsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzNDLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFZLENBQUMsRUFBRTtnQkFDNUQsT0FBTyxDQUFDLENBQUM7YUFDWjtZQUNELE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUFDO0tBd0JOO0lBaEVHLDBCQUEwQjtJQUMxQixJQUNJLFFBQVEsQ0FBQyxLQUFhO1FBQ3RCLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUNELElBQUksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDdkMsQ0FBQztJQW1DRCxjQUFjO0lBRUosT0FBTyxDQUFDLEtBQWlCO1FBQy9CLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO1lBQ2hCLGFBQWEsRUFBRSxLQUFLLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxVQUFVLEVBQUUsYUFBYTtTQUNqRSxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsY0FBYztJQUNkLEtBQUs7UUFDRCxJQUFJLENBQUMsVUFBVSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRUQsY0FBYztJQUNkLEtBQUs7UUFDRCxJQUFJLENBQUMsVUFBVSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRUQsY0FBYztJQUNkLFVBQVUsQ0FBQyxLQUFjO1FBQ3JCLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7OEdBaEVpQixhQUFhO2tHQUFiLGFBQWE7OzJGQUFiLGFBQWE7a0JBRGxDLFNBQVM7OEJBSUYsUUFBUTtzQkFEWCxLQUFLO2dCQWFOLEtBQUs7c0JBREosS0FBSztnQkErQkksT0FBTztzQkFEaEIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VOdW1iZXJQcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgY29tcHV0ZWQsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBLZXlib2FyZFN1cHBvcnRJdGVtSW50ZXJmYWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBMaXN0Rm9jdXNJdGVtPFQgPSBhbnk+IGltcGxlbWVudHMgS2V5Ym9hcmRTdXBwb3J0SXRlbUludGVyZmFjZSB7XG4gICAgLyoqIHRhYiBpbmRleCBhdHRyaWJ1dGUgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB0YWJpbmRleCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX3RhYkluZGV4JC5zZXQoY29lcmNlTnVtYmVyUHJvcGVydHkodmFsdWUsIC0xKSk7XG4gICAgfVxuICAgIGdldCB0YWJpbmRleCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fbm9ybWFsaXplZFRhYkluZGV4JCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbHVlIG9mIHRoZSBsaXN0IGl0ZW0uXG4gICAgICogVXNlZCBmb3IgZHJvcGRvd24tYmFzZWQgY29udHJvbHMgc3VjaCBhcyBjb21ib2JveCwgc2VsZWN0LCBldGMuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB2YWx1ZTogVDtcblxuICAgIC8qKiBAaGlkZGVuIEltcGxlbWVudGF0aW9uIG9mIEtleWJvYXJkU3VwcG9ydEl0ZW1JbnRlcmZhY2UgKi9cbiAgICBrZXlEb3duOiBFdmVudEVtaXR0ZXI8S2V5Ym9hcmRFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEtleWJvYXJkRXZlbnQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IF9mb2N1c2VkJCA9IG5ldyBTdWJqZWN0PHsgZm9jdXNlZFdpdGhpbjogYm9vbGVhbiB9PigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfY2xpY2tlZCQgPSBuZXcgU3ViamVjdDxNb3VzZUV2ZW50PigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgX2lzRmlyc3RJdGVtJCA9IHNpZ25hbChmYWxzZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfdGFiSW5kZXgkID0gc2lnbmFsPG51bWJlciB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIF9ub3JtYWxpemVkVGFiSW5kZXgkID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5faXNGaXJzdEl0ZW0kKCkgJiYgaXNOYU4odGhpcy5fdGFiSW5kZXgkKCkgYXMgbnVtYmVyKSkge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX3RhYkluZGV4JCgpID8/IC0xO1xuICAgIH0pO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdExpc3RlbmVyKCdmb2N1c2luJywgWyckZXZlbnQnXSlcbiAgICBwcm90ZWN0ZWQgb25Gb2N1cyhldmVudDogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9mb2N1c2VkJC5uZXh0KHtcbiAgICAgICAgICAgIGZvY3VzZWRXaXRoaW46IGV2ZW50LnRhcmdldCAhPT0gdGhpcy5lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY2xpY2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudD8uY2xpY2soKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGZvY3VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQ/LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzZXRJc0ZpcnN0KHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2lzRmlyc3RJdGVtJC5zZXQodmFsdWUpO1xuICAgIH1cbn1cbiJdfQ==
@@ -171,7 +171,7 @@ export class ListItemComponent extends ListFocusItem {
171
171
  event.preventDefault();
172
172
  }
173
173
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ListItemComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
174
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.8", type: ListItemComponent, isStandalone: true, selector: "[fdListItem] ,[fd-list-item]", inputs: { selected: "selected", noData: "noData", action: "action", interactive: "interactive", growing: "growing", counter: "counter", unread: "unread", byline: "byline", ariaRole: "ariaRole" }, outputs: { keyDown: "keyDown" }, host: { listeners: { "keydown": "keydownHandler($event)", "keyup": "keyupHandler($event)", "click": "onClick($event)", "focus": "_onFocus()" }, properties: { "class.is-selected": "this.selected", "attr.aria-selected": "this.selected", "class.fd-list__item--no-data": "this.noData", "class.fd-list__item--action": "this.action", "class.fd-list__item--interractive": "this.interactive", "class.fd-list__item--growing": "this.growing", "class.fd-list__item--unread": "this.unread", "class.fd-list__item--byline": "this.byline", "class.fd-list__item--link": "this.link", "attr.role": "this.roleAttr" }, classAttribute: "fd-list__item" }, providers: [
174
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.8", type: ListItemComponent, isStandalone: true, selector: "[fdListItem] ,[fd-list-item]", inputs: { selected: "selected", noData: "noData", action: "action", interactive: "interactive", growing: "growing", counter: "counter", unread: "unread", byline: "byline", ariaRole: "ariaRole" }, outputs: { keyDown: "keyDown" }, host: { listeners: { "keydown": "keydownHandler($event)", "keyup": "keyupHandler($event)", "click": "onClick($event)", "focus": "_onFocus()" }, properties: { "attr.tabindex": "_normalizedTabIndex$()", "class.is-selected": "this.selected", "attr.aria-selected": "this.selected", "class.fd-list__item--no-data": "this.noData", "class.fd-list__item--action": "this.action", "class.fd-list__item--interractive": "this.interactive", "class.fd-list__item--growing": "this.growing", "class.fd-list__item--unread": "this.unread", "class.fd-list__item--byline": "this.byline", "class.fd-list__item--link": "this.link", "attr.role": "this.roleAttr" }, classAttribute: "fd-list__item" }, providers: [
175
175
  {
176
176
  provide: LIST_ITEM_COMPONENT,
177
177
  useExisting: forwardRef(() => ListItemComponent)
@@ -185,7 +185,8 @@ export class ListItemComponent extends ListFocusItem {
185
185
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ListItemComponent, decorators: [{
186
186
  type: Component,
187
187
  args: [{ selector: '[fdListItem] ,[fd-list-item]', host: {
188
- class: 'fd-list__item'
188
+ class: 'fd-list__item',
189
+ '[attr.tabindex]': '_normalizedTabIndex$()'
189
190
  }, providers: [
190
191
  {
191
192
  provide: LIST_ITEM_COMPONENT,
@@ -271,4 +272,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
271
272
  type: HostListener,
272
273
  args: ['focus']
273
274
  }] } });
274
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9saXN0L2xpc3QtaXRlbS9saXN0LWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL2xpc3QvbGlzdC1pdGVtL2xpc3QtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBK0IsTUFBTSw0QkFBNEIsQ0FBQztBQUN2RyxPQUFPLEVBQW1CLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDMUYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzlGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxN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Z0JBSzFDLE9BQU87c0JBRE4sTUFBTTtnQkFLUCxJQUFJO3NCQURILFdBQVc7dUJBQUMsMkJBQTJCO2dCQUt4QyxRQUFRO3NCQURQLEtBQUs7Z0JBS0YsS0FBSztzQkFEUixZQUFZO3VCQUFDLHlCQUF5QjtnQkFnQm5DLFFBQVE7c0JBRFgsWUFBWTt1QkFBQyxxQkFBcUI7Z0JBZ0JuQyxjQUFjO3NCQURiLGVBQWU7dUJBQUMsc0JBQXNCO2dCQUt2QyxPQUFPO3NCQUROLGVBQWU7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQW9CL0MsUUFBUTtzQkFEbkIsV0FBVzt1QkFBQyxXQUFXO2dCQXVCeEIsY0FBYztzQkFEYixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkF1Qm5DLFlBQVk7c0JBRFgsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBWWpDLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBaUJ6QixRQUFRO3NCQURmLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBEZXN0cm95UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRU5URVIsIFNQQUNFIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IERlY2ltYWxQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEtleVV0aWwsIExJU1RfSVRFTV9DT01QT05FTlQsIExpc3RJdGVtSW50ZXJmYWNlLCBOdWxsYWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCwgRkRfQlVUVE9OX0NPTVBPTkVOVCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9idXR0b24nO1xuaW1wb3J0IHsgQ2hlY2tib3hDb21wb25lbnQsIEZEX0NIRUNLQk9YX0NPTVBPTkVOVCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9jaGVja2JveCc7XG5pbXBvcnQgeyBGb3JtSXRlbUNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9mb3JtJztcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvaWNvbic7XG5pbXBvcnQgeyBGRF9SQURJT19CVVRUT05fQ09NUE9ORU5ULCBSYWRpb0J1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9yYWRpbyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzdGFydFdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBMaXN0TGlua0RpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvbGlzdC1saW5rLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBMaXN0Rm9jdXNJdGVtIH0gZnJvbSAnLi4vbGlzdC1mb2N1cy1pdGVtLm1vZGVsJztcbmltcG9ydCB7IEZEX0xJU1RfTElOS19ESVJFQ1RJVkUsIEZEX0xJU1RfVU5SRUFEX0lORElDQVRPUiB9IGZyb20gJy4uL3Rva2Vucyc7XG5cbmxldCBsaXN0SXRlbVVuaXF1ZUlkID0gMDtcblxuLyoqXG4gKiBUaGUgY29tcG9uZW50IHRoYXQgcmVwcmVzZW50cyBhIGxpc3QgaXRlbS5cbiAqIFRoZSBsaXN0IGl0ZW0gY2FuIGNvbnRhaW4gcGxhaW4gdGV4dCwgbGlua3Mgb3IgYWN0aW9ucy5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ1tmZExpc3RJdGVtXSAsW2ZkLWxpc3QtaXRlbV0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9saXN0LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdmZC1saXN0X19pdGVtJ1xuICAgIH0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IExJU1RfSVRFTV9DT01QT05FTlQsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBMaXN0SXRlbUNvbXBvbmVudClcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTGlzdEZvY3VzSXRlbSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IExpc3RJdGVtQ29tcG9uZW50KVxuICAgICAgICB9XG4gICAgXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0Zvcm1JdGVtQ29tcG9uZW50LCBEZWNpbWFsUGlwZSwgSWNvbkNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgTGlzdEl0ZW1Db21wb25lbnQ8VCA9IGFueT4gZXh0ZW5kcyBMaXN0Rm9jdXNJdGVtPFQ+IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgTGlzdEl0ZW1JbnRlcmZhY2Uge1xuICAgIC8qKiBXaGV0aGVyIGxpc3QgaXRlbSBpcyBzZWxlY3RlZCAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pcy1zZWxlY3RlZCcpXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtc2VsZWN0ZWQnKVxuICAgIHNlbGVjdGVkID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciB0aGVyZSBpcyBubyBkYXRhIGluc2lkZSBsaXN0IGl0ZW0gKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmQtbGlzdF9faXRlbS0tbm8tZGF0YScpXG4gICAgbm9EYXRhID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciB0aGVyZSBpcyBpdGVtIHBlcmZvcm1zIHNvbWUgYWN0aW9uICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkLWxpc3RfX2l0ZW0tLWFjdGlvbicpXG4gICAgYWN0aW9uID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciB0aGVyZSBpcyBpdGVtIHBlcmZvcm1zIHNvbWUgYWN0aW9uICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkLWxpc3RfX2l0ZW0tLWludGVycmFjdGl2ZScpXG4gICAgaW50ZXJhY3RpdmUgPSBmYWxzZTtcblxuICAgIC8qKiBXaGV0aGVyIGxpc3QgaXRlbSBjb250YWlucyBidXN5IGluZGljYXRvciAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZC1saXN0X19pdGVtLS1ncm93aW5nJylcbiAgICBncm93aW5nID0gZmFsc2U7XG5cbiAgICAvKiogQ291bnRlciBvbiBsaXN0IGl0ZW0gKi9cbiAgICBASW5wdXQoKVxuICAgIGNvdW50ZXI6IG51bWJlcjtcblxuICAgIC8qKiBXaGV0aGVyIGxpc3QgaXRlbSBzaG91bGQgY29udGFpbiBhZGRpdGlvbmFsIHVuUmVhZCBzdHlsZXMgKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmQtbGlzdF9faXRlbS0tdW5yZWFkJylcbiAgICB1bnJlYWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGxpc3QgaXRlbSBpcyBieWxpbmVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmQtbGlzdF9faXRlbS0tYnlsaW5lJylcbiAgICBieWxpbmUgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuIEltcGxlbWVudGF0aW9uIG9mIEtleWJvYXJkU3VwcG9ydEl0ZW1JbnRlcmZhY2UgfCBUT0RPIFJldmlzaXQgS2V5Ym9hcmRTdXBwb3J0SXRlbUludGVyZmFjZSovXG4gICAgQE91dHB1dCgpXG4gICAga2V5RG93bjogRXZlbnRFbWl0dGVyPEtleWJvYXJkRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxLZXlib2FyZEV2ZW50PigpO1xuXG4gICAgLyoqIFdoZXRoZXIgbGlzdCBpdGVtIGNvbnRhaW5zIGxpbmsgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkLWxpc3RfX2l0ZW0tLWxpbmsnKVxuICAgIGxpbmsgPSBmYWxzZTtcblxuICAgIC8qKiBBcmlhLXJvbGUgYXR0cmlidXRlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXJpYVJvbGU6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGQoRkRfUkFESU9fQlVUVE9OX0NPTVBPTkVOVClcbiAgICBzZXQgcmFkaW8odmFsdWU6IFJhZGlvQnV0dG9uQ29tcG9uZW50KSB7XG4gICAgICAgIHRoaXMuX3JhZGlvID0gdmFsdWU7XG4gICAgICAgIGlmICh0aGlzLl9yYWRpbyAmJiB0aGlzLl9yYWRpby50YWJJbmRleCA9PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLl9yYWRpby50YWJJbmRleCA9IC0xO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fcm9sZSA9ICdvcHRpb24nO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldCByYWRpbygpOiBSYWRpb0J1dHRvbkNvbXBvbmVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yYWRpbztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGQoRkRfQ0hFQ0tCT1hfQ09NUE9ORU5UKVxuICAgIHNldCBjaGVja2JveCh2YWx1ZTogQ2hlY2tib3hDb21wb25lbnQpIHtcbiAgICAgICAgdGhpcy5fY2hlY2tib3ggPSB2YWx1ZTtcbiAgICAgICAgaWYgKHRoaXMuX2NoZWNrYm94ICYmIHRoaXMuX2NoZWNrYm94LnRhYkluZGV4VmFsdWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5fY2hlY2tib3gudGFiSW5kZXhWYWx1ZSA9IC0xO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fcm9sZSA9ICdvcHRpb24nO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldCBjaGVja2JveCgpOiBDaGVja2JveENvbXBvbmVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jaGVja2JveDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGRyZW4oRkRfTElTVF9MSU5LX0RJUkVDVElWRSlcbiAgICBsaW5rRGlyZWN0aXZlczogUXVlcnlMaXN0PExpc3RMaW5rRGlyZWN0aXZlPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihGRF9CVVRUT05fQ09NUE9ORU5ULCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gICAgYnV0dG9uczogUXVlcnlMaXN0PEJ1dHRvbkNvbXBvbmVudD47XG5cbiAgICAvKiogQGhpZGRlbiBBbiBSeEpTIFN1YmplY3QgdGhhdCB3aWxsIGtpbGwgdGhlIGRhdGEgc3RyZWFtIHVwb24gY29tcG9uZW504oCZcyBkZXN0cnVjdGlvbiAoZm9yIHVuc3Vic2NyaWJpbmcpICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX29uTGlua0xpc3RDaGFuZ2VkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3JhZGlvOiBSYWRpb0J1dHRvbkNvbXBvbmVudDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfY2hlY2tib3g6IENoZWNrYm94Q29tcG9uZW50O1xuXG4gICAgLyoqIEBoaWRkZW4gZ3JvdXAgaGVhZGVyIGlkLCB0aGF0IGlzIGJlaW5nIHNldCBieSBwYXJlbnQgbGlzdCBjb21wb25lbnQgKi9cbiAgICBfcmVsYXRlZEdyb3VwSGVhZGVySWQ6IHN0cmluZyB8IG51bGw7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJylcbiAgICBwcml2YXRlIGdldCByb2xlQXR0cigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5hcmlhUm9sZSB8fCB0aGlzLl9yb2xlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfcm9sZSA9ICdsaXN0aXRlbSc7IC8vIGRlZmF1bHQgZm9yIGxpIGVsZW1lbnRzXG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IF91bmlxdWVJZCA9ICdmZC1saXN0LWl0ZW0tJyArICsrbGlzdEl0ZW1VbmlxdWVJZDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgX2xpc3QgPSBpbmplY3QoRkRfTElTVF9VTlJFQURfSU5ESUNBVE9SLCB7XG4gICAgICAgIG9wdGlvbmFsOiB0cnVlXG4gICAgfSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gICAga2V5ZG93bkhhbmRsZXIoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBbRU5URVIsIFNQQUNFXSkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmNoZWNrYm94KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGVja2JveC5uZXh0VmFsdWUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9tdXRlRXZlbnQoZXZlbnQpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnJhZGlvKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yYWRpby5sYWJlbENsaWNrZWQoZXZlbnQsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9tdXRlRXZlbnQoZXZlbnQpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmludGVyYWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZCA9ICF0aGlzLnNlbGVjdGVkO1xuICAgICAgICAgICAgICAgIHRoaXMuX211dGVFdmVudChldmVudCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmxpbmspIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxpbmtEaXJlY3RpdmVzLmZpcnN0LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdpcy1hY3RpdmUnKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9tdXRlRXZlbnQoZXZlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMua2V5RG93bi5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2tleXVwJywgWyckZXZlbnQnXSlcbiAgICBrZXl1cEhhbmRsZXIoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBbRU5URVIsIFNQQUNFXSkgJiYgdGhpcy5saW5rKSB7XG4gICAgICAgICAgICBjb25zdCBfYW5jaG9yRWxlbWVudCA9IHRoaXMubGlua0RpcmVjdGl2ZXMuZmlyc3QuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICAgICAgX2FuY2hvckVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnaXMtYWN0aXZlJyk7XG4gICAgICAgICAgICBfYW5jaG9yRWxlbWVudC5jbGljaygpO1xuICAgICAgICAgICAgdGhpcy5fbXV0ZUV2ZW50KGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBIYW5kbGVyIGZvciBtb3VzZSBldmVudHMgKi9cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gICAgb25DbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jbGlja2VkJC5uZXh0KGV2ZW50KTtcbiAgICAgICAgaWYgKHRoaXMuY2hlY2tib3ggJiYgIXRoaXMubGluaykge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmNoZWNrYm94LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSkpIHtcbiAgICAgICAgICAgICAgICAvLyBjbGlja2luZyBvbiB0aGUgY2hlY2tib3ggaXMgbm90IHN1cHByZXNzZWRcbiAgICAgICAgICAgICAgICAvLyBzbyB3ZSBzaG91bGQgb25seSBwcm9jZXNzIGNsaWNrcyBpZiBjbGlja2VkIG9uIHRoZSBsaXN0LWl0ZW0sIG5vdCBjaGVja2JveCBpdHNlbGZcbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrYm94Lm5leHRWYWx1ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnJhZGlvICYmICF0aGlzLmxpbmspIHtcbiAgICAgICAgICAgIHRoaXMucmFkaW8ubGFiZWxDbGlja2VkKGV2ZW50LCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2ZvY3VzJylcbiAgICBwcml2YXRlIF9vbkZvY3VzKCk6IHZvaWQge1xuICAgICAgICAvLyBUcnkgdG8gZmluZCBpbm5lciBmb2N1c2FibGUgbGlua1xuICAgICAgICBjb25zdCB0YWJiYWJsZUxpbmsgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuZmQtbGlzdF9fbGluay5mZC1saXN0X19saW5rLS1mb2N1c2FibGUnKTtcbiAgICAgICAgdGFiYmFibGVMaW5rPy5mb2N1cygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9saXN0ZW5PbkxpbmtRdWVyeUNoYW5nZSgpO1xuICAgICAgICB0aGlzLl9saXN0ZW5PbkJ1dHRvblF1ZXJ5Q2hhbmdlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9saXN0ZW5PbkxpbmtRdWVyeUNoYW5nZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5saW5rRGlyZWN0aXZlcy5jaGFuZ2VzXG4gICAgICAgICAgICAucGlwZShzdGFydFdpdGgodGhpcy5saW5rRGlyZWN0aXZlcyksIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX29uTGlua0xpc3RDaGFuZ2VkJC5uZXh0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5saW5rID0gdGhpcy5saW5rRGlyZWN0aXZlcy5sZW5ndGggPiAwO1xuICAgICAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuT25CdXR0b25RdWVyeUNoYW5nZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5idXR0b25zLmNoYW5nZXMucGlwZShzdGFydFdpdGgoMCksIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuYnV0dG9ucy5mb3JFYWNoKHRoaXMuX2FkZENsYXNzVG9CdXR0b25zKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9hZGRDbGFzc1RvQnV0dG9ucyhidXR0b246IEJ1dHRvbkNvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICBidXR0b24uY2xhc3MgKz0gJyBmZC1saXN0X19idXR0b24nO1xuICAgICAgICBidXR0b24uYnVpbGRDb21wb25lbnRDc3NDbGFzcygpO1xuICAgICAgICBidXR0b24uZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbXV0ZUV2ZW50KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG59XG4iLCJAaWYgKGNoZWNrYm94IHx8IHJhZGlvKSB7XG4gICAgPGRpdiBmZC1mb3JtLWl0ZW0gY2xhc3M9XCJmZC1saXN0X19mb3JtLWl0ZW1cIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZmQtY2hlY2tib3hcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImZkLXJhZGlvLWJ1dHRvblwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbn1cbkBpZiAodW5yZWFkICYmICghX2xpc3QgfHwgX2xpc3QuYnlsaW5lKSkge1xuICAgIDxmZC1pY29uIGNsYXNzPVwiZmQtbGlzdF9fbm90aWZpY2F0aW9uXCIgZ2x5cGg9XCJjaXJjbGUtdGFzay0yXCI+PC9mZC1pY29uPlxufVxuPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuQGlmIChjb3VudGVyIHx8IGNvdW50ZXIgPT09IDApIHtcbiAgICA8c3BhbiBjbGFzcz1cImZkLWxpc3RfX2l0ZW0tY291bnRlclwiPlxuICAgICAgICB7eyBjb3VudGVyIHwgbnVtYmVyOiAnMS4wLTInIH19XG4gICAgPC9zcGFuPlxufVxuIl19
275
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9saXN0L2xpc3QtaXRlbS9saXN0LWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL2xpc3QvbGlzdC1pdGVtL2xpc3QtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBK0IsTUFBTSw0QkFBNEIsQ0FBQztBQUN2RyxPQUFPLEVBQW1CLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDMUYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzlGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxN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OztzQkFDTCxXQUFXO3VCQUFDLDZCQUE2QjtnQkFLMUMsT0FBTztzQkFETixNQUFNO2dCQUtQLElBQUk7c0JBREgsV0FBVzt1QkFBQywyQkFBMkI7Z0JBS3hDLFFBQVE7c0JBRFAsS0FBSztnQkFLRixLQUFLO3NCQURSLFlBQVk7dUJBQUMseUJBQXlCO2dCQWdCbkMsUUFBUTtzQkFEWCxZQUFZO3VCQUFDLHFCQUFxQjtnQkFnQm5DLGNBQWM7c0JBRGIsZUFBZTt1QkFBQyxzQkFBc0I7Z0JBS3ZDLE9BQU87c0JBRE4sZUFBZTt1QkFBQyxtQkFBbUIsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBb0IvQyxRQUFRO3NCQURuQixXQUFXO3VCQUFDLFdBQVc7Z0JBdUJ4QixjQUFjO3NCQURiLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQXVCbkMsWUFBWTtzQkFEWCxZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFZakMsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFpQnpCLFFBQVE7c0JBRGYsWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIERlc3Ryb3lSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBFTlRFUiwgU1BBQ0UgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHsgRGVjaW1hbFBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgS2V5VXRpbCwgTElTVF9JVEVNX0NPTVBPTkVOVCwgTGlzdEl0ZW1JbnRlcmZhY2UsIE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50LCBGRF9CVVRUT05fQ09NUE9ORU5UIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2J1dHRvbic7XG5pbXBvcnQgeyBDaGVja2JveENvbXBvbmVudCwgRkRfQ0hFQ0tCT1hfQ09NUE9ORU5UIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2NoZWNrYm94JztcbmltcG9ydCB7IEZvcm1JdGVtQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2Zvcm0nO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9pY29uJztcbmltcG9ydCB7IEZEX1JBRElPX0JVVFRPTl9DT01QT05FTlQsIFJhZGlvQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3JhZGlvJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IExpc3RMaW5rRGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9saXN0LWxpbmsuZGlyZWN0aXZlJztcbmltcG9ydCB7IExpc3RGb2N1c0l0ZW0gfSBmcm9tICcuLi9saXN0LWZvY3VzLWl0ZW0ubW9kZWwnO1xuaW1wb3J0IHsgRkRfTElTVF9MSU5LX0RJUkVDVElWRSwgRkRfTElTVF9VTlJFQURfSU5ESUNBVE9SIH0gZnJvbSAnLi4vdG9rZW5zJztcblxubGV0IGxpc3RJdGVtVW5pcXVlSWQgPSAwO1xuXG4vKipcbiAqIFRoZSBjb21wb25lbnQgdGhhdCByZXByZXNlbnRzIGEgbGlzdCBpdGVtLlxuICogVGhlIGxpc3QgaXRlbSBjYW4gY29udGFpbiBwbGFpbiB0ZXh0LCBsaW5rcyBvciBhY3Rpb25zLlxuICovXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnW2ZkTGlzdEl0ZW1dICxbZmQtbGlzdC1pdGVtXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2xpc3QtaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ZkLWxpc3RfX2l0ZW0nLFxuICAgICAgICAnW2F0dHIudGFiaW5kZXhdJzogJ19ub3JtYWxpemVkVGFiSW5kZXgkKCknXG4gICAgfSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTElTVF9JVEVNX0NPTVBPTkVOVCxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IExpc3RJdGVtQ29tcG9uZW50KVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBMaXN0Rm9jdXNJdGVtLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTGlzdEl0ZW1Db21wb25lbnQpXG4gICAgICAgIH1cbiAgICBdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbRm9ybUl0ZW1Db21wb25lbnQsIERlY2ltYWxQaXBlLCBJY29uQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBMaXN0SXRlbUNvbXBvbmVudDxUID0gYW55PiBleHRlbmRzIExpc3RGb2N1c0l0ZW08VD4gaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBMaXN0SXRlbUludGVyZmFjZSB7XG4gICAgLyoqIFdoZXRoZXIgbGlzdCBpdGVtIGlzIHNlbGVjdGVkICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlzLXNlbGVjdGVkJylcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1zZWxlY3RlZCcpXG4gICAgc2VsZWN0ZWQgPSBmYWxzZTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZXJlIGlzIG5vIGRhdGEgaW5zaWRlIGxpc3QgaXRlbSAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZC1saXN0X19pdGVtLS1uby1kYXRhJylcbiAgICBub0RhdGEgPSBmYWxzZTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZXJlIGlzIGl0ZW0gcGVyZm9ybXMgc29tZSBhY3Rpb24gKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmQtbGlzdF9faXRlbS0tYWN0aW9uJylcbiAgICBhY3Rpb24gPSBmYWxzZTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZXJlIGlzIGl0ZW0gcGVyZm9ybXMgc29tZSBhY3Rpb24gKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmQtbGlzdF9faXRlbS0taW50ZXJyYWN0aXZlJylcbiAgICBpbnRlcmFjdGl2ZSA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgbGlzdCBpdGVtIGNvbnRhaW5zIGJ1c3kgaW5kaWNhdG9yICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkLWxpc3RfX2l0ZW0tLWdyb3dpbmcnKVxuICAgIGdyb3dpbmcgPSBmYWxzZTtcblxuICAgIC8qKiBDb3VudGVyIG9uIGxpc3QgaXRlbSAqL1xuICAgIEBJbnB1dCgpXG4gICAgY291bnRlcjogbnVtYmVyO1xuXG4gICAgLyoqIFdoZXRoZXIgbGlzdCBpdGVtIHNob3VsZCBjb250YWluIGFkZGl0aW9uYWwgdW5SZWFkIHN0eWxlcyAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZC1saXN0X19pdGVtLS11bnJlYWQnKVxuICAgIHVucmVhZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgbGlzdCBpdGVtIGlzIGJ5bGluZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZC1saXN0X19pdGVtLS1ieWxpbmUnKVxuICAgIGJ5bGluZSA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gSW1wbGVtZW50YXRpb24gb2YgS2V5Ym9hcmRTdXBwb3J0SXRlbUludGVyZmFjZSB8IFRPRE8gUmV2aXNpdCBLZXlib2FyZFN1cHBvcnRJdGVtSW50ZXJmYWNlKi9cbiAgICBAT3V0cHV0KClcbiAgICBrZXlEb3duOiBFdmVudEVtaXR0ZXI8S2V5Ym9hcmRFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEtleWJvYXJkRXZlbnQ+KCk7XG5cbiAgICAvKiogV2hldGhlciBsaXN0IGl0ZW0gY29udGFpbnMgbGluayAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmQtbGlzdF9faXRlbS0tbGluaycpXG4gICAgbGluayA9IGZhbHNlO1xuXG4gICAgLyoqIEFyaWEtcm9sZSBhdHRyaWJ1dGUuICovXG4gICAgQElucHV0KClcbiAgICBhcmlhUm9sZTogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZChGRF9SQURJT19CVVRUT05fQ09NUE9ORU5UKVxuICAgIHNldCByYWRpbyh2YWx1ZTogUmFkaW9CdXR0b25Db21wb25lbnQpIHtcbiAgICAgICAgdGhpcy5fcmFkaW8gPSB2YWx1ZTtcbiAgICAgICAgaWYgKHRoaXMuX3JhZGlvICYmIHRoaXMuX3JhZGlvLnRhYkluZGV4ID09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuX3JhZGlvLnRhYkluZGV4ID0gLTE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLl9yb2xlID0gJ29wdGlvbic7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IHJhZGlvKCk6IFJhZGlvQnV0dG9uQ29tcG9uZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JhZGlvO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZChGRF9DSEVDS0JPWF9DT01QT05FTlQpXG4gICAgc2V0IGNoZWNrYm94KHZhbHVlOiBDaGVja2JveENvbXBvbmVudCkge1xuICAgICAgICB0aGlzLl9jaGVja2JveCA9IHZhbHVlO1xuICAgICAgICBpZiAodGhpcy5fY2hlY2tib3ggJiYgdGhpcy5fY2hlY2tib3gudGFiSW5kZXhWYWx1ZSA9PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLl9jaGVja2JveC50YWJJbmRleFZhbHVlID0gLTE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLl9yb2xlID0gJ29wdGlvbic7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IGNoZWNrYm94KCk6IENoZWNrYm94Q29tcG9uZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NoZWNrYm94O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihGRF9MSVNUX0xJTktfRElSRUNUSVZFKVxuICAgIGxpbmtEaXJlY3RpdmVzOiBRdWVyeUxpc3Q8TGlzdExpbmtEaXJlY3RpdmU+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkcmVuKEZEX0JVVFRPTl9DT01QT05FTlQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgICBidXR0b25zOiBRdWVyeUxpc3Q8QnV0dG9uQ29tcG9uZW50PjtcblxuICAgIC8qKiBAaGlkZGVuIEFuIFJ4SlMgU3ViamVjdCB0aGF0IHdpbGwga2lsbCB0aGUgZGF0YSBzdHJlYW0gdXBvbiBjb21wb25lbnTigJlzIGRlc3RydWN0aW9uIChmb3IgdW5zdWJzY3JpYmluZykgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfb25MaW5rTGlzdENoYW5nZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfcmFkaW86IFJhZGlvQnV0dG9uQ29tcG9uZW50O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9jaGVja2JveDogQ2hlY2tib3hDb21wb25lbnQ7XG5cbiAgICAvKiogQGhpZGRlbiBncm91cCBoZWFkZXIgaWQsIHRoYXQgaXMgYmVpbmcgc2V0IGJ5IHBhcmVudCBsaXN0IGNvbXBvbmVudCAqL1xuICAgIF9yZWxhdGVkR3JvdXBIZWFkZXJJZDogc3RyaW5nIHwgbnVsbDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKVxuICAgIHByaXZhdGUgZ2V0IHJvbGVBdHRyKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmFyaWFSb2xlIHx8IHRoaXMuX3JvbGU7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9yb2xlID0gJ2xpc3RpdGVtJzsgLy8gZGVmYXVsdCBmb3IgbGkgZWxlbWVudHNcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgX3VuaXF1ZUlkID0gJ2ZkLWxpc3QtaXRlbS0nICsgKytsaXN0SXRlbVVuaXF1ZUlkO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfbGlzdCA9IGluamVjdChGRF9MSVNUX1VOUkVBRF9JTkRJQ0FUT1IsIHtcbiAgICAgICAgb3B0aW9uYWw6IHRydWVcbiAgICB9KTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBfY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgICBrZXlkb3duSGFuZGxlcihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFtFTlRFUiwgU1BBQ0VdKSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuY2hlY2tib3gpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrYm94Lm5leHRWYWx1ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX211dGVFdmVudChldmVudCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMucmFkaW8pIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJhZGlvLmxhYmVsQ2xpY2tlZChldmVudCwgZmFsc2UpO1xuICAgICAgICAgICAgICAgIHRoaXMuX211dGVFdmVudChldmVudCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaW50ZXJhY3RpdmUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkID0gIXRoaXMuc2VsZWN0ZWQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fbXV0ZUV2ZW50KGV2ZW50KTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMubGluaykge1xuICAgICAgICAgICAgICAgIHRoaXMubGlua0RpcmVjdGl2ZXMuZmlyc3QuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2lzLWFjdGl2ZScpO1xuICAgICAgICAgICAgICAgIHRoaXMuX211dGVFdmVudChldmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5rZXlEb3duLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5dXAnLCBbJyRldmVudCddKVxuICAgIGtleXVwSGFuZGxlcihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFtFTlRFUiwgU1BBQ0VdKSAmJiB0aGlzLmxpbmspIHtcbiAgICAgICAgICAgIGNvbnN0IF9hbmNob3JFbGVtZW50ID0gdGhpcy5saW5rRGlyZWN0aXZlcy5maXJzdC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICBfYW5jaG9yRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdpcy1hY3RpdmUnKTtcbiAgICAgICAgICAgIF9hbmNob3JFbGVtZW50LmNsaWNrKCk7XG4gICAgICAgICAgICB0aGlzLl9tdXRlRXZlbnQoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEhhbmRsZXIgZm9yIG1vdXNlIGV2ZW50cyAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgICBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NsaWNrZWQkLm5leHQoZXZlbnQpO1xuICAgICAgICBpZiAodGhpcy5jaGVja2JveCAmJiAhdGhpcy5saW5rKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuY2hlY2tib3guZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKSkge1xuICAgICAgICAgICAgICAgIC8vIGNsaWNraW5nIG9uIHRoZSBjaGVja2JveCBpcyBub3Qgc3VwcHJlc3NlZFxuICAgICAgICAgICAgICAgIC8vIHNvIHdlIHNob3VsZCBvbmx5IHByb2Nlc3MgY2xpY2tzIGlmIGNsaWNrZWQgb24gdGhlIGxpc3QtaXRlbSwgbm90IGNoZWNrYm94IGl0c2VsZlxuICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tib3gubmV4dFZhbHVlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucmFkaW8gJiYgIXRoaXMubGluaykge1xuICAgICAgICAgICAgdGhpcy5yYWRpby5sYWJlbENsaWNrZWQoZXZlbnQsIGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RMaXN0ZW5lcignZm9jdXMnKVxuICAgIHByaXZhdGUgX29uRm9jdXMoKTogdm9pZCB7XG4gICAgICAgIC8vIFRyeSB0byBmaW5kIGlubmVyIGZvY3VzYWJsZSBsaW5rXG4gICAgICAgIGNvbnN0IHRhYmJhYmxlTGluayA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5mZC1saXN0X19saW5rLmZkLWxpc3RfX2xpbmstLWZvY3VzYWJsZScpO1xuICAgICAgICB0YWJiYWJsZUxpbms/LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2xpc3Rlbk9uTGlua1F1ZXJ5Q2hhbmdlKCk7XG4gICAgICAgIHRoaXMuX2xpc3Rlbk9uQnV0dG9uUXVlcnlDaGFuZ2UoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2xpc3Rlbk9uTGlua1F1ZXJ5Q2hhbmdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxpbmtEaXJlY3RpdmVzLmNoYW5nZXNcbiAgICAgICAgICAgIC5waXBlKHN0YXJ0V2l0aCh0aGlzLmxpbmtEaXJlY3RpdmVzKSwgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fb25MaW5rTGlzdENoYW5nZWQkLm5leHQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmxpbmsgPSB0aGlzLmxpbmtEaXJlY3RpdmVzLmxlbmd0aCA+IDA7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9saXN0ZW5PbkJ1dHRvblF1ZXJ5Q2hhbmdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmJ1dHRvbnMuY2hhbmdlcy5waXBlKHN0YXJ0V2l0aCgwKSwgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5idXR0b25zLmZvckVhY2godGhpcy5fYWRkQ2xhc3NUb0J1dHRvbnMpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2FkZENsYXNzVG9CdXR0b25zKGJ1dHRvbjogQnV0dG9uQ29tcG9uZW50KTogdm9pZCB7XG4gICAgICAgIGJ1dHRvbi5jbGFzcyArPSAnIGZkLWxpc3RfX2J1dHRvbic7XG4gICAgICAgIGJ1dHRvbi5idWlsZENvbXBvbmVudENzc0NsYXNzKCk7XG4gICAgICAgIGJ1dHRvbi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9tdXRlRXZlbnQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbn1cbiIsIkBpZiAoY2hlY2tib3ggfHwgcmFkaW8pIHtcbiAgICA8ZGl2IGZkLWZvcm0taXRlbSBjbGFzcz1cImZkLWxpc3RfX2Zvcm0taXRlbVwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJmZC1jaGVja2JveFwiPjwvbmctY29udGVudD5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZmQtcmFkaW8tYnV0dG9uXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxufVxuQGlmICh1bnJlYWQgJiYgKCFfbGlzdCB8fCBfbGlzdC5ieWxpbmUpKSB7XG4gICAgPGZkLWljb24gY2xhc3M9XCJmZC1saXN0X19ub3RpZmljYXRpb25cIiBnbHlwaD1cImNpcmNsZS10YXNrLTJcIj48L2ZkLWljb24+XG59XG48bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5AaWYgKGNvdW50ZXIgfHwgY291bnRlciA9PT0gMCkge1xuICAgIDxzcGFuIGNsYXNzPVwiZmQtbGlzdF9faXRlbS1jb3VudGVyXCI+XG4gICAgICAgIHt7IGNvdW50ZXIgfCBudW1iZXI6ICcxLjAtMicgfX1cbiAgICA8L3NwYW4+XG59XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Directive, HostBinding, Input, EventEmitter, Output, HostListener, ElementRef, inject, InjectionToken, isDevMode, DestroyRef, forwardRef, Component, ChangeDetectionStrategy, ViewEncapsulation, ContentChild, ContentChildren, signal, computed, Renderer2, effect, Optional, NgModule } from '@angular/core';
2
+ import { Directive, HostBinding, Input, EventEmitter, Output, HostListener, ElementRef, inject, InjectionToken, isDevMode, signal, computed, DestroyRef, forwardRef, Component, ChangeDetectionStrategy, ViewEncapsulation, ContentChild, ContentChildren, Renderer2, effect, Optional, NgModule } from '@angular/core';
3
3
  import { __metadata, __decorate } from 'tslib';
4
4
  import * as i1$1 from '@fundamental-ngx/cdk/utils';
5
5
  import { applyCssClass, KeyUtil, LIST_ITEM_COMPONENT, destroyObservable, KeyboardSupportService } from '@fundamental-ngx/cdk/utils';
@@ -494,17 +494,23 @@ class ListFocusItem {
494
494
  /** @hidden */
495
495
  this._clicked$ = new Subject();
496
496
  /** @hidden */
497
- this._isFirstItem = false;
497
+ this._isFirstItem$ = signal(false);
498
+ /** @hidden */
499
+ this._tabIndex$ = signal(undefined);
500
+ /** @hidden */
501
+ this._normalizedTabIndex$ = computed(() => {
502
+ if (this._isFirstItem$() && isNaN(this._tabIndex$())) {
503
+ return 0;
504
+ }
505
+ return this._tabIndex$() ?? -1;
506
+ });
498
507
  }
499
508
  /** tab index attribute */
500
509
  set tabindex(value) {
501
- this._tabIndex = coerceNumberProperty(value, -1);
510
+ this._tabIndex$.set(coerceNumberProperty(value, -1));
502
511
  }
503
512
  get tabindex() {
504
- if (this._isFirstItem && isNaN(this._tabIndex)) {
505
- return 0;
506
- }
507
- return this._tabIndex ?? -1;
513
+ return this._normalizedTabIndex$();
508
514
  }
509
515
  /** @hidden */
510
516
  onFocus(event) {
@@ -522,18 +528,15 @@ class ListFocusItem {
522
528
  }
523
529
  /** @hidden */
524
530
  setIsFirst(value) {
525
- this._isFirstItem = value;
531
+ this._isFirstItem$.set(value);
526
532
  }
527
533
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ListFocusItem, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
528
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.8", type: ListFocusItem, inputs: { tabindex: "tabindex", value: "value" }, host: { listeners: { "focusin": "onFocus($event)" }, properties: { "attr.tabindex": "this.tabindex" } }, ngImport: i0 }); }
534
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.8", type: ListFocusItem, inputs: { tabindex: "tabindex", value: "value" }, host: { listeners: { "focusin": "onFocus($event)" } }, ngImport: i0 }); }
529
535
  }
530
536
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ListFocusItem, decorators: [{
531
537
  type: Directive
532
538
  }], propDecorators: { tabindex: [{
533
539
  type: Input
534
- }, {
535
- type: HostBinding,
536
- args: ['attr.tabindex']
537
540
  }], value: [{
538
541
  type: Input
539
542
  }], onFocus: [{
@@ -699,7 +702,7 @@ class ListItemComponent extends ListFocusItem {
699
702
  event.preventDefault();
700
703
  }
701
704
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ListItemComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
702
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.8", type: ListItemComponent, isStandalone: true, selector: "[fdListItem] ,[fd-list-item]", inputs: { selected: "selected", noData: "noData", action: "action", interactive: "interactive", growing: "growing", counter: "counter", unread: "unread", byline: "byline", ariaRole: "ariaRole" }, outputs: { keyDown: "keyDown" }, host: { listeners: { "keydown": "keydownHandler($event)", "keyup": "keyupHandler($event)", "click": "onClick($event)", "focus": "_onFocus()" }, properties: { "class.is-selected": "this.selected", "attr.aria-selected": "this.selected", "class.fd-list__item--no-data": "this.noData", "class.fd-list__item--action": "this.action", "class.fd-list__item--interractive": "this.interactive", "class.fd-list__item--growing": "this.growing", "class.fd-list__item--unread": "this.unread", "class.fd-list__item--byline": "this.byline", "class.fd-list__item--link": "this.link", "attr.role": "this.roleAttr" }, classAttribute: "fd-list__item" }, providers: [
705
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.8", type: ListItemComponent, isStandalone: true, selector: "[fdListItem] ,[fd-list-item]", inputs: { selected: "selected", noData: "noData", action: "action", interactive: "interactive", growing: "growing", counter: "counter", unread: "unread", byline: "byline", ariaRole: "ariaRole" }, outputs: { keyDown: "keyDown" }, host: { listeners: { "keydown": "keydownHandler($event)", "keyup": "keyupHandler($event)", "click": "onClick($event)", "focus": "_onFocus()" }, properties: { "attr.tabindex": "_normalizedTabIndex$()", "class.is-selected": "this.selected", "attr.aria-selected": "this.selected", "class.fd-list__item--no-data": "this.noData", "class.fd-list__item--action": "this.action", "class.fd-list__item--interractive": "this.interactive", "class.fd-list__item--growing": "this.growing", "class.fd-list__item--unread": "this.unread", "class.fd-list__item--byline": "this.byline", "class.fd-list__item--link": "this.link", "attr.role": "this.roleAttr" }, classAttribute: "fd-list__item" }, providers: [
703
706
  {
704
707
  provide: LIST_ITEM_COMPONENT,
705
708
  useExisting: forwardRef(() => ListItemComponent)
@@ -713,7 +716,8 @@ class ListItemComponent extends ListFocusItem {
713
716
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ListItemComponent, decorators: [{
714
717
  type: Component,
715
718
  args: [{ selector: '[fdListItem] ,[fd-list-item]', host: {
716
- class: 'fd-list__item'
719
+ class: 'fd-list__item',
720
+ '[attr.tabindex]': '_normalizedTabIndex$()'
717
721
  }, providers: [
718
722
  {
719
723
  provide: LIST_ITEM_COMPONENT,
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-core-list.mjs","sources":["../../../../libs/core/list/directives/byline/list-byline-left.directive.ts","../../../../libs/core/list/directives/byline/list-byline-right.directive.ts","../../../../libs/core/list/directives/byline/list-byline.directive.ts","../../../../libs/core/list/directives/byline/list-content.directive.ts","../../../../libs/core/list/directives/byline/list-thumbnail.directive.ts","../../../../libs/core/list/directives/list-footer.directive.ts","../../../../libs/core/list/directives/list-group-header.directive.ts","../../../../libs/core/list/directives/list-icon.directive.ts","../../../../libs/core/list/tokens.ts","../../../../libs/core/list/directives/list-link.directive.ts","../../../../libs/core/list/directives/list-navigation-item-arrow.directive.ts","../../../../libs/core/list/directives/list-navigation-item-text.directive.ts","../../../../libs/core/list/directives/list-secondary.directive.ts","../../../../libs/core/list/directives/list-title-text.directive.ts","../../../../libs/core/list/directives/list-title.directive.ts","../../../../libs/core/list/list-focus-item.model.ts","../../../../libs/core/list/list-item/list-item.component.ts","../../../../libs/core/list/list-item/list-item.component.html","../../../../libs/core/list/list-message.directive.ts","../../../../libs/core/list/list-navigation-item/list-navigation-item.component.ts","../../../../libs/core/list/list-navigation-item/list-navigation-item.component.html","../../../../libs/core/list/list.component.ts","../../../../libs/core/list/list.module.ts","../../../../libs/core/list/fundamental-ngx-core-list.ts"],"sourcesContent":["import { Directive, HostBinding, Input } from '@angular/core';\n\n@Directive({\n selector: '[fdListBylineLeft], [fd-list-byline-left]',\n standalone: true\n})\nexport class ListBylineLeftDirective {\n /** @hidden */\n @HostBinding('class.fd-list__byline-left')\n fdListBylineLeftClass = true;\n\n /** Whether or not this should be wrapped, when too much text. */\n @Input()\n @HostBinding('class.fd-list__byline-left--wrap')\n wrap = false;\n}\n","import { Directive, Input } from '@angular/core';\n\nexport type ListBylineStatus = 'neutral' | 'positive' | 'negative' | 'critical' | 'informative';\n\n@Directive({\n selector: '[fdListBylineRight], [fd-list-byline-right]',\n host: {\n class: 'fd-list__byline-right',\n '[class.fd-list__byline-right--neutral]': 'status === \"neutral\"',\n '[class.fd-list__byline-right--positive]': 'status === \"positive\"',\n '[class.fd-list__byline-right--negative]': 'status === \"negative\"',\n '[class.fd-list__byline-right--critical]': 'status === \"critical\"',\n '[class.fd-list__byline-right--informative]': 'status === \"informative\"',\n '[class.fd-list__byline-right--wrap]': 'wrap'\n },\n standalone: true\n})\nexport class ListBylineRightDirective {\n /** Semantic status of byline\n * Possible options are:\n * 'neutral' | 'positive' | 'negative' | 'critical' | 'informative'\n */\n @Input()\n status: ListBylineStatus;\n\n /** Whether or not this should be wrapped, when too much text. */\n @Input()\n wrap = false;\n}\n","import { Directive, Input } from '@angular/core';\n\n@Directive({\n selector: '[fdListByline], [fd-list-byline]',\n host: {\n class: 'fd-list__byline',\n '[class.fd-list__byline--2-col]': 'twoCol',\n '[class.fd-list__byline--wrap]': 'wrap'\n },\n standalone: true\n})\nexport class ListBylineDirective {\n /** Whether or not this is a 2-column byline. */\n @Input()\n twoCol = false;\n\n /** Whether or not this should be wrapped, when too much text. */\n @Input()\n wrap = false;\n}\n","import { Directive, HostBinding, Input } from '@angular/core';\n\n@Directive({\n selector: '[fdListContent], [fd-list-content]',\n standalone: true\n})\nexport class ListContentDirective {\n /** @hidden */\n @HostBinding('class.fd-list__content')\n fdListContentClass = true;\n\n /** Whether or not this is a 2-column content. */\n @Input()\n @HostBinding('class.fd-list__content--2-col')\n twoCol = false;\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[fdListThumbnail], [fd-list-thumbnail]',\n standalone: true\n})\nexport class ListThumbnailDirective {\n /** @hidden */\n @HostBinding('class.fd-list__thumbnail')\n fdListThumbnailClass = true;\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[fdListFooter], [fd-list-footer]',\n standalone: true\n})\nexport class ListFooterDirective {\n /** @hidden */\n @HostBinding('class.fd-list__footer')\n fdListFooterClass = true;\n}\n","import { Directive, ElementRef, EventEmitter, HostBinding, HostListener, Input, Output } from '@angular/core';\n\nlet uniqueId = 0;\n\n@Directive({\n selector: '[fdListGroupHeader], [fd-list-group-header]',\n host: {\n '[style.outline]': '\"none\"',\n '[class.fd-list__item]': 'true',\n '[class.fd-list__group-header]': 'true'\n },\n standalone: true\n})\nexport class ListGroupHeaderDirective {\n /** id of an element to be applied */\n @Input()\n @HostBinding('attr.id')\n nativeElementId: string | null = `fd-list-group-header-${++uniqueId}`;\n\n /** @hidden Implementation of KeyboardSupportItemInterface */\n @Output()\n keyDown: EventEmitter<KeyboardEvent> = new EventEmitter<KeyboardEvent>();\n\n /** @hidden */\n constructor(readonly elementRef: ElementRef) {}\n\n /** @hidden */\n @HostListener('keydown', ['$event'])\n keydownHandler(event: KeyboardEvent): void {\n this.keyDown.emit(event);\n }\n}\n","import { Directive, ElementRef, HostBinding, Input, OnChanges, OnInit, inject } from '@angular/core';\nimport { CssClassBuilder, applyCssClass } from '@fundamental-ngx/cdk/utils';\nimport { FD_DEFAULT_ICON_FONT_FAMILY, IconFont, fdBuildIconClass } from '@fundamental-ngx/core/icon';\n\n@Directive({\n selector: '[fdListIcon], [fd-list-icon]',\n standalone: true\n})\nexport class ListIconDirective implements OnChanges, OnInit, CssClassBuilder {\n /** The icon name to display. See the icon page for the list of icons\n * here: https://sap.github.io/fundamental-ngx/icon\n * */\n @Input()\n glyph: string;\n\n /** Glyph font family */\n @Input()\n glyphFont: IconFont = FD_DEFAULT_ICON_FONT_FAMILY;\n\n /** Apply user custom styles */\n @Input()\n class: string;\n\n /** Role attribute for list icon */\n @Input()\n @HostBinding('attr.role')\n role = 'presentation';\n\n /** @hidden */\n readonly elementRef = inject(ElementRef);\n\n /** @hidden\n * CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return ['fd-list__icon', this.glyph ? fdBuildIconClass(this.glyphFont, this.glyph) : '', this.class];\n }\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { ListComponentInterface } from './list-component.interface';\n\nexport const FD_LIST_MESSAGE_DIRECTIVE = new InjectionToken('FdListMessageDirective');\nexport const FD_LIST_LINK_DIRECTIVE = new InjectionToken('FdListLinkDirective');\nexport const FD_LIST_COMPONENT = new InjectionToken<ListComponentInterface>('ListComponent');\n\nexport const FD_LIST_UNREAD_INDICATOR = new InjectionToken<ListComponentInterface>('ListUnreadIndicator');\n","import { Directive, ElementRef, HostBinding, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { FD_LIST_LINK_DIRECTIVE } from '../tokens';\n\n@Directive({\n selector: '[fd-list-link], [fdListLink]',\n host: {\n '[attr.tabindex]': '-1'\n },\n providers: [\n {\n provide: FD_LIST_LINK_DIRECTIVE,\n useExisting: ListLinkDirective\n }\n ],\n standalone: true\n})\nexport class ListLinkDirective implements OnChanges {\n /** Defines if navigation indicator arrow should be included inside list item */\n @Input()\n @HostBinding('class.fd-list__link--navigation-indicator')\n navigationIndicator = false;\n\n /** Defines if link should be treated as a navigated */\n @Input()\n @HostBinding('class.is-navigated')\n navigated = false;\n\n /** Whether to mark link as focusable. If true, list item will shift focus from itself to the link. */\n @Input()\n @HostBinding('class.fd-list__link--focusable')\n focusable = false;\n\n /** @hidden */\n @HostBinding('class.fd-list__link')\n fdListLinkClass = true;\n\n /** Emits when some of the properties, that should be read by screenreader, are changed */\n readonly _onReadablePropertyChanged$ = new Subject<void>();\n\n /** @hidden */\n constructor(public elementRef: ElementRef) {}\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.navigationIndicator || changes.navigated) {\n this._onReadablePropertyChanged$.next();\n }\n }\n}\n","import { Directive, HostBinding, Input } from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n\n@Directive({\n selector: '[fd-list-navigation-item-arrow], [fdListNavigaitonItemArrow]',\n host: {\n tabindex: '-1',\n role: 'presentation'\n },\n standalone: true\n})\nexport class ListNavigationItemArrowDirective {\n /** @hidden */\n @HostBinding('class.fd-list__navigation-item-arrow')\n navigationItemArrowClass = true;\n\n /** @hidden */\n @HostBinding('class.sap-icon--navigation-right-arrow')\n rightArrowClass = true;\n\n /** @hidden */\n @HostBinding('class.sap-icon--navigation-down-arrow')\n downArrowClass = false;\n\n /** @hidden */\n @HostBinding('class.is-expanded')\n expanded = false;\n\n /** Aria-hidden attribute value. */\n @Input()\n @HostBinding('attr.aria-hidden')\n ariaHidden: Nullable<boolean> = true;\n\n /** @hidden */\n _setExpanded(expanded: boolean): void {\n if (this.expanded !== expanded) {\n this.rightArrowClass = !this.rightArrowClass;\n this.downArrowClass = !this.downArrowClass;\n }\n this.expanded = expanded;\n }\n}\n","import { Directive, ElementRef, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[fd-list-navigation-item-text], [fdListNavigaitonItemText]',\n standalone: true\n})\nexport class ListNavigationItemTextDirective {\n /** @hidden */\n @HostBinding('class.fd-list__navigation-item-text')\n navigationItemTextClass = true;\n\n /** @hidden */\n constructor(public readonly elementRef: ElementRef) {}\n}\n","import { NgClass } from '@angular/common';\nimport { Directive, inject, Input, isDevMode, OnChanges } from '@angular/core';\n\nexport const _secondaryListItemTypes = ['positive', 'critical', 'negative', 'informative'] as const;\n\nexport type SecondaryListItemType = (typeof _secondaryListItemTypes)[number];\n\n@Directive({\n selector: '[fd-list-secondary], [fdListSecondary]',\n standalone: true,\n hostDirectives: [NgClass]\n})\nexport class ListSecondaryDirective implements OnChanges {\n /**\n * Type of the secondary list item.\n */\n @Input()\n type: SecondaryListItemType;\n\n /** @hidden */\n ngClass = inject(NgClass);\n\n /** @hidden */\n constructor() {\n this.ngClass.ngClass = ['fd-list__secondary'];\n }\n\n /** @hidden */\n ngOnChanges(): void {\n if (this.type && !_secondaryListItemTypes.includes(this.type) && isDevMode()) {\n console.warn(\n `Unknown type of the secondary list item: ${this.type}. Allowed types are: ${JSON.stringify(\n _secondaryListItemTypes\n )}`\n );\n }\n this.ngClass.ngClass = ['fd-list__secondary', `fd-list__secondary--${this.type}`];\n }\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[fd-list-title-text], [fdListTitleText]',\n standalone: true\n})\nexport class ListTitleTextDirective {\n /** @hidden */\n @HostBinding('class.fd-list__title-text')\n fdListTitleText = true;\n}\n","import { Directive, ElementRef, HostBinding, Input, OnInit } from '@angular/core';\n\n@Directive({\n selector: '[fd-list-title], [fdListTitle]',\n standalone: true\n})\nexport class ListTitleDirective implements OnInit {\n /** @hidden */\n @HostBinding('class.fd-list__title')\n fdListTitleClass = true;\n\n /** Whether or not this should be wrapped, when too much text. */\n @Input()\n @HostBinding('class.fd-list__title--wrap')\n wrap = false;\n\n /** @hidden */\n constructor(public elRef: ElementRef) {}\n\n /** @hidden */\n ngOnInit(): void {\n const nativeEl = this.elRef.nativeElement;\n if (nativeEl.tagName === 'A') {\n nativeEl.setAttribute('tabIndex', '-1');\n }\n }\n}\n","import { coerceNumberProperty } from '@angular/cdk/coercion';\nimport { Directive, ElementRef, EventEmitter, HostBinding, HostListener, Input, inject } from '@angular/core';\nimport { KeyboardSupportItemInterface } from '@fundamental-ngx/cdk/utils';\nimport { Subject } from 'rxjs';\n\n@Directive()\nexport abstract class ListFocusItem<T = any> implements KeyboardSupportItemInterface {\n /** tab index attribute */\n @Input()\n @HostBinding('attr.tabindex')\n set tabindex(value: number) {\n this._tabIndex = coerceNumberProperty(value, -1);\n }\n get tabindex(): number {\n if (this._isFirstItem && isNaN(this._tabIndex as number)) {\n return 0;\n }\n return this._tabIndex ?? -1;\n }\n\n /**\n * Value of the list item.\n * Used for dropdown-based controls such as combobox, select, etc.\n */\n @Input()\n value: T;\n\n /** @hidden Implementation of KeyboardSupportItemInterface */\n keyDown: EventEmitter<KeyboardEvent> = new EventEmitter<KeyboardEvent>();\n\n /** @hidden */\n readonly elementRef: ElementRef = inject(ElementRef);\n\n /** @hidden */\n readonly _focused$ = new Subject<{ focusedWithin: boolean }>();\n\n /** @hidden */\n readonly _clicked$ = new Subject<MouseEvent>();\n\n /** @hidden */\n protected _isFirstItem = false;\n\n /** @hidden */\n protected _tabIndex: number | undefined;\n\n /** @hidden */\n @HostListener('focusin', ['$event'])\n protected onFocus(event: FocusEvent): void {\n this._focused$.next({\n focusedWithin: event.target !== this.elementRef?.nativeElement\n });\n }\n\n /** @hidden */\n click(): void {\n this.elementRef?.nativeElement?.click();\n }\n\n /** @hidden */\n focus(): void {\n this.elementRef?.nativeElement?.focus();\n }\n\n /** @hidden */\n setIsFirst(value: boolean): void {\n this._isFirstItem = value;\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n DestroyRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n HostListener,\n inject,\n Input,\n Output,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { ENTER, SPACE } from '@angular/cdk/keycodes';\nimport { DecimalPipe } from '@angular/common';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { KeyUtil, LIST_ITEM_COMPONENT, ListItemInterface, Nullable } from '@fundamental-ngx/cdk/utils';\nimport { ButtonComponent, FD_BUTTON_COMPONENT } from '@fundamental-ngx/core/button';\nimport { CheckboxComponent, FD_CHECKBOX_COMPONENT } from '@fundamental-ngx/core/checkbox';\nimport { FormItemComponent } from '@fundamental-ngx/core/form';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport { FD_RADIO_BUTTON_COMPONENT, RadioButtonComponent } from '@fundamental-ngx/core/radio';\nimport { Subject } from 'rxjs';\nimport { startWith } from 'rxjs/operators';\nimport { ListLinkDirective } from '../directives/list-link.directive';\nimport { ListFocusItem } from '../list-focus-item.model';\nimport { FD_LIST_LINK_DIRECTIVE, FD_LIST_UNREAD_INDICATOR } from '../tokens';\n\nlet listItemUniqueId = 0;\n\n/**\n * The component that represents a list item.\n * The list item can contain plain text, links or actions.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[fdListItem] ,[fd-list-item]',\n templateUrl: './list-item.component.html',\n host: {\n class: 'fd-list__item'\n },\n providers: [\n {\n provide: LIST_ITEM_COMPONENT,\n useExisting: forwardRef(() => ListItemComponent)\n },\n {\n provide: ListFocusItem,\n useExisting: forwardRef(() => ListItemComponent)\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [FormItemComponent, DecimalPipe, IconComponent]\n})\nexport class ListItemComponent<T = any> extends ListFocusItem<T> implements AfterContentInit, ListItemInterface {\n /** Whether list item is selected */\n @Input()\n @HostBinding('class.is-selected')\n @HostBinding('attr.aria-selected')\n selected = false;\n\n /** Whether there is no data inside list item */\n @Input()\n @HostBinding('class.fd-list__item--no-data')\n noData = false;\n\n /** Whether there is item performs some action */\n @Input()\n @HostBinding('class.fd-list__item--action')\n action = false;\n\n /** Whether there is item performs some action */\n @Input()\n @HostBinding('class.fd-list__item--interractive')\n interactive = false;\n\n /** Whether list item contains busy indicator */\n @Input()\n @HostBinding('class.fd-list__item--growing')\n growing = false;\n\n /** Counter on list item */\n @Input()\n counter: number;\n\n /** Whether list item should contain additional unRead styles */\n @Input()\n @HostBinding('class.fd-list__item--unread')\n unread = false;\n\n /**\n * Whether the list item is byline\n */\n @Input()\n @HostBinding('class.fd-list__item--byline')\n byline = false;\n\n /** @hidden Implementation of KeyboardSupportItemInterface | TODO Revisit KeyboardSupportItemInterface*/\n @Output()\n keyDown: EventEmitter<KeyboardEvent> = new EventEmitter<KeyboardEvent>();\n\n /** Whether list item contains link */\n @HostBinding('class.fd-list__item--link')\n link = false;\n\n /** Aria-role attribute. */\n @Input()\n ariaRole: Nullable<string>;\n\n /** @hidden */\n @ContentChild(FD_RADIO_BUTTON_COMPONENT)\n set radio(value: RadioButtonComponent) {\n this._radio = value;\n if (this._radio && this._radio.tabIndex == null) {\n this._radio.tabIndex = -1;\n }\n if (value) {\n this._role = 'option';\n }\n }\n get radio(): RadioButtonComponent {\n return this._radio;\n }\n\n /** @hidden */\n @ContentChild(FD_CHECKBOX_COMPONENT)\n set checkbox(value: CheckboxComponent) {\n this._checkbox = value;\n if (this._checkbox && this._checkbox.tabIndexValue == null) {\n this._checkbox.tabIndexValue = -1;\n }\n if (value) {\n this._role = 'option';\n }\n }\n get checkbox(): CheckboxComponent {\n return this._checkbox;\n }\n\n /** @hidden */\n @ContentChildren(FD_LIST_LINK_DIRECTIVE)\n linkDirectives: QueryList<ListLinkDirective>;\n\n /** @hidden */\n @ContentChildren(FD_BUTTON_COMPONENT, { descendants: true })\n buttons: QueryList<ButtonComponent>;\n\n /** @hidden An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing) */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n private readonly _onLinkListChanged$ = new Subject<void>();\n\n /** @hidden */\n private _radio: RadioButtonComponent;\n\n /** @hidden */\n private _checkbox: CheckboxComponent;\n\n /** @hidden group header id, that is being set by parent list component */\n _relatedGroupHeaderId: string | null;\n\n /** @hidden */\n @HostBinding('attr.role')\n private get roleAttr(): string {\n return this.ariaRole || this._role;\n }\n\n /** @hidden */\n private _role = 'listitem'; // default for li elements\n\n /** @hidden */\n readonly _uniqueId = 'fd-list-item-' + ++listItemUniqueId;\n\n /** @hidden */\n readonly _list = inject(FD_LIST_UNREAD_INDICATOR, {\n optional: true\n });\n\n /** @hidden */\n constructor(private readonly _changeDetectorRef: ChangeDetectorRef) {\n super();\n }\n\n /** @hidden */\n @HostListener('keydown', ['$event'])\n keydownHandler(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, [ENTER, SPACE])) {\n if (this.checkbox) {\n this.checkbox.nextValue();\n this._muteEvent(event);\n } else if (this.radio) {\n this.radio.labelClicked(event, false);\n this._muteEvent(event);\n } else if (this.interactive) {\n this.selected = !this.selected;\n this._muteEvent(event);\n return;\n } else if (this.link) {\n this.linkDirectives.first.elementRef.nativeElement.classList.add('is-active');\n this._muteEvent(event);\n }\n }\n this.keyDown.emit(event);\n }\n\n /** @hidden */\n @HostListener('keyup', ['$event'])\n keyupHandler(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, [ENTER, SPACE]) && this.link) {\n const _anchorElement = this.linkDirectives.first.elementRef.nativeElement;\n _anchorElement.classList.remove('is-active');\n _anchorElement.click();\n this._muteEvent(event);\n }\n }\n\n /** Handler for mouse events */\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent): void {\n this._clicked$.next(event);\n if (this.checkbox && !this.link) {\n if (!this.checkbox.elementRef.nativeElement.contains(event.target as Node)) {\n // clicking on the checkbox is not suppressed\n // so we should only process clicks if clicked on the list-item, not checkbox itself\n this.checkbox.nextValue();\n }\n }\n if (this.radio && !this.link) {\n this.radio.labelClicked(event, false);\n }\n }\n\n /** @hidden */\n @HostListener('focus')\n private _onFocus(): void {\n // Try to find inner focusable link\n const tabbableLink = this.elementRef.nativeElement.querySelector('.fd-list__link.fd-list__link--focusable');\n tabbableLink?.focus();\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._listenOnLinkQueryChange();\n this._listenOnButtonQueryChange();\n }\n\n /** @hidden */\n private _listenOnLinkQueryChange(): void {\n this.linkDirectives.changes\n .pipe(startWith(this.linkDirectives), takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n this._onLinkListChanged$.next();\n this.link = this.linkDirectives.length > 0;\n this._changeDetectorRef.detectChanges();\n });\n }\n\n /** @hidden */\n private _listenOnButtonQueryChange(): void {\n this.buttons.changes.pipe(startWith(0), takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n this.buttons.forEach(this._addClassToButtons);\n });\n }\n\n /** @hidden */\n private _addClassToButtons(button: ButtonComponent): void {\n button.class += ' fd-list__button';\n button.buildComponentCssClass();\n button.detectChanges();\n }\n\n /** @hidden */\n private _muteEvent(event: Event): void {\n event.stopPropagation();\n event.preventDefault();\n }\n}\n","@if (checkbox || radio) {\n <div fd-form-item class=\"fd-list__form-item\">\n <ng-content select=\"fd-checkbox\"></ng-content>\n <ng-content select=\"fd-radio-button\"></ng-content>\n </div>\n}\n@if (unread && (!_list || _list.byline)) {\n <fd-icon class=\"fd-list__notification\" glyph=\"circle-task-2\"></fd-icon>\n}\n<ng-content></ng-content>\n@if (counter || counter === 0) {\n <span class=\"fd-list__item-counter\">\n {{ counter | number: '1.0-2' }}\n </span>\n}\n","import { Directive, ElementRef, Input, OnChanges, OnInit } from '@angular/core';\nimport { FormStates } from '@fundamental-ngx/cdk/forms';\nimport { CssClassBuilder, applyCssClass } from '@fundamental-ngx/cdk/utils';\nimport { FD_LIST_MESSAGE_DIRECTIVE } from './tokens';\n\n@Directive({\n selector: '[fd-list-message], [fdListMessage]',\n providers: [\n {\n provide: FD_LIST_MESSAGE_DIRECTIVE,\n useExisting: ListMessageDirective\n }\n ],\n standalone: true\n})\nexport class ListMessageDirective implements OnChanges, OnInit, CssClassBuilder {\n /** Type of the message. Can be 'success' | 'error' | 'warning' | 'information' */\n @Input()\n type: FormStates;\n\n /** Apply user custom styles */\n @Input()\n class: string;\n\n /** @hidden */\n constructor(public readonly elementRef: ElementRef) {}\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden\n * CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return ['fd-list__message', this.type ? 'fd-list__message--' + this.type : '', this.class];\n }\n}\n","import { FocusableOption } from '@angular/cdk/a11y';\nimport { ENTER, LEFT_ARROW, RIGHT_ARROW, SPACE } from '@angular/cdk/keycodes';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n AfterContentInit,\n AfterViewInit,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n Optional,\n QueryList,\n Renderer2,\n computed,\n effect,\n forwardRef,\n inject,\n signal\n} from '@angular/core';\nimport { KeyUtil, RtlService } from '@fundamental-ngx/cdk/utils';\nimport { FD_ICON_COMPONENT, IconComponent } from '@fundamental-ngx/core/icon';\nimport { Subject } from 'rxjs';\nimport { ListNavigationItemArrowDirective } from '../directives/list-navigation-item-arrow.directive';\nimport { ListNavigationItemTextDirective } from '../directives/list-navigation-item-text.directive';\nimport { ListComponentInterface } from '../list-component.interface';\nimport { FD_LIST_COMPONENT } from '../tokens';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[fd-list-navigation-item], [fdListNavigaitonItem]',\n templateUrl: './list-navigation-item.component.html',\n styleUrl: './list-navigation-item.component.scss',\n host: {\n role: 'treeitem'\n },\n standalone: true,\n imports: [NgTemplateOutlet, IconComponent]\n})\nexport class ListNavigationItemComponent implements AfterContentInit, AfterViewInit, FocusableOption {\n /** Whether or not the list item is expanded. */\n @Input()\n @HostBinding('class.is-expanded')\n expanded = false;\n\n /** Whether or not this list item is indicated for navigation. */\n @Input()\n @HostBinding('class.fd-list__navigation-item--indicated')\n indicated = false;\n\n /** @hidden */\n @HostBinding('class.fd-list__navigation-item')\n _navigationItemClass = true;\n\n /** @hidden */\n @HostBinding('class.fd-list__navigation-item--expandable')\n _isExpandable = false;\n\n /** @hidden */\n @HostBinding('attr.tabindex')\n _tabIndex;\n\n /** @hidden */\n @HostBinding('attr.aria-level')\n _ariaLevel: number;\n\n /** @hidden */\n @ContentChild(FD_LIST_COMPONENT)\n _listComponent: ListComponentInterface;\n\n /** @hidden */\n @ContentChild(ListNavigationItemArrowDirective)\n _listNavigationItemArrow: ListNavigationItemArrowDirective;\n\n /** @hidden */\n @ContentChild(FD_ICON_COMPONENT)\n _iconComponent: IconComponent;\n\n /** @hidden */\n @ContentChild(ListNavigationItemTextDirective)\n _text: ListNavigationItemTextDirective;\n\n /** @hidden */\n @ContentChildren(forwardRef(() => ListNavigationItemComponent), { descendants: true })\n _childItems: QueryList<ListNavigationItemComponent>;\n\n /** @hidden */\n @HostBinding('attr.aria-expanded')\n private get _ariaExpanded(): boolean | null {\n return this._isExpandable ? this._expanded : null;\n }\n\n /** @hidden */\n _condensed = signal(false);\n\n /** @hidden */\n _expanded = false;\n\n /** @hidden */\n _innerText: string;\n\n /** @hidden */\n readonly _focused$ = new Subject<boolean>();\n\n /** @hidden */\n readonly _clicked$ = new Subject<MouseEvent>();\n\n /**\n * @hidden\n * false if list-item is within unexpanded list (not visible to user until list expanded). default is true\n */\n _isItemVisible = true;\n\n /** @hidden handles rtl service */\n private readonly _rtl$ = computed(() => !!this._rtlService?.rtlSignal());\n\n /** @hidden */\n private readonly _renderer2 = inject(Renderer2);\n\n /** @hidden */\n constructor(\n private _elementRef: ElementRef,\n @Optional() private _rtlService: RtlService\n ) {\n effect(() => {\n if (this._condensed()) {\n this._renderer2.addClass(this._elementRef.nativeElement, 'fd-list__navigation-item--condensed');\n } else {\n this._renderer2.removeClass(this._elementRef.nativeElement, 'fd-list__navigation-item--condensed');\n }\n });\n }\n\n /** @hidden */\n @HostListener('click', ['$event'])\n onItemClick(event: MouseEvent): void {\n event.stopPropagation();\n this._handleExpandedChanges(!this.expanded);\n }\n\n /** @hidden */\n @HostListener('keydown', ['$event'])\n keyDownHandler(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, [RIGHT_ARROW])) {\n event.preventDefault();\n this._handleExpandedChanges(!this._rtl$());\n }\n if (KeyUtil.isKeyCode(event, [LEFT_ARROW])) {\n event.preventDefault();\n this._handleExpandedChanges(this._rtl$());\n }\n if (KeyUtil.isKeyCode(event, [SPACE, ENTER])) {\n event.preventDefault();\n event.stopPropagation();\n this._handleExpandedChanges(!this.expanded);\n }\n }\n\n /** @hidden */\n @HostListener('focus', ['$event'])\n protected onFocus(event: FocusEvent): void {\n this._focused$.next(event.target !== this._elementRef?.nativeElement);\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n if (this._listComponent) {\n this._isExpandable = true;\n this._listComponent.role = 'group';\n } else {\n this._tabIndex = 0;\n }\n if (this._iconComponent) {\n this._iconComponent._navigationItemIcon = true;\n this._iconComponent.ariaHidden = true;\n }\n this._innerText = this._text.elementRef.nativeElement.textContent ?? '';\n this._ariaLevel = 1;\n this._childItems?.forEach((item) => {\n item._ariaLevel = 2;\n });\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n if (this._isExpandable) {\n this._expanded = false;\n }\n this._setIsItemVisible(this.expanded);\n }\n\n /** @hidden\n * set the _isItemVisible of sublist items to true if this(containing) list is expanded.\n */\n _setIsItemVisible(value: boolean): void {\n if (this._isExpandable) {\n this._listComponent?._navItems?.forEach((item) => {\n item._isItemVisible = value;\n });\n }\n }\n\n /** @hidden */\n _childIndicatedAndCollapsed(): boolean {\n let retVal = false;\n this._listComponent?._navItems?.forEach((navItem) => {\n if (navItem.indicated && !navItem.expanded) {\n retVal = true;\n }\n });\n\n return retVal;\n }\n\n /** support for FocusKeyManager for arrow key navigation */\n focus(): void {\n this._elementRef.nativeElement.focus();\n }\n\n /** support for FocusKeyManager for arrow key navigation */\n click(): void {\n this._elementRef?.nativeElement?.click();\n }\n\n /** @hidden */\n private _handleExpandedChanges(expanded: boolean): void {\n if (this._isExpandable) {\n if (this.expanded === expanded) {\n return;\n }\n\n this.expanded = expanded;\n this._expanded = expanded;\n this._setIsItemVisible(expanded);\n this._listNavigationItemArrow._setExpanded(this.expanded);\n\n if (expanded) {\n setTimeout(() => {\n this._listComponent._navItems.first.focus();\n });\n } else {\n setTimeout(() => {\n this.focus();\n });\n }\n }\n }\n}\n","@if (!expanded || !_isExpandable || !_condensed() || !_listComponent) {\n <ng-content></ng-content> <ng-template [ngTemplateOutlet]=\"subListTemplate\"></ng-template>\n @if (indicated || _childIndicatedAndCollapsed()) {\n <span class=\"fd-list__navigation-item-indicator\"></span>\n }\n}\n@if (expanded && _isExpandable && _condensed() && _listComponent) {\n <div\n class=\"fd-popover__body fd-popover__body--no-arrow fd-list__navigation-item-popover--first-level\"\n aria-hidden=\"false\"\n >\n <ul class=\"fd-list\">\n <li class=\"fd-list__navigation-item fd-list__navigation-item--condensed\">\n <fd-icon\n role=\"presentation\"\n class=\"fd-list__navigation-item-icon\"\n [glyph]=\"_iconComponent.glyph\"\n ></fd-icon>\n <span class=\"fd-list__navigation-item-text\">{{ _innerText }}</span>\n </li>\n </ul>\n </div>\n <div\n class=\"fd-popover__body fd-popover__body--no-arrow fd-list__navigation-item-popover--second-level\"\n aria-hidden=\"false\"\n >\n <ng-template [ngTemplateOutlet]=\"subListTemplate\"></ng-template>\n </div>\n}\n<ng-template #subListTemplate>\n <ng-content select=\"[fd-list]\"></ng-content>\n</ng-template>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n DestroyRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n ViewEncapsulation,\n inject\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n FocusEscapeDirection,\n KeyboardSupportService,\n LIST_ITEM_COMPONENT,\n ListItemInterface,\n Nullable,\n destroyObservable\n} from '@fundamental-ngx/cdk/utils';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport { Observable, Subject, merge } from 'rxjs';\nimport { map, startWith, takeUntil } from 'rxjs/operators';\nimport { ListGroupHeaderDirective } from './directives/list-group-header.directive';\nimport { ListComponentInterface } from './list-component.interface';\nimport { ListFocusItem } from './list-focus-item.model';\nimport { ListItemComponent } from './list-item/list-item.component';\nimport { ListNavigationItemComponent } from './list-navigation-item/list-navigation-item.component';\nimport { ListUnreadIndicator } from './list-unread-indicator.interface';\nimport { FD_LIST_COMPONENT, FD_LIST_UNREAD_INDICATOR } from './tokens';\n\n/**\n * The directive that represents a list.\n * It is used to display a list of items with simple information such as scopes, names, etc.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[fd-list], [fdList]',\n template: `<ng-content></ng-content>`,\n host: {\n class: 'fd-list'\n },\n styleUrls: ['./list.component.scss', '../../cdk/utils/drag-and-drop/drag-and-drop.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n KeyboardSupportService,\n contentDensityObserverProviders(),\n {\n provide: FD_LIST_COMPONENT,\n useExisting: ListComponent\n },\n {\n provide: FD_LIST_UNREAD_INDICATOR,\n useExisting: ListComponent\n }\n ],\n standalone: true\n})\nexport class ListComponent implements ListComponentInterface, ListUnreadIndicator, OnInit, AfterContentInit, OnDestroy {\n /** Whether dropdown mode is included to component, used for Select and Combobox */\n @Input()\n @HostBinding('class.fd-list--dropdown')\n dropdownMode = false;\n\n /** Whether multi mode is included to component, used for MultiInput */\n @Input()\n @HostBinding('class.fd-list--multi-input')\n multiInputMode = false;\n\n /** Whether list is used in mobile mode*/\n @Input()\n @HostBinding('class.fd-list--mobile')\n mobileMode = false;\n\n /** Whether list component contains message */\n @Input()\n @HostBinding('class.fd-list--has-message')\n hasMessage = false;\n\n /** Whether list component has removed borders */\n @Input()\n @HostBinding('class.fd-list--no-border')\n noBorder = false;\n\n /** Whether list component has navigation indicators */\n @Input()\n @HostBinding('class.fd-list--navigation-indication')\n navigationIndicator = false;\n\n /** Whether list component has checkboxes or radio buttons included */\n @Input()\n @HostBinding('class.fd-list--selection')\n selection = false;\n\n /** Whether internal keyboard support should be enabled. It's enabled by default */\n @Input()\n keyboardSupport = true;\n\n /** Whether list should have a byline */\n @Input()\n @HostBinding('class.fd-list--byline')\n byline = false;\n\n /** Whether to display unread notification indicator. */\n @HostBinding('class.fd-list--unread-indicator')\n @Input()\n unreadIndicator = false;\n\n /** Event thrown, when focus escapes the list */\n @Output()\n focusEscapeList = new EventEmitter<FocusEscapeDirection>();\n\n /** Whether list component includes links */\n @HostBinding('class.fd-list--navigation')\n hasNavigation = false;\n\n /**\n * User-provided role.\n */\n @Input()\n role: Nullable<string>;\n\n /** @hidden */\n @ContentChildren(LIST_ITEM_COMPONENT)\n items: QueryList<ListItemInterface>;\n\n /** @hidden */\n @ContentChildren(ListNavigationItemComponent)\n _navItems: QueryList<ListNavigationItemComponent>;\n\n /** @hidden */\n @ContentChildren(ListFocusItem)\n private _focusItems: QueryList<ListFocusItem>;\n\n /** @hidden */\n @HostBinding('attr.role')\n private get _ariaRole(): string {\n return this.role || this._defaultRole;\n }\n\n /**\n * @hidden\n * Default role for lists\n */\n private _defaultRole = 'list';\n\n /** An RxJS Subject that will kill the data stream upon queryList changes (for unsubscribing) */\n private readonly _onRefresh$: Subject<void> = new Subject<void>();\n\n /** An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing) */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n constructor(\n private _keyboardSupportService: KeyboardSupportService<ListFocusItem>,\n _contentDensityObserver: ContentDensityObserver\n ) {\n _contentDensityObserver.subscribe();\n }\n\n /** @hidden */\n @HostListener('keydown', ['$event'])\n keyDownHandler(event: KeyboardEvent): void {\n if (this.keyboardSupport) {\n this._keyboardSupportService.onKeyDown(event);\n }\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._listenOnListFocusEscape();\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._keyboardSupportService.setKeyboardService(this._focusItems, false, false);\n this._listenOnQueryChange();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._onRefresh$.next();\n this._onRefresh$.complete();\n }\n\n /** Set fake focus on element with passed index */\n setItemActive(index: number, updateOnly = false): void {\n if (updateOnly) {\n this._keyboardSupportService.keyManager.updateActiveItem(index);\n } else {\n this._keyboardSupportService.keyManager.setActiveItem(index);\n }\n }\n\n /**\n * @returns Currently active list item.\n */\n getActiveItem(): ListFocusItem | null {\n return this._keyboardSupportService.keyManager.activeItem;\n }\n\n /** @hidden */\n private _listenOnQueryChange(): void {\n this._focusItems.changes.pipe(startWith(0), takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n this._recheckLinks();\n this._listenOnItemsClick();\n setTimeout(() => {\n // using setTimeout to avoid ExpressionChangedAfterItHasBeenCheckedError\n this.updateItemsProperties();\n });\n });\n }\n\n /** @hidden */\n private _listenOnItemsClick(): void {\n /** Finish all the streams, from before */\n this._onRefresh$.next();\n\n if (!this.keyboardSupport) {\n return;\n }\n\n /** Merge refresh/destroy observables */\n const completion$ = merge(this._onRefresh$, destroyObservable(this._destroyRef));\n const interactionChangesIndexes: Observable<{ index: number; updateOnly: boolean }>[] = this._focusItems.map(\n (item, index) =>\n merge(\n item._clicked$.pipe(map(() => ({ index, updateOnly: false }))),\n item._focused$.pipe(map(({ focusedWithin }) => ({ index, updateOnly: focusedWithin })))\n )\n );\n merge(...interactionChangesIndexes)\n .pipe(takeUntil(completion$))\n .subscribe(({ index, updateOnly }) => this.setItemActive(index, updateOnly));\n }\n\n /** @hidden */\n private updateItemsProperties(): void {\n let closestListHeader: ListGroupHeaderDirective | null = null;\n this._focusItems.forEach((item, index) => {\n if (item instanceof ListGroupHeaderDirective) {\n closestListHeader = item;\n } else if (item instanceof ListItemComponent && closestListHeader) {\n item._relatedGroupHeaderId = closestListHeader.nativeElementId;\n }\n item.setIsFirst(index === 0);\n });\n }\n\n /** @hidden */\n private _recheckLinks(): void {\n const items = this.items.filter((item) => item.link);\n this.hasNavigation = items.length > 0;\n if (!this.selection) {\n this._defaultRole = this.hasNavigation ? 'navigation' : 'list';\n } else {\n this._defaultRole = 'listbox';\n }\n }\n\n /** @hidden */\n private _listenOnListFocusEscape(): void {\n this._keyboardSupportService.focusEscapeList\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((direction) => this.focusEscapeList.emit(direction));\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ListBylineLeftDirective } from './directives/byline/list-byline-left.directive';\nimport { ListBylineRightDirective } from './directives/byline/list-byline-right.directive';\nimport { ListBylineDirective } from './directives/byline/list-byline.directive';\nimport { ListContentDirective } from './directives/byline/list-content.directive';\nimport { ListThumbnailDirective } from './directives/byline/list-thumbnail.directive';\nimport { ListFooterDirective } from './directives/list-footer.directive';\nimport { ListGroupHeaderDirective } from './directives/list-group-header.directive';\nimport { ListIconDirective } from './directives/list-icon.directive';\nimport { ListLinkDirective } from './directives/list-link.directive';\nimport { ListNavigationItemArrowDirective } from './directives/list-navigation-item-arrow.directive';\nimport { ListNavigationItemTextDirective } from './directives/list-navigation-item-text.directive';\nimport { ListSecondaryDirective } from './directives/list-secondary.directive';\nimport { ListTitleTextDirective } from './directives/list-title-text.directive';\nimport { ListTitleDirective } from './directives/list-title.directive';\nimport { ListItemComponent } from './list-item/list-item.component';\nimport { ListMessageDirective } from './list-message.directive';\nimport { ListNavigationItemComponent } from './list-navigation-item/list-navigation-item.component';\nimport { ListComponent } from './list.component';\n\nconst components = [\n ListComponent,\n ListItemComponent,\n ListTitleDirective,\n ListFooterDirective,\n ListGroupHeaderDirective,\n ListSecondaryDirective,\n ListIconDirective,\n ListMessageDirective,\n ListLinkDirective,\n ListBylineDirective,\n ListBylineLeftDirective,\n ListBylineRightDirective,\n ListContentDirective,\n ListThumbnailDirective,\n ListTitleTextDirective,\n ListNavigationItemComponent,\n ListNavigationItemArrowDirective,\n ListNavigationItemTextDirective\n];\n\n@NgModule({\n imports: [...components],\n exports: [...components]\n})\nexport class ListModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"fundamental-ngx-core-list.mjs","sources":["../../../../libs/core/list/directives/byline/list-byline-left.directive.ts","../../../../libs/core/list/directives/byline/list-byline-right.directive.ts","../../../../libs/core/list/directives/byline/list-byline.directive.ts","../../../../libs/core/list/directives/byline/list-content.directive.ts","../../../../libs/core/list/directives/byline/list-thumbnail.directive.ts","../../../../libs/core/list/directives/list-footer.directive.ts","../../../../libs/core/list/directives/list-group-header.directive.ts","../../../../libs/core/list/directives/list-icon.directive.ts","../../../../libs/core/list/tokens.ts","../../../../libs/core/list/directives/list-link.directive.ts","../../../../libs/core/list/directives/list-navigation-item-arrow.directive.ts","../../../../libs/core/list/directives/list-navigation-item-text.directive.ts","../../../../libs/core/list/directives/list-secondary.directive.ts","../../../../libs/core/list/directives/list-title-text.directive.ts","../../../../libs/core/list/directives/list-title.directive.ts","../../../../libs/core/list/list-focus-item.model.ts","../../../../libs/core/list/list-item/list-item.component.ts","../../../../libs/core/list/list-item/list-item.component.html","../../../../libs/core/list/list-message.directive.ts","../../../../libs/core/list/list-navigation-item/list-navigation-item.component.ts","../../../../libs/core/list/list-navigation-item/list-navigation-item.component.html","../../../../libs/core/list/list.component.ts","../../../../libs/core/list/list.module.ts","../../../../libs/core/list/fundamental-ngx-core-list.ts"],"sourcesContent":["import { Directive, HostBinding, Input } from '@angular/core';\n\n@Directive({\n selector: '[fdListBylineLeft], [fd-list-byline-left]',\n standalone: true\n})\nexport class ListBylineLeftDirective {\n /** @hidden */\n @HostBinding('class.fd-list__byline-left')\n fdListBylineLeftClass = true;\n\n /** Whether or not this should be wrapped, when too much text. */\n @Input()\n @HostBinding('class.fd-list__byline-left--wrap')\n wrap = false;\n}\n","import { Directive, Input } from '@angular/core';\n\nexport type ListBylineStatus = 'neutral' | 'positive' | 'negative' | 'critical' | 'informative';\n\n@Directive({\n selector: '[fdListBylineRight], [fd-list-byline-right]',\n host: {\n class: 'fd-list__byline-right',\n '[class.fd-list__byline-right--neutral]': 'status === \"neutral\"',\n '[class.fd-list__byline-right--positive]': 'status === \"positive\"',\n '[class.fd-list__byline-right--negative]': 'status === \"negative\"',\n '[class.fd-list__byline-right--critical]': 'status === \"critical\"',\n '[class.fd-list__byline-right--informative]': 'status === \"informative\"',\n '[class.fd-list__byline-right--wrap]': 'wrap'\n },\n standalone: true\n})\nexport class ListBylineRightDirective {\n /** Semantic status of byline\n * Possible options are:\n * 'neutral' | 'positive' | 'negative' | 'critical' | 'informative'\n */\n @Input()\n status: ListBylineStatus;\n\n /** Whether or not this should be wrapped, when too much text. */\n @Input()\n wrap = false;\n}\n","import { Directive, Input } from '@angular/core';\n\n@Directive({\n selector: '[fdListByline], [fd-list-byline]',\n host: {\n class: 'fd-list__byline',\n '[class.fd-list__byline--2-col]': 'twoCol',\n '[class.fd-list__byline--wrap]': 'wrap'\n },\n standalone: true\n})\nexport class ListBylineDirective {\n /** Whether or not this is a 2-column byline. */\n @Input()\n twoCol = false;\n\n /** Whether or not this should be wrapped, when too much text. */\n @Input()\n wrap = false;\n}\n","import { Directive, HostBinding, Input } from '@angular/core';\n\n@Directive({\n selector: '[fdListContent], [fd-list-content]',\n standalone: true\n})\nexport class ListContentDirective {\n /** @hidden */\n @HostBinding('class.fd-list__content')\n fdListContentClass = true;\n\n /** Whether or not this is a 2-column content. */\n @Input()\n @HostBinding('class.fd-list__content--2-col')\n twoCol = false;\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[fdListThumbnail], [fd-list-thumbnail]',\n standalone: true\n})\nexport class ListThumbnailDirective {\n /** @hidden */\n @HostBinding('class.fd-list__thumbnail')\n fdListThumbnailClass = true;\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[fdListFooter], [fd-list-footer]',\n standalone: true\n})\nexport class ListFooterDirective {\n /** @hidden */\n @HostBinding('class.fd-list__footer')\n fdListFooterClass = true;\n}\n","import { Directive, ElementRef, EventEmitter, HostBinding, HostListener, Input, Output } from '@angular/core';\n\nlet uniqueId = 0;\n\n@Directive({\n selector: '[fdListGroupHeader], [fd-list-group-header]',\n host: {\n '[style.outline]': '\"none\"',\n '[class.fd-list__item]': 'true',\n '[class.fd-list__group-header]': 'true'\n },\n standalone: true\n})\nexport class ListGroupHeaderDirective {\n /** id of an element to be applied */\n @Input()\n @HostBinding('attr.id')\n nativeElementId: string | null = `fd-list-group-header-${++uniqueId}`;\n\n /** @hidden Implementation of KeyboardSupportItemInterface */\n @Output()\n keyDown: EventEmitter<KeyboardEvent> = new EventEmitter<KeyboardEvent>();\n\n /** @hidden */\n constructor(readonly elementRef: ElementRef) {}\n\n /** @hidden */\n @HostListener('keydown', ['$event'])\n keydownHandler(event: KeyboardEvent): void {\n this.keyDown.emit(event);\n }\n}\n","import { Directive, ElementRef, HostBinding, Input, OnChanges, OnInit, inject } from '@angular/core';\nimport { CssClassBuilder, applyCssClass } from '@fundamental-ngx/cdk/utils';\nimport { FD_DEFAULT_ICON_FONT_FAMILY, IconFont, fdBuildIconClass } from '@fundamental-ngx/core/icon';\n\n@Directive({\n selector: '[fdListIcon], [fd-list-icon]',\n standalone: true\n})\nexport class ListIconDirective implements OnChanges, OnInit, CssClassBuilder {\n /** The icon name to display. See the icon page for the list of icons\n * here: https://sap.github.io/fundamental-ngx/icon\n * */\n @Input()\n glyph: string;\n\n /** Glyph font family */\n @Input()\n glyphFont: IconFont = FD_DEFAULT_ICON_FONT_FAMILY;\n\n /** Apply user custom styles */\n @Input()\n class: string;\n\n /** Role attribute for list icon */\n @Input()\n @HostBinding('attr.role')\n role = 'presentation';\n\n /** @hidden */\n readonly elementRef = inject(ElementRef);\n\n /** @hidden\n * CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return ['fd-list__icon', this.glyph ? fdBuildIconClass(this.glyphFont, this.glyph) : '', this.class];\n }\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { ListComponentInterface } from './list-component.interface';\n\nexport const FD_LIST_MESSAGE_DIRECTIVE = new InjectionToken('FdListMessageDirective');\nexport const FD_LIST_LINK_DIRECTIVE = new InjectionToken('FdListLinkDirective');\nexport const FD_LIST_COMPONENT = new InjectionToken<ListComponentInterface>('ListComponent');\n\nexport const FD_LIST_UNREAD_INDICATOR = new InjectionToken<ListComponentInterface>('ListUnreadIndicator');\n","import { Directive, ElementRef, HostBinding, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { FD_LIST_LINK_DIRECTIVE } from '../tokens';\n\n@Directive({\n selector: '[fd-list-link], [fdListLink]',\n host: {\n '[attr.tabindex]': '-1'\n },\n providers: [\n {\n provide: FD_LIST_LINK_DIRECTIVE,\n useExisting: ListLinkDirective\n }\n ],\n standalone: true\n})\nexport class ListLinkDirective implements OnChanges {\n /** Defines if navigation indicator arrow should be included inside list item */\n @Input()\n @HostBinding('class.fd-list__link--navigation-indicator')\n navigationIndicator = false;\n\n /** Defines if link should be treated as a navigated */\n @Input()\n @HostBinding('class.is-navigated')\n navigated = false;\n\n /** Whether to mark link as focusable. If true, list item will shift focus from itself to the link. */\n @Input()\n @HostBinding('class.fd-list__link--focusable')\n focusable = false;\n\n /** @hidden */\n @HostBinding('class.fd-list__link')\n fdListLinkClass = true;\n\n /** Emits when some of the properties, that should be read by screenreader, are changed */\n readonly _onReadablePropertyChanged$ = new Subject<void>();\n\n /** @hidden */\n constructor(public elementRef: ElementRef) {}\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.navigationIndicator || changes.navigated) {\n this._onReadablePropertyChanged$.next();\n }\n }\n}\n","import { Directive, HostBinding, Input } from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n\n@Directive({\n selector: '[fd-list-navigation-item-arrow], [fdListNavigaitonItemArrow]',\n host: {\n tabindex: '-1',\n role: 'presentation'\n },\n standalone: true\n})\nexport class ListNavigationItemArrowDirective {\n /** @hidden */\n @HostBinding('class.fd-list__navigation-item-arrow')\n navigationItemArrowClass = true;\n\n /** @hidden */\n @HostBinding('class.sap-icon--navigation-right-arrow')\n rightArrowClass = true;\n\n /** @hidden */\n @HostBinding('class.sap-icon--navigation-down-arrow')\n downArrowClass = false;\n\n /** @hidden */\n @HostBinding('class.is-expanded')\n expanded = false;\n\n /** Aria-hidden attribute value. */\n @Input()\n @HostBinding('attr.aria-hidden')\n ariaHidden: Nullable<boolean> = true;\n\n /** @hidden */\n _setExpanded(expanded: boolean): void {\n if (this.expanded !== expanded) {\n this.rightArrowClass = !this.rightArrowClass;\n this.downArrowClass = !this.downArrowClass;\n }\n this.expanded = expanded;\n }\n}\n","import { Directive, ElementRef, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[fd-list-navigation-item-text], [fdListNavigaitonItemText]',\n standalone: true\n})\nexport class ListNavigationItemTextDirective {\n /** @hidden */\n @HostBinding('class.fd-list__navigation-item-text')\n navigationItemTextClass = true;\n\n /** @hidden */\n constructor(public readonly elementRef: ElementRef) {}\n}\n","import { NgClass } from '@angular/common';\nimport { Directive, inject, Input, isDevMode, OnChanges } from '@angular/core';\n\nexport const _secondaryListItemTypes = ['positive', 'critical', 'negative', 'informative'] as const;\n\nexport type SecondaryListItemType = (typeof _secondaryListItemTypes)[number];\n\n@Directive({\n selector: '[fd-list-secondary], [fdListSecondary]',\n standalone: true,\n hostDirectives: [NgClass]\n})\nexport class ListSecondaryDirective implements OnChanges {\n /**\n * Type of the secondary list item.\n */\n @Input()\n type: SecondaryListItemType;\n\n /** @hidden */\n ngClass = inject(NgClass);\n\n /** @hidden */\n constructor() {\n this.ngClass.ngClass = ['fd-list__secondary'];\n }\n\n /** @hidden */\n ngOnChanges(): void {\n if (this.type && !_secondaryListItemTypes.includes(this.type) && isDevMode()) {\n console.warn(\n `Unknown type of the secondary list item: ${this.type}. Allowed types are: ${JSON.stringify(\n _secondaryListItemTypes\n )}`\n );\n }\n this.ngClass.ngClass = ['fd-list__secondary', `fd-list__secondary--${this.type}`];\n }\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[fd-list-title-text], [fdListTitleText]',\n standalone: true\n})\nexport class ListTitleTextDirective {\n /** @hidden */\n @HostBinding('class.fd-list__title-text')\n fdListTitleText = true;\n}\n","import { Directive, ElementRef, HostBinding, Input, OnInit } from '@angular/core';\n\n@Directive({\n selector: '[fd-list-title], [fdListTitle]',\n standalone: true\n})\nexport class ListTitleDirective implements OnInit {\n /** @hidden */\n @HostBinding('class.fd-list__title')\n fdListTitleClass = true;\n\n /** Whether or not this should be wrapped, when too much text. */\n @Input()\n @HostBinding('class.fd-list__title--wrap')\n wrap = false;\n\n /** @hidden */\n constructor(public elRef: ElementRef) {}\n\n /** @hidden */\n ngOnInit(): void {\n const nativeEl = this.elRef.nativeElement;\n if (nativeEl.tagName === 'A') {\n nativeEl.setAttribute('tabIndex', '-1');\n }\n }\n}\n","import { coerceNumberProperty } from '@angular/cdk/coercion';\nimport { Directive, ElementRef, EventEmitter, HostListener, Input, computed, inject, signal } from '@angular/core';\nimport { KeyboardSupportItemInterface } from '@fundamental-ngx/cdk/utils';\nimport { Subject } from 'rxjs';\n\n@Directive()\nexport abstract class ListFocusItem<T = any> implements KeyboardSupportItemInterface {\n /** tab index attribute */\n @Input()\n set tabindex(value: number) {\n this._tabIndex$.set(coerceNumberProperty(value, -1));\n }\n get tabindex(): number {\n return this._normalizedTabIndex$();\n }\n\n /**\n * Value of the list item.\n * Used for dropdown-based controls such as combobox, select, etc.\n */\n @Input()\n value: T;\n\n /** @hidden Implementation of KeyboardSupportItemInterface */\n keyDown: EventEmitter<KeyboardEvent> = new EventEmitter<KeyboardEvent>();\n\n /** @hidden */\n readonly elementRef: ElementRef = inject(ElementRef);\n\n /** @hidden */\n readonly _focused$ = new Subject<{ focusedWithin: boolean }>();\n\n /** @hidden */\n readonly _clicked$ = new Subject<MouseEvent>();\n\n /** @hidden */\n protected _isFirstItem$ = signal(false);\n\n /** @hidden */\n protected _tabIndex$ = signal<number | undefined>(undefined);\n\n /** @hidden */\n protected _normalizedTabIndex$ = computed(() => {\n if (this._isFirstItem$() && isNaN(this._tabIndex$() as number)) {\n return 0;\n }\n return this._tabIndex$() ?? -1;\n });\n\n /** @hidden */\n @HostListener('focusin', ['$event'])\n protected onFocus(event: FocusEvent): void {\n this._focused$.next({\n focusedWithin: event.target !== this.elementRef?.nativeElement\n });\n }\n\n /** @hidden */\n click(): void {\n this.elementRef?.nativeElement?.click();\n }\n\n /** @hidden */\n focus(): void {\n this.elementRef?.nativeElement?.focus();\n }\n\n /** @hidden */\n setIsFirst(value: boolean): void {\n this._isFirstItem$.set(value);\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n DestroyRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n HostListener,\n inject,\n Input,\n Output,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { ENTER, SPACE } from '@angular/cdk/keycodes';\nimport { DecimalPipe } from '@angular/common';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { KeyUtil, LIST_ITEM_COMPONENT, ListItemInterface, Nullable } from '@fundamental-ngx/cdk/utils';\nimport { ButtonComponent, FD_BUTTON_COMPONENT } from '@fundamental-ngx/core/button';\nimport { CheckboxComponent, FD_CHECKBOX_COMPONENT } from '@fundamental-ngx/core/checkbox';\nimport { FormItemComponent } from '@fundamental-ngx/core/form';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport { FD_RADIO_BUTTON_COMPONENT, RadioButtonComponent } from '@fundamental-ngx/core/radio';\nimport { Subject } from 'rxjs';\nimport { startWith } from 'rxjs/operators';\nimport { ListLinkDirective } from '../directives/list-link.directive';\nimport { ListFocusItem } from '../list-focus-item.model';\nimport { FD_LIST_LINK_DIRECTIVE, FD_LIST_UNREAD_INDICATOR } from '../tokens';\n\nlet listItemUniqueId = 0;\n\n/**\n * The component that represents a list item.\n * The list item can contain plain text, links or actions.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[fdListItem] ,[fd-list-item]',\n templateUrl: './list-item.component.html',\n host: {\n class: 'fd-list__item',\n '[attr.tabindex]': '_normalizedTabIndex$()'\n },\n providers: [\n {\n provide: LIST_ITEM_COMPONENT,\n useExisting: forwardRef(() => ListItemComponent)\n },\n {\n provide: ListFocusItem,\n useExisting: forwardRef(() => ListItemComponent)\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [FormItemComponent, DecimalPipe, IconComponent]\n})\nexport class ListItemComponent<T = any> extends ListFocusItem<T> implements AfterContentInit, ListItemInterface {\n /** Whether list item is selected */\n @Input()\n @HostBinding('class.is-selected')\n @HostBinding('attr.aria-selected')\n selected = false;\n\n /** Whether there is no data inside list item */\n @Input()\n @HostBinding('class.fd-list__item--no-data')\n noData = false;\n\n /** Whether there is item performs some action */\n @Input()\n @HostBinding('class.fd-list__item--action')\n action = false;\n\n /** Whether there is item performs some action */\n @Input()\n @HostBinding('class.fd-list__item--interractive')\n interactive = false;\n\n /** Whether list item contains busy indicator */\n @Input()\n @HostBinding('class.fd-list__item--growing')\n growing = false;\n\n /** Counter on list item */\n @Input()\n counter: number;\n\n /** Whether list item should contain additional unRead styles */\n @Input()\n @HostBinding('class.fd-list__item--unread')\n unread = false;\n\n /**\n * Whether the list item is byline\n */\n @Input()\n @HostBinding('class.fd-list__item--byline')\n byline = false;\n\n /** @hidden Implementation of KeyboardSupportItemInterface | TODO Revisit KeyboardSupportItemInterface*/\n @Output()\n keyDown: EventEmitter<KeyboardEvent> = new EventEmitter<KeyboardEvent>();\n\n /** Whether list item contains link */\n @HostBinding('class.fd-list__item--link')\n link = false;\n\n /** Aria-role attribute. */\n @Input()\n ariaRole: Nullable<string>;\n\n /** @hidden */\n @ContentChild(FD_RADIO_BUTTON_COMPONENT)\n set radio(value: RadioButtonComponent) {\n this._radio = value;\n if (this._radio && this._radio.tabIndex == null) {\n this._radio.tabIndex = -1;\n }\n if (value) {\n this._role = 'option';\n }\n }\n get radio(): RadioButtonComponent {\n return this._radio;\n }\n\n /** @hidden */\n @ContentChild(FD_CHECKBOX_COMPONENT)\n set checkbox(value: CheckboxComponent) {\n this._checkbox = value;\n if (this._checkbox && this._checkbox.tabIndexValue == null) {\n this._checkbox.tabIndexValue = -1;\n }\n if (value) {\n this._role = 'option';\n }\n }\n get checkbox(): CheckboxComponent {\n return this._checkbox;\n }\n\n /** @hidden */\n @ContentChildren(FD_LIST_LINK_DIRECTIVE)\n linkDirectives: QueryList<ListLinkDirective>;\n\n /** @hidden */\n @ContentChildren(FD_BUTTON_COMPONENT, { descendants: true })\n buttons: QueryList<ButtonComponent>;\n\n /** @hidden An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing) */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n private readonly _onLinkListChanged$ = new Subject<void>();\n\n /** @hidden */\n private _radio: RadioButtonComponent;\n\n /** @hidden */\n private _checkbox: CheckboxComponent;\n\n /** @hidden group header id, that is being set by parent list component */\n _relatedGroupHeaderId: string | null;\n\n /** @hidden */\n @HostBinding('attr.role')\n private get roleAttr(): string {\n return this.ariaRole || this._role;\n }\n\n /** @hidden */\n private _role = 'listitem'; // default for li elements\n\n /** @hidden */\n readonly _uniqueId = 'fd-list-item-' + ++listItemUniqueId;\n\n /** @hidden */\n readonly _list = inject(FD_LIST_UNREAD_INDICATOR, {\n optional: true\n });\n\n /** @hidden */\n constructor(private readonly _changeDetectorRef: ChangeDetectorRef) {\n super();\n }\n\n /** @hidden */\n @HostListener('keydown', ['$event'])\n keydownHandler(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, [ENTER, SPACE])) {\n if (this.checkbox) {\n this.checkbox.nextValue();\n this._muteEvent(event);\n } else if (this.radio) {\n this.radio.labelClicked(event, false);\n this._muteEvent(event);\n } else if (this.interactive) {\n this.selected = !this.selected;\n this._muteEvent(event);\n return;\n } else if (this.link) {\n this.linkDirectives.first.elementRef.nativeElement.classList.add('is-active');\n this._muteEvent(event);\n }\n }\n this.keyDown.emit(event);\n }\n\n /** @hidden */\n @HostListener('keyup', ['$event'])\n keyupHandler(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, [ENTER, SPACE]) && this.link) {\n const _anchorElement = this.linkDirectives.first.elementRef.nativeElement;\n _anchorElement.classList.remove('is-active');\n _anchorElement.click();\n this._muteEvent(event);\n }\n }\n\n /** Handler for mouse events */\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent): void {\n this._clicked$.next(event);\n if (this.checkbox && !this.link) {\n if (!this.checkbox.elementRef.nativeElement.contains(event.target as Node)) {\n // clicking on the checkbox is not suppressed\n // so we should only process clicks if clicked on the list-item, not checkbox itself\n this.checkbox.nextValue();\n }\n }\n if (this.radio && !this.link) {\n this.radio.labelClicked(event, false);\n }\n }\n\n /** @hidden */\n @HostListener('focus')\n private _onFocus(): void {\n // Try to find inner focusable link\n const tabbableLink = this.elementRef.nativeElement.querySelector('.fd-list__link.fd-list__link--focusable');\n tabbableLink?.focus();\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._listenOnLinkQueryChange();\n this._listenOnButtonQueryChange();\n }\n\n /** @hidden */\n private _listenOnLinkQueryChange(): void {\n this.linkDirectives.changes\n .pipe(startWith(this.linkDirectives), takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n this._onLinkListChanged$.next();\n this.link = this.linkDirectives.length > 0;\n this._changeDetectorRef.detectChanges();\n });\n }\n\n /** @hidden */\n private _listenOnButtonQueryChange(): void {\n this.buttons.changes.pipe(startWith(0), takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n this.buttons.forEach(this._addClassToButtons);\n });\n }\n\n /** @hidden */\n private _addClassToButtons(button: ButtonComponent): void {\n button.class += ' fd-list__button';\n button.buildComponentCssClass();\n button.detectChanges();\n }\n\n /** @hidden */\n private _muteEvent(event: Event): void {\n event.stopPropagation();\n event.preventDefault();\n }\n}\n","@if (checkbox || radio) {\n <div fd-form-item class=\"fd-list__form-item\">\n <ng-content select=\"fd-checkbox\"></ng-content>\n <ng-content select=\"fd-radio-button\"></ng-content>\n </div>\n}\n@if (unread && (!_list || _list.byline)) {\n <fd-icon class=\"fd-list__notification\" glyph=\"circle-task-2\"></fd-icon>\n}\n<ng-content></ng-content>\n@if (counter || counter === 0) {\n <span class=\"fd-list__item-counter\">\n {{ counter | number: '1.0-2' }}\n </span>\n}\n","import { Directive, ElementRef, Input, OnChanges, OnInit } from '@angular/core';\nimport { FormStates } from '@fundamental-ngx/cdk/forms';\nimport { CssClassBuilder, applyCssClass } from '@fundamental-ngx/cdk/utils';\nimport { FD_LIST_MESSAGE_DIRECTIVE } from './tokens';\n\n@Directive({\n selector: '[fd-list-message], [fdListMessage]',\n providers: [\n {\n provide: FD_LIST_MESSAGE_DIRECTIVE,\n useExisting: ListMessageDirective\n }\n ],\n standalone: true\n})\nexport class ListMessageDirective implements OnChanges, OnInit, CssClassBuilder {\n /** Type of the message. Can be 'success' | 'error' | 'warning' | 'information' */\n @Input()\n type: FormStates;\n\n /** Apply user custom styles */\n @Input()\n class: string;\n\n /** @hidden */\n constructor(public readonly elementRef: ElementRef) {}\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden\n * CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return ['fd-list__message', this.type ? 'fd-list__message--' + this.type : '', this.class];\n }\n}\n","import { FocusableOption } from '@angular/cdk/a11y';\nimport { ENTER, LEFT_ARROW, RIGHT_ARROW, SPACE } from '@angular/cdk/keycodes';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n AfterContentInit,\n AfterViewInit,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n Optional,\n QueryList,\n Renderer2,\n computed,\n effect,\n forwardRef,\n inject,\n signal\n} from '@angular/core';\nimport { KeyUtil, RtlService } from '@fundamental-ngx/cdk/utils';\nimport { FD_ICON_COMPONENT, IconComponent } from '@fundamental-ngx/core/icon';\nimport { Subject } from 'rxjs';\nimport { ListNavigationItemArrowDirective } from '../directives/list-navigation-item-arrow.directive';\nimport { ListNavigationItemTextDirective } from '../directives/list-navigation-item-text.directive';\nimport { ListComponentInterface } from '../list-component.interface';\nimport { FD_LIST_COMPONENT } from '../tokens';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[fd-list-navigation-item], [fdListNavigaitonItem]',\n templateUrl: './list-navigation-item.component.html',\n styleUrl: './list-navigation-item.component.scss',\n host: {\n role: 'treeitem'\n },\n standalone: true,\n imports: [NgTemplateOutlet, IconComponent]\n})\nexport class ListNavigationItemComponent implements AfterContentInit, AfterViewInit, FocusableOption {\n /** Whether or not the list item is expanded. */\n @Input()\n @HostBinding('class.is-expanded')\n expanded = false;\n\n /** Whether or not this list item is indicated for navigation. */\n @Input()\n @HostBinding('class.fd-list__navigation-item--indicated')\n indicated = false;\n\n /** @hidden */\n @HostBinding('class.fd-list__navigation-item')\n _navigationItemClass = true;\n\n /** @hidden */\n @HostBinding('class.fd-list__navigation-item--expandable')\n _isExpandable = false;\n\n /** @hidden */\n @HostBinding('attr.tabindex')\n _tabIndex;\n\n /** @hidden */\n @HostBinding('attr.aria-level')\n _ariaLevel: number;\n\n /** @hidden */\n @ContentChild(FD_LIST_COMPONENT)\n _listComponent: ListComponentInterface;\n\n /** @hidden */\n @ContentChild(ListNavigationItemArrowDirective)\n _listNavigationItemArrow: ListNavigationItemArrowDirective;\n\n /** @hidden */\n @ContentChild(FD_ICON_COMPONENT)\n _iconComponent: IconComponent;\n\n /** @hidden */\n @ContentChild(ListNavigationItemTextDirective)\n _text: ListNavigationItemTextDirective;\n\n /** @hidden */\n @ContentChildren(forwardRef(() => ListNavigationItemComponent), { descendants: true })\n _childItems: QueryList<ListNavigationItemComponent>;\n\n /** @hidden */\n @HostBinding('attr.aria-expanded')\n private get _ariaExpanded(): boolean | null {\n return this._isExpandable ? this._expanded : null;\n }\n\n /** @hidden */\n _condensed = signal(false);\n\n /** @hidden */\n _expanded = false;\n\n /** @hidden */\n _innerText: string;\n\n /** @hidden */\n readonly _focused$ = new Subject<boolean>();\n\n /** @hidden */\n readonly _clicked$ = new Subject<MouseEvent>();\n\n /**\n * @hidden\n * false if list-item is within unexpanded list (not visible to user until list expanded). default is true\n */\n _isItemVisible = true;\n\n /** @hidden handles rtl service */\n private readonly _rtl$ = computed(() => !!this._rtlService?.rtlSignal());\n\n /** @hidden */\n private readonly _renderer2 = inject(Renderer2);\n\n /** @hidden */\n constructor(\n private _elementRef: ElementRef,\n @Optional() private _rtlService: RtlService\n ) {\n effect(() => {\n if (this._condensed()) {\n this._renderer2.addClass(this._elementRef.nativeElement, 'fd-list__navigation-item--condensed');\n } else {\n this._renderer2.removeClass(this._elementRef.nativeElement, 'fd-list__navigation-item--condensed');\n }\n });\n }\n\n /** @hidden */\n @HostListener('click', ['$event'])\n onItemClick(event: MouseEvent): void {\n event.stopPropagation();\n this._handleExpandedChanges(!this.expanded);\n }\n\n /** @hidden */\n @HostListener('keydown', ['$event'])\n keyDownHandler(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, [RIGHT_ARROW])) {\n event.preventDefault();\n this._handleExpandedChanges(!this._rtl$());\n }\n if (KeyUtil.isKeyCode(event, [LEFT_ARROW])) {\n event.preventDefault();\n this._handleExpandedChanges(this._rtl$());\n }\n if (KeyUtil.isKeyCode(event, [SPACE, ENTER])) {\n event.preventDefault();\n event.stopPropagation();\n this._handleExpandedChanges(!this.expanded);\n }\n }\n\n /** @hidden */\n @HostListener('focus', ['$event'])\n protected onFocus(event: FocusEvent): void {\n this._focused$.next(event.target !== this._elementRef?.nativeElement);\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n if (this._listComponent) {\n this._isExpandable = true;\n this._listComponent.role = 'group';\n } else {\n this._tabIndex = 0;\n }\n if (this._iconComponent) {\n this._iconComponent._navigationItemIcon = true;\n this._iconComponent.ariaHidden = true;\n }\n this._innerText = this._text.elementRef.nativeElement.textContent ?? '';\n this._ariaLevel = 1;\n this._childItems?.forEach((item) => {\n item._ariaLevel = 2;\n });\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n if (this._isExpandable) {\n this._expanded = false;\n }\n this._setIsItemVisible(this.expanded);\n }\n\n /** @hidden\n * set the _isItemVisible of sublist items to true if this(containing) list is expanded.\n */\n _setIsItemVisible(value: boolean): void {\n if (this._isExpandable) {\n this._listComponent?._navItems?.forEach((item) => {\n item._isItemVisible = value;\n });\n }\n }\n\n /** @hidden */\n _childIndicatedAndCollapsed(): boolean {\n let retVal = false;\n this._listComponent?._navItems?.forEach((navItem) => {\n if (navItem.indicated && !navItem.expanded) {\n retVal = true;\n }\n });\n\n return retVal;\n }\n\n /** support for FocusKeyManager for arrow key navigation */\n focus(): void {\n this._elementRef.nativeElement.focus();\n }\n\n /** support for FocusKeyManager for arrow key navigation */\n click(): void {\n this._elementRef?.nativeElement?.click();\n }\n\n /** @hidden */\n private _handleExpandedChanges(expanded: boolean): void {\n if (this._isExpandable) {\n if (this.expanded === expanded) {\n return;\n }\n\n this.expanded = expanded;\n this._expanded = expanded;\n this._setIsItemVisible(expanded);\n this._listNavigationItemArrow._setExpanded(this.expanded);\n\n if (expanded) {\n setTimeout(() => {\n this._listComponent._navItems.first.focus();\n });\n } else {\n setTimeout(() => {\n this.focus();\n });\n }\n }\n }\n}\n","@if (!expanded || !_isExpandable || !_condensed() || !_listComponent) {\n <ng-content></ng-content> <ng-template [ngTemplateOutlet]=\"subListTemplate\"></ng-template>\n @if (indicated || _childIndicatedAndCollapsed()) {\n <span class=\"fd-list__navigation-item-indicator\"></span>\n }\n}\n@if (expanded && _isExpandable && _condensed() && _listComponent) {\n <div\n class=\"fd-popover__body fd-popover__body--no-arrow fd-list__navigation-item-popover--first-level\"\n aria-hidden=\"false\"\n >\n <ul class=\"fd-list\">\n <li class=\"fd-list__navigation-item fd-list__navigation-item--condensed\">\n <fd-icon\n role=\"presentation\"\n class=\"fd-list__navigation-item-icon\"\n [glyph]=\"_iconComponent.glyph\"\n ></fd-icon>\n <span class=\"fd-list__navigation-item-text\">{{ _innerText }}</span>\n </li>\n </ul>\n </div>\n <div\n class=\"fd-popover__body fd-popover__body--no-arrow fd-list__navigation-item-popover--second-level\"\n aria-hidden=\"false\"\n >\n <ng-template [ngTemplateOutlet]=\"subListTemplate\"></ng-template>\n </div>\n}\n<ng-template #subListTemplate>\n <ng-content select=\"[fd-list]\"></ng-content>\n</ng-template>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n DestroyRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n ViewEncapsulation,\n inject\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n FocusEscapeDirection,\n KeyboardSupportService,\n LIST_ITEM_COMPONENT,\n ListItemInterface,\n Nullable,\n destroyObservable\n} from '@fundamental-ngx/cdk/utils';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport { Observable, Subject, merge } from 'rxjs';\nimport { map, startWith, takeUntil } from 'rxjs/operators';\nimport { ListGroupHeaderDirective } from './directives/list-group-header.directive';\nimport { ListComponentInterface } from './list-component.interface';\nimport { ListFocusItem } from './list-focus-item.model';\nimport { ListItemComponent } from './list-item/list-item.component';\nimport { ListNavigationItemComponent } from './list-navigation-item/list-navigation-item.component';\nimport { ListUnreadIndicator } from './list-unread-indicator.interface';\nimport { FD_LIST_COMPONENT, FD_LIST_UNREAD_INDICATOR } from './tokens';\n\n/**\n * The directive that represents a list.\n * It is used to display a list of items with simple information such as scopes, names, etc.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[fd-list], [fdList]',\n template: `<ng-content></ng-content>`,\n host: {\n class: 'fd-list'\n },\n styleUrls: ['./list.component.scss', '../../cdk/utils/drag-and-drop/drag-and-drop.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n KeyboardSupportService,\n contentDensityObserverProviders(),\n {\n provide: FD_LIST_COMPONENT,\n useExisting: ListComponent\n },\n {\n provide: FD_LIST_UNREAD_INDICATOR,\n useExisting: ListComponent\n }\n ],\n standalone: true\n})\nexport class ListComponent implements ListComponentInterface, ListUnreadIndicator, OnInit, AfterContentInit, OnDestroy {\n /** Whether dropdown mode is included to component, used for Select and Combobox */\n @Input()\n @HostBinding('class.fd-list--dropdown')\n dropdownMode = false;\n\n /** Whether multi mode is included to component, used for MultiInput */\n @Input()\n @HostBinding('class.fd-list--multi-input')\n multiInputMode = false;\n\n /** Whether list is used in mobile mode*/\n @Input()\n @HostBinding('class.fd-list--mobile')\n mobileMode = false;\n\n /** Whether list component contains message */\n @Input()\n @HostBinding('class.fd-list--has-message')\n hasMessage = false;\n\n /** Whether list component has removed borders */\n @Input()\n @HostBinding('class.fd-list--no-border')\n noBorder = false;\n\n /** Whether list component has navigation indicators */\n @Input()\n @HostBinding('class.fd-list--navigation-indication')\n navigationIndicator = false;\n\n /** Whether list component has checkboxes or radio buttons included */\n @Input()\n @HostBinding('class.fd-list--selection')\n selection = false;\n\n /** Whether internal keyboard support should be enabled. It's enabled by default */\n @Input()\n keyboardSupport = true;\n\n /** Whether list should have a byline */\n @Input()\n @HostBinding('class.fd-list--byline')\n byline = false;\n\n /** Whether to display unread notification indicator. */\n @HostBinding('class.fd-list--unread-indicator')\n @Input()\n unreadIndicator = false;\n\n /** Event thrown, when focus escapes the list */\n @Output()\n focusEscapeList = new EventEmitter<FocusEscapeDirection>();\n\n /** Whether list component includes links */\n @HostBinding('class.fd-list--navigation')\n hasNavigation = false;\n\n /**\n * User-provided role.\n */\n @Input()\n role: Nullable<string>;\n\n /** @hidden */\n @ContentChildren(LIST_ITEM_COMPONENT)\n items: QueryList<ListItemInterface>;\n\n /** @hidden */\n @ContentChildren(ListNavigationItemComponent)\n _navItems: QueryList<ListNavigationItemComponent>;\n\n /** @hidden */\n @ContentChildren(ListFocusItem)\n private _focusItems: QueryList<ListFocusItem>;\n\n /** @hidden */\n @HostBinding('attr.role')\n private get _ariaRole(): string {\n return this.role || this._defaultRole;\n }\n\n /**\n * @hidden\n * Default role for lists\n */\n private _defaultRole = 'list';\n\n /** An RxJS Subject that will kill the data stream upon queryList changes (for unsubscribing) */\n private readonly _onRefresh$: Subject<void> = new Subject<void>();\n\n /** An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing) */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n constructor(\n private _keyboardSupportService: KeyboardSupportService<ListFocusItem>,\n _contentDensityObserver: ContentDensityObserver\n ) {\n _contentDensityObserver.subscribe();\n }\n\n /** @hidden */\n @HostListener('keydown', ['$event'])\n keyDownHandler(event: KeyboardEvent): void {\n if (this.keyboardSupport) {\n this._keyboardSupportService.onKeyDown(event);\n }\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._listenOnListFocusEscape();\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._keyboardSupportService.setKeyboardService(this._focusItems, false, false);\n this._listenOnQueryChange();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._onRefresh$.next();\n this._onRefresh$.complete();\n }\n\n /** Set fake focus on element with passed index */\n setItemActive(index: number, updateOnly = false): void {\n if (updateOnly) {\n this._keyboardSupportService.keyManager.updateActiveItem(index);\n } else {\n this._keyboardSupportService.keyManager.setActiveItem(index);\n }\n }\n\n /**\n * @returns Currently active list item.\n */\n getActiveItem(): ListFocusItem | null {\n return this._keyboardSupportService.keyManager.activeItem;\n }\n\n /** @hidden */\n private _listenOnQueryChange(): void {\n this._focusItems.changes.pipe(startWith(0), takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n this._recheckLinks();\n this._listenOnItemsClick();\n setTimeout(() => {\n // using setTimeout to avoid ExpressionChangedAfterItHasBeenCheckedError\n this.updateItemsProperties();\n });\n });\n }\n\n /** @hidden */\n private _listenOnItemsClick(): void {\n /** Finish all the streams, from before */\n this._onRefresh$.next();\n\n if (!this.keyboardSupport) {\n return;\n }\n\n /** Merge refresh/destroy observables */\n const completion$ = merge(this._onRefresh$, destroyObservable(this._destroyRef));\n const interactionChangesIndexes: Observable<{ index: number; updateOnly: boolean }>[] = this._focusItems.map(\n (item, index) =>\n merge(\n item._clicked$.pipe(map(() => ({ index, updateOnly: false }))),\n item._focused$.pipe(map(({ focusedWithin }) => ({ index, updateOnly: focusedWithin })))\n )\n );\n merge(...interactionChangesIndexes)\n .pipe(takeUntil(completion$))\n .subscribe(({ index, updateOnly }) => this.setItemActive(index, updateOnly));\n }\n\n /** @hidden */\n private updateItemsProperties(): void {\n let closestListHeader: ListGroupHeaderDirective | null = null;\n this._focusItems.forEach((item, index) => {\n if (item instanceof ListGroupHeaderDirective) {\n closestListHeader = item;\n } else if (item instanceof ListItemComponent && closestListHeader) {\n item._relatedGroupHeaderId = closestListHeader.nativeElementId;\n }\n item.setIsFirst(index === 0);\n });\n }\n\n /** @hidden */\n private _recheckLinks(): void {\n const items = this.items.filter((item) => item.link);\n this.hasNavigation = items.length > 0;\n if (!this.selection) {\n this._defaultRole = this.hasNavigation ? 'navigation' : 'list';\n } else {\n this._defaultRole = 'listbox';\n }\n }\n\n /** @hidden */\n private _listenOnListFocusEscape(): void {\n this._keyboardSupportService.focusEscapeList\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((direction) => this.focusEscapeList.emit(direction));\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ListBylineLeftDirective } from './directives/byline/list-byline-left.directive';\nimport { ListBylineRightDirective } from './directives/byline/list-byline-right.directive';\nimport { ListBylineDirective } from './directives/byline/list-byline.directive';\nimport { ListContentDirective } from './directives/byline/list-content.directive';\nimport { ListThumbnailDirective } from './directives/byline/list-thumbnail.directive';\nimport { ListFooterDirective } from './directives/list-footer.directive';\nimport { ListGroupHeaderDirective } from './directives/list-group-header.directive';\nimport { ListIconDirective } from './directives/list-icon.directive';\nimport { ListLinkDirective } from './directives/list-link.directive';\nimport { ListNavigationItemArrowDirective } from './directives/list-navigation-item-arrow.directive';\nimport { ListNavigationItemTextDirective } from './directives/list-navigation-item-text.directive';\nimport { ListSecondaryDirective } from './directives/list-secondary.directive';\nimport { ListTitleTextDirective } from './directives/list-title-text.directive';\nimport { ListTitleDirective } from './directives/list-title.directive';\nimport { ListItemComponent } from './list-item/list-item.component';\nimport { ListMessageDirective } from './list-message.directive';\nimport { ListNavigationItemComponent } from './list-navigation-item/list-navigation-item.component';\nimport { ListComponent } from './list.component';\n\nconst components = [\n ListComponent,\n ListItemComponent,\n ListTitleDirective,\n ListFooterDirective,\n ListGroupHeaderDirective,\n ListSecondaryDirective,\n ListIconDirective,\n ListMessageDirective,\n ListLinkDirective,\n ListBylineDirective,\n ListBylineLeftDirective,\n ListBylineRightDirective,\n ListContentDirective,\n ListThumbnailDirective,\n ListTitleTextDirective,\n ListNavigationItemComponent,\n ListNavigationItemArrowDirective,\n ListNavigationItemTextDirective\n];\n\n@NgModule({\n imports: [...components],\n exports: [...components]\n})\nexport class ListModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":";;;;;;;;;;;;;;;;;;;;MAMa,uBAAuB,CAAA;AAJpC,IAAA,WAAA,GAAA;;QAOI,IAAqB,CAAA,qBAAA,GAAG,IAAI,CAAC;;QAK7B,IAAI,CAAA,IAAA,GAAG,KAAK,CAAC;AAChB,KAAA;8GATY,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,4BAAA,EAAA,4BAAA,EAAA,kCAAA,EAAA,WAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAJnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,2CAA2C;AACrD,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;8BAIG,qBAAqB,EAAA,CAAA;sBADpB,WAAW;uBAAC,4BAA4B,CAAA;gBAMzC,IAAI,EAAA,CAAA;sBAFH,KAAK;;sBACL,WAAW;uBAAC,kCAAkC,CAAA;;;MCItC,wBAAwB,CAAA;AAbrC,IAAA,WAAA,GAAA;;QAuBI,IAAI,CAAA,IAAA,GAAG,KAAK,CAAC;AAChB,KAAA;8GAXY,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,sCAAA,EAAA,wBAAA,EAAA,uCAAA,EAAA,yBAAA,EAAA,uCAAA,EAAA,yBAAA,EAAA,uCAAA,EAAA,yBAAA,EAAA,0CAAA,EAAA,4BAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAbpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,6CAA6C;AACvD,oBAAA,IAAI,EAAE;AACF,wBAAA,KAAK,EAAE,uBAAuB;AAC9B,wBAAA,wCAAwC,EAAE,sBAAsB;AAChE,wBAAA,yCAAyC,EAAE,uBAAuB;AAClE,wBAAA,yCAAyC,EAAE,uBAAuB;AAClE,wBAAA,yCAAyC,EAAE,uBAAuB;AAClE,wBAAA,4CAA4C,EAAE,0BAA0B;AACxE,wBAAA,qCAAqC,EAAE,MAAM;AAChD,qBAAA;AACD,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;8BAOG,MAAM,EAAA,CAAA;sBADL,KAAK;gBAKN,IAAI,EAAA,CAAA;sBADH,KAAK;;;MCfG,mBAAmB,CAAA;AAThC,IAAA,WAAA,GAAA;;QAYI,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;;QAIf,IAAI,CAAA,IAAA,GAAG,KAAK,CAAC;AAChB,KAAA;8GARY,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,8BAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAT/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,kCAAkC;AAC5C,oBAAA,IAAI,EAAE;AACF,wBAAA,KAAK,EAAE,iBAAiB;AACxB,wBAAA,gCAAgC,EAAE,QAAQ;AAC1C,wBAAA,+BAA+B,EAAE,MAAM;AAC1C,qBAAA;AACD,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;8BAIG,MAAM,EAAA,CAAA;sBADL,KAAK;gBAKN,IAAI,EAAA,CAAA;sBADH,KAAK;;;MCXG,oBAAoB,CAAA;AAJjC,IAAA,WAAA,GAAA;;QAOI,IAAkB,CAAA,kBAAA,GAAG,IAAI,CAAC;;QAK1B,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;AAClB,KAAA;8GATY,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,wBAAA,EAAA,yBAAA,EAAA,+BAAA,EAAA,aAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,oCAAoC;AAC9C,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;8BAIG,kBAAkB,EAAA,CAAA;sBADjB,WAAW;uBAAC,wBAAwB,CAAA;gBAMrC,MAAM,EAAA,CAAA;sBAFL,KAAK;;sBACL,WAAW;uBAAC,+BAA+B,CAAA;;;MCPnC,sBAAsB,CAAA;AAJnC,IAAA,WAAA,GAAA;;QAOI,IAAoB,CAAA,oBAAA,GAAG,IAAI,CAAC;AAC/B,KAAA;8GAJY,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wCAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,0BAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,wCAAwC;AAClD,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;8BAIG,oBAAoB,EAAA,CAAA;sBADnB,WAAW;uBAAC,0BAA0B,CAAA;;;MCF9B,mBAAmB,CAAA;AAJhC,IAAA,WAAA,GAAA;;QAOI,IAAiB,CAAA,iBAAA,GAAG,IAAI,CAAC;AAC5B,KAAA;8GAJY,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,uBAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,kCAAkC;AAC5C,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;8BAIG,iBAAiB,EAAA,CAAA;sBADhB,WAAW;uBAAC,uBAAuB,CAAA;;;ACNxC,IAAI,QAAQ,GAAG,CAAC,CAAC;MAWJ,wBAAwB,CAAA;;AAWjC,IAAA,WAAA,CAAqB,UAAsB,EAAA;QAAtB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;;AAP3C,QAAA,IAAA,CAAA,eAAe,GAAkB,CAAA,qBAAA,EAAwB,EAAE,QAAQ,EAAE,CAAC;;AAItE,QAAA,IAAA,CAAA,OAAO,GAAgC,IAAI,YAAY,EAAiB,CAAC;KAG1B;;AAI/C,IAAA,cAAc,CAAC,KAAoB,EAAA;AAC/B,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC5B;8GAjBQ,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,wBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,SAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBATpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,6CAA6C;AACvD,oBAAA,IAAI,EAAE;AACF,wBAAA,iBAAiB,EAAE,QAAQ;AAC3B,wBAAA,uBAAuB,EAAE,MAAM;AAC/B,wBAAA,+BAA+B,EAAE,MAAM;AAC1C,qBAAA;AACD,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;+EAKG,eAAe,EAAA,CAAA;sBAFd,KAAK;;sBACL,WAAW;uBAAC,SAAS,CAAA;gBAKtB,OAAO,EAAA,CAAA;sBADN,MAAM;gBAQP,cAAc,EAAA,CAAA;sBADb,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MCnB1B,iBAAiB,CAAA;AAJ9B,IAAA,WAAA,GAAA;;QAaI,IAAS,CAAA,SAAA,GAAa,2BAA2B,CAAC;;QASlD,IAAI,CAAA,IAAA,GAAG,cAAc,CAAC;;AAGb,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAqB5C,KAAA;AAnBG;;;;AAIG;IAEH,sBAAsB,GAAA;AAClB,QAAA,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;KACxG;;IAGD,WAAW,GAAA;QACP,IAAI,CAAC,sBAAsB,EAAE,CAAC;KACjC;;IAGD,QAAQ,GAAA;QACJ,IAAI,CAAC,sBAAsB,EAAE,CAAC;KACjC;8GAzCQ,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,WAAA,EAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;AA6B1B,UAAA,CAAA;IADC,aAAa;;;;AAGb,CAAA,EAAA,iBAAA,CAAA,SAAA,EAAA,wBAAA,EAAA,IAAA,CAAA,CAAA;2FA/BQ,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,8BAA8B;AACxC,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;8BAMG,KAAK,EAAA,CAAA;sBADJ,KAAK;gBAKN,SAAS,EAAA,CAAA;sBADR,KAAK;gBAKN,KAAK,EAAA,CAAA;sBADJ,KAAK;gBAMN,IAAI,EAAA,CAAA;sBAFH,KAAK;;sBACL,WAAW;uBAAC,WAAW,CAAA;gBAYxB,sBAAsB,EAAA,EAAA,EAAA,EAAA,CAAA;;MClCb,yBAAyB,GAAG,IAAI,cAAc,CAAC,wBAAwB,EAAE;MACzE,sBAAsB,GAAG,IAAI,cAAc,CAAC,qBAAqB,EAAE;MACnE,iBAAiB,GAAG,IAAI,cAAc,CAAyB,eAAe,EAAE;MAEhF,wBAAwB,GAAG,IAAI,cAAc,CAAyB,qBAAqB;;MCU3F,iBAAiB,CAAA;;AAwB1B,IAAA,WAAA,CAAmB,UAAsB,EAAA;QAAtB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;;QApBzC,IAAmB,CAAA,mBAAA,GAAG,KAAK,CAAC;;QAK5B,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;;QAKlB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;;QAIlB,IAAe,CAAA,eAAA,GAAG,IAAI,CAAC;;AAGd,QAAA,IAAA,CAAA,2BAA2B,GAAG,IAAI,OAAO,EAAQ,CAAC;KAGd;;AAG7C,IAAA,WAAW,CAAC,OAAsB,EAAA;AAC9B,QAAA,IAAI,OAAO,CAAC,mBAAmB,IAAI,OAAO,CAAC,SAAS,EAAE;AAClD,YAAA,IAAI,CAAC,2BAA2B,CAAC,IAAI,EAAE,CAAC;AAC3C,SAAA;KACJ;8GA/BQ,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EARf,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,2CAAA,EAAA,0BAAA,EAAA,oBAAA,EAAA,gBAAA,EAAA,gCAAA,EAAA,gBAAA,EAAA,qBAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,sBAAsB;AAC/B,gBAAA,WAAW,EAAE,iBAAiB;AACjC,aAAA;AACJ,SAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAGQ,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAb7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,8BAA8B;AACxC,oBAAA,IAAI,EAAE;AACF,wBAAA,iBAAiB,EAAE,IAAI;AAC1B,qBAAA;AACD,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,sBAAsB;AAC/B,4BAAA,WAAW,EAAmB,iBAAA;AACjC,yBAAA;AACJ,qBAAA;AACD,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;+EAKG,mBAAmB,EAAA,CAAA;sBAFlB,KAAK;;sBACL,WAAW;uBAAC,2CAA2C,CAAA;gBAMxD,SAAS,EAAA,CAAA;sBAFR,KAAK;;sBACL,WAAW;uBAAC,oBAAoB,CAAA;gBAMjC,SAAS,EAAA,CAAA;sBAFR,KAAK;;sBACL,WAAW;uBAAC,gCAAgC,CAAA;gBAK7C,eAAe,EAAA,CAAA;sBADd,WAAW;uBAAC,qBAAqB,CAAA;;;MCvBzB,gCAAgC,CAAA;AAR7C,IAAA,WAAA,GAAA;;QAWI,IAAwB,CAAA,wBAAA,GAAG,IAAI,CAAC;;QAIhC,IAAe,CAAA,eAAA,GAAG,IAAI,CAAC;;QAIvB,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;;QAIvB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;;QAKjB,IAAU,CAAA,UAAA,GAAsB,IAAI,CAAC;AAUxC,KAAA;;AAPG,IAAA,YAAY,CAAC,QAAiB,EAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;AAC5B,YAAA,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC;AAC7C,YAAA,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC;AAC9C,SAAA;AACD,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;KAC5B;8GA7BQ,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAhC,gCAAgC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,cAAA,EAAA,EAAA,UAAA,EAAA,EAAA,sCAAA,EAAA,+BAAA,EAAA,wCAAA,EAAA,sBAAA,EAAA,uCAAA,EAAA,qBAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAhC,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAR5C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,8DAA8D;AACxE,oBAAA,IAAI,EAAE;AACF,wBAAA,QAAQ,EAAE,IAAI;AACd,wBAAA,IAAI,EAAE,cAAc;AACvB,qBAAA;AACD,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;8BAIG,wBAAwB,EAAA,CAAA;sBADvB,WAAW;uBAAC,sCAAsC,CAAA;gBAKnD,eAAe,EAAA,CAAA;sBADd,WAAW;uBAAC,wCAAwC,CAAA;gBAKrD,cAAc,EAAA,CAAA;sBADb,WAAW;uBAAC,uCAAuC,CAAA;gBAKpD,QAAQ,EAAA,CAAA;sBADP,WAAW;uBAAC,mBAAmB,CAAA;gBAMhC,UAAU,EAAA,CAAA;sBAFT,KAAK;;sBACL,WAAW;uBAAC,kBAAkB,CAAA;;;MCxBtB,+BAA+B,CAAA;;AAMxC,IAAA,WAAA,CAA4B,UAAsB,EAAA;QAAtB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;;QAHlD,IAAuB,CAAA,uBAAA,GAAG,IAAI,CAAC;KAGuB;8GAN7C,+BAA+B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAA/B,+BAA+B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4DAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,qCAAA,EAAA,8BAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAA/B,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAJ3C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,4DAA4D;AACtE,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;+EAIG,uBAAuB,EAAA,CAAA;sBADtB,WAAW;uBAAC,qCAAqC,CAAA;;;ACL/C,MAAM,uBAAuB,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAW;MASvF,sBAAsB,CAAA;;AAW/B,IAAA,WAAA,GAAA;;AAHA,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAItB,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,CAAC,oBAAoB,CAAC,CAAC;KACjD;;IAGD,WAAW,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,EAAE,EAAE;AAC1E,YAAA,OAAO,CAAC,IAAI,CACR,CAA4C,yCAAA,EAAA,IAAI,CAAC,IAAI,CAAA,qBAAA,EAAwB,IAAI,CAAC,SAAS,CACvF,uBAAuB,CAC1B,CAAA,CAAE,CACN,CAAC;AACL,SAAA;AACD,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,CAAC,oBAAoB,EAAE,CAAA,oBAAA,EAAuB,IAAI,CAAC,IAAI,CAAA,CAAE,CAAC,CAAC;KACrF;8GAzBQ,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wCAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,OAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,wCAAwC;AAClD,oBAAA,UAAU,EAAE,IAAI;oBAChB,cAAc,EAAE,CAAC,OAAO,CAAC;AAC5B,iBAAA,CAAA;wDAMG,IAAI,EAAA,CAAA;sBADH,KAAK;;;MCVG,sBAAsB,CAAA;AAJnC,IAAA,WAAA,GAAA;;QAOI,IAAe,CAAA,eAAA,GAAG,IAAI,CAAC;AAC1B,KAAA;8GAJY,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yCAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,2BAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,yCAAyC;AACnD,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;8BAIG,eAAe,EAAA,CAAA;sBADd,WAAW;uBAAC,2BAA2B,CAAA;;;MCF/B,kBAAkB,CAAA;;AAW3B,IAAA,WAAA,CAAmB,KAAiB,EAAA;QAAjB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAY;;QARpC,IAAgB,CAAA,gBAAA,GAAG,IAAI,CAAC;;QAKxB,IAAI,CAAA,IAAA,GAAG,KAAK,CAAC;KAG2B;;IAGxC,QAAQ,GAAA;AACJ,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;AAC1C,QAAA,IAAI,QAAQ,CAAC,OAAO,KAAK,GAAG,EAAE;AAC1B,YAAA,QAAQ,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AAC3C,SAAA;KACJ;8GAnBQ,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,4BAAA,EAAA,WAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gCAAgC;AAC1C,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;+EAIG,gBAAgB,EAAA,CAAA;sBADf,WAAW;uBAAC,sBAAsB,CAAA;gBAMnC,IAAI,EAAA,CAAA;sBAFH,KAAK;;sBACL,WAAW;uBAAC,4BAA4B,CAAA;;;MCPvB,aAAa,CAAA;AADnC,IAAA,WAAA,GAAA;;AAmBI,QAAA,IAAA,CAAA,OAAO,GAAgC,IAAI,YAAY,EAAiB,CAAC;;AAGhE,QAAA,IAAA,CAAA,UAAU,GAAe,MAAM,CAAC,UAAU,CAAC,CAAC;;AAG5C,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,OAAO,EAA8B,CAAC;;AAGtD,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,OAAO,EAAc,CAAC;;AAGrC,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;;AAG9B,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAqB,SAAS,CAAC,CAAC;;AAGnD,QAAA,IAAA,CAAA,oBAAoB,GAAG,QAAQ,CAAC,MAAK;AAC3C,YAAA,IAAI,IAAI,CAAC,aAAa,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,EAAY,CAAC,EAAE;AAC5D,gBAAA,OAAO,CAAC,CAAC;AACZ,aAAA;AACD,YAAA,OAAO,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;AACnC,SAAC,CAAC,CAAC;AAwBN,KAAA;;IA/DG,IACI,QAAQ,CAAC,KAAa,EAAA;AACtB,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;KACxD;AACD,IAAA,IAAI,QAAQ,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,oBAAoB,EAAE,CAAC;KACtC;;AAqCS,IAAA,OAAO,CAAC,KAAiB,EAAA;AAC/B,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAChB,aAAa,EAAE,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE,aAAa;AACjE,SAAA,CAAC,CAAC;KACN;;IAGD,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;KAC3C;;IAGD,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;KAC3C;;AAGD,IAAA,UAAU,CAAC,KAAc,EAAA;AACrB,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KACjC;8GAhEiB,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAb,aAAa,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBADlC,SAAS;8BAIF,QAAQ,EAAA,CAAA;sBADX,KAAK;gBAaN,KAAK,EAAA,CAAA;sBADJ,KAAK;gBA+BI,OAAO,EAAA,CAAA;sBADhB,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAA;;;AChBvC,IAAI,gBAAgB,GAAG,CAAC,CAAC;AAEzB;;;AAGG;AAwBG,MAAO,iBAA2B,SAAQ,aAAgB,CAAA;;IAwD5D,IACI,KAAK,CAAC,KAA2B,EAAA;AACjC,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,EAAE;AAC7C,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;AAC7B,SAAA;AACD,QAAA,IAAI,KAAK,EAAE;AACP,YAAA,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;AACzB,SAAA;KACJ;AACD,IAAA,IAAI,KAAK,GAAA;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;KACtB;;IAGD,IACI,QAAQ,CAAC,KAAwB,EAAA;AACjC,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,IAAI,IAAI,EAAE;AACxD,YAAA,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;AACrC,SAAA;AACD,QAAA,IAAI,KAAK,EAAE;AACP,YAAA,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;AACzB,SAAA;KACJ;AACD,IAAA,IAAI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;;AA0BD,IAAA,IACY,QAAQ,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC;KACtC;;AAcD,IAAA,WAAA,CAA6B,kBAAqC,EAAA;AAC9D,QAAA,KAAK,EAAE,CAAC;QADiB,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAmB;;QAzHlE,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;;QAKjB,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;;QAKf,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;;QAKf,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;;QAKpB,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;;QAShB,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;AAEf;;AAEG;QAGH,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;;AAIf,QAAA,IAAA,CAAA,OAAO,GAAgC,IAAI,YAAY,EAAiB,CAAC;;QAIzE,IAAI,CAAA,IAAA,GAAG,KAAK,CAAC;;AA6CI,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;;AAGjC,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,OAAO,EAAQ,CAAC;;AAkBnD,QAAA,IAAA,CAAA,KAAK,GAAG,UAAU,CAAC;;AAGlB,QAAA,IAAA,CAAA,SAAS,GAAG,eAAe,GAAG,EAAE,gBAAgB,CAAC;;AAGjD,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,wBAAwB,EAAE;AAC9C,YAAA,QAAQ,EAAE,IAAI;AACjB,SAAA,CAAC,CAAC;KAKF;;AAID,IAAA,cAAc,CAAC,KAAoB,EAAA;AAC/B,QAAA,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE;YAC1C,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,gBAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;AAC1B,gBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAC1B,aAAA;iBAAM,IAAI,IAAI,CAAC,KAAK,EAAE;gBACnB,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACtC,gBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAC1B,aAAA;iBAAM,IAAI,IAAI,CAAC,WAAW,EAAE;AACzB,gBAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC/B,gBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBACvB,OAAO;AACV,aAAA;iBAAM,IAAI,IAAI,CAAC,IAAI,EAAE;AAClB,gBAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAC9E,gBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAC1B,aAAA;AACJ,SAAA;AACD,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC5B;;AAID,IAAA,YAAY,CAAC,KAAoB,EAAA;AAC7B,QAAA,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE;YACvD,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC;AAC1E,YAAA,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC7C,cAAc,CAAC,KAAK,EAAE,CAAC;AACvB,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAC1B,SAAA;KACJ;;AAID,IAAA,OAAO,CAAC,KAAiB,EAAA;AACrB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AAC7B,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC,EAAE;;;AAGxE,gBAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;AAC7B,aAAA;AACJ,SAAA;QACD,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAC1B,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACzC,SAAA;KACJ;;IAIO,QAAQ,GAAA;;AAEZ,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,yCAAyC,CAAC,CAAC;QAC5G,YAAY,EAAE,KAAK,EAAE,CAAC;KACzB;;IAGD,kBAAkB,GAAA;QACd,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAChC,IAAI,CAAC,0BAA0B,EAAE,CAAC;KACrC;;IAGO,wBAAwB,GAAA;QAC5B,IAAI,CAAC,cAAc,CAAC,OAAO;AACtB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aAC1E,SAAS,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC;YAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;AAC3C,YAAA,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC;AAC5C,SAAC,CAAC,CAAC;KACV;;IAGO,0BAA0B,GAAA;QAC9B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;YACzF,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AAClD,SAAC,CAAC,CAAC;KACN;;AAGO,IAAA,kBAAkB,CAAC,MAAuB,EAAA;AAC9C,QAAA,MAAM,CAAC,KAAK,IAAI,kBAAkB,CAAC;QACnC,MAAM,CAAC,sBAAsB,EAAE,CAAC;QAChC,MAAM,CAAC,aAAa,EAAE,CAAC;KAC1B;;AAGO,IAAA,UAAU,CAAC,KAAY,EAAA;QAC3B,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,KAAK,CAAC,cAAc,EAAE,CAAC;KAC1B;8GA9NQ,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EAff,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,wBAAA,EAAA,OAAA,EAAA,sBAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,wBAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,8BAAA,EAAA,aAAA,EAAA,6BAAA,EAAA,aAAA,EAAA,mCAAA,EAAA,kBAAA,EAAA,8BAAA,EAAA,cAAA,EAAA,6BAAA,EAAA,aAAA,EAAA,6BAAA,EAAA,aAAA,EAAA,2BAAA,EAAA,WAAA,EAAA,WAAA,EAAA,eAAA,EAAA,EAAA,cAAA,EAAA,eAAA,EAAA,EAAA,SAAA,EAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,mBAAmB;AAC5B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,iBAAiB,CAAC;AACnD,aAAA;AACD,YAAA;AACI,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,iBAAiB,CAAC;AACnD,aAAA;AACJ,SAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EA8Da,yBAAyB,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAezB,qBAAqB,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,SAAA,EAelB,sBAAsB,EAItB,EAAA,EAAA,YAAA,EAAA,SAAA,EAAA,SAAA,EAAA,mBAAmB,ECzJxC,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,2fAeA,ED8Cc,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,iBAAiB,EAAE,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,WAAW,+CAAE,aAAa,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,YAAA,EAAA,OAAA,EAAA,WAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAE9C,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAvB7B,SAAS;AAEI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,8BAA8B,EAElC,IAAA,EAAA;AACF,wBAAA,KAAK,EAAE,eAAe;AACtB,wBAAA,iBAAiB,EAAE,wBAAwB;qBAC9C,EACU,SAAA,EAAA;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,mBAAmB;AAC5B,4BAAA,WAAW,EAAE,UAAU,CAAC,uBAAuB,CAAC;AACnD,yBAAA;AACD,wBAAA;AACI,4BAAA,OAAO,EAAE,aAAa;AACtB,4BAAA,WAAW,EAAE,UAAU,CAAC,uBAAuB,CAAC;AACnD,yBAAA;AACJ,qBAAA,EAAA,eAAA,EACgB,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,UAAA,EACzB,IAAI,EAAA,OAAA,EACP,CAAC,iBAAiB,EAAE,WAAW,EAAE,aAAa,CAAC,EAAA,QAAA,EAAA,2fAAA,EAAA,CAAA;sFAOxD,QAAQ,EAAA,CAAA;sBAHP,KAAK;;sBACL,WAAW;uBAAC,mBAAmB,CAAA;;sBAC/B,WAAW;uBAAC,oBAAoB,CAAA;gBAMjC,MAAM,EAAA,CAAA;sBAFL,KAAK;;sBACL,WAAW;uBAAC,8BAA8B,CAAA;gBAM3C,MAAM,EAAA,CAAA;sBAFL,KAAK;;sBACL,WAAW;uBAAC,6BAA6B,CAAA;gBAM1C,WAAW,EAAA,CAAA;sBAFV,KAAK;;sBACL,WAAW;uBAAC,mCAAmC,CAAA;gBAMhD,OAAO,EAAA,CAAA;sBAFN,KAAK;;sBACL,WAAW;uBAAC,8BAA8B,CAAA;gBAK3C,OAAO,EAAA,CAAA;sBADN,KAAK;gBAMN,MAAM,EAAA,CAAA;sBAFL,KAAK;;sBACL,WAAW;uBAAC,6BAA6B,CAAA;gBAQ1C,MAAM,EAAA,CAAA;sBAFL,KAAK;;sBACL,WAAW;uBAAC,6BAA6B,CAAA;gBAK1C,OAAO,EAAA,CAAA;sBADN,MAAM;gBAKP,IAAI,EAAA,CAAA;sBADH,WAAW;uBAAC,2BAA2B,CAAA;gBAKxC,QAAQ,EAAA,CAAA;sBADP,KAAK;gBAKF,KAAK,EAAA,CAAA;sBADR,YAAY;uBAAC,yBAAyB,CAAA;gBAgBnC,QAAQ,EAAA,CAAA;sBADX,YAAY;uBAAC,qBAAqB,CAAA;gBAgBnC,cAAc,EAAA,CAAA;sBADb,eAAe;uBAAC,sBAAsB,CAAA;gBAKvC,OAAO,EAAA,CAAA;sBADN,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,mBAAmB,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;gBAoB/C,QAAQ,EAAA,CAAA;sBADnB,WAAW;uBAAC,WAAW,CAAA;gBAuBxB,cAAc,EAAA,CAAA;sBADb,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAuBnC,YAAY,EAAA,CAAA;sBADX,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAYjC,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAiBzB,QAAQ,EAAA,CAAA;sBADf,YAAY;uBAAC,OAAO,CAAA;;;MEpOZ,oBAAoB,CAAA;;AAU7B,IAAA,WAAA,CAA4B,UAAsB,EAAA;QAAtB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;KAAI;;IAGtD,WAAW,GAAA;QACP,IAAI,CAAC,sBAAsB,EAAE,CAAC;KACjC;;IAGD,QAAQ,GAAA;QACJ,IAAI,CAAC,sBAAsB,EAAE,CAAC;KACjC;AAED;;;;AAIG;IAEH,sBAAsB,GAAA;QAClB,OAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC,IAAI,GAAG,oBAAoB,GAAG,IAAI,CAAC,IAAI,GAAG,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;KAC9F;8GA9BQ,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,EARlB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,yBAAyB;AAClC,gBAAA,WAAW,EAAE,oBAAoB;AACpC,aAAA;AACJ,SAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;AA+BD,UAAA,CAAA;IADC,aAAa;;;;AAGb,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,wBAAA,EAAA,IAAA,CAAA,CAAA;2FA9BQ,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAVhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,oCAAoC;AAC9C,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,yBAAyB;AAClC,4BAAA,WAAW,EAAsB,oBAAA;AACpC,yBAAA;AACJ,qBAAA;AACD,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;+EAIG,IAAI,EAAA,CAAA;sBADH,KAAK;gBAKN,KAAK,EAAA,CAAA;sBADJ,KAAK;gBAsBN,sBAAsB,EAAA,EAAA,EAAA,EAAA,CAAA;;MCFb,2BAA2B,CAAA;;AAgDpC,IAAA,IACY,aAAa,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;KACrD;;IA8BD,WACY,CAAA,WAAuB,EACX,WAAuB,EAAA;QADnC,IAAW,CAAA,WAAA,GAAX,WAAW,CAAY;QACX,IAAW,CAAA,WAAA,GAAX,WAAW,CAAY;;QA/E/C,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;;QAKjB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;;QAIlB,IAAoB,CAAA,oBAAA,GAAG,IAAI,CAAC;;QAI5B,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;;AAqCtB,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;;QAG3B,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;;AAMT,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,OAAO,EAAW,CAAC;;AAGnC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,OAAO,EAAc,CAAC;AAE/C;;;AAGG;QACH,IAAc,CAAA,cAAA,GAAG,IAAI,CAAC;;AAGL,QAAA,IAAA,CAAA,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC;;AAGxD,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QAO5C,MAAM,CAAC,MAAK;AACR,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;AACnB,gBAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,qCAAqC,CAAC,CAAC;AACnG,aAAA;AAAM,iBAAA;AACH,gBAAA,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,qCAAqC,CAAC,CAAC;AACtG,aAAA;AACL,SAAC,CAAC,CAAC;KACN;;AAID,IAAA,WAAW,CAAC,KAAiB,EAAA;QACzB,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC/C;;AAID,IAAA,cAAc,CAAC,KAAoB,EAAA;QAC/B,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE;YACzC,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,IAAI,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;AAC9C,SAAA;QACD,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE;YACxC,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;AAC7C,SAAA;AACD,QAAA,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE;YAC1C,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,IAAI,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC/C,SAAA;KACJ;;AAIS,IAAA,OAAO,CAAC,KAAiB,EAAA;AAC/B,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;KACzE;;IAGD,kBAAkB,GAAA;QACd,IAAI,IAAI,CAAC,cAAc,EAAE;AACrB,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,GAAG,OAAO,CAAC;AACtC,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AACtB,SAAA;QACD,IAAI,IAAI,CAAC,cAAc,EAAE;AACrB,YAAA,IAAI,CAAC,cAAc,CAAC,mBAAmB,GAAG,IAAI,CAAC;AAC/C,YAAA,IAAI,CAAC,cAAc,CAAC,UAAU,GAAG,IAAI,CAAC;AACzC,SAAA;AACD,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,IAAI,EAAE,CAAC;AACxE,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,IAAI,KAAI;AAC/B,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACxB,SAAC,CAAC,CAAC;KACN;;IAGD,eAAe,GAAA;QACX,IAAI,IAAI,CAAC,aAAa,EAAE;AACpB,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AAC1B,SAAA;AACD,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACzC;AAED;;AAEG;AACH,IAAA,iBAAiB,CAAC,KAAc,EAAA;QAC5B,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,cAAc,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,KAAI;AAC7C,gBAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAChC,aAAC,CAAC,CAAC;AACN,SAAA;KACJ;;IAGD,2BAA2B,GAAA;QACvB,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,cAAc,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,OAAO,KAAI;YAChD,IAAI,OAAO,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;gBACxC,MAAM,GAAG,IAAI,CAAC;AACjB,aAAA;AACL,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,MAAM,CAAC;KACjB;;IAGD,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;KAC1C;;IAGD,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;KAC5C;;AAGO,IAAA,sBAAsB,CAAC,QAAiB,EAAA;QAC5C,IAAI,IAAI,CAAC,aAAa,EAAE;AACpB,YAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;gBAC5B,OAAO;AACV,aAAA;AAED,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACzB,YAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;AAC1B,YAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YACjC,IAAI,CAAC,wBAAwB,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAE1D,YAAA,IAAI,QAAQ,EAAE;gBACV,UAAU,CAAC,MAAK;oBACZ,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;AAChD,iBAAC,CAAC,CAAC;AACN,aAAA;AAAM,iBAAA;gBACH,UAAU,CAAC,MAAK;oBACZ,IAAI,CAAC,KAAK,EAAE,CAAC;AACjB,iBAAC,CAAC,CAAC;AACN,aAAA;AACJ,SAAA;KACJ;8GA/MQ,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,EA4BtB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mDAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,wBAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,2CAAA,EAAA,gBAAA,EAAA,gCAAA,EAAA,2BAAA,EAAA,4CAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,iBAAiB,EAIjB,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,0BAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,gCAAgC,iFAIhC,iBAAiB,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,OAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAIjB,+BAA+B,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,aAAA,EAAA,SAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MAIX,2BAA2B,CCrFjE,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,q0CAgCA,EDOc,MAAA,EAAA,CAAA,mlsBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,gBAAgB,oJAAE,aAAa,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,YAAA,EAAA,OAAA,EAAA,WAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAEhC,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAXvC,SAAS;AAEI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mDAAmD,EAGvD,IAAA,EAAA;AACF,wBAAA,IAAI,EAAE,UAAU;AACnB,qBAAA,EAAA,UAAA,EACW,IAAI,EACP,OAAA,EAAA,CAAC,gBAAgB,EAAE,aAAa,CAAC,EAAA,QAAA,EAAA,q0CAAA,EAAA,MAAA,EAAA,CAAA,mlsBAAA,CAAA,EAAA,CAAA;;0BAqFrC,QAAQ;yCA/Eb,QAAQ,EAAA,CAAA;sBAFP,KAAK;;sBACL,WAAW;uBAAC,mBAAmB,CAAA;gBAMhC,SAAS,EAAA,CAAA;sBAFR,KAAK;;sBACL,WAAW;uBAAC,2CAA2C,CAAA;gBAKxD,oBAAoB,EAAA,CAAA;sBADnB,WAAW;uBAAC,gCAAgC,CAAA;gBAK7C,aAAa,EAAA,CAAA;sBADZ,WAAW;uBAAC,4CAA4C,CAAA;gBAKzD,SAAS,EAAA,CAAA;sBADR,WAAW;uBAAC,eAAe,CAAA;gBAK5B,UAAU,EAAA,CAAA;sBADT,WAAW;uBAAC,iBAAiB,CAAA;gBAK9B,cAAc,EAAA,CAAA;sBADb,YAAY;uBAAC,iBAAiB,CAAA;gBAK/B,wBAAwB,EAAA,CAAA;sBADvB,YAAY;uBAAC,gCAAgC,CAAA;gBAK9C,cAAc,EAAA,CAAA;sBADb,YAAY;uBAAC,iBAAiB,CAAA;gBAK/B,KAAK,EAAA,CAAA;sBADJ,YAAY;uBAAC,+BAA+B,CAAA;gBAK7C,WAAW,EAAA,CAAA;sBADV,eAAe;uBAAC,UAAU,CAAC,MAAM,2BAA2B,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;gBAKzE,aAAa,EAAA,CAAA;sBADxB,WAAW;uBAAC,oBAAoB,CAAA;gBAgDjC,WAAW,EAAA,CAAA;sBADV,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAQjC,cAAc,EAAA,CAAA;sBADb,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAmBzB,OAAO,EAAA,CAAA;sBADhB,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;;;AE5HrC;;;AAGG;MAyBU,aAAa,CAAA;;AA6EtB,IAAA,IACY,SAAS,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC;KACzC;;IAeD,WACY,CAAA,uBAA8D,EACtE,uBAA+C,EAAA;QADvC,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB,CAAuC;;QA5F1E,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;;QAKrB,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;;QAKvB,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;;QAKnB,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;;QAKnB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;;QAKjB,IAAmB,CAAA,mBAAA,GAAG,KAAK,CAAC;;QAK5B,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;;QAIlB,IAAe,CAAA,eAAA,GAAG,IAAI,CAAC;;QAKvB,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;;QAKf,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;;AAIxB,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAwB,CAAC;;QAI3D,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;AA0BtB;;;AAGG;QACK,IAAY,CAAA,YAAA,GAAG,MAAM,CAAC;;AAGb,QAAA,IAAA,CAAA,WAAW,GAAkB,IAAI,OAAO,EAAQ,CAAC;;AAGjD,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QAO9C,uBAAuB,CAAC,SAAS,EAAE,CAAC;KACvC;;AAID,IAAA,cAAc,CAAC,KAAoB,EAAA;QAC/B,IAAI,IAAI,CAAC,eAAe,EAAE;AACtB,YAAA,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACjD,SAAA;KACJ;;IAGD,QAAQ,GAAA;QACJ,IAAI,CAAC,wBAAwB,EAAE,CAAC;KACnC;;IAGD,kBAAkB,GAAA;AACd,QAAA,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAChF,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC/B;;IAGD,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;KAC/B;;AAGD,IAAA,aAAa,CAAC,KAAa,EAAE,UAAU,GAAG,KAAK,EAAA;AAC3C,QAAA,IAAI,UAAU,EAAE;YACZ,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;AACnE,SAAA;AAAM,aAAA;YACH,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAChE,SAAA;KACJ;AAED;;AAEG;IACH,aAAa,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,UAAU,CAAC;KAC7D;;IAGO,oBAAoB,GAAA;QACxB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;YAC7F,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,UAAU,CAAC,MAAK;;gBAEZ,IAAI,CAAC,qBAAqB,EAAE,CAAC;AACjC,aAAC,CAAC,CAAC;AACP,SAAC,CAAC,CAAC;KACN;;IAGO,mBAAmB,GAAA;;AAEvB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;AAExB,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACvB,OAAO;AACV,SAAA;;AAGD,QAAA,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AACjF,QAAA,MAAM,yBAAyB,GAAyD,IAAI,CAAC,WAAW,CAAC,GAAG,CACxG,CAAC,IAAI,EAAE,KAAK,KACR,KAAK,CACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAC9D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,CAC1F,CACR,CAAC;QACF,KAAK,CAAC,GAAG,yBAAyB,CAAC;AAC9B,aAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;AAC5B,aAAA,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;KACpF;;IAGO,qBAAqB,GAAA;QACzB,IAAI,iBAAiB,GAAoC,IAAI,CAAC;QAC9D,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI;YACrC,IAAI,IAAI,YAAY,wBAAwB,EAAE;gBAC1C,iBAAiB,GAAG,IAAI,CAAC;AAC5B,aAAA;AAAM,iBAAA,IAAI,IAAI,YAAY,iBAAiB,IAAI,iBAAiB,EAAE;AAC/D,gBAAA,IAAI,CAAC,qBAAqB,GAAG,iBAAiB,CAAC,eAAe,CAAC;AAClE,aAAA;AACD,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC;AACjC,SAAC,CAAC,CAAC;KACN;;IAGO,aAAa,GAAA;AACjB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACtC,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACjB,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,GAAG,YAAY,GAAG,MAAM,CAAC;AAClE,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;AACjC,SAAA;KACJ;;IAGO,wBAAwB,GAAA;QAC5B,IAAI,CAAC,uBAAuB,CAAC,eAAe;AACvC,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC1C,aAAA,SAAS,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;KACvE;8GA/MQ,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,sBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,EAdX,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,QAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,wBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,yBAAA,EAAA,mBAAA,EAAA,4BAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,iBAAA,EAAA,4BAAA,EAAA,iBAAA,EAAA,0BAAA,EAAA,eAAA,EAAA,sCAAA,EAAA,0BAAA,EAAA,0BAAA,EAAA,gBAAA,EAAA,uBAAA,EAAA,aAAA,EAAA,iCAAA,EAAA,sBAAA,EAAA,2BAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,EAAA,cAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA;YACP,sBAAsB;AACtB,YAAA,+BAA+B,EAAE;AACjC,YAAA;AACI,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,aAAa;AAC7B,aAAA;AACD,YAAA;AACI,gBAAA,OAAO,EAAE,wBAAwB;AACjC,gBAAA,WAAW,EAAE,aAAa;AAC7B,aAAA;AACJ,SAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAoEgB,mBAAmB,EAInB,EAAA,EAAA,YAAA,EAAA,WAAA,EAAA,SAAA,EAAA,2BAA2B,EAI3B,EAAA,EAAA,YAAA,EAAA,aAAA,EAAA,SAAA,EAAA,aAAa,6BA9FpB,CAA2B,yBAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,g3rEAAA,EAAA,itEAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAqB5B,aAAa,EAAA,UAAA,EAAA,CAAA;kBAxBzB,SAAS;+BAEI,qBAAqB,EAAA,QAAA,EACrB,2BAA2B,EAC/B,IAAA,EAAA;AACF,wBAAA,KAAK,EAAE,SAAS;AACnB,qBAAA,EAAA,aAAA,EAEc,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;wBACP,sBAAsB;AACtB,wBAAA,+BAA+B,EAAE;AACjC,wBAAA;AACI,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAe,aAAA;AAC7B,yBAAA;AACD,wBAAA;AACI,4BAAA,OAAO,EAAE,wBAAwB;AACjC,4BAAA,WAAW,EAAe,aAAA;AAC7B,yBAAA;AACJ,qBAAA,EAAA,UAAA,EACW,IAAI,EAAA,MAAA,EAAA,CAAA,g3rEAAA,EAAA,itEAAA,CAAA,EAAA,CAAA;kIAMhB,YAAY,EAAA,CAAA;sBAFX,KAAK;;sBACL,WAAW;uBAAC,yBAAyB,CAAA;gBAMtC,cAAc,EAAA,CAAA;sBAFb,KAAK;;sBACL,WAAW;uBAAC,4BAA4B,CAAA;gBAMzC,UAAU,EAAA,CAAA;sBAFT,KAAK;;sBACL,WAAW;uBAAC,uBAAuB,CAAA;gBAMpC,UAAU,EAAA,CAAA;sBAFT,KAAK;;sBACL,WAAW;uBAAC,4BAA4B,CAAA;gBAMzC,QAAQ,EAAA,CAAA;sBAFP,KAAK;;sBACL,WAAW;uBAAC,0BAA0B,CAAA;gBAMvC,mBAAmB,EAAA,CAAA;sBAFlB,KAAK;;sBACL,WAAW;uBAAC,sCAAsC,CAAA;gBAMnD,SAAS,EAAA,CAAA;sBAFR,KAAK;;sBACL,WAAW;uBAAC,0BAA0B,CAAA;gBAKvC,eAAe,EAAA,CAAA;sBADd,KAAK;gBAMN,MAAM,EAAA,CAAA;sBAFL,KAAK;;sBACL,WAAW;uBAAC,uBAAuB,CAAA;gBAMpC,eAAe,EAAA,CAAA;sBAFd,WAAW;uBAAC,iCAAiC,CAAA;;sBAC7C,KAAK;gBAKN,eAAe,EAAA,CAAA;sBADd,MAAM;gBAKP,aAAa,EAAA,CAAA;sBADZ,WAAW;uBAAC,2BAA2B,CAAA;gBAOxC,IAAI,EAAA,CAAA;sBADH,KAAK;gBAKN,KAAK,EAAA,CAAA;sBADJ,eAAe;uBAAC,mBAAmB,CAAA;gBAKpC,SAAS,EAAA,CAAA;sBADR,eAAe;uBAAC,2BAA2B,CAAA;gBAKpC,WAAW,EAAA,CAAA;sBADlB,eAAe;uBAAC,aAAa,CAAA;gBAKlB,SAAS,EAAA,CAAA;sBADpB,WAAW;uBAAC,WAAW,CAAA;gBA2BxB,cAAc,EAAA,CAAA;sBADb,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAA;;;ACpJvC,MAAM,UAAU,GAAG;IACf,aAAa;IACb,iBAAiB;IACjB,kBAAkB;IAClB,mBAAmB;IACnB,wBAAwB;IACxB,sBAAsB;IACtB,iBAAiB;IACjB,oBAAoB;IACpB,iBAAiB;IACjB,mBAAmB;IACnB,uBAAuB;IACvB,wBAAwB;IACxB,oBAAoB;IACpB,sBAAsB;IACtB,sBAAsB;IACtB,2BAA2B;IAC3B,gCAAgC;IAChC,+BAA+B;CAClC,CAAC;MAMW,UAAU,CAAA;8GAAV,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAV,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,YAxBnB,aAAa;YACb,iBAAiB;YACjB,kBAAkB;YAClB,mBAAmB;YACnB,wBAAwB;YACxB,sBAAsB;YACtB,iBAAiB;YACjB,oBAAoB;YACpB,iBAAiB;YACjB,mBAAmB;YACnB,uBAAuB;YACvB,wBAAwB;YACxB,oBAAoB;YACpB,sBAAsB;YACtB,sBAAsB;YACtB,2BAA2B;YAC3B,gCAAgC;AAChC,YAAA,+BAA+B,aAjB/B,aAAa;YACb,iBAAiB;YACjB,kBAAkB;YAClB,mBAAmB;YACnB,wBAAwB;YACxB,sBAAsB;YACtB,iBAAiB;YACjB,oBAAoB;YACpB,iBAAiB;YACjB,mBAAmB;YACnB,uBAAuB;YACvB,wBAAwB;YACxB,oBAAoB;YACpB,sBAAsB;YACtB,sBAAsB;YACtB,2BAA2B;YAC3B,gCAAgC;YAChC,+BAA+B,CAAA,EAAA,CAAA,CAAA,EAAA;AAOtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,YAvBnB,iBAAiB;YAcjB,2BAA2B,CAAA,EAAA,CAAA,CAAA,EAAA;;2FASlB,UAAU,EAAA,UAAA,EAAA,CAAA;kBAJtB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC;AACxB,oBAAA,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC;AAC3B,iBAAA,CAAA;;;AC5CD;;AAEG;;;;"}
Binary file
@@ -22,9 +22,11 @@ export declare abstract class ListFocusItem<T = any> implements KeyboardSupportI
22
22
  /** @hidden */
23
23
  readonly _clicked$: Subject<MouseEvent>;
24
24
  /** @hidden */
25
- protected _isFirstItem: boolean;
25
+ protected _isFirstItem$: import("@angular/core").WritableSignal<boolean>;
26
26
  /** @hidden */
27
- protected _tabIndex: number | undefined;
27
+ protected _tabIndex$: import("@angular/core").WritableSignal<number | undefined>;
28
+ /** @hidden */
29
+ protected _normalizedTabIndex$: import("@angular/core").Signal<number>;
28
30
  /** @hidden */
29
31
  protected onFocus(event: FocusEvent): void;
30
32
  /** @hidden */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core",
3
- "version": "0.48.2",
3
+ "version": "0.48.3",
4
4
  "schematics": "./schematics/collection.json",
5
5
  "ng-update": {
6
6
  "migrations": "./schematics/migrations.json"
@@ -23,8 +23,8 @@
23
23
  "@angular/forms": "^17.0.0",
24
24
  "@angular/platform-browser": "^17.0.0",
25
25
  "@angular/router": "^17.0.0",
26
- "@fundamental-ngx/cdk": "0.48.2",
27
- "@fundamental-ngx/i18n": "0.48.2",
26
+ "@fundamental-ngx/cdk": "0.48.3",
27
+ "@fundamental-ngx/i18n": "0.48.3",
28
28
  "@sap-theming/theming-base-content": "^11.9.0",
29
29
  "fundamental-styles": "0.33.2",
30
30
  "rxjs": "^7.8.0"
@@ -9,8 +9,8 @@ const package_utils_1 = require("../utils/package-utils");
9
9
  const desiredVersions = {
10
10
  'fundamental-styles': process.env.FD_ENV_FDSTYLES_VER_PLACEHOLDER || '0.33.2',
11
11
  '@sap-theming/theming-base-content': process.env.FD_ENV_THEMING_VER_PLACEHOLDER || '^11.9.0',
12
- '@fundamental-ngx/i18n': process.env.FD_ENV_VERSION_PLACEHOLDER || '0.48.2',
13
- '@fundamental-ngx/cdk': process.env.FD_ENV_VERSION_PLACEHOLDER || '0.48.2'
12
+ '@fundamental-ngx/i18n': process.env.FD_ENV_VERSION_PLACEHOLDER || '0.48.3',
13
+ '@fundamental-ngx/cdk': process.env.FD_ENV_VERSION_PLACEHOLDER || '0.48.3'
14
14
  };
15
15
  /**
16
16
  * Adds dependencies to the project
Binary file