@flywheel-io/vision 19.4.0 → 19.5.0

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,7 +1,7 @@
1
1
  import * as i1$5 from '@angular/common';
2
2
  import { NgClass, CommonModule, NgIf, NgStyle, NgTemplateOutlet, NgFor, SlicePipe } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { HostBinding, Input, ChangeDetectionStrategy, Component, input, output, NgModule, model, computed, signal, HostListener, ViewEncapsulation, EventEmitter, Output, effect, inject, ElementRef, ViewContainerRef, Directive, contentChildren, viewChild, ChangeDetectorRef, ContentChildren, ViewChild, forwardRef, Optional, Inject, SkipSelf, Injectable, Pipe, ContentChild, DestroyRef, untracked, Host, ViewChildren, Self, TemplateRef, viewChildren } from '@angular/core';
4
+ import { HostBinding, Input, ChangeDetectionStrategy, Component, input, output, NgModule, model, computed, signal, HostListener, ViewEncapsulation, EventEmitter, Output, effect, inject, ElementRef, ViewContainerRef, Directive, contentChildren, viewChild, ChangeDetectorRef, ContentChildren, ViewChild, forwardRef, Optional, Inject, SkipSelf, Injectable, Pipe, ContentChild, DestroyRef, untracked, Host, ViewChildren, linkedSignal, Self, TemplateRef, viewChildren } from '@angular/core';
5
5
  import * as i1 from '@angular/platform-browser';
6
6
  import { DomSanitizer } from '@angular/platform-browser';
7
7
  import { BehaviorSubject, debounce, timer, distinctUntilChanged, of, Subscription, min, combineLatest, tap, switchMap, map } from 'rxjs';
@@ -12,7 +12,7 @@ export { CdkTableModule } from '@angular/cdk/table';
12
12
  import { trigger, transition, style, animate, state } from '@angular/animations';
13
13
  import { ComponentPortal } from '@angular/cdk/portal';
14
14
  import * as i1$4 from '@angular/forms';
15
- import { NG_VALUE_ACCESSOR, ReactiveFormsModule, FormsModule } from '@angular/forms';
15
+ import { NG_VALUE_ACCESSOR, ReactiveFormsModule, FormsModule, NgControl, FormControl } from '@angular/forms';
16
16
  import * as i1$1 from '@angular/cdk/dialog';
17
17
  import { Dialog, DEFAULT_DIALOG_CONFIG, DIALOG_SCROLL_STRATEGY, DialogModule } from '@angular/cdk/dialog';
18
18
  import { parseISO, isBefore, isSameDay, isAfter } from 'date-fns';
@@ -23,6 +23,7 @@ import { takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-i
23
23
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
24
24
  import { _DisposeViewRepeaterStrategy, _VIEW_REPEATER_STRATEGY } from '@angular/cdk/collections';
25
25
  import { CdkTextareaAutosize, TextFieldModule } from '@angular/cdk/text-field';
26
+ import { TZDate } from '@date-fns/tz';
26
27
 
27
28
  const namedSizeToPxMap = {
28
29
  large: 28,
@@ -1920,7 +1921,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
1920
1921
 
1921
1922
  class FwButtonToggleItemComponent {
1922
1923
  get classes() {
1923
- return ['fw-button-toggle-item', this.title && this.title.length > 0 ? 'has-title' : 'no-title'].filter(Boolean).join(' ');
1924
+ return ['fw-button-toggle-item', this.title && this.title.length > 0 ? 'has-title' : 'no-title', this.fullWidth() ? 'full-width' : null].filter(Boolean).join(' ');
1924
1925
  }
1925
1926
  ;
1926
1927
  constructor() {
@@ -1930,6 +1931,7 @@ class FwButtonToggleItemComponent {
1930
1931
  this.color = 'slate';
1931
1932
  this.selectedColor = 'primary';
1932
1933
  this.selectedStyle = 'background';
1934
+ this.fullWidth = model(false);
1933
1935
  // eslint-disable-next-line @angular-eslint/no-output-native
1934
1936
  this.click = new EventEmitter();
1935
1937
  }
@@ -1939,11 +1941,11 @@ class FwButtonToggleItemComponent {
1939
1941
  }
1940
1942
  }
1941
1943
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: FwButtonToggleItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1942
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.18", type: FwButtonToggleItemComponent, isStandalone: true, selector: "fw-button-toggle-item", inputs: { title: "title", icon: "icon", selectedIcon: "selectedIcon", value: "value", selected: "selected", disabled: "disabled", size: "size", color: "color", selectedColor: "selectedColor", selectedStyle: "selectedStyle" }, outputs: { click: "click" }, host: { properties: { "attr.class": "this.classes" } }, ngImport: i0, template: "<fw-button\n [leftIcon]=\"(selected && selectedIcon) ? selectedIcon : icon\"\n [variant]=\"(selected && selectedStyle==='background') ? 'solid':'outline'\"\n [color]=\"selected ? selectedColor:color\"\n [size]=\"size\"\n [disabled]=\"disabled\"\n (click)=\"handleClick()\">\n {{ title }}\n</fw-button>\n", dependencies: [{ kind: "component", type: FwButtonComponent, selector: "fw-button", inputs: ["color", "size", "variant", "type", "disabled", "fullWidth", "leftIcon", "rightIcon"] }] }); }
1944
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.18", type: FwButtonToggleItemComponent, isStandalone: true, selector: "fw-button-toggle-item", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: false, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: false, isRequired: false, transformFunction: null }, selectedIcon: { classPropertyName: "selectedIcon", publicName: "selectedIcon", isSignal: false, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: false, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: false, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: false, isRequired: false, transformFunction: null }, selectedColor: { classPropertyName: "selectedColor", publicName: "selectedColor", isSignal: false, isRequired: false, transformFunction: null }, selectedStyle: { classPropertyName: "selectedStyle", publicName: "selectedStyle", isSignal: false, isRequired: false, transformFunction: null }, fullWidth: { classPropertyName: "fullWidth", publicName: "fullWidth", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { fullWidth: "fullWidthChange", click: "click" }, host: { properties: { "attr.class": "this.classes" } }, ngImport: i0, template: "<fw-button\n [fullWidth]=\"fullWidth()\"\n [leftIcon]=\"(selected && selectedIcon) ? selectedIcon : icon\"\n [variant]=\"(selected && selectedStyle==='background') ? 'solid':'outline'\"\n [color]=\"selected ? selectedColor:color\"\n [size]=\"size\"\n [disabled]=\"disabled\"\n (click)=\"handleClick()\">\n {{ title }}\n</fw-button>\n", styles: [":host.full-width{width:100%}\n"], dependencies: [{ kind: "component", type: FwButtonComponent, selector: "fw-button", inputs: ["color", "size", "variant", "type", "disabled", "fullWidth", "leftIcon", "rightIcon"] }] }); }
1943
1945
  }
1944
1946
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: FwButtonToggleItemComponent, decorators: [{
1945
1947
  type: Component,
1946
- args: [{ selector: 'fw-button-toggle-item', imports: [FwButtonComponent], template: "<fw-button\n [leftIcon]=\"(selected && selectedIcon) ? selectedIcon : icon\"\n [variant]=\"(selected && selectedStyle==='background') ? 'solid':'outline'\"\n [color]=\"selected ? selectedColor:color\"\n [size]=\"size\"\n [disabled]=\"disabled\"\n (click)=\"handleClick()\">\n {{ title }}\n</fw-button>\n" }]
1948
+ args: [{ selector: 'fw-button-toggle-item', imports: [FwButtonComponent], template: "<fw-button\n [fullWidth]=\"fullWidth()\"\n [leftIcon]=\"(selected && selectedIcon) ? selectedIcon : icon\"\n [variant]=\"(selected && selectedStyle==='background') ? 'solid':'outline'\"\n [color]=\"selected ? selectedColor:color\"\n [size]=\"size\"\n [disabled]=\"disabled\"\n (click)=\"handleClick()\">\n {{ title }}\n</fw-button>\n", styles: [":host.full-width{width:100%}\n"] }]
1947
1949
  }], ctorParameters: () => [], propDecorators: { title: [{
1948
1950
  type: Input
1949
1951
  }], icon: [{
@@ -1972,27 +1974,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
1972
1974
  }] } });
1973
1975
 
1974
1976
  class FwButtonGroupComponent {
1975
- get classes() {
1976
- return ['fw-button-group', this.size, this.layout].filter(Boolean).join(' ');
1977
- }
1978
- ;
1979
- get value() {
1980
- return this._value;
1981
- }
1982
- set value(newValue) {
1983
- this.updateValue(newValue);
1984
- }
1985
- constructor(cdref) {
1986
- this.cdref = cdref;
1977
+ constructor() {
1987
1978
  this.layout = 'basic';
1988
1979
  this.size = 'medium';
1989
1980
  this.disabled = false;
1981
+ this.fullWidth = false;
1990
1982
  this.subscriptions = [];
1991
1983
  // eslint-disable-next-line @angular-eslint/no-output-native
1992
1984
  this.change = new EventEmitter();
1993
1985
  this.onTouched = () => {
1994
1986
  };
1995
1987
  }
1988
+ get classes() {
1989
+ return ['fw-button-group', this.size, this.layout, this.fullWidth ? 'full-width' : null].filter(Boolean).join(' ');
1990
+ }
1991
+ ;
1992
+ get value() {
1993
+ return this._value;
1994
+ }
1995
+ set value(newValue) {
1996
+ this.updateValue(newValue);
1997
+ }
1996
1998
  registerOnChange(fn) {
1997
1999
  this.onChange = fn;
1998
2000
  }
@@ -2029,6 +2031,9 @@ class FwButtonGroupComponent {
2029
2031
  formatToggles() {
2030
2032
  if (this.toggleButtons) {
2031
2033
  this.toggleButtons.forEach(toggle => {
2034
+ if (this.fullWidth) {
2035
+ toggle.fullWidth.set(true);
2036
+ }
2032
2037
  if (this.value.indexOf(toggle.value) >= 0) {
2033
2038
  toggle.selected = true;
2034
2039
  }
@@ -2058,14 +2063,14 @@ class FwButtonGroupComponent {
2058
2063
  });
2059
2064
  }
2060
2065
  }
2061
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: FwButtonGroupComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
2062
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.18", type: FwButtonGroupComponent, isStandalone: true, selector: "fw-button-group", inputs: { layout: "layout", size: "size", disabled: "disabled", color: "color", selectedColor: "selectedColor", value: "value" }, outputs: { change: "change" }, host: { properties: { "attr.class": "this.classes" } }, providers: [
2066
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: FwButtonGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2067
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.18", type: FwButtonGroupComponent, isStandalone: true, selector: "fw-button-group", inputs: { layout: "layout", size: "size", disabled: "disabled", color: "color", selectedColor: "selectedColor", fullWidth: "fullWidth", value: "value" }, outputs: { change: "change" }, host: { properties: { "attr.class": "this.classes" } }, providers: [
2063
2068
  {
2064
2069
  provide: NG_VALUE_ACCESSOR,
2065
2070
  useExisting: forwardRef(() => FwButtonGroupComponent),
2066
2071
  multi: true,
2067
2072
  },
2068
- ], queries: [{ propertyName: "toggleButtons", predicate: FwButtonToggleItemComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: '<ng-content select="fw-button-toggle-item,fw-tooltip"></ng-content>', isInline: true, styles: ["fw-button-group.fw-button-group{box-sizing:border-box;border-radius:8px;overflow:hidden;display:inline-flex;align-items:stretch}fw-button-group.fw-button-group .fw-button-toggle-item.no-title button{gap:0}fw-button-group.fw-button-group button{min-width:0;margin:0!important;border-radius:0;border:1px solid var(--separations-input);border-right-width:0!important}fw-button-group.fw-button-group>button:first-of-type{border-top-left-radius:8px;border-bottom-left-radius:8px}fw-button-group.fw-button-group>button:last-of-type{border-top-right-radius:8px;border-bottom-right-radius:8px;border-right-width:1px}fw-button-group.fw-button-group.compact button{line-height:24px;height:24px}fw-button-group.fw-button-group.small button{font-size:12px}fw-button-group.fw-button-group.medium button{font-size:14px}fw-button-group.fw-button-group.large button{font-size:18px}fw-button-group.fw-button-group>fw-button-toggle-item:last-of-type button{border-top-right-radius:8px;border-bottom-right-radius:8px;border-right-width:1px!important}fw-button-group.fw-button-group>fw-button-toggle-item:first-of-type button{border-top-left-radius:8px;border-bottom-left-radius:8px}fw-button-group.fw-button-group fw-tooltip fw-button-toggle-item button{border-radius:0!important;border-right-width:0!important}fw-button-group.fw-button-group fw-tooltip:last-of-type fw-button-toggle-item button{border-radius:0 8px 8px 0!important;border-right-width:1px!important}fw-button-group.fw-button-group fw-tooltip:first-of-type fw-button-toggle-item button{border-radius:8px 0 0 8px!important}\n"], encapsulation: i0.ViewEncapsulation.None }); }
2073
+ ], queries: [{ propertyName: "toggleButtons", predicate: FwButtonToggleItemComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: '<ng-content select="fw-button-toggle-item,fw-tooltip"></ng-content>', isInline: true, styles: ["fw-button-group.fw-button-group{box-sizing:border-box;border-radius:8px;overflow:hidden;display:inline-flex;align-items:stretch}fw-button-group.fw-button-group.full-width{width:100%}fw-button-group.fw-button-group .fw-button-toggle-item.no-title button{gap:0}fw-button-group.fw-button-group button{min-width:0;margin:0!important;border-radius:0;border:1px solid var(--separations-input);border-right-width:0!important}fw-button-group.fw-button-group>button:first-of-type{border-top-left-radius:8px;border-bottom-left-radius:8px}fw-button-group.fw-button-group>button:last-of-type{border-top-right-radius:8px;border-bottom-right-radius:8px;border-right-width:1px}fw-button-group.fw-button-group.compact button{line-height:24px;height:24px}fw-button-group.fw-button-group.small button{font-size:12px}fw-button-group.fw-button-group.medium button{font-size:14px}fw-button-group.fw-button-group.large button{font-size:18px}fw-button-group.fw-button-group>fw-button-toggle-item:last-of-type button{border-top-right-radius:8px;border-bottom-right-radius:8px;border-right-width:1px!important}fw-button-group.fw-button-group>fw-button-toggle-item:first-of-type button{border-top-left-radius:8px;border-bottom-left-radius:8px}fw-button-group.fw-button-group fw-tooltip fw-button-toggle-item button{border-radius:0!important;border-right-width:0!important}fw-button-group.fw-button-group fw-tooltip:last-of-type fw-button-toggle-item button{border-radius:0 8px 8px 0!important;border-right-width:1px!important}fw-button-group.fw-button-group fw-tooltip:first-of-type fw-button-toggle-item button{border-radius:8px 0 0 8px!important}\n"], encapsulation: i0.ViewEncapsulation.None }); }
2069
2074
  }
2070
2075
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: FwButtonGroupComponent, decorators: [{
2071
2076
  type: Component,
@@ -2075,11 +2080,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
2075
2080
  useExisting: forwardRef(() => FwButtonGroupComponent),
2076
2081
  multi: true,
2077
2082
  },
2078
- ], styles: ["fw-button-group.fw-button-group{box-sizing:border-box;border-radius:8px;overflow:hidden;display:inline-flex;align-items:stretch}fw-button-group.fw-button-group .fw-button-toggle-item.no-title button{gap:0}fw-button-group.fw-button-group button{min-width:0;margin:0!important;border-radius:0;border:1px solid var(--separations-input);border-right-width:0!important}fw-button-group.fw-button-group>button:first-of-type{border-top-left-radius:8px;border-bottom-left-radius:8px}fw-button-group.fw-button-group>button:last-of-type{border-top-right-radius:8px;border-bottom-right-radius:8px;border-right-width:1px}fw-button-group.fw-button-group.compact button{line-height:24px;height:24px}fw-button-group.fw-button-group.small button{font-size:12px}fw-button-group.fw-button-group.medium button{font-size:14px}fw-button-group.fw-button-group.large button{font-size:18px}fw-button-group.fw-button-group>fw-button-toggle-item:last-of-type button{border-top-right-radius:8px;border-bottom-right-radius:8px;border-right-width:1px!important}fw-button-group.fw-button-group>fw-button-toggle-item:first-of-type button{border-top-left-radius:8px;border-bottom-left-radius:8px}fw-button-group.fw-button-group fw-tooltip fw-button-toggle-item button{border-radius:0!important;border-right-width:0!important}fw-button-group.fw-button-group fw-tooltip:last-of-type fw-button-toggle-item button{border-radius:0 8px 8px 0!important;border-right-width:1px!important}fw-button-group.fw-button-group fw-tooltip:first-of-type fw-button-toggle-item button{border-radius:8px 0 0 8px!important}\n"] }]
2079
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { classes: [{
2080
- type: HostBinding,
2081
- args: ['attr.class']
2082
- }], layout: [{
2083
+ ], styles: ["fw-button-group.fw-button-group{box-sizing:border-box;border-radius:8px;overflow:hidden;display:inline-flex;align-items:stretch}fw-button-group.fw-button-group.full-width{width:100%}fw-button-group.fw-button-group .fw-button-toggle-item.no-title button{gap:0}fw-button-group.fw-button-group button{min-width:0;margin:0!important;border-radius:0;border:1px solid var(--separations-input);border-right-width:0!important}fw-button-group.fw-button-group>button:first-of-type{border-top-left-radius:8px;border-bottom-left-radius:8px}fw-button-group.fw-button-group>button:last-of-type{border-top-right-radius:8px;border-bottom-right-radius:8px;border-right-width:1px}fw-button-group.fw-button-group.compact button{line-height:24px;height:24px}fw-button-group.fw-button-group.small button{font-size:12px}fw-button-group.fw-button-group.medium button{font-size:14px}fw-button-group.fw-button-group.large button{font-size:18px}fw-button-group.fw-button-group>fw-button-toggle-item:last-of-type button{border-top-right-radius:8px;border-bottom-right-radius:8px;border-right-width:1px!important}fw-button-group.fw-button-group>fw-button-toggle-item:first-of-type button{border-top-left-radius:8px;border-bottom-left-radius:8px}fw-button-group.fw-button-group fw-tooltip fw-button-toggle-item button{border-radius:0!important;border-right-width:0!important}fw-button-group.fw-button-group fw-tooltip:last-of-type fw-button-toggle-item button{border-radius:0 8px 8px 0!important;border-right-width:1px!important}fw-button-group.fw-button-group fw-tooltip:first-of-type fw-button-toggle-item button{border-radius:8px 0 0 8px!important}\n"] }]
2084
+ }], propDecorators: { layout: [{
2083
2085
  type: Input
2084
2086
  }], size: [{
2085
2087
  type: Input
@@ -2089,6 +2091,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
2089
2091
  type: Input
2090
2092
  }], selectedColor: [{
2091
2093
  type: Input
2094
+ }], fullWidth: [{
2095
+ type: Input
2096
+ }], classes: [{
2097
+ type: HostBinding,
2098
+ args: ['attr.class']
2092
2099
  }], toggleButtons: [{
2093
2100
  type: ContentChildren,
2094
2101
  args: [FwButtonToggleItemComponent, { descendants: true }]
@@ -2100,7 +2107,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
2100
2107
 
2101
2108
  class FwButtonToggleComponent {
2102
2109
  get classes() {
2103
- return ['fw-button-toggle', this.size, this.layout].filter(Boolean).join(' ');
2110
+ return ['fw-button-toggle', this.size, this.layout, this.fullWidth ? 'full-width' : null].filter(Boolean).join(' ');
2104
2111
  }
2105
2112
  ;
2106
2113
  get value() {
@@ -2114,6 +2121,7 @@ class FwButtonToggleComponent {
2114
2121
  this.layout = 'basic';
2115
2122
  this.size = 'medium';
2116
2123
  this.disabled = false;
2124
+ this.fullWidth = false;
2117
2125
  this.subscriptions = [];
2118
2126
  // eslint-disable-next-line @angular-eslint/no-output-native
2119
2127
  this.change = new EventEmitter();
@@ -2161,6 +2169,9 @@ class FwButtonToggleComponent {
2161
2169
  formatToggles() {
2162
2170
  if (this.toggleButtons) {
2163
2171
  this.toggleButtons.forEach(toggle => {
2172
+ if (this.fullWidth) {
2173
+ toggle.fullWidth.set(true);
2174
+ }
2164
2175
  if (toggle.value === this.value) {
2165
2176
  toggle.selected = true;
2166
2177
  }
@@ -2192,13 +2203,13 @@ class FwButtonToggleComponent {
2192
2203
  }
2193
2204
  }
2194
2205
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: FwButtonToggleComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
2195
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.18", type: FwButtonToggleComponent, isStandalone: true, selector: "fw-button-toggle", inputs: { layout: "layout", size: "size", disabled: "disabled", color: "color", selectedColor: "selectedColor", value: "value" }, outputs: { change: "change" }, host: { properties: { "attr.class": "this.classes" } }, providers: [
2206
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.18", type: FwButtonToggleComponent, isStandalone: true, selector: "fw-button-toggle", inputs: { layout: "layout", size: "size", disabled: "disabled", color: "color", selectedColor: "selectedColor", fullWidth: "fullWidth", value: "value" }, outputs: { change: "change" }, host: { properties: { "attr.class": "this.classes" } }, providers: [
2196
2207
  {
2197
2208
  provide: NG_VALUE_ACCESSOR,
2198
2209
  useExisting: forwardRef(() => FwButtonToggleComponent),
2199
2210
  multi: true,
2200
2211
  },
2201
- ], queries: [{ propertyName: "toggleButtons", predicate: FwButtonToggleItemComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: '<ng-content select="fw-button-toggle-item,fw-tooltip"></ng-content>', isInline: true, styles: ["fw-button-toggle.fw-button-toggle{box-sizing:border-box;border-radius:8px;overflow:hidden;display:inline-flex;align-items:stretch}fw-button-toggle.fw-button-toggle .fw-button-toggle-item.no-title button{gap:0}fw-button-toggle.fw-button-toggle button{min-width:0;margin:0!important;border-radius:0;border:1px solid var(--separations-input);border-right-width:0!important}fw-button-toggle.fw-button-toggle>button:first-of-type{border-top-left-radius:8px;border-bottom-left-radius:8px}fw-button-toggle.fw-button-toggle>button:last-of-type{border-top-right-radius:8px;border-bottom-right-radius:8px;border-right-width:1px}fw-button-toggle.fw-button-toggle.compact button{line-height:24px;height:24px}fw-button-toggle.fw-button-toggle.small button{font-size:12px}fw-button-toggle.fw-button-toggle.medium button{font-size:14px}fw-button-toggle.fw-button-toggle.large button{font-size:18px}fw-button-toggle.fw-button-toggle>fw-button-toggle-item:last-of-type button{border-top-right-radius:8px;border-bottom-right-radius:8px;border-right-width:1px!important}fw-button-toggle.fw-button-toggle>fw-button-toggle-item:first-of-type button{border-top-left-radius:8px;border-bottom-left-radius:8px}fw-button-toggle.fw-button-toggle fw-tooltip fw-button-toggle-item button{border-radius:0!important;border-right-width:0!important}fw-button-toggle.fw-button-toggle fw-tooltip:last-of-type fw-button-toggle-item button{border-radius:0 8px 8px 0!important;border-right-width:1px!important}fw-button-toggle.fw-button-toggle fw-tooltip:first-of-type fw-button-toggle-item button{border-radius:8px 0 0 8px!important}\n"], encapsulation: i0.ViewEncapsulation.None }); }
2212
+ ], queries: [{ propertyName: "toggleButtons", predicate: FwButtonToggleItemComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: '<ng-content select="fw-button-toggle-item,fw-tooltip"></ng-content>', isInline: true, styles: ["fw-button-toggle.fw-button-toggle{box-sizing:border-box;border-radius:8px;overflow:hidden;display:inline-flex;align-items:stretch}fw-button-toggle.fw-button-toggle.full-width{width:100%}fw-button-toggle.fw-button-toggle .fw-button-toggle-item.no-title button{gap:0}fw-button-toggle.fw-button-toggle button{min-width:0;margin:0!important;border-radius:0;border:1px solid var(--separations-input);border-right-width:0!important}fw-button-toggle.fw-button-toggle>button:first-of-type{border-top-left-radius:8px;border-bottom-left-radius:8px}fw-button-toggle.fw-button-toggle>button:last-of-type{border-top-right-radius:8px;border-bottom-right-radius:8px;border-right-width:1px}fw-button-toggle.fw-button-toggle.compact button{line-height:24px;height:24px}fw-button-toggle.fw-button-toggle.small button{font-size:12px}fw-button-toggle.fw-button-toggle.medium button{font-size:14px}fw-button-toggle.fw-button-toggle.large button{font-size:18px}fw-button-toggle.fw-button-toggle>fw-button-toggle-item:last-of-type button{border-top-right-radius:8px;border-bottom-right-radius:8px;border-right-width:1px!important}fw-button-toggle.fw-button-toggle>fw-button-toggle-item:first-of-type button{border-top-left-radius:8px;border-bottom-left-radius:8px}fw-button-toggle.fw-button-toggle fw-tooltip fw-button-toggle-item button{border-radius:0!important;border-right-width:0!important}fw-button-toggle.fw-button-toggle fw-tooltip:last-of-type fw-button-toggle-item button{border-radius:0 8px 8px 0!important;border-right-width:1px!important}fw-button-toggle.fw-button-toggle fw-tooltip:first-of-type fw-button-toggle-item button{border-radius:8px 0 0 8px!important}\n"], encapsulation: i0.ViewEncapsulation.None }); }
2202
2213
  }
2203
2214
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: FwButtonToggleComponent, decorators: [{
2204
2215
  type: Component,
@@ -2208,11 +2219,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
2208
2219
  useExisting: forwardRef(() => FwButtonToggleComponent),
2209
2220
  multi: true,
2210
2221
  },
2211
- ], styles: ["fw-button-toggle.fw-button-toggle{box-sizing:border-box;border-radius:8px;overflow:hidden;display:inline-flex;align-items:stretch}fw-button-toggle.fw-button-toggle .fw-button-toggle-item.no-title button{gap:0}fw-button-toggle.fw-button-toggle button{min-width:0;margin:0!important;border-radius:0;border:1px solid var(--separations-input);border-right-width:0!important}fw-button-toggle.fw-button-toggle>button:first-of-type{border-top-left-radius:8px;border-bottom-left-radius:8px}fw-button-toggle.fw-button-toggle>button:last-of-type{border-top-right-radius:8px;border-bottom-right-radius:8px;border-right-width:1px}fw-button-toggle.fw-button-toggle.compact button{line-height:24px;height:24px}fw-button-toggle.fw-button-toggle.small button{font-size:12px}fw-button-toggle.fw-button-toggle.medium button{font-size:14px}fw-button-toggle.fw-button-toggle.large button{font-size:18px}fw-button-toggle.fw-button-toggle>fw-button-toggle-item:last-of-type button{border-top-right-radius:8px;border-bottom-right-radius:8px;border-right-width:1px!important}fw-button-toggle.fw-button-toggle>fw-button-toggle-item:first-of-type button{border-top-left-radius:8px;border-bottom-left-radius:8px}fw-button-toggle.fw-button-toggle fw-tooltip fw-button-toggle-item button{border-radius:0!important;border-right-width:0!important}fw-button-toggle.fw-button-toggle fw-tooltip:last-of-type fw-button-toggle-item button{border-radius:0 8px 8px 0!important;border-right-width:1px!important}fw-button-toggle.fw-button-toggle fw-tooltip:first-of-type fw-button-toggle-item button{border-radius:8px 0 0 8px!important}\n"] }]
2212
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { classes: [{
2213
- type: HostBinding,
2214
- args: ['attr.class']
2215
- }], layout: [{
2222
+ ], styles: ["fw-button-toggle.fw-button-toggle{box-sizing:border-box;border-radius:8px;overflow:hidden;display:inline-flex;align-items:stretch}fw-button-toggle.fw-button-toggle.full-width{width:100%}fw-button-toggle.fw-button-toggle .fw-button-toggle-item.no-title button{gap:0}fw-button-toggle.fw-button-toggle button{min-width:0;margin:0!important;border-radius:0;border:1px solid var(--separations-input);border-right-width:0!important}fw-button-toggle.fw-button-toggle>button:first-of-type{border-top-left-radius:8px;border-bottom-left-radius:8px}fw-button-toggle.fw-button-toggle>button:last-of-type{border-top-right-radius:8px;border-bottom-right-radius:8px;border-right-width:1px}fw-button-toggle.fw-button-toggle.compact button{line-height:24px;height:24px}fw-button-toggle.fw-button-toggle.small button{font-size:12px}fw-button-toggle.fw-button-toggle.medium button{font-size:14px}fw-button-toggle.fw-button-toggle.large button{font-size:18px}fw-button-toggle.fw-button-toggle>fw-button-toggle-item:last-of-type button{border-top-right-radius:8px;border-bottom-right-radius:8px;border-right-width:1px!important}fw-button-toggle.fw-button-toggle>fw-button-toggle-item:first-of-type button{border-top-left-radius:8px;border-bottom-left-radius:8px}fw-button-toggle.fw-button-toggle fw-tooltip fw-button-toggle-item button{border-radius:0!important;border-right-width:0!important}fw-button-toggle.fw-button-toggle fw-tooltip:last-of-type fw-button-toggle-item button{border-radius:0 8px 8px 0!important;border-right-width:1px!important}fw-button-toggle.fw-button-toggle fw-tooltip:first-of-type fw-button-toggle-item button{border-radius:8px 0 0 8px!important}\n"] }]
2223
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { layout: [{
2216
2224
  type: Input
2217
2225
  }], size: [{
2218
2226
  type: Input
@@ -2222,6 +2230,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
2222
2230
  type: Input
2223
2231
  }], selectedColor: [{
2224
2232
  type: Input
2233
+ }], fullWidth: [{
2234
+ type: Input
2235
+ }], classes: [{
2236
+ type: HostBinding,
2237
+ args: ['attr.class']
2225
2238
  }], toggleButtons: [{
2226
2239
  type: ContentChildren,
2227
2240
  args: [FwButtonToggleItemComponent, { descendants: true }]
@@ -4361,13 +4374,13 @@ class FwMenuItemComponent {
4361
4374
  this.mouseEnterHandler = model(() => { });
4362
4375
  // eslint-disable-next-line @angular-eslint/no-output-native
4363
4376
  this.click = new EventEmitter();
4364
- this.focused = false;
4377
+ this.focused = model(false);
4365
4378
  this.selected = false;
4366
4379
  this.subscriptions = [];
4367
4380
  }
4368
- scrollIntoView() {
4381
+ scrollIntoView(options = { behavior: 'smooth', block: 'nearest' }) {
4369
4382
  // eslint-disable-next-line @rx-angular/prefer-no-layout-sensitive-apis
4370
- this.elementRef.nativeElement.scrollIntoView({ behavior: 'smooth' });
4383
+ this.elementRef.nativeElement.scrollIntoView(options);
4371
4384
  }
4372
4385
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
4373
4386
  ngOnChanges(changes) {
@@ -4431,17 +4444,19 @@ class FwMenuItemComponent {
4431
4444
  }
4432
4445
  ;
4433
4446
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: FwMenuItemComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
4434
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: FwMenuItemComponent, isStandalone: true, selector: "fw-menu-item", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: false, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: false, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: false, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: false, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: false, isRequired: false, transformFunction: null }, iconColor: { classPropertyName: "iconColor", publicName: "iconColor", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, showCheckbox: { classPropertyName: "showCheckbox", publicName: "showCheckbox", isSignal: false, isRequired: false, transformFunction: null }, checkboxColor: { classPropertyName: "checkboxColor", publicName: "checkboxColor", isSignal: false, isRequired: false, transformFunction: null }, multiSelect: { classPropertyName: "multiSelect", publicName: "multiSelect", isSignal: false, isRequired: false, transformFunction: null }, hidden: { classPropertyName: "hidden", publicName: "hidden", isSignal: false, isRequired: false, transformFunction: null }, collapsed: { classPropertyName: "collapsed", publicName: "collapsed", isSignal: false, isRequired: false, transformFunction: null }, href: { classPropertyName: "href", publicName: "href", isSignal: false, isRequired: false, transformFunction: null }, target: { classPropertyName: "target", publicName: "target", isSignal: false, isRequired: false, transformFunction: null }, subItemsOpen: { classPropertyName: "subItemsOpen", publicName: "subItemsOpen", isSignal: false, isRequired: false, transformFunction: null }, mouseEnterHandler: { classPropertyName: "mouseEnterHandler", publicName: "mouseEnterHandler", isSignal: true, isRequired: false, transformFunction: null }, focused: { classPropertyName: "focused", publicName: "focused", isSignal: false, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { mouseEnterHandler: "mouseEnterHandlerChange", click: "click" }, host: { listeners: { "mouseenter": "onMouseEnter($event)" }, properties: { "hidden": "this.hidden", "class.collapsed": "this.collapsed", "class.focused": "this.focused", "class.selected": "this.selected", "attr.title": "this.attrTitle" } }, queries: [{ propertyName: "subItems", predicate: FwMenuSubItemComponent }], usesOnChanges: true, ngImport: i0, template: "<div (click)=\"handleClick($event)\">\n <div\n [ngClass]=\"['menu-item', 'size-'+size, disabled?'disabled':'']\"\n [class.disabled]=\"disabled\">\n @if (showCheckbox && multiSelect) {\n <div class=\"item-checkbox\">\n <fw-checkbox\n [disabled]=\"disabled\"\n [color]=\"checkboxColor\"\n [checked]=\"selected\">\n </fw-checkbox>\n </div>\n }\n @if (showCheckbox && !multiSelect) {\n <div class=\"item-radiobutton\">\n <fw-radio-button\n [value]=\"value\"\n [color]=\"checkboxColor\"\n [disabled]=\"disabled\"\n [checked]=\"selected\">\n </fw-radio-button>\n </div>\n }\n @if (icon) {\n <fw-icon [color]=\"iconColor\" class=\"menu-icon {{iconColor}}\">{{ icon }}</fw-icon>\n }\n <ng-content select=\"fw-avatar\"></ng-content>\n @if (title) {\n <div class=\"menu-text\">\n <h4 class=\"vision-h4\">{{ title }}</h4>\n @if (description) {\n <p class=\"vision-p4 description\">{{ description }}</p>\n }\n </div>\n }\n <div class=\"key-text vision-p2\">\n <ng-content select=\"p\"></ng-content>\n <ng-content select=\"fw-badge\"></ng-content>\n <ng-content select=\"fw-icon\"></ng-content>\n <ng-content select=\"fw-icon-button\"></ng-content>\n @if (subItems.length > 0) {\n <fw-icon-button\n [size]=\"'small'\"\n [icon]=\"subItemsOpen?'chevron-up':'chevron-down'\"\n (click)=\"toggleSubItemsView()\">\n </fw-icon-button>\n }\n </div>\n </div>\n</div>\n<div class=\"item-subitems\">\n <ng-content select=\"fw-menu-sub-item\"></ng-content>\n</div>\n", styles: [":host{position:relative;display:flex;flex-direction:column}:host[hidden]{display:none}:host>div{display:flex;flex:1;text-decoration:none;max-width:100%}:host h4{text-overflow:ellipsis}:host:hover:not(.selected) .menu-item:not(.disabled),:host.focused .menu-item:not(.disabled){background-color:var(--slate-hover);cursor:pointer}:host:hover:not(.selected) .menu-item:not(.disabled) .menu-icon,:host.focused .menu-item:not(.disabled) .menu-icon{color:var(--primary-base)}:host:hover:not(.selected) .menu-item:not(.disabled) .menu-text h4,:host.focused .menu-item:not(.disabled) .menu-text h4{color:var(--typography-base)}:host.selected .menu-item{background-color:var(--primary-hover);cursor:pointer}:host.selected .menu-item .menu-icon{color:var(--primary-base)}:host.selected .menu-item .menu-text h4{color:var(--typography-base)}:host.collapsed .menu-item{container-name:menuitem;container-type:size}:host .menu-item{box-sizing:border-box;display:flex;flex-direction:row;align-items:center;flex:1;gap:8px;padding:8px;margin:1px 4px;border-radius:4px;color:var(--typography-muted);min-height:40px;width:stretch}:host .menu-item .item-checkbox:empty{display:none}:host .menu-item .item-radiobutton{padding:0}:host .menu-item .item-radiobutton:empty{display:none}:host .menu-item .menu-icon{font-size:18px;min-width:18px;width:18px;white-space:nowrap}:host .menu-item .menu-text{flex:1;overflow:hidden;padding:2px 0}:host .menu-item .menu-text h4{margin:0;color:var(--typography-muted);white-space:nowrap;overflow:hidden}:host .menu-item .menu-text p{margin:0}:host .menu-item .menu-text p.description{color:var(--typography-light)}:host .menu-item .key-text{display:flex;align-items:center;gap:8px;color:var(--typography-light)}:host .menu-item .key-text fw-icon-button{min-height:22px!important;min-width:22px!important;width:22px!important}:host .menu-item.size-compact{min-height:32px}:host .menu-item.size-compact .menu-text .description{display:none}:host .menu-item.disabled{opacity:.4;cursor:not-allowed}:host .item-subitems{display:flex;flex-direction:column}@container menuitem (max-width: 60px){.menu-item{gap:0}.menu-item .menu-text{opacity:0}}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: FwCheckboxComponent, selector: "fw-checkbox", inputs: ["name", "disabled", "size", "color", "title", "focused", "checked"], outputs: ["change"] }, { kind: "component", type: FwRadioComponent, selector: "fw-radio-button", inputs: ["value", "checked", "group", "disabled", "size", "color", "title", "focused"], outputs: ["checkedChange", "change"] }, { kind: "component", type: FwIconComponent, selector: "fw-icon", inputs: ["size", "color"] }, { kind: "component", type: FwIconButtonComponent, selector: "fw-icon-button", inputs: ["color", "icon", "size", "disabled", "selected", "border"] }] }); }
4447
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: FwMenuItemComponent, isStandalone: true, selector: "fw-menu-item", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: false, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: false, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: false, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: false, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: false, isRequired: false, transformFunction: null }, iconColor: { classPropertyName: "iconColor", publicName: "iconColor", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, showCheckbox: { classPropertyName: "showCheckbox", publicName: "showCheckbox", isSignal: false, isRequired: false, transformFunction: null }, checkboxColor: { classPropertyName: "checkboxColor", publicName: "checkboxColor", isSignal: false, isRequired: false, transformFunction: null }, multiSelect: { classPropertyName: "multiSelect", publicName: "multiSelect", isSignal: false, isRequired: false, transformFunction: null }, hidden: { classPropertyName: "hidden", publicName: "hidden", isSignal: false, isRequired: false, transformFunction: null }, collapsed: { classPropertyName: "collapsed", publicName: "collapsed", isSignal: false, isRequired: false, transformFunction: null }, href: { classPropertyName: "href", publicName: "href", isSignal: false, isRequired: false, transformFunction: null }, target: { classPropertyName: "target", publicName: "target", isSignal: false, isRequired: false, transformFunction: null }, subItemsOpen: { classPropertyName: "subItemsOpen", publicName: "subItemsOpen", isSignal: false, isRequired: false, transformFunction: null }, mouseEnterHandler: { classPropertyName: "mouseEnterHandler", publicName: "mouseEnterHandler", isSignal: true, isRequired: false, transformFunction: null }, focused: { classPropertyName: "focused", publicName: "focused", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { mouseEnterHandler: "mouseEnterHandlerChange", click: "click", focused: "focusedChange" }, host: { attributes: { "class.focused": "focused()" }, listeners: { "mouseenter": "onMouseEnter($event)" }, properties: { "hidden": "this.hidden", "class.collapsed": "this.collapsed", "class.selected": "this.selected", "attr.title": "this.attrTitle" } }, queries: [{ propertyName: "subItems", predicate: FwMenuSubItemComponent }], usesOnChanges: true, ngImport: i0, template: "<div (click)=\"handleClick($event)\">\n <div\n [ngClass]=\"['menu-item', 'size-'+size, disabled?'disabled':'']\"\n [class.disabled]=\"disabled\">\n @if (showCheckbox && multiSelect) {\n <div class=\"item-checkbox\">\n <fw-checkbox\n [disabled]=\"disabled\"\n [color]=\"checkboxColor\"\n [checked]=\"selected\">\n </fw-checkbox>\n </div>\n }\n @if (showCheckbox && !multiSelect) {\n <div class=\"item-radiobutton\">\n <fw-radio-button\n [value]=\"value\"\n [color]=\"checkboxColor\"\n [disabled]=\"disabled\"\n [checked]=\"selected\">\n </fw-radio-button>\n </div>\n }\n @if (icon) {\n <fw-icon [color]=\"iconColor\" class=\"menu-icon {{iconColor}}\">{{ icon }}</fw-icon>\n }\n <ng-content select=\"fw-avatar\"></ng-content>\n @if (title) {\n <div class=\"menu-text\">\n <h4 class=\"vision-h4\">{{ title }}</h4>\n @if (description) {\n <p class=\"vision-p4 description\">{{ description }}</p>\n }\n </div>\n }\n <div class=\"key-text vision-p2\">\n <ng-content select=\"p\"></ng-content>\n <ng-content select=\"fw-badge\"></ng-content>\n <ng-content select=\"fw-icon\"></ng-content>\n <ng-content select=\"fw-icon-button\"></ng-content>\n @if (subItems.length > 0) {\n <fw-icon-button\n [size]=\"'small'\"\n [icon]=\"subItemsOpen?'chevron-up':'chevron-down'\"\n (click)=\"toggleSubItemsView()\">\n </fw-icon-button>\n }\n </div>\n </div>\n</div>\n<div class=\"item-subitems\">\n <ng-content select=\"fw-menu-sub-item\"></ng-content>\n</div>\n", styles: [":host-context(fw-menu-item-group) div.menu-item{padding-left:16px}:host{position:relative;display:flex;flex-direction:column;scroll-margin:4px}:host[hidden]{display:none}:host>div{display:flex;flex:1;text-decoration:none;max-width:100%}:host h4{text-overflow:ellipsis}:host:hover:not(.selected) .menu-item:not(.disabled),:host.focused .menu-item:not(.disabled){background-color:var(--slate-hover);cursor:pointer}:host:hover:not(.selected) .menu-item:not(.disabled) .menu-icon,:host.focused .menu-item:not(.disabled) .menu-icon{color:var(--primary-base)}:host:hover:not(.selected) .menu-item:not(.disabled) .menu-text h4,:host.focused .menu-item:not(.disabled) .menu-text h4{color:var(--typography-base)}:host.selected .menu-item{background-color:var(--primary-hover);cursor:pointer}:host.selected .menu-item .menu-icon{color:var(--primary-base)}:host.selected .menu-item .menu-text h4{color:var(--typography-base)}:host.collapsed .menu-item{container-name:menuitem;container-type:size}:host .menu-item{box-sizing:border-box;display:flex;flex-direction:row;align-items:center;flex:1;gap:8px;padding:8px;border-radius:4px;color:var(--typography-muted);min-height:40px;width:stretch}:host .menu-item .item-checkbox:empty{display:none}:host .menu-item .item-radiobutton{padding:0}:host .menu-item .item-radiobutton:empty{display:none}:host .menu-item .menu-icon{font-size:18px;min-width:18px;width:18px;white-space:nowrap}:host .menu-item .menu-text{flex:1;overflow:hidden;padding:2px 0}:host .menu-item .menu-text h4{margin:0;color:var(--typography-muted);white-space:nowrap;overflow:hidden}:host .menu-item .menu-text p{margin:0}:host .menu-item .menu-text p.description{color:var(--typography-light)}:host .menu-item .key-text{display:flex;align-items:center;gap:8px;color:var(--typography-light)}:host .menu-item .key-text fw-icon-button{min-height:22px!important;min-width:22px!important;width:22px!important}:host .menu-item.size-compact{min-height:32px}:host .menu-item.size-compact .menu-text .description{display:none}:host .menu-item.disabled{opacity:.4;cursor:not-allowed}:host .item-subitems{display:flex;flex-direction:column}@container menuitem (max-width: 60px){.menu-item{gap:0}.menu-item .menu-text{opacity:0}}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: FwCheckboxComponent, selector: "fw-checkbox", inputs: ["name", "disabled", "size", "color", "title", "focused", "checked"], outputs: ["change"] }, { kind: "component", type: FwRadioComponent, selector: "fw-radio-button", inputs: ["value", "checked", "group", "disabled", "size", "color", "title", "focused"], outputs: ["checkedChange", "change"] }, { kind: "component", type: FwIconComponent, selector: "fw-icon", inputs: ["size", "color"] }, { kind: "component", type: FwIconButtonComponent, selector: "fw-icon-button", inputs: ["color", "icon", "size", "disabled", "selected", "border"] }] }); }
4435
4448
  }
4436
4449
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: FwMenuItemComponent, decorators: [{
4437
4450
  type: Component,
4438
- args: [{ selector: 'fw-menu-item', imports: [
4451
+ args: [{ selector: 'fw-menu-item', host: {
4452
+ 'class.focused': 'focused()',
4453
+ }, imports: [
4439
4454
  NgClass,
4440
4455
  FwCheckboxComponent,
4441
4456
  FwRadioComponent,
4442
4457
  FwIconComponent,
4443
4458
  FwIconButtonComponent,
4444
- ], template: "<div (click)=\"handleClick($event)\">\n <div\n [ngClass]=\"['menu-item', 'size-'+size, disabled?'disabled':'']\"\n [class.disabled]=\"disabled\">\n @if (showCheckbox && multiSelect) {\n <div class=\"item-checkbox\">\n <fw-checkbox\n [disabled]=\"disabled\"\n [color]=\"checkboxColor\"\n [checked]=\"selected\">\n </fw-checkbox>\n </div>\n }\n @if (showCheckbox && !multiSelect) {\n <div class=\"item-radiobutton\">\n <fw-radio-button\n [value]=\"value\"\n [color]=\"checkboxColor\"\n [disabled]=\"disabled\"\n [checked]=\"selected\">\n </fw-radio-button>\n </div>\n }\n @if (icon) {\n <fw-icon [color]=\"iconColor\" class=\"menu-icon {{iconColor}}\">{{ icon }}</fw-icon>\n }\n <ng-content select=\"fw-avatar\"></ng-content>\n @if (title) {\n <div class=\"menu-text\">\n <h4 class=\"vision-h4\">{{ title }}</h4>\n @if (description) {\n <p class=\"vision-p4 description\">{{ description }}</p>\n }\n </div>\n }\n <div class=\"key-text vision-p2\">\n <ng-content select=\"p\"></ng-content>\n <ng-content select=\"fw-badge\"></ng-content>\n <ng-content select=\"fw-icon\"></ng-content>\n <ng-content select=\"fw-icon-button\"></ng-content>\n @if (subItems.length > 0) {\n <fw-icon-button\n [size]=\"'small'\"\n [icon]=\"subItemsOpen?'chevron-up':'chevron-down'\"\n (click)=\"toggleSubItemsView()\">\n </fw-icon-button>\n }\n </div>\n </div>\n</div>\n<div class=\"item-subitems\">\n <ng-content select=\"fw-menu-sub-item\"></ng-content>\n</div>\n", styles: [":host{position:relative;display:flex;flex-direction:column}:host[hidden]{display:none}:host>div{display:flex;flex:1;text-decoration:none;max-width:100%}:host h4{text-overflow:ellipsis}:host:hover:not(.selected) .menu-item:not(.disabled),:host.focused .menu-item:not(.disabled){background-color:var(--slate-hover);cursor:pointer}:host:hover:not(.selected) .menu-item:not(.disabled) .menu-icon,:host.focused .menu-item:not(.disabled) .menu-icon{color:var(--primary-base)}:host:hover:not(.selected) .menu-item:not(.disabled) .menu-text h4,:host.focused .menu-item:not(.disabled) .menu-text h4{color:var(--typography-base)}:host.selected .menu-item{background-color:var(--primary-hover);cursor:pointer}:host.selected .menu-item .menu-icon{color:var(--primary-base)}:host.selected .menu-item .menu-text h4{color:var(--typography-base)}:host.collapsed .menu-item{container-name:menuitem;container-type:size}:host .menu-item{box-sizing:border-box;display:flex;flex-direction:row;align-items:center;flex:1;gap:8px;padding:8px;margin:1px 4px;border-radius:4px;color:var(--typography-muted);min-height:40px;width:stretch}:host .menu-item .item-checkbox:empty{display:none}:host .menu-item .item-radiobutton{padding:0}:host .menu-item .item-radiobutton:empty{display:none}:host .menu-item .menu-icon{font-size:18px;min-width:18px;width:18px;white-space:nowrap}:host .menu-item .menu-text{flex:1;overflow:hidden;padding:2px 0}:host .menu-item .menu-text h4{margin:0;color:var(--typography-muted);white-space:nowrap;overflow:hidden}:host .menu-item .menu-text p{margin:0}:host .menu-item .menu-text p.description{color:var(--typography-light)}:host .menu-item .key-text{display:flex;align-items:center;gap:8px;color:var(--typography-light)}:host .menu-item .key-text fw-icon-button{min-height:22px!important;min-width:22px!important;width:22px!important}:host .menu-item.size-compact{min-height:32px}:host .menu-item.size-compact .menu-text .description{display:none}:host .menu-item.disabled{opacity:.4;cursor:not-allowed}:host .item-subitems{display:flex;flex-direction:column}@container menuitem (max-width: 60px){.menu-item{gap:0}.menu-item .menu-text{opacity:0}}\n"] }]
4459
+ ], template: "<div (click)=\"handleClick($event)\">\n <div\n [ngClass]=\"['menu-item', 'size-'+size, disabled?'disabled':'']\"\n [class.disabled]=\"disabled\">\n @if (showCheckbox && multiSelect) {\n <div class=\"item-checkbox\">\n <fw-checkbox\n [disabled]=\"disabled\"\n [color]=\"checkboxColor\"\n [checked]=\"selected\">\n </fw-checkbox>\n </div>\n }\n @if (showCheckbox && !multiSelect) {\n <div class=\"item-radiobutton\">\n <fw-radio-button\n [value]=\"value\"\n [color]=\"checkboxColor\"\n [disabled]=\"disabled\"\n [checked]=\"selected\">\n </fw-radio-button>\n </div>\n }\n @if (icon) {\n <fw-icon [color]=\"iconColor\" class=\"menu-icon {{iconColor}}\">{{ icon }}</fw-icon>\n }\n <ng-content select=\"fw-avatar\"></ng-content>\n @if (title) {\n <div class=\"menu-text\">\n <h4 class=\"vision-h4\">{{ title }}</h4>\n @if (description) {\n <p class=\"vision-p4 description\">{{ description }}</p>\n }\n </div>\n }\n <div class=\"key-text vision-p2\">\n <ng-content select=\"p\"></ng-content>\n <ng-content select=\"fw-badge\"></ng-content>\n <ng-content select=\"fw-icon\"></ng-content>\n <ng-content select=\"fw-icon-button\"></ng-content>\n @if (subItems.length > 0) {\n <fw-icon-button\n [size]=\"'small'\"\n [icon]=\"subItemsOpen?'chevron-up':'chevron-down'\"\n (click)=\"toggleSubItemsView()\">\n </fw-icon-button>\n }\n </div>\n </div>\n</div>\n<div class=\"item-subitems\">\n <ng-content select=\"fw-menu-sub-item\"></ng-content>\n</div>\n", styles: [":host-context(fw-menu-item-group) div.menu-item{padding-left:16px}:host{position:relative;display:flex;flex-direction:column;scroll-margin:4px}:host[hidden]{display:none}:host>div{display:flex;flex:1;text-decoration:none;max-width:100%}:host h4{text-overflow:ellipsis}:host:hover:not(.selected) .menu-item:not(.disabled),:host.focused .menu-item:not(.disabled){background-color:var(--slate-hover);cursor:pointer}:host:hover:not(.selected) .menu-item:not(.disabled) .menu-icon,:host.focused .menu-item:not(.disabled) .menu-icon{color:var(--primary-base)}:host:hover:not(.selected) .menu-item:not(.disabled) .menu-text h4,:host.focused .menu-item:not(.disabled) .menu-text h4{color:var(--typography-base)}:host.selected .menu-item{background-color:var(--primary-hover);cursor:pointer}:host.selected .menu-item .menu-icon{color:var(--primary-base)}:host.selected .menu-item .menu-text h4{color:var(--typography-base)}:host.collapsed .menu-item{container-name:menuitem;container-type:size}:host .menu-item{box-sizing:border-box;display:flex;flex-direction:row;align-items:center;flex:1;gap:8px;padding:8px;border-radius:4px;color:var(--typography-muted);min-height:40px;width:stretch}:host .menu-item .item-checkbox:empty{display:none}:host .menu-item .item-radiobutton{padding:0}:host .menu-item .item-radiobutton:empty{display:none}:host .menu-item .menu-icon{font-size:18px;min-width:18px;width:18px;white-space:nowrap}:host .menu-item .menu-text{flex:1;overflow:hidden;padding:2px 0}:host .menu-item .menu-text h4{margin:0;color:var(--typography-muted);white-space:nowrap;overflow:hidden}:host .menu-item .menu-text p{margin:0}:host .menu-item .menu-text p.description{color:var(--typography-light)}:host .menu-item .key-text{display:flex;align-items:center;gap:8px;color:var(--typography-light)}:host .menu-item .key-text fw-icon-button{min-height:22px!important;min-width:22px!important;width:22px!important}:host .menu-item.size-compact{min-height:32px}:host .menu-item.size-compact .menu-text .description{display:none}:host .menu-item.disabled{opacity:.4;cursor:not-allowed}:host .item-subitems{display:flex;flex-direction:column}@container menuitem (max-width: 60px){.menu-item{gap:0}.menu-item .menu-text{opacity:0}}\n"] }]
4445
4460
  }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { value: [{
4446
4461
  type: Input
4447
4462
  }], size: [{
@@ -4480,11 +4495,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
4480
4495
  type: Input
4481
4496
  }], click: [{
4482
4497
  type: Output
4483
- }], focused: [{
4484
- type: HostBinding,
4485
- args: ['class.focused']
4486
- }, {
4487
- type: Input
4488
4498
  }], selected: [{
4489
4499
  type: HostBinding,
4490
4500
  args: ['class.selected']
@@ -4611,7 +4621,7 @@ class FwMenuComponent {
4611
4621
  provide: NG_VALUE_ACCESSOR,
4612
4622
  useExisting: FwMenuComponent,
4613
4623
  multi: true,
4614
- }], queries: [{ propertyName: "menuContentWrapper", first: true, predicate: ["menuContentWrapper"], descendants: true }, { propertyName: "menuItems", predicate: FwMenuItemComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"fw-menu\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{display:flex;flex-direction:column;max-height:100%}\n"] }); }
4624
+ }], queries: [{ propertyName: "menuContentWrapper", first: true, predicate: ["menuContentWrapper"], descendants: true }, { propertyName: "menuItems", predicate: FwMenuItemComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"fw-menu\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{display:flex;flex-direction:column;max-height:100%}.fw-menu{display:flex;flex-direction:column;gap:2px}\n"] }); }
4615
4625
  }
4616
4626
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: FwMenuComponent, decorators: [{
4617
4627
  type: Component,
@@ -4619,7 +4629,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
4619
4629
  provide: NG_VALUE_ACCESSOR,
4620
4630
  useExisting: FwMenuComponent,
4621
4631
  multi: true,
4622
- }], template: "<div class=\"fw-menu\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{display:flex;flex-direction:column;max-height:100%}\n"] }]
4632
+ }], template: "<div class=\"fw-menu\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{display:flex;flex-direction:column;max-height:100%}.fw-menu{display:flex;flex-direction:column;gap:2px}\n"] }]
4623
4633
  }], propDecorators: { disabled: [{
4624
4634
  type: Input
4625
4635
  }], size: [{
@@ -4993,11 +5003,11 @@ class FwMenuItemGroupComponent {
4993
5003
  return this.menuItems?.length > 0 && this.menuItems.toArray().every(item => item.hidden);
4994
5004
  }
4995
5005
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: FwMenuItemGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4996
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.18", type: FwMenuItemGroupComponent, isStandalone: true, selector: "fw-menu-item-group", inputs: { role: "role", title: "title", icon: "icon", iconColor: "iconColor", disabled: "disabled" }, host: { properties: { "role": "this.role", "hidden": "this.hidden" } }, queries: [{ propertyName: "menuItems", predicate: FwMenuItemComponent, descendants: true }], ngImport: i0, template: "<div class=\"menu-item-group\">\n <label *ngIf=\"title\">\n <fw-icon [color]=\"iconColor\" *ngIf=\"icon\" class=\"menu-icon {{iconColor}}\">{{ icon }}</fw-icon>\n <span>{{ title }}</span>\n </label>\n <div class=\"menu-item-group-items\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700\";.vision-h1{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:22px}.vision-h2{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:18px}.vision-h3{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:16px}.vision-h4,:host .menu-item-group label{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:14px}.vision-h5{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:12px;line-height:130%}.vision-h6{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:10px;line-height:120%}.vision-p1{font-size:18px;font-family:Inter,sans-serif;color:var(--typography-base);font-weight:400}.vision-p2{font-size:14px;font-family:Inter,sans-serif;color:var(--typography-base);font-weight:400}.vision-p3{font-size:12px;font-family:Inter,sans-serif;color:var(--typography-base);font-weight:400}.vision-p4{font-size:10px;font-family:Inter,sans-serif;color:var(--typography-base);font-weight:400}.vision-p5{font-size:8px;font-family:Inter,sans-serif;color:var(--typography-base);font-weight:400}.vision-link{text-decoration:underline;color:var(--primary-base);cursor:pointer}.vision-link:hover{text-decoration:none}.vision-link:active{text-decoration:none;outline:2px solid var(--primary-dark);border-radius:4px}.vision-link:visited{color:var(--secondary-base)}.vision-link-inherited{text-decoration:underline;color:var(--primary-base);cursor:pointer}.vision-link-inherited:hover{text-decoration:none}.vision-link-inherited:active{text-decoration:none;outline:2px solid var(--primary-dark);border-radius:4px}.vision-link-inherited:visited{color:var(--secondary-base)}.vision-link-inherited,.vision-link-inherited:visited{color:inherit}.vision-link-no-visited{text-decoration:underline;color:var(--primary-base);cursor:pointer}.vision-link-no-visited:hover{text-decoration:none}.vision-link-no-visited:active{text-decoration:none;outline:2px solid var(--primary-dark);border-radius:4px}.vision-link-no-visited:visited{color:var(--secondary-base)}.vision-link-no-visited:visited{color:var(--primary-base)}:host .menu-item-group{box-sizing:border-box;display:flex;flex-direction:column;align-items:stretch;flex:1;gap:8px;padding:8px;margin:1px 4px;color:var(--typography-base);width:stretch}:host .menu-item-group label{display:flex;align-items:center;gap:8px}:host .menu-item-group label .menu-icon{font-size:18px;white-space:nowrap}:host .menu-item-group .menu-item-group-items{width:stretch}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FwIconComponent, selector: "fw-icon", inputs: ["size", "color"] }] }); }
5006
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.18", type: FwMenuItemGroupComponent, isStandalone: true, selector: "fw-menu-item-group", inputs: { role: "role", title: "title", icon: "icon", iconColor: "iconColor", disabled: "disabled" }, host: { properties: { "role": "this.role", "hidden": "this.hidden" } }, queries: [{ propertyName: "menuItems", predicate: FwMenuItemComponent, descendants: true }], ngImport: i0, template: "<div class=\"menu-item-group\">\n <label *ngIf=\"title\">\n <fw-icon [color]=\"iconColor\" *ngIf=\"icon\" class=\"menu-icon {{iconColor}}\">{{ icon }}</fw-icon>\n <span>{{ title }}</span>\n </label>\n <div class=\"menu-item-group-items\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700\";.vision-h1{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:22px}.vision-h2{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:18px}.vision-h3{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:16px}.vision-h4,:host .menu-item-group label{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:14px}.vision-h5{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:12px;line-height:130%}.vision-h6{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:10px;line-height:120%}.vision-p1{font-size:18px;font-family:Inter,sans-serif;color:var(--typography-base);font-weight:400}.vision-p2{font-size:14px;font-family:Inter,sans-serif;color:var(--typography-base);font-weight:400}.vision-p3{font-size:12px;font-family:Inter,sans-serif;color:var(--typography-base);font-weight:400}.vision-p4{font-size:10px;font-family:Inter,sans-serif;color:var(--typography-base);font-weight:400}.vision-p5{font-size:8px;font-family:Inter,sans-serif;color:var(--typography-base);font-weight:400}.vision-link{text-decoration:underline;color:var(--primary-base);cursor:pointer}.vision-link:hover{text-decoration:none}.vision-link:active{text-decoration:none;outline:2px solid var(--primary-dark);border-radius:4px}.vision-link:visited{color:var(--secondary-base)}.vision-link-inherited{text-decoration:underline;color:var(--primary-base);cursor:pointer}.vision-link-inherited:hover{text-decoration:none}.vision-link-inherited:active{text-decoration:none;outline:2px solid var(--primary-dark);border-radius:4px}.vision-link-inherited:visited{color:var(--secondary-base)}.vision-link-inherited,.vision-link-inherited:visited{color:inherit}.vision-link-no-visited{text-decoration:underline;color:var(--primary-base);cursor:pointer}.vision-link-no-visited:hover{text-decoration:none}.vision-link-no-visited:active{text-decoration:none;outline:2px solid var(--primary-dark);border-radius:4px}.vision-link-no-visited:visited{color:var(--secondary-base)}.vision-link-no-visited:visited{color:var(--primary-base)}:host .menu-item-group{box-sizing:border-box;display:flex;flex-direction:column;align-items:stretch;flex:1;color:var(--typography-base);width:stretch;gap:2px}:host .menu-item-group label{padding:8px;display:flex;align-items:center;gap:8px}:host .menu-item-group label .menu-icon{font-size:18px;white-space:nowrap}:host .menu-item-group .menu-item-group-items{display:flex;flex-direction:column;align-items:stretch;width:stretch;gap:2px}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FwIconComponent, selector: "fw-icon", inputs: ["size", "color"] }] }); }
4997
5007
  }
4998
5008
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: FwMenuItemGroupComponent, decorators: [{
4999
5009
  type: Component,
5000
- args: [{ selector: 'fw-menu-item-group', imports: [NgIf, FwIconComponent], template: "<div class=\"menu-item-group\">\n <label *ngIf=\"title\">\n <fw-icon [color]=\"iconColor\" *ngIf=\"icon\" class=\"menu-icon {{iconColor}}\">{{ icon }}</fw-icon>\n <span>{{ title }}</span>\n </label>\n <div class=\"menu-item-group-items\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700\";.vision-h1{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:22px}.vision-h2{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:18px}.vision-h3{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:16px}.vision-h4,:host .menu-item-group label{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:14px}.vision-h5{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:12px;line-height:130%}.vision-h6{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:10px;line-height:120%}.vision-p1{font-size:18px;font-family:Inter,sans-serif;color:var(--typography-base);font-weight:400}.vision-p2{font-size:14px;font-family:Inter,sans-serif;color:var(--typography-base);font-weight:400}.vision-p3{font-size:12px;font-family:Inter,sans-serif;color:var(--typography-base);font-weight:400}.vision-p4{font-size:10px;font-family:Inter,sans-serif;color:var(--typography-base);font-weight:400}.vision-p5{font-size:8px;font-family:Inter,sans-serif;color:var(--typography-base);font-weight:400}.vision-link{text-decoration:underline;color:var(--primary-base);cursor:pointer}.vision-link:hover{text-decoration:none}.vision-link:active{text-decoration:none;outline:2px solid var(--primary-dark);border-radius:4px}.vision-link:visited{color:var(--secondary-base)}.vision-link-inherited{text-decoration:underline;color:var(--primary-base);cursor:pointer}.vision-link-inherited:hover{text-decoration:none}.vision-link-inherited:active{text-decoration:none;outline:2px solid var(--primary-dark);border-radius:4px}.vision-link-inherited:visited{color:var(--secondary-base)}.vision-link-inherited,.vision-link-inherited:visited{color:inherit}.vision-link-no-visited{text-decoration:underline;color:var(--primary-base);cursor:pointer}.vision-link-no-visited:hover{text-decoration:none}.vision-link-no-visited:active{text-decoration:none;outline:2px solid var(--primary-dark);border-radius:4px}.vision-link-no-visited:visited{color:var(--secondary-base)}.vision-link-no-visited:visited{color:var(--primary-base)}:host .menu-item-group{box-sizing:border-box;display:flex;flex-direction:column;align-items:stretch;flex:1;gap:8px;padding:8px;margin:1px 4px;color:var(--typography-base);width:stretch}:host .menu-item-group label{display:flex;align-items:center;gap:8px}:host .menu-item-group label .menu-icon{font-size:18px;white-space:nowrap}:host .menu-item-group .menu-item-group-items{width:stretch}\n"] }]
5010
+ args: [{ selector: 'fw-menu-item-group', imports: [NgIf, FwIconComponent], template: "<div class=\"menu-item-group\">\n <label *ngIf=\"title\">\n <fw-icon [color]=\"iconColor\" *ngIf=\"icon\" class=\"menu-icon {{iconColor}}\">{{ icon }}</fw-icon>\n <span>{{ title }}</span>\n </label>\n <div class=\"menu-item-group-items\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700\";.vision-h1{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:22px}.vision-h2{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:18px}.vision-h3{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:16px}.vision-h4,:host .menu-item-group label{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:14px}.vision-h5{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:12px;line-height:130%}.vision-h6{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:10px;line-height:120%}.vision-p1{font-size:18px;font-family:Inter,sans-serif;color:var(--typography-base);font-weight:400}.vision-p2{font-size:14px;font-family:Inter,sans-serif;color:var(--typography-base);font-weight:400}.vision-p3{font-size:12px;font-family:Inter,sans-serif;color:var(--typography-base);font-weight:400}.vision-p4{font-size:10px;font-family:Inter,sans-serif;color:var(--typography-base);font-weight:400}.vision-p5{font-size:8px;font-family:Inter,sans-serif;color:var(--typography-base);font-weight:400}.vision-link{text-decoration:underline;color:var(--primary-base);cursor:pointer}.vision-link:hover{text-decoration:none}.vision-link:active{text-decoration:none;outline:2px solid var(--primary-dark);border-radius:4px}.vision-link:visited{color:var(--secondary-base)}.vision-link-inherited{text-decoration:underline;color:var(--primary-base);cursor:pointer}.vision-link-inherited:hover{text-decoration:none}.vision-link-inherited:active{text-decoration:none;outline:2px solid var(--primary-dark);border-radius:4px}.vision-link-inherited:visited{color:var(--secondary-base)}.vision-link-inherited,.vision-link-inherited:visited{color:inherit}.vision-link-no-visited{text-decoration:underline;color:var(--primary-base);cursor:pointer}.vision-link-no-visited:hover{text-decoration:none}.vision-link-no-visited:active{text-decoration:none;outline:2px solid var(--primary-dark);border-radius:4px}.vision-link-no-visited:visited{color:var(--secondary-base)}.vision-link-no-visited:visited{color:var(--primary-base)}:host .menu-item-group{box-sizing:border-box;display:flex;flex-direction:column;align-items:stretch;flex:1;color:var(--typography-base);width:stretch;gap:2px}:host .menu-item-group label{padding:8px;display:flex;align-items:center;gap:8px}:host .menu-item-group label .menu-icon{font-size:18px;white-space:nowrap}:host .menu-item-group .menu-item-group-items{display:flex;flex-direction:column;align-items:stretch;width:stretch;gap:2px}\n"] }]
5001
5011
  }], propDecorators: { role: [{
5002
5012
  type: HostBinding,
5003
5013
  args: ['role']
@@ -5063,6 +5073,7 @@ class FwMenuContainerComponent {
5063
5073
  this.focusFilterOnMount = false;
5064
5074
  this.offset = '0px';
5065
5075
  this.emptyText = input('No results');
5076
+ this.filteredMenuItems = [];
5066
5077
  this.filteredMenuItemChange = output();
5067
5078
  this.defaultFilterFn = (filter, menuItems) => {
5068
5079
  return menuItems?.filter(menuItem => menuItem.title?.toLowerCase().includes(filter?.toLowerCase()));
@@ -5129,7 +5140,7 @@ class FwMenuContainerComponent {
5129
5140
  this.filteredMenuItemChange.emit(this.filteredMenuItems);
5130
5141
  }
5131
5142
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: FwMenuContainerComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
5132
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: FwMenuContainerComponent, isStandalone: true, selector: "fw-menu-container, fw-menu-filter", inputs: { width: { classPropertyName: "width", publicName: "width", isSignal: false, isRequired: false, transformFunction: null }, maxHeight: { classPropertyName: "maxHeight", publicName: "maxHeight", isSignal: false, isRequired: false, transformFunction: null }, minHeight: { classPropertyName: "minHeight", publicName: "minHeight", isSignal: false, isRequired: false, transformFunction: null }, border: { classPropertyName: "border", publicName: "border", isSignal: false, isRequired: false, transformFunction: null }, shadow: { classPropertyName: "shadow", publicName: "shadow", isSignal: false, isRequired: false, transformFunction: null }, showFilter: { classPropertyName: "showFilter", publicName: "showFilter", isSignal: false, isRequired: false, transformFunction: (val) => coerceBooleanProperty(val) }, filterText: { classPropertyName: "filterText", publicName: "filterText", isSignal: true, isRequired: false, transformFunction: null }, focusFilterOnMount: { classPropertyName: "focusFilterOnMount", publicName: "focusFilterOnMount", isSignal: false, isRequired: false, transformFunction: (val) => coerceBooleanProperty(val) }, offset: { classPropertyName: "offset", publicName: "offset", isSignal: false, isRequired: false, transformFunction: null }, emptyText: { classPropertyName: "emptyText", publicName: "emptyText", isSignal: true, isRequired: false, transformFunction: null }, filterFn: { classPropertyName: "filterFn", publicName: "filterFn", isSignal: true, isRequired: false, transformFunction: null }, additionalMenuItems: { classPropertyName: "additionalMenuItems", publicName: "additionalMenuItems", isSignal: true, isRequired: false, transformFunction: null }, additionalGroups: { classPropertyName: "additionalGroups", publicName: "additionalGroups", isSignal: true, isRequired: false, transformFunction: null }, additionalSeparators: { classPropertyName: "additionalSeparators", publicName: "additionalSeparators", isSignal: true, isRequired: false, transformFunction: null }, keyHandler: { classPropertyName: "keyHandler", publicName: "keyHandler", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { filteredMenuItemChange: "filteredMenuItemChange", filterChanged: "filterChanged" }, host: { properties: { "attr.class": "this.classes", "style": "this.style" } }, queries: [{ propertyName: "childMenuItems", predicate: FwMenuItemComponent, descendants: true, isSignal: true }, { propertyName: "childSeparators", predicate: FwMenuSeparatorComponent, descendants: true, isSignal: true }, { propertyName: "childGroups", predicate: FwMenuItemGroupComponent, descendants: true, isSignal: true }, { propertyName: "menu", first: true, predicate: FwMenuComponent, descendants: true }], viewQueries: [{ propertyName: "filterRef", first: true, predicate: ["menuFilter"], descendants: true }], ngImport: i0, template: "<div #filterBox *ngIf=\"showFilter\" class=\"filter-box\" cdkMenuBar>\n <fw-text-input\n (click)=\"handleFilterClick($event)\"\n #menuFilter\n (keydown)=\"keyHandler?.($event)\"\n placeholder=\"Search\" leftIcon=\"search\" [autofocus]=\"true\"\n [value]=\"filterText()\" (input)=\"handleFilterInput($event)\">\n </fw-text-input>\n <ng-content select=\".filter-content\"></ng-content>\n</div>\n<div class=\"menu-wrapper\">\n @if (noResults()) {\n <fw-menu-item [title]=\"emptyText()\" [disabled]=\"true\"></fw-menu-item>\n }\n <ng-content></ng-content>\n <ng-content select=\"custom-menu-items\"></ng-content>\n</div>\n", styles: [".fw-menu-container{display:flex;flex-direction:column;border-radius:8px;background:var(--card-background);position:relative}.fw-menu-container.border-default{border:1px solid var(--separations-border)}.fw-menu-container .filter-box{border-top-left-radius:8px;border-top-right-radius:8px;padding:8px;border-bottom:1px solid var(--separations-base);background-color:var(--card-background);max-width:calc(100% - 16px);height:fit-content}.fw-menu-container .menu-wrapper{flex:1;padding:6px 4px;overflow:hidden auto;margin-bottom:4px}.fw-menu-container fw-menu-separator{margin:6px -8px}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: CdkMenuBar, selector: "[cdkMenuBar]", exportAs: ["cdkMenuBar"] }, { kind: "component", type: FwTextInputComponent, selector: "fw-text-input", inputs: ["disabled", "useActionableIcons", "leftIcon", "rightIcon", "prefix", "context", "helperText", "errorText", "errorInIconTooltip", "placeholder", "readOnly", "size", "type", "maxLength", "autofocus", "autocomplete", "value", "error", "width"], outputs: ["leftIconAction", "rightIconAction"] }, { kind: "component", type: FwMenuItemComponent, selector: "fw-menu-item", inputs: ["value", "size", "title", "description", "icon", "iconColor", "disabled", "showCheckbox", "checkboxColor", "multiSelect", "hidden", "collapsed", "href", "target", "subItemsOpen", "mouseEnterHandler", "focused", "selected"], outputs: ["mouseEnterHandlerChange", "click"] }], encapsulation: i0.ViewEncapsulation.None }); }
5143
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: FwMenuContainerComponent, isStandalone: true, selector: "fw-menu-container, fw-menu-filter", inputs: { width: { classPropertyName: "width", publicName: "width", isSignal: false, isRequired: false, transformFunction: null }, maxHeight: { classPropertyName: "maxHeight", publicName: "maxHeight", isSignal: false, isRequired: false, transformFunction: null }, minHeight: { classPropertyName: "minHeight", publicName: "minHeight", isSignal: false, isRequired: false, transformFunction: null }, border: { classPropertyName: "border", publicName: "border", isSignal: false, isRequired: false, transformFunction: null }, shadow: { classPropertyName: "shadow", publicName: "shadow", isSignal: false, isRequired: false, transformFunction: null }, showFilter: { classPropertyName: "showFilter", publicName: "showFilter", isSignal: false, isRequired: false, transformFunction: (val) => coerceBooleanProperty(val) }, filterText: { classPropertyName: "filterText", publicName: "filterText", isSignal: true, isRequired: false, transformFunction: null }, focusFilterOnMount: { classPropertyName: "focusFilterOnMount", publicName: "focusFilterOnMount", isSignal: false, isRequired: false, transformFunction: (val) => coerceBooleanProperty(val) }, offset: { classPropertyName: "offset", publicName: "offset", isSignal: false, isRequired: false, transformFunction: null }, emptyText: { classPropertyName: "emptyText", publicName: "emptyText", isSignal: true, isRequired: false, transformFunction: null }, filterFn: { classPropertyName: "filterFn", publicName: "filterFn", isSignal: true, isRequired: false, transformFunction: null }, additionalMenuItems: { classPropertyName: "additionalMenuItems", publicName: "additionalMenuItems", isSignal: true, isRequired: false, transformFunction: null }, additionalGroups: { classPropertyName: "additionalGroups", publicName: "additionalGroups", isSignal: true, isRequired: false, transformFunction: null }, additionalSeparators: { classPropertyName: "additionalSeparators", publicName: "additionalSeparators", isSignal: true, isRequired: false, transformFunction: null }, keyHandler: { classPropertyName: "keyHandler", publicName: "keyHandler", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { filteredMenuItemChange: "filteredMenuItemChange", filterChanged: "filterChanged" }, host: { properties: { "attr.class": "this.classes", "style": "this.style" } }, queries: [{ propertyName: "childMenuItems", predicate: FwMenuItemComponent, descendants: true, isSignal: true }, { propertyName: "childSeparators", predicate: FwMenuSeparatorComponent, descendants: true, isSignal: true }, { propertyName: "childGroups", predicate: FwMenuItemGroupComponent, descendants: true, isSignal: true }, { propertyName: "menu", first: true, predicate: FwMenuComponent, descendants: true }], viewQueries: [{ propertyName: "filterRef", first: true, predicate: ["menuFilter"], descendants: true }], ngImport: i0, template: "<div #filterBox *ngIf=\"showFilter\" class=\"filter-box\" cdkMenuBar>\n <fw-text-input\n (click)=\"handleFilterClick($event)\"\n #menuFilter\n (keydown)=\"keyHandler?.($event)\"\n placeholder=\"Search\" leftIcon=\"search\" [autofocus]=\"true\"\n [value]=\"filterText()\" (input)=\"handleFilterInput($event)\">\n </fw-text-input>\n <ng-content select=\".filter-content\"></ng-content>\n</div>\n<div class=\"menu-wrapper\">\n @if (noResults()) {\n <fw-menu-item [title]=\"emptyText()\" [disabled]=\"true\"></fw-menu-item>\n }\n <ng-content></ng-content>\n <ng-content select=\"custom-menu-items\"></ng-content>\n</div>\n", styles: [".fw-menu-container{display:flex;flex-direction:column;border-radius:8px;background:var(--card-background);position:relative}.fw-menu-container.border-default{border:1px solid var(--separations-border)}.fw-menu-container .filter-box{border-top-left-radius:8px;border-top-right-radius:8px;padding:8px;border-bottom:1px solid var(--separations-base);background-color:var(--card-background);max-width:calc(100% - 16px);height:fit-content}.fw-menu-container .menu-wrapper{flex:1;padding:6px 4px;overflow:hidden auto;margin-bottom:4px}.fw-menu-container fw-menu-separator{margin:6px -8px}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: CdkMenuBar, selector: "[cdkMenuBar]", exportAs: ["cdkMenuBar"] }, { kind: "component", type: FwTextInputComponent, selector: "fw-text-input", inputs: ["disabled", "useActionableIcons", "leftIcon", "rightIcon", "prefix", "context", "helperText", "errorText", "errorInIconTooltip", "placeholder", "readOnly", "size", "type", "maxLength", "autofocus", "autocomplete", "value", "error", "width"], outputs: ["leftIconAction", "rightIconAction"] }, { kind: "component", type: FwMenuItemComponent, selector: "fw-menu-item", inputs: ["value", "size", "title", "description", "icon", "iconColor", "disabled", "showCheckbox", "checkboxColor", "multiSelect", "hidden", "collapsed", "href", "target", "subItemsOpen", "mouseEnterHandler", "focused", "selected"], outputs: ["mouseEnterHandlerChange", "click", "focusedChange"] }], encapsulation: i0.ViewEncapsulation.None }); }
5133
5144
  }
5134
5145
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: FwMenuContainerComponent, decorators: [{
5135
5146
  type: Component,
@@ -5980,7 +5991,7 @@ class FwMultiSelectMenuComponent {
5980
5991
  };
5981
5992
  this.displayFocusIndicator = effect(() => {
5982
5993
  this.displayedOptions().forEach((item, index) => {
5983
- item.focused = index === this.focusedIndex();
5994
+ item.focused.set(index === this.focusedIndex());
5984
5995
  });
5985
5996
  });
5986
5997
  /* eslint-disable @typescript-eslint/naming-convention, @rx-angular/prefer-no-layout-sensitive-apis */
@@ -6186,7 +6197,7 @@ class FwMultiSelectMenuComponent {
6186
6197
  useExisting: forwardRef(() => FwMultiSelectMenuComponent),
6187
6198
  multi: true,
6188
6199
  },
6189
- ], queries: [{ propertyName: "customMenuItems", predicate: FwMenuItemComponent, descendants: true }], viewQueries: [{ propertyName: "menuFilter", first: true, predicate: FwMenuContainerComponent, descendants: true, isSignal: true }, { propertyName: "trigger", first: true, predicate: CdkMenuTrigger, descendants: true }, { propertyName: "menu", first: true, predicate: FwMenuComponent, descendants: true }, { propertyName: "renderedMenuItems", predicate: FwMenuItemComponent, descendants: true }], ngImport: i0, template: "<div [ngStyle]=\"{width: width}\" #wrapper>\n\n <div\n fwMenuRegister\n class=\"chip-grid\"\n [ngClass]=\"[size]\"\n [ngStyle]=\"{ minHeight: minHeight, maxHeight: maxHeight }\"\n [cdkMenuTriggerFor]=\"selectMenu\">\n <span *ngIf=\"value.length === 0\" class=\"placeholder\">{{placeholder}}</span>\n\n <!-- CHIPS -->\n <div class=\"inner-chip-grid\" *ngIf=\"value && value.length>0\">\n <fw-chip\n *ngFor=\"let chip of selectedOptions | slice:0:maxSelectedShown\"\n [title]=\"chip[titleProperty]\"\n [value]=\"chip[valueProperty]\"\n [icon]=\"chip[iconProperty]\"\n color=\"primary\"\n [showClose]=\"true\"\n (close)=\"handleChipClose(chip)\"\n [selectable]=\"false\">\n </fw-chip>\n <span *ngIf=\"maxSelectedShown === 0 && value.length > 0\" class=\"selected-text\">\n {{ value.length }} selected\n </span>\n <span *ngIf=\"value.length > maxSelectedShown && maxSelectedShown > 0\" class=\"max-exceeded\">\n +{{ value.length - maxSelectedShown }} more\n </span>\n </div>\n\n <fw-icon *ngIf=\"showClear() && value.length > 0\" (click)=\"updateValue([])\">close</fw-icon>\n <fw-icon>chevron-down</fw-icon>\n </div>\n\n <!-- MENU -->\n <ng-template #selectMenu>\n <fw-menu-filter\n [keyHandler]=\"handleKeyDown\"\n [showFilter]=\"showFilter()\"\n [focusFilterOnMount]=\"showFilter()\"\n [width]=\"optionsWidth || (wrapper.offsetWidth - 2) + 'px'\"\n [additionalMenuItems]=\"this.customMenuItems.toArray()\"\n [emptyText]=\"emptyText\"\n [maxHeight]=\"maxOptionsHeight\"\n [minHeight]=\"minOptionsHeight\"\n [filterFn]=\"customFilter\"\n (filteredMenuItemChange)=\"displayedOptions.set($event)\"\n >\n <div class=\"filter-content\" *ngIf=\"showSelectionInfo()\">\n <p>{{value.length}} selections</p>\n <fw-button variant=\"ghost\" (click)=\"updateValue([])\">Clear</fw-button>\n </div>\n <fw-menu\n [multiSelect]=\"true\"\n [disabled]=\"disabled\"\n [value]=\"createArray(selectedValues)\"\n (change)=\"handleMenuChange($event)\">\n <ng-container *ngIf=\"customMenuItems.length === 0\">\n <fw-menu-item\n *ngFor=\"let item of options; index as $index\"\n [title]=\"item[titleProperty]\"\n [value]=\"item[valueProperty]\"\n [icon]=\"item[iconProperty]\"\n [multiSelect]=\"true\"\n [selected]=\"value.includes(item[valueProperty])\"\n [showCheckbox]=\"useCheckbox\"\n (mouseenter)=\"setFocusedIndex(item)\"\n >\n </fw-menu-item>\n </ng-container>\n <ng-content ngProjectAs=\"custom-menu-items\" select=\"[fw-menu-item, fw-menu-separator, fw-menu-item-group, fw-menu-header]\"></ng-content>\n </fw-menu>\n </fw-menu-filter>\n </ng-template>\n</div>\n", styles: [":host{pointer-events:auto}:host.disabled{opacity:.4;cursor:not-allowed}:host.disabled>div{pointer-events:none}:host .placeholder{color:var(--typography-light);font-size:14px;padding-left:4px;text-wrap:nowrap;text-overflow:ellipsis;overflow:hidden}:host .chip-grid{min-height:36px;width:100%;box-sizing:border-box;color:var(--typography-light);background:var(--page-light);display:flex;justify-content:space-between;padding:4px;align-items:center;border-radius:6px;overflow:hidden;border:1px solid var(--separations-input);cursor:pointer;font-family:Inter,sans-serif}:host .chip-grid.small{min-height:30px;padding:2px}:host .chip-grid.large{min-height:40px;padding:6px}:host .chip-grid:focus-within{border-color:var(--primary-base)}:host .chip-grid .inner-chip-grid{display:flex;flex-wrap:wrap;gap:4px;overflow:hidden auto;align-items:center;flex:1}:host .chip-grid .inner-chip-grid input{display:inline-flex;width:10px;flex-grow:1}:host .chip-grid fw-icon{font-size:20px}:host .chip-grid fw-icon:hover{color:var(--primary-base)}:host .chip-grid .selected-text{color:var(--typography-base);font-size:14px;padding:0 2px 0 4px;text-wrap:nowrap;text-overflow:ellipsis;overflow:hidden}:host .chip-grid .max-exceeded{font-size:12px}.filter-content{display:flex;align-items:center;justify-content:space-between;padding-left:4px;padding-top:4px}.filter-content p{color:var(--typography-muted);width:fit-content;margin:0}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: MenuRegisterDirective, selector: "[fwMenuRegister]" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: CdkMenuTrigger, selector: "[cdkMenuTriggerFor]", inputs: ["cdkMenuTriggerFor", "cdkMenuPosition", "cdkMenuTriggerData"], outputs: ["cdkMenuOpened", "cdkMenuClosed"], exportAs: ["cdkMenuTriggerFor"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: FwChipComponent, selector: "fw-chip", inputs: ["value", "variant", "color", "icon", "title", "description", "showClose", "disabled", "selected", "textWrap", "selectable"], outputs: ["close", "select"] }, { kind: "component", type: FwIconComponent, selector: "fw-icon", inputs: ["size", "color"] }, { kind: "component", type: FwMenuContainerComponent, selector: "fw-menu-container, fw-menu-filter", inputs: ["width", "maxHeight", "minHeight", "border", "shadow", "showFilter", "filterText", "focusFilterOnMount", "offset", "emptyText", "filterFn", "additionalMenuItems", "additionalGroups", "additionalSeparators", "keyHandler"], outputs: ["filteredMenuItemChange", "filterChanged"] }, { kind: "component", type: FwButtonComponent, selector: "fw-button", inputs: ["color", "size", "variant", "type", "disabled", "fullWidth", "leftIcon", "rightIcon"] }, { kind: "component", type: FwMenuComponent, selector: "fw-menu", inputs: ["disabled", "size", "multiSelect", "useCheckbox", "value"], outputs: ["change"] }, { kind: "component", type: FwMenuItemComponent, selector: "fw-menu-item", inputs: ["value", "size", "title", "description", "icon", "iconColor", "disabled", "showCheckbox", "checkboxColor", "multiSelect", "hidden", "collapsed", "href", "target", "subItemsOpen", "mouseEnterHandler", "focused", "selected"], outputs: ["mouseEnterHandlerChange", "click"] }, { kind: "pipe", type: SlicePipe, name: "slice" }] }); }
6200
+ ], queries: [{ propertyName: "customMenuItems", predicate: FwMenuItemComponent, descendants: true }], viewQueries: [{ propertyName: "menuFilter", first: true, predicate: FwMenuContainerComponent, descendants: true, isSignal: true }, { propertyName: "trigger", first: true, predicate: CdkMenuTrigger, descendants: true }, { propertyName: "menu", first: true, predicate: FwMenuComponent, descendants: true }, { propertyName: "renderedMenuItems", predicate: FwMenuItemComponent, descendants: true }], ngImport: i0, template: "<div [ngStyle]=\"{width: width}\" #wrapper>\n\n <div\n fwMenuRegister\n class=\"chip-grid\"\n [ngClass]=\"[size]\"\n [ngStyle]=\"{ minHeight: minHeight, maxHeight: maxHeight }\"\n [cdkMenuTriggerFor]=\"selectMenu\">\n <span *ngIf=\"value.length === 0\" class=\"placeholder\">{{placeholder}}</span>\n\n <!-- CHIPS -->\n <div class=\"inner-chip-grid\" *ngIf=\"value && value.length>0\">\n <fw-chip\n *ngFor=\"let chip of selectedOptions | slice:0:maxSelectedShown\"\n [title]=\"chip[titleProperty]\"\n [value]=\"chip[valueProperty]\"\n [icon]=\"chip[iconProperty]\"\n color=\"primary\"\n [showClose]=\"true\"\n (close)=\"handleChipClose(chip)\"\n [selectable]=\"false\">\n </fw-chip>\n <span *ngIf=\"maxSelectedShown === 0 && value.length > 0\" class=\"selected-text\">\n {{ value.length }} selected\n </span>\n <span *ngIf=\"value.length > maxSelectedShown && maxSelectedShown > 0\" class=\"max-exceeded\">\n +{{ value.length - maxSelectedShown }} more\n </span>\n </div>\n\n <fw-icon *ngIf=\"showClear() && value.length > 0\" (click)=\"updateValue([])\">close</fw-icon>\n <fw-icon>chevron-down</fw-icon>\n </div>\n\n <!-- MENU -->\n <ng-template #selectMenu>\n <fw-menu-filter\n [keyHandler]=\"handleKeyDown\"\n [showFilter]=\"showFilter()\"\n [focusFilterOnMount]=\"showFilter()\"\n [width]=\"optionsWidth || (wrapper.offsetWidth - 2) + 'px'\"\n [additionalMenuItems]=\"this.customMenuItems.toArray()\"\n [emptyText]=\"emptyText\"\n [maxHeight]=\"maxOptionsHeight\"\n [minHeight]=\"minOptionsHeight\"\n [filterFn]=\"customFilter\"\n (filteredMenuItemChange)=\"displayedOptions.set($event)\"\n >\n <div class=\"filter-content\" *ngIf=\"showSelectionInfo()\">\n <p>{{value.length}} selections</p>\n <fw-button variant=\"ghost\" (click)=\"updateValue([])\">Clear</fw-button>\n </div>\n <fw-menu\n [multiSelect]=\"true\"\n [disabled]=\"disabled\"\n [value]=\"createArray(selectedValues)\"\n (change)=\"handleMenuChange($event)\">\n <ng-container *ngIf=\"customMenuItems.length === 0\">\n <fw-menu-item\n *ngFor=\"let item of options; index as $index\"\n [title]=\"item[titleProperty]\"\n [value]=\"item[valueProperty]\"\n [icon]=\"item[iconProperty]\"\n [multiSelect]=\"true\"\n [selected]=\"value.includes(item[valueProperty])\"\n [showCheckbox]=\"useCheckbox\"\n (mouseenter)=\"setFocusedIndex(item)\"\n >\n </fw-menu-item>\n </ng-container>\n <ng-content ngProjectAs=\"custom-menu-items\" select=\"[fw-menu-item, fw-menu-separator, fw-menu-item-group, fw-menu-header]\"></ng-content>\n </fw-menu>\n </fw-menu-filter>\n </ng-template>\n</div>\n", styles: [":host{pointer-events:auto}:host.disabled{opacity:.4;cursor:not-allowed}:host.disabled>div{pointer-events:none}:host .placeholder{color:var(--typography-light);font-size:14px;padding-left:4px;text-wrap:nowrap;text-overflow:ellipsis;overflow:hidden}:host .chip-grid{min-height:36px;width:100%;box-sizing:border-box;color:var(--typography-light);background:var(--page-light);display:flex;justify-content:space-between;padding:4px;align-items:center;border-radius:6px;overflow:hidden;border:1px solid var(--separations-input);cursor:pointer;font-family:Inter,sans-serif}:host .chip-grid.small{min-height:30px;padding:2px}:host .chip-grid.large{min-height:40px;padding:6px}:host .chip-grid:focus-within{border-color:var(--primary-base)}:host .chip-grid .inner-chip-grid{display:flex;flex-wrap:wrap;gap:4px;overflow:hidden auto;align-items:center;flex:1}:host .chip-grid .inner-chip-grid input{display:inline-flex;width:10px;flex-grow:1}:host .chip-grid fw-icon{font-size:20px}:host .chip-grid fw-icon:hover{color:var(--primary-base)}:host .chip-grid .selected-text{color:var(--typography-base);font-size:14px;padding:0 2px 0 4px;text-wrap:nowrap;text-overflow:ellipsis;overflow:hidden}:host .chip-grid .max-exceeded{font-size:12px}.filter-content{display:flex;align-items:center;justify-content:space-between;padding-left:4px;padding-top:4px}.filter-content p{color:var(--typography-muted);width:fit-content;margin:0}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: MenuRegisterDirective, selector: "[fwMenuRegister]" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: CdkMenuTrigger, selector: "[cdkMenuTriggerFor]", inputs: ["cdkMenuTriggerFor", "cdkMenuPosition", "cdkMenuTriggerData"], outputs: ["cdkMenuOpened", "cdkMenuClosed"], exportAs: ["cdkMenuTriggerFor"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: FwChipComponent, selector: "fw-chip", inputs: ["value", "variant", "color", "icon", "title", "description", "showClose", "disabled", "selected", "textWrap", "selectable"], outputs: ["close", "select"] }, { kind: "component", type: FwIconComponent, selector: "fw-icon", inputs: ["size", "color"] }, { kind: "component", type: FwMenuContainerComponent, selector: "fw-menu-container, fw-menu-filter", inputs: ["width", "maxHeight", "minHeight", "border", "shadow", "showFilter", "filterText", "focusFilterOnMount", "offset", "emptyText", "filterFn", "additionalMenuItems", "additionalGroups", "additionalSeparators", "keyHandler"], outputs: ["filteredMenuItemChange", "filterChanged"] }, { kind: "component", type: FwButtonComponent, selector: "fw-button", inputs: ["color", "size", "variant", "type", "disabled", "fullWidth", "leftIcon", "rightIcon"] }, { kind: "component", type: FwMenuComponent, selector: "fw-menu", inputs: ["disabled", "size", "multiSelect", "useCheckbox", "value"], outputs: ["change"] }, { kind: "component", type: FwMenuItemComponent, selector: "fw-menu-item", inputs: ["value", "size", "title", "description", "icon", "iconColor", "disabled", "showCheckbox", "checkboxColor", "multiSelect", "hidden", "collapsed", "href", "target", "subItemsOpen", "mouseEnterHandler", "focused", "selected"], outputs: ["mouseEnterHandlerChange", "click", "focusedChange"] }, { kind: "pipe", type: SlicePipe, name: "slice" }] }); }
6190
6201
  }
6191
6202
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: FwMultiSelectMenuComponent, decorators: [{
6192
6203
  type: Component,
@@ -6302,6 +6313,9 @@ class FwSelectMenuComponent {
6302
6313
  get disabledClass() {
6303
6314
  return this.disabled();
6304
6315
  }
6316
+ custom(menuItem) {
6317
+ return menuItem.title;
6318
+ }
6305
6319
  get value() {
6306
6320
  return this._value;
6307
6321
  }
@@ -6334,30 +6348,53 @@ class FwSelectMenuComponent {
6334
6348
  // eslint-disable-next-line @angular-eslint/no-output-native
6335
6349
  this.change = new EventEmitter();
6336
6350
  this.filterChanged = new EventEmitter();
6337
- this.selectValue = '';
6338
- this.selectTitle = signal('');
6339
- this.selectIcon = '';
6351
+ this.selectValue = signal('');
6340
6352
  this.filterValue = signal('');
6353
+ this.menuItemClickSubscriptions = [];
6341
6354
  this.subscriptions = [];
6342
6355
  this._isOpen = false;
6343
6356
  this.focused = 0;
6344
6357
  this.inFocusOpen = false;
6345
6358
  this.isTyping = signal(false);
6359
+ this.valueDisplayFn = input((menuItem) => menuItem.title || '');
6360
+ this.defaultFilterFn = (filter, items) => (items.filter(item => {
6361
+ if (item.disabled) {
6362
+ return false;
6363
+ }
6364
+ if (!filter || filter.trim() === '') {
6365
+ return true;
6366
+ }
6367
+ return item.title?.toLowerCase().includes(filter.toLowerCase());
6368
+ }));
6369
+ /**
6370
+ * function for customizing the filter behavior of the select
6371
+ * ! WARNING ! only works with content-projected menu items, does not work with the `options` input
6372
+ */
6373
+ this.filterFn = input(this.defaultFilterFn);
6346
6374
  // Computed signal for the input display value
6347
6375
  // Don't show the title if it's the same as the value (means we haven't resolved it yet)
6348
6376
  this.inputDisplayValue = computed(() => {
6349
6377
  if (this.isTyping()) {
6350
6378
  return this.filterValue();
6351
6379
  }
6352
- const title = this.selectTitle();
6353
- const value = this.selectValue;
6354
- // If title equals value, it means we haven't resolved the proper title yet, show empty
6355
- if (title === value && this.menuItems().length > 0) {
6380
+ return this.selectTitle();
6381
+ });
6382
+ this._value = '';
6383
+ this.selectTitle = linkedSignal(() => {
6384
+ const options = this.options();
6385
+ const menuItems = this.menuItems();
6386
+ const currentValue = this.selectValue();
6387
+ if (!currentValue) {
6356
6388
  return '';
6357
6389
  }
6358
- return title;
6390
+ const selectedMenuItem = menuItems.find(item => item.value === currentValue);
6391
+ if (selectedMenuItem) {
6392
+ const displayFn = this.valueDisplayFn();
6393
+ return displayFn(selectedMenuItem);
6394
+ }
6395
+ const selectedOption = options.find((opt) => opt[this.valueProperty()]?.toString() === currentValue);
6396
+ return selectedOption?.[this.titleProperty()] || '';
6359
6397
  });
6360
- this._value = '';
6361
6398
  // Watch for menu items changes and re-subscribe
6362
6399
  this.menuItemsWatcher = effect(() => {
6363
6400
  const items = this.menuItems();
@@ -6392,57 +6429,52 @@ class FwSelectMenuComponent {
6392
6429
  });
6393
6430
  this.onTouched = () => {
6394
6431
  };
6432
+ this.externalOnChange = (_val) => { };
6395
6433
  // this is just a different way of binding the controlValueAccessor
6396
6434
  // it can be accessed in the component this way
6397
6435
  if (this.ngControl) {
6398
6436
  this.ngControl.valueAccessor = this;
6399
6437
  }
6400
- // Watch for options changes to update the displayed title
6401
- effect(() => {
6402
- const currentOptions = this.options();
6403
- const vProp = this.valueProperty();
6404
- const tProp = this.titleProperty();
6405
- if (!currentOptions || currentOptions.length === 0) {
6406
- return;
6407
- }
6408
- const selectedOption = currentOptions.find(item => item[vProp]?.toString() === this.selectValue);
6409
- if (selectedOption) {
6410
- this.selectTitle.set(selectedOption[tProp]);
6411
- }
6438
+ }
6439
+ ngOnInit() {
6440
+ const onOpenSub = this.trigger.opened.subscribe(() => {
6441
+ const focusedMenuItem = this.menuItems().find(item => item.value === this.selectValue());
6442
+ setTimeout(() => {
6443
+ focusedMenuItem?.scrollIntoView({ behavior: 'instant', block: 'start' });
6444
+ });
6412
6445
  });
6446
+ this.subscriptions.push(onOpenSub);
6413
6447
  }
6414
6448
  subscribeToMenuItems() {
6415
6449
  // Clear old subscriptions
6416
- this.subscriptions.forEach(sub => sub.unsubscribe());
6417
- this.subscriptions = [];
6450
+ this.menuItemClickSubscriptions.forEach(sub => sub.unsubscribe());
6451
+ this.menuItemClickSubscriptions = [];
6418
6452
  const items = this.menuItems();
6419
6453
  // Subscribe to current menu items
6420
6454
  for (const item of items) {
6421
6455
  const sub = item.click.subscribe(value => {
6422
6456
  this.menu()?.writeValue(value);
6423
6457
  });
6424
- this.subscriptions.push(sub);
6458
+ this.menuItemClickSubscriptions.push(sub);
6425
6459
  }
6426
6460
  // Update title/icon if we have a selectValue but no title (or wrong title)
6427
6461
  // This handles the case where writeValue was called before menu items existed
6428
- if (this.selectValue && items.length > 0) {
6429
- const matchingItem = items.find(item => item.value?.toString() === this.selectValue);
6462
+ if (this.selectValue() && items.length > 0) {
6463
+ const matchingItem = items.find(item => item.value?.toString() === this.selectValue());
6430
6464
  if (matchingItem) {
6431
- this.selectTitle.set(matchingItem.title.toString());
6432
6465
  this.selectIcon = matchingItem.icon;
6433
6466
  }
6434
6467
  }
6435
6468
  }
6436
6469
  ngOnDestroy() {
6437
- for (const subscription of this.subscriptions) {
6438
- subscription.unsubscribe();
6439
- }
6470
+ this.menuItemClickSubscriptions.forEach(sub => sub.unsubscribe());
6471
+ this.subscriptions.forEach(sub => sub.unsubscribe);
6440
6472
  }
6441
6473
  get invalid() {
6442
- return this.ngControl?.invalid;
6474
+ return Boolean(this.ngControl?.invalid);
6443
6475
  }
6444
6476
  get touched() {
6445
- return this.ngControl?.touched;
6477
+ return Boolean(this.ngControl?.touched);
6446
6478
  }
6447
6479
  onChange(newValue) {
6448
6480
  this._value = typeof newValue === 'object' ? JSON.stringify(newValue) : newValue;
@@ -6468,7 +6500,7 @@ class FwSelectMenuComponent {
6468
6500
  }
6469
6501
  handleClick(e) {
6470
6502
  this.onTouched();
6471
- if (!this.isTyping() && this.selectValue === e) {
6503
+ if (!this.isTyping() && this.selectValue() === e) {
6472
6504
  this.close();
6473
6505
  return;
6474
6506
  }
@@ -6493,16 +6525,8 @@ class FwSelectMenuComponent {
6493
6525
  }
6494
6526
  // If using content projection, filter by typeahead text and exclude disabled items
6495
6527
  if (this.menuItems().length > 0) {
6496
- const filter = this.filterValue();
6497
- return this.menuItems().filter(item => {
6498
- if (item.disabled) {
6499
- return false;
6500
- }
6501
- if (!filter || filter.trim() === '') {
6502
- return true;
6503
- }
6504
- return item.title?.toLowerCase().includes(filter.toLowerCase());
6505
- });
6528
+ const filterFn = this.filterFn();
6529
+ return filterFn(this.filterValue(), this.menuItems());
6506
6530
  }
6507
6531
  return [];
6508
6532
  }
@@ -6510,12 +6534,11 @@ class FwSelectMenuComponent {
6510
6534
  * Update highlighting for the currently selected item
6511
6535
  */
6512
6536
  updateHighlighting() {
6513
- const currentValue = this.selectValue;
6514
- // Update highlighting for content-projected menu items
6537
+ const currentValue = this.selectValue();
6515
6538
  const projectedItems = this.menuItems();
6516
- for (let i = 0; i < projectedItems.length; i++) {
6517
- projectedItems[i].selected = projectedItems[i].value === currentValue;
6518
- }
6539
+ projectedItems.forEach(item => {
6540
+ item.selected = item.value === currentValue;
6541
+ });
6519
6542
  }
6520
6543
  /**
6521
6544
  * Initialize focused index to the currently selected item
@@ -6526,15 +6549,15 @@ class FwSelectMenuComponent {
6526
6549
  // Find the index of the currently selected item
6527
6550
  const selectedIndex = availableItems.findIndex(item => {
6528
6551
  if (item instanceof FwMenuItemComponent) {
6529
- return item.value === currentValue;
6552
+ return item.value === currentValue();
6530
6553
  }
6531
6554
  else {
6532
6555
  // For options array items
6533
6556
  const vProp = this.valueProperty();
6534
6557
  const itemValue = this.useFullOptionAsValue()
6535
6558
  ? JSON.stringify(item)
6536
- : item?.[vProp]?.toString();
6537
- return itemValue === currentValue;
6559
+ : item[vProp];
6560
+ return itemValue === currentValue();
6538
6561
  }
6539
6562
  });
6540
6563
  // Set focused to the selected index
@@ -6697,14 +6720,12 @@ class FwSelectMenuComponent {
6697
6720
  const selectedItem = availableItems[this.focused];
6698
6721
  // Handle both options (objects) and menuItems (FwMenuItemComponent)
6699
6722
  if (selectedItem instanceof FwMenuItemComponent) {
6700
- this.selectValue = selectedItem.value;
6723
+ selectedItem.scrollIntoView();
6724
+ this.selectValue.set(selectedItem.value || '');
6701
6725
  // Manually update selected state for all menu items
6702
6726
  this.menuItems().forEach(item => {
6703
- item.selected = item.value === this.selectValue;
6727
+ item.selected = item.value === this.selectValue();
6704
6728
  });
6705
- // Scroll the focused item into view
6706
- // eslint-disable-next-line @rx-angular/prefer-no-layout-sensitive-apis
6707
- selectedItem.scrollIntoView();
6708
6729
  // Only update value if not in typing mode to avoid re-rendering all options
6709
6730
  if (!this.isTyping()) {
6710
6731
  this.updateValue(selectedItem.value);
@@ -6713,9 +6734,8 @@ class FwSelectMenuComponent {
6713
6734
  else {
6714
6735
  // For options array items, set selectValue first for immediate highlighting
6715
6736
  const vProp = this.valueProperty();
6716
- this.selectValue = this.useFullOptionAsValue()
6717
- ? JSON.stringify(selectedItem)
6718
- : selectedItem?.[vProp]?.toString();
6737
+ const newValue = this.useFullOptionAsValue() ? JSON.stringify(selectedItem) : selectedItem?.[vProp]?.toString();
6738
+ this.selectValue.set(newValue);
6719
6739
  // Update highlighting to show the focused item
6720
6740
  this.updateHighlighting();
6721
6741
  // Don't call updateValue during arrow navigation while typing
@@ -6737,14 +6757,12 @@ class FwSelectMenuComponent {
6737
6757
  const selectedItem = availableItems[this.focused];
6738
6758
  // Handle both options (objects) and menuItems (FwMenuItemComponent)
6739
6759
  if (selectedItem instanceof FwMenuItemComponent) {
6740
- this.selectValue = selectedItem.value;
6760
+ selectedItem.scrollIntoView();
6761
+ this.selectValue.set(selectedItem.value || '');
6741
6762
  // Manually update selected state for all menu items
6742
6763
  this.menuItems().forEach(item => {
6743
- item.selected = item.value === this.selectValue;
6764
+ item.selected = item.value === this.selectValue();
6744
6765
  });
6745
- // Scroll the focused item into view
6746
- // eslint-disable-next-line @rx-angular/prefer-no-layout-sensitive-apis
6747
- selectedItem.scrollIntoView();
6748
6766
  // Only update value if not in typing mode to avoid re-rendering all options
6749
6767
  if (!this.isTyping()) {
6750
6768
  this.updateValue(selectedItem.value);
@@ -6753,9 +6771,8 @@ class FwSelectMenuComponent {
6753
6771
  else {
6754
6772
  // For options array items, set selectValue first for immediate highlighting
6755
6773
  const vProp = this.valueProperty();
6756
- this.selectValue = this.useFullOptionAsValue()
6757
- ? JSON.stringify(selectedItem)
6758
- : selectedItem?.[vProp]?.toString();
6774
+ const newValue = this.useFullOptionAsValue() ? JSON.stringify(selectedItem) : selectedItem?.[vProp]?.toString();
6775
+ this.selectValue.set(newValue);
6759
6776
  // Update highlighting to show the focused item
6760
6777
  this.updateHighlighting();
6761
6778
  // Don't call updateValue during arrow navigation while typing
@@ -6800,7 +6817,7 @@ class FwSelectMenuComponent {
6800
6817
  }
6801
6818
  }
6802
6819
  else {
6803
- if (this.showReset) {
6820
+ if (this.showReset()) {
6804
6821
  if (event.key === 'Escape') {
6805
6822
  this.handleReset();
6806
6823
  }
@@ -6816,16 +6833,17 @@ class FwSelectMenuComponent {
6816
6833
  const fullOption = this.useFullOptionAsValue();
6817
6834
  // null guard
6818
6835
  if (!newValue) {
6819
- this.selectValue = '';
6820
- this.selectTitle.set('');
6821
- this.selectIcon = '';
6836
+ this.selectValue.set('');
6837
+ this.selectIcon = undefined;
6822
6838
  return this.onChange(newValue);
6823
6839
  }
6824
6840
  if (typeof newValue === 'object') {
6825
- this.selectValue = newValue?.[vProp]?.toString();
6826
- this.selectTitle.set(newValue?.[tProp]?.toString());
6827
- this.selectIcon = newValue?.[iProp];
6828
- const changeToEmit = fullOption ? newValue : newValue[vProp];
6841
+ const castedNewValue = newValue;
6842
+ this.selectValue.set(castedNewValue?.[vProp]?.toString());
6843
+ this.selectIcon = castedNewValue?.[iProp];
6844
+ // sometimes they might be setting a value we don't have an option for so assume the title from the set value
6845
+ this.selectTitle.set(castedNewValue?.[tProp]);
6846
+ const changeToEmit = fullOption ? newValue : castedNewValue[vProp];
6829
6847
  return this.onChange(changeToEmit);
6830
6848
  }
6831
6849
  // try and find a matching option in the options array
@@ -6835,8 +6853,7 @@ class FwSelectMenuComponent {
6835
6853
  return matchesValue || matchesTitle;
6836
6854
  });
6837
6855
  if (matchedOption) {
6838
- this.selectValue = matchedOption[vProp]?.toString();
6839
- this.selectTitle.set(matchedOption[tProp]?.toString());
6856
+ this.selectValue.set(matchedOption[vProp]?.toString() || '');
6840
6857
  this.selectIcon = matchedOption[iProp];
6841
6858
  const changeToEmit = fullOption ? matchedOption : matchedOption[vProp];
6842
6859
  return this.onChange(changeToEmit);
@@ -6844,15 +6861,13 @@ class FwSelectMenuComponent {
6844
6861
  // try and find a matching menu item in content projected items
6845
6862
  const matchedMenuItem = this.menuItems().find(item => item.value === newValue);
6846
6863
  if (matchedMenuItem) {
6847
- this.selectValue = matchedMenuItem.value?.toString();
6848
- this.selectTitle.set(matchedMenuItem.title);
6864
+ this.selectValue.set(matchedMenuItem.value?.toString() || '');
6849
6865
  this.selectIcon = matchedMenuItem.icon;
6850
6866
  return this.onChange(matchedMenuItem.value);
6851
6867
  }
6852
6868
  // fall back to stringify
6853
6869
  const stringified = newValue.toString() || '';
6854
- this.selectValue = stringified;
6855
- this.selectTitle.set(stringified);
6870
+ this.selectValue.set(stringified);
6856
6871
  return this.onChange(stringified);
6857
6872
  }
6858
6873
  handleReset() {
@@ -6900,17 +6915,18 @@ class FwSelectMenuComponent {
6900
6915
  const firstItem = availableItems[0];
6901
6916
  // Handle both options (objects) and menuItems (FwMenuItemComponent)
6902
6917
  if (firstItem instanceof FwMenuItemComponent) {
6903
- this.selectValue = firstItem.value;
6918
+ this.selectValue.set(firstItem?.value || '');
6904
6919
  }
6905
6920
  else {
6906
- this.selectValue = this.useFullOptionAsValue()
6921
+ const newValue = this.useFullOptionAsValue()
6907
6922
  ? JSON.stringify(firstItem)
6908
6923
  : firstItem[this.valueProperty()]?.toString();
6924
+ this.selectValue.set(newValue);
6909
6925
  }
6910
6926
  }
6911
6927
  else {
6912
6928
  // Clear selection when no items match
6913
- this.selectValue = '';
6929
+ this.selectValue.set('');
6914
6930
  }
6915
6931
  this.focused = 0;
6916
6932
  this.updateHighlighting();
@@ -6923,21 +6939,18 @@ class FwSelectMenuComponent {
6923
6939
  }
6924
6940
  }
6925
6941
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: FwSelectMenuComponent, deps: [{ token: i1$4.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
6926
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: FwSelectMenuComponent, isStandalone: true, selector: "fw-select", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, valueProperty: { classPropertyName: "valueProperty", publicName: "valueProperty", isSignal: true, isRequired: false, transformFunction: null }, useFullOptionAsValue: { classPropertyName: "useFullOptionAsValue", publicName: "useFullOptionAsValue", isSignal: true, isRequired: false, transformFunction: null }, titleProperty: { classPropertyName: "titleProperty", publicName: "titleProperty", isSignal: true, isRequired: false, transformFunction: null }, iconProperty: { classPropertyName: "iconProperty", publicName: "iconProperty", isSignal: true, isRequired: false, transformFunction: null }, staticIcon: { classPropertyName: "staticIcon", publicName: "staticIcon", isSignal: true, isRequired: false, transformFunction: null }, descriptionProperty: { classPropertyName: "descriptionProperty", publicName: "descriptionProperty", isSignal: true, isRequired: false, transformFunction: null }, showFilter: { classPropertyName: "showFilter", publicName: "showFilter", isSignal: true, isRequired: false, transformFunction: null }, showReset: { classPropertyName: "showReset", publicName: "showReset", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, errored: { classPropertyName: "errored", publicName: "errored", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, optionsWidth: { classPropertyName: "optionsWidth", publicName: "optionsWidth", isSignal: true, isRequired: false, transformFunction: null }, minOptionsHeight: { classPropertyName: "minOptionsHeight", publicName: "minOptionsHeight", isSignal: true, isRequired: false, transformFunction: null }, maxOptionsHeight: { classPropertyName: "maxOptionsHeight", publicName: "maxOptionsHeight", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { disabled: "disabledChange", change: "change", filterChanged: "filterChanged" }, host: { listeners: { "document:click": "outsideClick($event)" }, properties: { "class.disabled": "this.disabledClass" } }, queries: [{ propertyName: "menuItems", predicate: FwMenuItemComponent, descendants: true, isSignal: true }, { propertyName: "menuItemGroups", predicate: FwMenuItemGroupComponent, descendants: true, isSignal: true }, { propertyName: "menuSeparators", predicate: FwMenuSeparatorComponent, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "menu", first: true, predicate: FwMenuComponent, descendants: true, isSignal: true }, { propertyName: "trigger", first: true, predicate: CdkMenuTrigger, descendants: true }, { propertyName: "textInput", first: true, predicate: FwTextInputComponent, descendants: true }], ngImport: i0, template: "<div #wrapper [style.width]=\"width()\">\n <fw-text-input\n fwMenuRegister\n [cdkMenuTriggerFor]=\"selectMenu\"\n [value]=\"inputDisplayValue()\"\n [leftIcon]=\"staticIcon() || selectIcon || null\"\n [rightIcon]=\"(selectTitle()&&showReset())?'close-circled':'chevron-down'\"\n (rightIconAction)=\"handleReset()\"\n [useActionableIcons]=\"true\"\n [placeholder]=\"placeholder()\"\n [size]=\"size()\"\n [error]=\"errored() || (invalid && touched)\"\n (input)=\"onInputChange($event)\"\n (keyup)=\"handleKeyUp($event)\"\n (keydown)=\"handleKeyDown($event)\"\n (focus)=\"handleFocus()\"\n (click)=\"handleInputClick()\"\n [readOnly]=\"false\">\n </fw-text-input>\n <ng-template #selectMenu>\n @if (!disabled()) {\n <fw-menu-container\n [filterText]=\"menuItems().length > 0 ? '' : filterValue()\"\n [additionalMenuItems]=\"menuItems()\"\n [additionalGroups]=\"menuItemGroups()\"\n [additionalSeparators]=\"menuSeparators()\"\n [showFilter]=\"showFilter()\" [width]=\"optionsWidth() || wrapper.offsetWidth + 'px'\"\n [maxHeight]=\"maxOptionsHeight()\" [minHeight]=\"minOptionsHeight()\" (filterChanged)=\"onFilterChanged($event)\">\n <fw-menu [disabled]=\"disabled()\" [value]=\"selectValue\" (change)=\"handleClick($any($event))\">\n @if (menuItems().length === 0) {\n @for (item of optionsWithValues(); track item.trackingId) {\n <fw-menu-item\n [title]=\"item.raw[titleProperty()]?.toString()\"\n [description]=\"item.raw[descriptionProperty()]\"\n [value]=\"item.value\"\n [icon]=\"item.raw[iconProperty()]\"\n [disabled]=\"$any(item.raw).disabled\"\n >\n </fw-menu-item>\n }\n }\n <div #menuContentWrapper>\n <ng-content select=\"[fw-menu-item, fw-menu-separator, fw-menu-item-group]\"></ng-content>\n </div>\n </fw-menu>\n </fw-menu-container>\n }\n </ng-template>\n</div>\n", styles: [":host{box-sizing:border-box;max-width:100%}:host>div{cursor:pointer}:host.disabled{opacity:.4;cursor:not-allowed}:host.disabled>div{pointer-events:none}\n"], dependencies: [{ kind: "component", type: FwTextInputComponent, selector: "fw-text-input", inputs: ["disabled", "useActionableIcons", "leftIcon", "rightIcon", "prefix", "context", "helperText", "errorText", "errorInIconTooltip", "placeholder", "readOnly", "size", "type", "maxLength", "autofocus", "autocomplete", "value", "error", "width"], outputs: ["leftIconAction", "rightIconAction"] }, { kind: "directive", type: MenuRegisterDirective, selector: "[fwMenuRegister]" }, { kind: "directive", type: CdkMenuTrigger, selector: "[cdkMenuTriggerFor]", inputs: ["cdkMenuTriggerFor", "cdkMenuPosition", "cdkMenuTriggerData"], outputs: ["cdkMenuOpened", "cdkMenuClosed"], exportAs: ["cdkMenuTriggerFor"] }, { kind: "component", type: FwMenuContainerComponent, selector: "fw-menu-container, fw-menu-filter", inputs: ["width", "maxHeight", "minHeight", "border", "shadow", "showFilter", "filterText", "focusFilterOnMount", "offset", "emptyText", "filterFn", "additionalMenuItems", "additionalGroups", "additionalSeparators", "keyHandler"], outputs: ["filteredMenuItemChange", "filterChanged"] }, { kind: "component", type: FwMenuComponent, selector: "fw-menu", inputs: ["disabled", "size", "multiSelect", "useCheckbox", "value"], outputs: ["change"] }, { kind: "component", type: FwMenuItemComponent, selector: "fw-menu-item", inputs: ["value", "size", "title", "description", "icon", "iconColor", "disabled", "showCheckbox", "checkboxColor", "multiSelect", "hidden", "collapsed", "href", "target", "subItemsOpen", "mouseEnterHandler", "focused", "selected"], outputs: ["mouseEnterHandlerChange", "click"] }] }); }
6942
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: FwSelectMenuComponent, isStandalone: true, selector: "fw-select", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, valueProperty: { classPropertyName: "valueProperty", publicName: "valueProperty", isSignal: true, isRequired: false, transformFunction: null }, useFullOptionAsValue: { classPropertyName: "useFullOptionAsValue", publicName: "useFullOptionAsValue", isSignal: true, isRequired: false, transformFunction: null }, titleProperty: { classPropertyName: "titleProperty", publicName: "titleProperty", isSignal: true, isRequired: false, transformFunction: null }, iconProperty: { classPropertyName: "iconProperty", publicName: "iconProperty", isSignal: true, isRequired: false, transformFunction: null }, staticIcon: { classPropertyName: "staticIcon", publicName: "staticIcon", isSignal: true, isRequired: false, transformFunction: null }, descriptionProperty: { classPropertyName: "descriptionProperty", publicName: "descriptionProperty", isSignal: true, isRequired: false, transformFunction: null }, showFilter: { classPropertyName: "showFilter", publicName: "showFilter", isSignal: true, isRequired: false, transformFunction: null }, showReset: { classPropertyName: "showReset", publicName: "showReset", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, errored: { classPropertyName: "errored", publicName: "errored", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, optionsWidth: { classPropertyName: "optionsWidth", publicName: "optionsWidth", isSignal: true, isRequired: false, transformFunction: null }, minOptionsHeight: { classPropertyName: "minOptionsHeight", publicName: "minOptionsHeight", isSignal: true, isRequired: false, transformFunction: null }, maxOptionsHeight: { classPropertyName: "maxOptionsHeight", publicName: "maxOptionsHeight", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, valueDisplayFn: { classPropertyName: "valueDisplayFn", publicName: "valueDisplayFn", isSignal: true, isRequired: false, transformFunction: null }, filterFn: { classPropertyName: "filterFn", publicName: "filterFn", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { disabled: "disabledChange", change: "change", filterChanged: "filterChanged" }, host: { listeners: { "document:click": "outsideClick($event)" }, properties: { "class.disabled": "this.disabledClass" } }, queries: [{ propertyName: "menuItems", predicate: FwMenuItemComponent, descendants: true, isSignal: true }, { propertyName: "menuItemGroups", predicate: FwMenuItemGroupComponent, descendants: true, isSignal: true }, { propertyName: "menuSeparators", predicate: FwMenuSeparatorComponent, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "menu", first: true, predicate: FwMenuComponent, descendants: true, isSignal: true }, { propertyName: "trigger", first: true, predicate: CdkMenuTrigger, descendants: true, static: true }, { propertyName: "textInput", first: true, predicate: FwTextInputComponent, descendants: true }], ngImport: i0, template: "<div #wrapper [style.width]=\"width()\">\n <fw-text-input\n fwMenuRegister\n [cdkMenuTriggerFor]=\"selectMenu\"\n [value]=\"inputDisplayValue()\"\n [leftIcon]=\"staticIcon() || selectIcon || null\"\n [rightIcon]=\"(selectTitle()&&showReset())?'close-circled':'chevron-down'\"\n (rightIconAction)=\"handleReset()\"\n [useActionableIcons]=\"true\"\n [placeholder]=\"placeholder()\"\n [size]=\"size()\"\n [error]=\"errored() || (invalid && touched)\"\n (input)=\"onInputChange($event)\"\n (keyup)=\"handleKeyUp($event)\"\n (keydown)=\"handleKeyDown($event)\"\n (focus)=\"handleFocus()\"\n (click)=\"handleInputClick()\"\n [readOnly]=\"false\">\n </fw-text-input>\n <ng-template #selectMenu>\n @if (!disabled()) {\n <fw-menu-container\n [filterFn]=\"filterFn()\"\n [filterText]=\"filterValue()\"\n [additionalMenuItems]=\"menuItems()\"\n [additionalGroups]=\"menuItemGroups()\"\n [additionalSeparators]=\"menuSeparators()\"\n [showFilter]=\"showFilter()\" [width]=\"optionsWidth() || wrapper.offsetWidth + 'px'\"\n [maxHeight]=\"maxOptionsHeight()\" [minHeight]=\"minOptionsHeight()\" (filterChanged)=\"onFilterChanged($event)\">\n <fw-menu [disabled]=\"disabled()\" [value]=\"selectValue()\" (change)=\"handleClick($any($event))\">\n @if (menuItems().length === 0) {\n @for (item of optionsWithValues(); track item.trackingId) {\n <fw-menu-item\n [title]=\"item.raw[titleProperty()]?.toString()\"\n [description]=\"$any(item.raw[descriptionProperty()])\"\n [value]=\"item.value\"\n [icon]=\"$any(item.raw[iconProperty()])\"\n [disabled]=\"$any(item.raw).disabled\"\n />\n }\n }\n <div #menuContentWrapper>\n <ng-content select=\"[fw-menu-item, fw-menu-separator, fw-menu-item-group]\"></ng-content>\n </div>\n </fw-menu>\n </fw-menu-container>\n }\n </ng-template>\n</div>\n", styles: [":host{box-sizing:border-box;max-width:100%}:host>div{cursor:pointer}:host.disabled{opacity:.4;cursor:not-allowed}:host.disabled>div{pointer-events:none}\n"], dependencies: [{ kind: "component", type: FwTextInputComponent, selector: "fw-text-input", inputs: ["disabled", "useActionableIcons", "leftIcon", "rightIcon", "prefix", "context", "helperText", "errorText", "errorInIconTooltip", "placeholder", "readOnly", "size", "type", "maxLength", "autofocus", "autocomplete", "value", "error", "width"], outputs: ["leftIconAction", "rightIconAction"] }, { kind: "directive", type: MenuRegisterDirective, selector: "[fwMenuRegister]" }, { kind: "directive", type: CdkMenuTrigger, selector: "[cdkMenuTriggerFor]", inputs: ["cdkMenuTriggerFor", "cdkMenuPosition", "cdkMenuTriggerData"], outputs: ["cdkMenuOpened", "cdkMenuClosed"], exportAs: ["cdkMenuTriggerFor"] }, { kind: "component", type: FwMenuContainerComponent, selector: "fw-menu-container, fw-menu-filter", inputs: ["width", "maxHeight", "minHeight", "border", "shadow", "showFilter", "filterText", "focusFilterOnMount", "offset", "emptyText", "filterFn", "additionalMenuItems", "additionalGroups", "additionalSeparators", "keyHandler"], outputs: ["filteredMenuItemChange", "filterChanged"] }, { kind: "component", type: FwMenuComponent, selector: "fw-menu", inputs: ["disabled", "size", "multiSelect", "useCheckbox", "value"], outputs: ["change"] }, { kind: "component", type: FwMenuItemComponent, selector: "fw-menu-item", inputs: ["value", "size", "title", "description", "icon", "iconColor", "disabled", "showCheckbox", "checkboxColor", "multiSelect", "hidden", "collapsed", "href", "target", "subItemsOpen", "mouseEnterHandler", "focused", "selected"], outputs: ["mouseEnterHandlerChange", "click", "focusedChange"] }] }); }
6927
6943
  }
6928
6944
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: FwSelectMenuComponent, decorators: [{
6929
6945
  type: Component,
6930
6946
  args: [{ selector: 'fw-select', imports: [
6931
- NgStyle,
6932
6947
  FwTextInputComponent,
6933
6948
  MenuRegisterDirective,
6934
6949
  CdkMenuTrigger,
6935
- NgIf,
6936
6950
  FwMenuContainerComponent,
6937
6951
  FwMenuComponent,
6938
- NgFor,
6939
6952
  FwMenuItemComponent,
6940
- ], template: "<div #wrapper [style.width]=\"width()\">\n <fw-text-input\n fwMenuRegister\n [cdkMenuTriggerFor]=\"selectMenu\"\n [value]=\"inputDisplayValue()\"\n [leftIcon]=\"staticIcon() || selectIcon || null\"\n [rightIcon]=\"(selectTitle()&&showReset())?'close-circled':'chevron-down'\"\n (rightIconAction)=\"handleReset()\"\n [useActionableIcons]=\"true\"\n [placeholder]=\"placeholder()\"\n [size]=\"size()\"\n [error]=\"errored() || (invalid && touched)\"\n (input)=\"onInputChange($event)\"\n (keyup)=\"handleKeyUp($event)\"\n (keydown)=\"handleKeyDown($event)\"\n (focus)=\"handleFocus()\"\n (click)=\"handleInputClick()\"\n [readOnly]=\"false\">\n </fw-text-input>\n <ng-template #selectMenu>\n @if (!disabled()) {\n <fw-menu-container\n [filterText]=\"menuItems().length > 0 ? '' : filterValue()\"\n [additionalMenuItems]=\"menuItems()\"\n [additionalGroups]=\"menuItemGroups()\"\n [additionalSeparators]=\"menuSeparators()\"\n [showFilter]=\"showFilter()\" [width]=\"optionsWidth() || wrapper.offsetWidth + 'px'\"\n [maxHeight]=\"maxOptionsHeight()\" [minHeight]=\"minOptionsHeight()\" (filterChanged)=\"onFilterChanged($event)\">\n <fw-menu [disabled]=\"disabled()\" [value]=\"selectValue\" (change)=\"handleClick($any($event))\">\n @if (menuItems().length === 0) {\n @for (item of optionsWithValues(); track item.trackingId) {\n <fw-menu-item\n [title]=\"item.raw[titleProperty()]?.toString()\"\n [description]=\"item.raw[descriptionProperty()]\"\n [value]=\"item.value\"\n [icon]=\"item.raw[iconProperty()]\"\n [disabled]=\"$any(item.raw).disabled\"\n >\n </fw-menu-item>\n }\n }\n <div #menuContentWrapper>\n <ng-content select=\"[fw-menu-item, fw-menu-separator, fw-menu-item-group]\"></ng-content>\n </div>\n </fw-menu>\n </fw-menu-container>\n }\n </ng-template>\n</div>\n", styles: [":host{box-sizing:border-box;max-width:100%}:host>div{cursor:pointer}:host.disabled{opacity:.4;cursor:not-allowed}:host.disabled>div{pointer-events:none}\n"] }]
6953
+ ], template: "<div #wrapper [style.width]=\"width()\">\n <fw-text-input\n fwMenuRegister\n [cdkMenuTriggerFor]=\"selectMenu\"\n [value]=\"inputDisplayValue()\"\n [leftIcon]=\"staticIcon() || selectIcon || null\"\n [rightIcon]=\"(selectTitle()&&showReset())?'close-circled':'chevron-down'\"\n (rightIconAction)=\"handleReset()\"\n [useActionableIcons]=\"true\"\n [placeholder]=\"placeholder()\"\n [size]=\"size()\"\n [error]=\"errored() || (invalid && touched)\"\n (input)=\"onInputChange($event)\"\n (keyup)=\"handleKeyUp($event)\"\n (keydown)=\"handleKeyDown($event)\"\n (focus)=\"handleFocus()\"\n (click)=\"handleInputClick()\"\n [readOnly]=\"false\">\n </fw-text-input>\n <ng-template #selectMenu>\n @if (!disabled()) {\n <fw-menu-container\n [filterFn]=\"filterFn()\"\n [filterText]=\"filterValue()\"\n [additionalMenuItems]=\"menuItems()\"\n [additionalGroups]=\"menuItemGroups()\"\n [additionalSeparators]=\"menuSeparators()\"\n [showFilter]=\"showFilter()\" [width]=\"optionsWidth() || wrapper.offsetWidth + 'px'\"\n [maxHeight]=\"maxOptionsHeight()\" [minHeight]=\"minOptionsHeight()\" (filterChanged)=\"onFilterChanged($event)\">\n <fw-menu [disabled]=\"disabled()\" [value]=\"selectValue()\" (change)=\"handleClick($any($event))\">\n @if (menuItems().length === 0) {\n @for (item of optionsWithValues(); track item.trackingId) {\n <fw-menu-item\n [title]=\"item.raw[titleProperty()]?.toString()\"\n [description]=\"$any(item.raw[descriptionProperty()])\"\n [value]=\"item.value\"\n [icon]=\"$any(item.raw[iconProperty()])\"\n [disabled]=\"$any(item.raw).disabled\"\n />\n }\n }\n <div #menuContentWrapper>\n <ng-content select=\"[fw-menu-item, fw-menu-separator, fw-menu-item-group]\"></ng-content>\n </div>\n </fw-menu>\n </fw-menu-container>\n }\n </ng-template>\n</div>\n", styles: [":host{box-sizing:border-box;max-width:100%}:host>div{cursor:pointer}:host.disabled{opacity:.4;cursor:not-allowed}:host.disabled>div{pointer-events:none}\n"] }]
6941
6954
  }], ctorParameters: () => [{ type: i1$4.NgControl, decorators: [{
6942
6955
  type: Optional
6943
6956
  }, {
@@ -6950,7 +6963,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
6950
6963
  args: ['class.disabled']
6951
6964
  }], trigger: [{
6952
6965
  type: ViewChild,
6953
- args: [CdkMenuTrigger]
6966
+ args: [CdkMenuTrigger, { static: true }]
6954
6967
  }], textInput: [{
6955
6968
  type: ViewChild,
6956
6969
  args: [FwTextInputComponent]
@@ -7096,7 +7109,7 @@ class FwPaginatorAdvancedComponent {
7096
7109
  return (this.pageIndex > 0);
7097
7110
  }
7098
7111
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: FwPaginatorAdvancedComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7099
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.18", type: FwPaginatorAdvancedComponent, isStandalone: true, selector: "fw-paginator-advanced", inputs: { disabled: "disabled", showNext: "showNext", showPrevious: "showPrevious", showFirst: "showFirst", showLast: "showLast", pageIndex: "pageIndex", pageSizeOptions: "pageSizeOptions", length: "length", alignment: "alignment", selectorTitle: "selectorTitle", pageSize: "pageSize" }, outputs: { page: "page" }, ngImport: i0, template: "<div [ngClass]=\"['paginator', alignment]\">\n <div class=\"pages-selector\">\n <div>\n <p class=\"vision-p2\" [ngClass]=\"disabled?'disabled':''\">{{ selectorTitle }}</p>\n &nbsp;\n <fw-select\n [disabled]=\"disabled\" width=\"80px\" placeholder=\"Size\"\n [(ngModel)]=\"pageSize\">\n <fw-menu-item\n *ngFor=\"let size of pageSizeOptions\"\n [value]=\"size.toString()\"\n [title]=\"size.toString()\"\n [selected]=\"pageSize.toString()===size.toString()\"\n [disabled]=\"disabled\"\n ></fw-menu-item>\n </fw-select>\n </div>\n <p class=\"vision-p2 record-count\" [ngClass]=\"disabled?'disabled':''\">\n {{ getRowIndexStart() + 1 }}-{{ getRowIndexEnd() + 1 }}\n of {{ length }}</p>\n <div>\n <button\n *ngIf=\"showFirst\"\n class=\"page-item page-action page-first\" [disabled]=\"!hasPreviousPage() || disabled\" (click)=\"firstPage()\">\n <fw-icon>arrow-back-collapse</fw-icon>\n </button>\n <button\n *ngIf=\"showPrevious\"\n class=\"page-item page-action page-previous\" [disabled]=\"!hasPreviousPage() || disabled\"\n (click)=\"previousPage()\">\n <fw-icon>chevron-back</fw-icon>\n </button>\n <button\n *ngIf=\"showNext\" class=\"page-item page-action page-next\" [disabled]=\"!hasNextPage() || disabled\"\n (click)=\"nextPage()\">\n <fw-icon>chevron-forward</fw-icon>\n </button>\n <button\n *ngIf=\"showLast\" class=\"page-item page-action page-last\" [disabled]=\"!hasNextPage() || disabled\"\n (click)=\"lastPage()\">\n <fw-icon>arrow-forward-collapse</fw-icon>\n </button>\n </div>\n </div>\n</div>\n", styles: [":host .paginator{display:flex}:host .paginator button{border:none;background-color:transparent}:host .paginator .page-item{box-sizing:border-box;cursor:pointer;display:flex;justify-content:center;align-items:center;border-radius:4px}:host .paginator .page-item:disabled{color:var(--typography-muted);cursor:not-allowed}:host .paginator .page-item:disabled h4{opacity:.4}:host .paginator .page-action fw-icon{font-size:22px;color:var(--typography-base)}:host .paginator .page-action:disabled{opacity:.4}:host .paginator .pages-list{box-sizing:border-box;display:flex;gap:4px}:host .paginator .pages-list .page-number h4{margin:0;color:var(--typography-base)}:host .paginator .pages-list .page-number:disabled h4{color:var(--slate-base)!important}:host .paginator .pages-list .page-active{background-color:var(--slate-focus)}:host .paginator .pages-list .page-active:disabled{background-color:transparent}:host .paginator.start{justify-content:flex-start}:host .paginator.center{justify-content:center}:host .paginator.end{justify-content:flex-end}:host .paginator.large .page-item{width:40px;height:40px}:host .paginator.medium .page-item{width:32px;height:32px}:host .paginator.small .page-item{width:26px;height:26px}:host .paginator.primary .page-active:not(:disabled){background-color:var(--primary-base)!important}:host .paginator.primary .page-active:not(:disabled) h4{color:var(--typography-contrast)!important}:host .paginator.secondary .page-active:not(:disabled){background-color:var(--secondary-base)!important}:host .paginator.secondary .page-active:not(:disabled) h4{color:var(--typography-contrast)!important}:host .paginator.outline .page-item{border:1px solid var(--slate-border)}:host .paginator.outline .page-number:disabled{border:1px solid var(--slate-border)!important;background-color:transparent!important}:host .paginator.outline.primary .page-active{background-color:var(--primary-hover)!important;border-color:var(--primary-border)!important}:host .paginator.outline.primary .page-active h4{color:var(--primary-base)!important}:host .paginator.outline.primary .page-active:disabled{border:1px solid var(--slate-border)!important;background-color:transparent!important}:host .paginator.outline.secondary .page-active{background-color:var(--secondary-hover)!important;border-color:var(--secondary-border)!important}:host .paginator.outline.secondary .page-active h4{color:var(--secondary-base)!important}:host .paginator.outline.secondary .page-active:disabled{border:1px solid var(--slate-border)!important;background-color:transparent!important}:host .paginator.solid .page-item{border:1px solid var(--slate-border);background-color:var(--card-background)}:host .paginator.solid .page-number:disabled{border:1px solid var(--slate-border)!important;background-color:var(--card-background)!important;opacity:.4}:host .paginator.solid .page-number:disabled h4{opacity:1}:host .paginator.circle .page-number{border-radius:999px!important}:host .paginator .pages-selector{display:flex;align-items:center;justify-content:flex-end;gap:16px}:host .paginator .pages-selector>div{display:flex;align-items:center}:host .paginator .pages-selector fw-icon{font-size:22px}:host .paginator .pages-selector .record-count{min-width:130px;text-align:center}:host .paginator .pages-selector p.disabled{color:var(--typography-light)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: FwSelectMenuComponent, selector: "fw-select", inputs: ["options", "valueProperty", "useFullOptionAsValue", "titleProperty", "iconProperty", "staticIcon", "descriptionProperty", "showFilter", "showReset", "disabled", "errored", "width", "optionsWidth", "minOptionsHeight", "maxOptionsHeight", "size", "placeholder", "value"], outputs: ["disabledChange", "change", "filterChanged"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: FwMenuItemComponent, selector: "fw-menu-item", inputs: ["value", "size", "title", "description", "icon", "iconColor", "disabled", "showCheckbox", "checkboxColor", "multiSelect", "hidden", "collapsed", "href", "target", "subItemsOpen", "mouseEnterHandler", "focused", "selected"], outputs: ["mouseEnterHandlerChange", "click"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FwIconComponent, selector: "fw-icon", inputs: ["size", "color"] }] }); }
7112
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.18", type: FwPaginatorAdvancedComponent, isStandalone: true, selector: "fw-paginator-advanced", inputs: { disabled: "disabled", showNext: "showNext", showPrevious: "showPrevious", showFirst: "showFirst", showLast: "showLast", pageIndex: "pageIndex", pageSizeOptions: "pageSizeOptions", length: "length", alignment: "alignment", selectorTitle: "selectorTitle", pageSize: "pageSize" }, outputs: { page: "page" }, ngImport: i0, template: "<div [ngClass]=\"['paginator', alignment]\">\n <div class=\"pages-selector\">\n <div>\n <p class=\"vision-p2\" [ngClass]=\"disabled?'disabled':''\">{{ selectorTitle }}</p>\n &nbsp;\n <fw-select\n [disabled]=\"disabled\" width=\"80px\" placeholder=\"Size\"\n [(ngModel)]=\"pageSize\">\n <fw-menu-item\n *ngFor=\"let size of pageSizeOptions\"\n [value]=\"size.toString()\"\n [title]=\"size.toString()\"\n [selected]=\"pageSize.toString()===size.toString()\"\n [disabled]=\"disabled\"\n ></fw-menu-item>\n </fw-select>\n </div>\n <p class=\"vision-p2 record-count\" [ngClass]=\"disabled?'disabled':''\">\n {{ getRowIndexStart() + 1 }}-{{ getRowIndexEnd() + 1 }}\n of {{ length }}</p>\n <div>\n <button\n *ngIf=\"showFirst\"\n class=\"page-item page-action page-first\" [disabled]=\"!hasPreviousPage() || disabled\" (click)=\"firstPage()\">\n <fw-icon>arrow-back-collapse</fw-icon>\n </button>\n <button\n *ngIf=\"showPrevious\"\n class=\"page-item page-action page-previous\" [disabled]=\"!hasPreviousPage() || disabled\"\n (click)=\"previousPage()\">\n <fw-icon>chevron-back</fw-icon>\n </button>\n <button\n *ngIf=\"showNext\" class=\"page-item page-action page-next\" [disabled]=\"!hasNextPage() || disabled\"\n (click)=\"nextPage()\">\n <fw-icon>chevron-forward</fw-icon>\n </button>\n <button\n *ngIf=\"showLast\" class=\"page-item page-action page-last\" [disabled]=\"!hasNextPage() || disabled\"\n (click)=\"lastPage()\">\n <fw-icon>arrow-forward-collapse</fw-icon>\n </button>\n </div>\n </div>\n</div>\n", styles: [":host .paginator{display:flex}:host .paginator button{border:none;background-color:transparent}:host .paginator .page-item{box-sizing:border-box;cursor:pointer;display:flex;justify-content:center;align-items:center;border-radius:4px}:host .paginator .page-item:disabled{color:var(--typography-muted);cursor:not-allowed}:host .paginator .page-item:disabled h4{opacity:.4}:host .paginator .page-action fw-icon{font-size:22px;color:var(--typography-base)}:host .paginator .page-action:disabled{opacity:.4}:host .paginator .pages-list{box-sizing:border-box;display:flex;gap:4px}:host .paginator .pages-list .page-number h4{margin:0;color:var(--typography-base)}:host .paginator .pages-list .page-number:disabled h4{color:var(--slate-base)!important}:host .paginator .pages-list .page-active{background-color:var(--slate-focus)}:host .paginator .pages-list .page-active:disabled{background-color:transparent}:host .paginator.start{justify-content:flex-start}:host .paginator.center{justify-content:center}:host .paginator.end{justify-content:flex-end}:host .paginator.large .page-item{width:40px;height:40px}:host .paginator.medium .page-item{width:32px;height:32px}:host .paginator.small .page-item{width:26px;height:26px}:host .paginator.primary .page-active:not(:disabled){background-color:var(--primary-base)!important}:host .paginator.primary .page-active:not(:disabled) h4{color:var(--typography-contrast)!important}:host .paginator.secondary .page-active:not(:disabled){background-color:var(--secondary-base)!important}:host .paginator.secondary .page-active:not(:disabled) h4{color:var(--typography-contrast)!important}:host .paginator.outline .page-item{border:1px solid var(--slate-border)}:host .paginator.outline .page-number:disabled{border:1px solid var(--slate-border)!important;background-color:transparent!important}:host .paginator.outline.primary .page-active{background-color:var(--primary-hover)!important;border-color:var(--primary-border)!important}:host .paginator.outline.primary .page-active h4{color:var(--primary-base)!important}:host .paginator.outline.primary .page-active:disabled{border:1px solid var(--slate-border)!important;background-color:transparent!important}:host .paginator.outline.secondary .page-active{background-color:var(--secondary-hover)!important;border-color:var(--secondary-border)!important}:host .paginator.outline.secondary .page-active h4{color:var(--secondary-base)!important}:host .paginator.outline.secondary .page-active:disabled{border:1px solid var(--slate-border)!important;background-color:transparent!important}:host .paginator.solid .page-item{border:1px solid var(--slate-border);background-color:var(--card-background)}:host .paginator.solid .page-number:disabled{border:1px solid var(--slate-border)!important;background-color:var(--card-background)!important;opacity:.4}:host .paginator.solid .page-number:disabled h4{opacity:1}:host .paginator.circle .page-number{border-radius:999px!important}:host .paginator .pages-selector{display:flex;align-items:center;justify-content:flex-end;gap:16px}:host .paginator .pages-selector>div{display:flex;align-items:center}:host .paginator .pages-selector fw-icon{font-size:22px}:host .paginator .pages-selector .record-count{min-width:130px;text-align:center}:host .paginator .pages-selector p.disabled{color:var(--typography-light)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: FwSelectMenuComponent, selector: "fw-select", inputs: ["options", "valueProperty", "useFullOptionAsValue", "titleProperty", "iconProperty", "staticIcon", "descriptionProperty", "showFilter", "showReset", "disabled", "errored", "width", "optionsWidth", "minOptionsHeight", "maxOptionsHeight", "size", "placeholder", "valueDisplayFn", "filterFn", "value"], outputs: ["disabledChange", "change", "filterChanged"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: FwMenuItemComponent, selector: "fw-menu-item", inputs: ["value", "size", "title", "description", "icon", "iconColor", "disabled", "showCheckbox", "checkboxColor", "multiSelect", "hidden", "collapsed", "href", "target", "subItemsOpen", "mouseEnterHandler", "focused", "selected"], outputs: ["mouseEnterHandlerChange", "click", "focusedChange"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FwIconComponent, selector: "fw-icon", inputs: ["size", "color"] }] }); }
7100
7113
  }
7101
7114
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: FwPaginatorAdvancedComponent, decorators: [{
7102
7115
  type: Component,
@@ -7897,7 +7910,7 @@ class FwPhoneInputComponent {
7897
7910
  provide: NG_VALUE_ACCESSOR,
7898
7911
  useExisting: forwardRef(() => FwPhoneInputComponent),
7899
7912
  multi: true,
7900
- }], viewQueries: [{ propertyName: "trigger", first: true, predicate: CdkMenuTrigger, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"full-container\">\n <div [class]=\"['input-container', size, showCountrySelector?'country-selector':'no-country-selector']\">\n <button\n *ngIf=\"showCountrySelector\"\n (keydown)=\"buttonKeyPress($event)\"\n [cdkMenuTriggerFor]=\"countryMenu\"\n [cdkMenuPosition]=\"[{originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 2, offsetX: -2}]\"\n [disabled]=\"disabled\">\n <div class=\"country-text\">\n <span class=\"indicator-wrapper\">\n <fw-icon>chevron-down</fw-icon>\n </span>\n <span class=\"country-selector-flag flag\" [ngClass]=\"selectedCountry?.flagClass.toLowerCase()\">\n </span>\n <span class=\"country-selector-code\" *ngIf=\"selectedCountry?.dialCode && format==='national'\">\n +{{ selectedCountry.dialCode }}\n </span>\n </div>\n </button>\n <ng-template #countryMenu>\n <fw-menu-container width=\"300px\" maxHeight=\"500px\" shadow=\"large\" [showFilter]=\"enableCountrySearch\">\n <fw-menu\n [value]=\"selectedCountryCode\" (change)=\"countrySelect($any($event), focusableInput)\"\n (filteredItemsChange)=\"filteredItemsChange($event)\">\n <ng-container *ngIf=\"!filteredCountryItems?.length\">\n <fw-menu-item\n *ngFor=\"let country of preferredCountryList\"\n [title]=\"country?.dialCode ? country.name+' +'+country.dialCode : country.name\"\n [value]=\"country.iso2\">\n <p class=\"icon-wrapper\">\n <span class=\"flag\" [ngClass]=\"country.flagClass.toLowerCase()\"></span>\n </p>\n </fw-menu-item>\n <fw-menu-separator></fw-menu-separator>\n </ng-container>\n <ng-container>\n <fw-menu-item\n *ngFor=\"let country of allCountryList\"\n [title]=\"country?.dialCode ? country.name+' +'+country.dialCode : country.name\"\n [value]=\"country.iso2\">\n <p class=\"icon-wrapper\">\n <span class=\"flag\" [ngClass]=\"country.flagClass.toLowerCase()\"></span>\n </p>\n </fw-menu-item>\n </ng-container>\n </fw-menu>\n </fw-menu-container>\n </ng-template>\n <input\n type=\"tel\"\n autocomplete=\"tel\"\n (click)=\"trigger.close()\"\n (blur)=\"onTouched()\"\n (keydown)=\"inputKeyPress($event)\"\n [(ngModel)]=\"phoneFormattedNational\"\n (ngModelChange)=\"phoneNumberChange()\"\n [placeholder]=\"placeholder || ''\"\n [readOnly]=\"readOnly\"\n [disabled]=\"disabled\"\n [maxLength]=\"15\"\n #focusableInput>\n <fw-icon class=\"error-icon\">warning-circle</fw-icon>\n <fw-icon *ngIf=\"!!rightIcon\">{{ rightIcon }}</fw-icon>\n <ng-content></ng-content>\n </div>\n <p class=\"helper-text\" *ngIf=\"!!helperText\">{{ helperText }}</p>\n <p class=\"error-text\" *ngIf=\"!!errorText\">{{ errorText }}</p>\n</div>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700\";.vision-h1{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:22px}.vision-h2{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:18px}.vision-h3{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:16px}.vision-h4{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:14px}.vision-h5{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:12px;line-height:130%}.vision-h6{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:10px;line-height:120%}.vision-p1{font-size:18px;font-family:Inter,sans-serif;color:var(--typography-base);font-weight:400}.vision-p2{font-size:14px;font-family:Inter,sans-serif;color:var(--typography-base);font-weight:400}.vision-p3{font-size:12px;font-family:Inter,sans-serif;color:var(--typography-base);font-weight:400}.vision-p4,.full-container .helper-text,.full-container .error-text{font-size:10px;font-family:Inter,sans-serif;color:var(--typography-base);font-weight:400}.vision-p5{font-size:8px;font-family:Inter,sans-serif;color:var(--typography-base);font-weight:400}.vision-link{text-decoration:underline;color:var(--primary-base);cursor:pointer}.vision-link:hover{text-decoration:none}.vision-link:active{text-decoration:none;outline:2px solid var(--primary-dark);border-radius:4px}.vision-link:visited{color:var(--secondary-base)}.vision-link-inherited{text-decoration:underline;color:var(--primary-base);cursor:pointer}.vision-link-inherited:hover{text-decoration:none}.vision-link-inherited:active{text-decoration:none;outline:2px solid var(--primary-dark);border-radius:4px}.vision-link-inherited:visited{color:var(--secondary-base)}.vision-link-inherited,.vision-link-inherited:visited{color:inherit}.vision-link-no-visited{text-decoration:underline;color:var(--primary-base);cursor:pointer}.vision-link-no-visited:hover{text-decoration:none}.vision-link-no-visited:active{text-decoration:none;outline:2px solid var(--primary-dark);border-radius:4px}.vision-link-no-visited:visited{color:var(--secondary-base)}.vision-link-no-visited:visited{color:var(--primary-base)}.full-container{display:flex;flex-direction:column;line-height:21px}.full-container .input-container{box-sizing:border-box;color:var(--typography-light);background:var(--page-light);display:flex;border:1px solid var(--separations-input);border-radius:8px;overflow:hidden;align-items:center;padding-right:8px}.full-container .input-container button{border:none;outline:none;background-color:var(--card-header);font-size:14px;padding-left:2px;margin-right:1px;height:100%}.full-container .input-container button:hover{background-color:var(--primary-hover);cursor:pointer}.full-container .input-container button .country-text{display:flex;align-items:center}.full-container .input-container button .country-text .indicator-wrapper{color:var(--separations-input);font-size:14px;margin-top:2px}.full-container .input-container.no-country-selector{padding-left:8px}.full-container .input-container fw-menu-item .menu-text h4{max-width:60%;overflow:hidden}.full-container .input-container:focus-within{border:1px solid var(--primary-base)}.full-container .input-container input{min-width:0;font-size:14px;flex-grow:1;color:var(--typography-base);background:var(--page-light);border:none}.full-container .input-container input:focus{outline:none;border:none}.full-container .input-container input::placeholder{color:var(--typography-light)}.full-container .error-icon{display:none}.full-container .helper-text,.full-container .error-text{margin-top:4px;color:var(--typography-light);line-height:13px;margin-left:6px}.full-container .error-text{color:var(--red-base);display:none}.full-container .small{height:30px}.full-container .small>fw-icon{font-size:18px}.full-container .medium{height:36px}.full-container .medium>fw-icon{font-size:20px}.full-container .large{height:40px}.full-container .large>fw-icon{font-size:24px}:host.errored .input-container,:host.ng-touched.ng-invalid .input-container{border:1px solid var(--red-base)}:host.errored .error-icon,:host.ng-touched.ng-invalid .error-icon{color:var(--red-base);display:inline!important}:host.errored .helper-text,:host.errored .full-container .error-text,:host.ng-touched.ng-invalid .helper-text,:host.ng-touched.ng-invalid .full-container .error-text{display:none}:host.errored .error-text,:host.ng-touched.ng-invalid .error-text{display:block!important}:disabled{opacity:.4;cursor:not-allowed}.icon-wrapper{display:flex;margin:0}.icon-wrapper span{display:block}.icon-wrapper,.label-wrapper{display:table-cell;vertical-align:middle}:host.ngx-floating .country-selector{opacity:1!important}.country-selector-flag{display:inline-block;margin-right:.5ex}.country-list-button{color:rgba(var(--bs-black),.87);direction:ltr;font-size:16px;font-weight:400;height:initial;line-height:normal;min-height:48px;padding:14px 24px;text-align:left;text-transform:none;width:100%}.flag.ky{background-position:0 0}.flag.ac{background-position:0 -14px}.flag.ae{background-position:0 -28px}.flag.af{background-position:0 -42px}.flag.ag{background-position:0 -56px}.flag.ai{background-position:0 -70px}.flag.al{background-position:0 -84px}.flag.am{background-position:0 -98px}.flag.ao{background-position:0 -112px}.flag.aq{background-position:0 -126px}.flag.ar{background-position:0 -140px}.flag.as{background-position:0 -154px}.flag.at{background-position:0 -168px}.flag.au{background-position:0 -182px}.flag.aw{background-position:0 -196px}.flag.ax{background-position:0 -210px}.flag.az{background-position:0 -224px}.flag.ba{background-position:0 -238px}.flag.bb{background-position:0 -252px}.flag.bd{background-position:0 -266px}.flag.be{background-position:0 -280px}.flag.bf{background-position:0 -294px}.flag.bg{background-position:0 -308px}.flag.bh{background-position:0 -322px}.flag.bi{background-position:0 -336px}.flag.bj{background-position:0 -350px}.flag.bl{background-position:0 -364px}.flag.bm{background-position:0 -378px}.flag.bn{background-position:0 -392px}.flag.bo{background-position:0 -406px}.flag.bq{background-position:0 -420px}.flag.br{background-position:0 -434px}.flag.bs{background-position:0 -448px}.flag.bt{background-position:0 -462px}.flag.bv{background-position:0 -476px}.flag.bw{background-position:0 -490px}.flag.by{background-position:0 -504px}.flag.bz{background-position:0 -518px}.flag.ca{background-position:0 -532px}.flag.cc{background-position:0 -546px}.flag.cd{background-position:0 -560px}.flag.cf{background-position:0 -574px}.flag.cg{background-position:0 -588px}.flag.ch{background-position:0 -602px}.flag.ci{background-position:0 -616px}.flag.ck{background-position:0 -630px}.flag.cl{background-position:0 -644px}.flag.cm{background-position:0 -658px}.flag.cn{background-position:0 -672px}.flag.co{background-position:0 -686px}.flag.cp{background-position:0 -700px}.flag.cr{background-position:0 -714px}.flag.cu{background-position:0 -728px}.flag.cv{background-position:0 -742px}.flag.cw{background-position:0 -756px}.flag.cx{background-position:0 -770px}.flag.cy{background-position:0 -784px}.flag.cz{background-position:0 -798px}.flag.de{background-position:0 -812px}.flag.dg{background-position:0 -826px}.flag.dj{background-position:0 -840px}.flag.dk{background-position:0 -854px}.flag.dm{background-position:0 -868px}.flag.do{background-position:0 -882px}.flag.dz{background-position:0 -896px}.flag.ea{background-position:0 -910px}.flag.ec{background-position:0 -924px}.flag.ee{background-position:0 -938px}.flag.eg{background-position:0 -952px}.flag.eh{background-position:0 -966px}.flag.er{background-position:0 -980px}.flag.es{background-position:0 -994px}.flag.et{background-position:0 -1008px}.flag.eu{background-position:0 -1022px}.flag.fi{background-position:0 -1036px}.flag.fj{background-position:0 -1050px}.flag.fk{background-position:0 -1064px}.flag.fm{background-position:0 -1078px}.flag.fo{background-position:0 -1092px}.flag.fr{background-position:0 -1106px}.flag.ga{background-position:0 -1120px}.flag.gb{background-position:0 -1134px}.flag.gd{background-position:0 -1148px}.flag.ge{background-position:0 -1162px}.flag.gf{background-position:0 -1176px}.flag.gg{background-position:0 -1190px}.flag.gh{background-position:0 -1204px}.flag.gi{background-position:0 -1218px}.flag.gl{background-position:0 -1232px}.flag.gm{background-position:0 -1246px}.flag.gn{background-position:0 -1260px}.flag.gp{background-position:0 -1274px}.flag.gq{background-position:0 -1288px}.flag.gr{background-position:0 -1302px}.flag.gs{background-position:0 -1316px}.flag.gt{background-position:0 -1330px}.flag.gu{background-position:0 -1344px}.flag.gw{background-position:0 -1358px}.flag.gy{background-position:0 -1372px}.flag.hk{background-position:0 -1386px}.flag.hm{background-position:0 -1400px}.flag.hn{background-position:0 -1414px}.flag.hr{background-position:0 -1428px}.flag.ht{background-position:0 -1442px}.flag.hu{background-position:0 -1456px}.flag.ic{background-position:0 -1470px}.flag.id{background-position:0 -1484px}.flag.ie{background-position:0 -1498px}.flag.il{background-position:0 -1512px}.flag.im{background-position:0 -1526px}.flag.in{background-position:0 -1540px}.flag.io{background-position:0 -1554px}.flag.iq{background-position:0 -1568px}.flag.ir{background-position:0 -1582px}.flag.is{background-position:0 -1596px}.flag.it{background-position:0 -1610px}.flag.je{background-position:0 -1624px}.flag.jm{background-position:0 -1638px}.flag.jo{background-position:0 -1652px}.flag.jp{background-position:0 -1666px}.flag.ke{background-position:0 -1680px}.flag.kg{background-position:0 -1694px}.flag.kh{background-position:0 -1708px}.flag.ki{background-position:0 -1722px}.flag.km{background-position:0 -1736px}.flag.kn{background-position:0 -1750px}.flag.kp{background-position:0 -1764px}.flag.kr{background-position:0 -1778px}.flag.kw{background-position:0 -1792px}.flag.ad{background-position:0 -1806px}.flag.kz{background-position:0 -1820px}.flag.la{background-position:0 -1834px}.flag.lb{background-position:0 -1848px}.flag.lc{background-position:0 -1862px}.flag.li{background-position:0 -1876px}.flag.lk{background-position:0 -1890px}.flag.lr{background-position:0 -1904px}.flag.ls{background-position:0 -1918px}.flag.lt{background-position:0 -1932px}.flag.lu{background-position:0 -1946px}.flag.lv{background-position:0 -1960px}.flag.ly{background-position:0 -1974px}.flag.ma{background-position:0 -1988px}.flag.mc{background-position:0 -2002px}.flag.md{background-position:0 -2016px}.flag.me{background-position:0 -2030px}.flag.mf{background-position:0 -2044px}.flag.mg{background-position:0 -2058px}.flag.mh{background-position:0 -2072px}.flag.mk{background-position:0 -2086px}.flag.ml{background-position:0 -2100px}.flag.mm{background-position:0 -2114px}.flag.mn{background-position:0 -2128px}.flag.mo{background-position:0 -2142px}.flag.mp{background-position:0 -2156px}.flag.mq{background-position:0 -2170px}.flag.mr{background-position:0 -2184px}.flag.ms{background-position:0 -2198px}.flag.mt{background-position:0 -2212px}.flag.mu{background-position:0 -2226px}.flag.mv{background-position:0 -2240px}.flag.mw{background-position:0 -2254px}.flag.mx{background-position:0 -2268px}.flag.my{background-position:0 -2282px}.flag.mz{background-position:0 -2296px}.flag.na{background-position:0 -2310px}.flag.nc{background-position:0 -2324px}.flag.ne{background-position:0 -2338px}.flag.nf{background-position:0 -2352px}.flag.ng{background-position:0 -2366px}.flag.ni{background-position:0 -2380px}.flag.nl{background-position:0 -2394px}.flag.no{background-position:0 -2408px}.flag.np{background-position:0 -2422px}.flag.nr{background-position:0 -2436px}.flag.nu{background-position:0 -2450px}.flag.nz{background-position:0 -2464px}.flag.om{background-position:0 -2478px}.flag.pa{background-position:0 -2492px}.flag.pe{background-position:0 -2506px}.flag.pf{background-position:0 -2520px}.flag.pg{background-position:0 -2534px}.flag.ph{background-position:0 -2548px}.flag.pk{background-position:0 -2562px}.flag.pl{background-position:0 -2576px}.flag.pm{background-position:0 -2590px}.flag.pn{background-position:0 -2604px}.flag.pr{background-position:0 -2618px}.flag.ps{background-position:0 -2632px}.flag.pt{background-position:0 -2646px}.flag.pw{background-position:0 -2660px}.flag.py{background-position:0 -2674px}.flag.qa{background-position:0 -2688px}.flag.re{background-position:0 -2702px}.flag.ro{background-position:0 -2716px}.flag.rs{background-position:0 -2730px}.flag.ru{background-position:0 -2744px}.flag.rw{background-position:0 -2758px}.flag.sa{background-position:0 -2772px}.flag.sb{background-position:0 -2786px}.flag.sc{background-position:0 -2800px}.flag.sd{background-position:0 -2814px}.flag.se{background-position:0 -2828px}.flag.sg{background-position:0 -2842px}.flag.sh{background-position:0 -2856px}.flag.si{background-position:0 -2870px}.flag.sj{background-position:0 -2884px}.flag.sk{background-position:0 -2898px}.flag.sl{background-position:0 -2912px}.flag.sm{background-position:0 -2926px}.flag.sn{background-position:0 -2940px}.flag.so{background-position:0 -2954px}.flag.sr{background-position:0 -2968px}.flag.ss{background-position:0 -2982px}.flag.st{background-position:0 -2996px}.flag.sv{background-position:0 -3010px}.flag.sx{background-position:0 -3024px}.flag.sy{background-position:0 -3038px}.flag.sz{background-position:0 -3052px}.flag.ta{background-position:0 -3066px}.flag.tc{background-position:0 -3080px}.flag.td{background-position:0 -3094px}.flag.tf{background-position:0 -3108px}.flag.tg{background-position:0 -3122px}.flag.th{background-position:0 -3136px}.flag.tj{background-position:0 -3150px}.flag.tk{background-position:0 -3164px}.flag.tl{background-position:0 -3178px}.flag.tm{background-position:0 -3192px}.flag.tn{background-position:0 -3206px}.flag.to{background-position:0 -3220px}.flag.tr{background-position:0 -3234px}.flag.tt{background-position:0 -3248px}.flag.tv{background-position:0 -3262px}.flag.tw{background-position:0 -3276px}.flag.tz{background-position:0 -3290px}.flag.ua{background-position:0 -3304px}.flag.ug{background-position:0 -3318px}.flag.um{background-position:0 -3332px}.flag.un{background-position:0 -3346px}.flag.us{background-position:0 -3360px}.flag.uy{background-position:0 -3374px}.flag.uz{background-position:0 -3388px}.flag.va{background-position:0 -3402px}.flag.vc{background-position:0 -3416px}.flag.ve{background-position:0 -3430px}.flag.vg{background-position:0 -3444px}.flag.vi{background-position:0 -3458px}.flag.vn{background-position:0 -3472px}.flag.vu{background-position:0 -3486px}.flag.wf{background-position:0 -3500px}.flag.ws{background-position:0 -3514px}.flag.xk{background-position:0 -3528px}.flag.ye{background-position:0 -3542px}.flag.yt{background-position:0 -3556px}.flag.za{background-position:0 -3570px}.flag.zm{background-position:0 -3584px}.flag.zw{background-position:0 -3598px}.flag{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAABw4CAMAAAAs8X1iAAADAFBMVEUAAAD////OESYAJH0AAAAAK3/80RbtKTn/ywDRETPQFCvYJx7/AAAAejkAI5UANpV0rt0AZTTvKy3BAQPCJy1Bid3eKg8AnUkAlETgGx3VAQD93QXtHCQAeF8AN6YBhU0AakLeChcAAIzKLzwAKWb91AActTr94wAAo17209YAbcsCrsnHDR/kABLoES0AcsEiRY1LktoAak4DJ4s6ecn38/ABHqERSK8DaacBod3GDDDYFDsAgAASrSsDlsAHiTBpuuYCKKYAmzpKrdYAP4j9zyT1s7YAZgAAV6VmzP8ormbeFh4EUZkkSaX630X0rgG6CC6eLzoPPHytHSX33xYZigABPppKl88BPxw6gj3WZHTe5/DZECNbl7H6uBEAlWcBS6joKDoAAGYaRJHlAjb1xsrZJBEAXbsCf/3gUmEjnkLNDCwANrKdqsrVJyftHSjjPDIvmzAMBwTnbnKMGj3mqK/B0eT8OjKyIjQhXDNAWInzlpX950kNXq8ei0M+bU3////c29r/cgDsho3idQnsAAD9TRQ+XrivDgv2gwFLqFZeteMWFpbgACXuxQmakKswVpmnp6X+xh3PSFB/rY8AUbrgTwf+mjIjXEI7eCgAmQDasjM/mQEiG1ASiAeozbbGvcOLJyqNqdbPf4ejyuxRfMB/msPelZ0NrS00sjBtg7hLaaPxK0IZIG0/PnEwkAngUCWwigqxxNpTSgfCHhp/teHG0rzk7uYOdCjy3roAUPBNL2rSuhy1uAglMXTHujMxLRHFpV59CRBvjTp4YmiUsjy1oyHqkBdguI3CdyFtaZFHlHNUWlWLgyqOh4ZyhnMpd2XseCNnXDOmUzh7awhLiKQzDw2yNFDvQ02RqGZagyxpoKt6tB5PaIWRxZrFQBxDTEB5flJsOE9SCxp6MBimuIf24p3sf0nltl5Ds5PYw4DPrJzAfVf22XudPyMSOTn///8CNwPAGTilUGUCi0b////MECjvKiwAMoze8+gABhCSwecEfcgAOJTnESwetTri0eK2AAABAHRSTlMA/////////////////////////////////////////////////////////////////v////3///7///////////7//f/////+///////////+//////7//////////f/////////////9/vz//////////v3//f///////////vz///7////////////////+//7/////////////////+////v/9/v7///////////7//v///v////7//////f///////v///////v////7//////v/+///+//v//////////v/////+//3//v/////U/9f7pY6kfJrKwsC2SaOqKyxZfwAAjiFJREFUeJzsvQ1cVNe97z0bBgRiG6MkPY3JPecTYsy0NiGtu/Ym57WN0z5pDBGbkyvTcNpL6DnkdIgZyphAm2QufKIxdhyETxIfkjIRHW+GlPLmTPhkVEDlRWEIiESivImgAtLTa3uf89zzfO591tovM/tlrb3XShyc0P1Thz17/7/r//uvtfaW2TOzt8kUcxXkM/bMRChLWpqFW8jck1OQn4iRCW7kEQHI5NdggcQ8EeEAITwPFw+ARBGBADo8SQpYIipOSyuOPotG14Xn9niiQBpGkYjMudkrs35yIOn06a1bR0owlqwIS+dvA+qXFZ1pZ/ILcvbAovmlTGnBdadPv316NCkKCOF5fLfmKZCk2pz5+fnrBbURQAyPDJyAiEBOz/x8T09PjpjCJIZLpgaHRIAz85U9GZW1ESBRW0kuS9AC/rpIgUT/5Etnz740GRkI3QxNI/uczn0jTYRAUu11T93x43We62IR2kB9uL3dxe77lHW1t4frCYCS+dnZPb66Ot+e2dn5EhJL4enp2VnuX0WYqAagURA/PRp5qg8oFI/AUtAX9NgqA3SPrUpA99iamHjvvZTA229jLamOrUl1nqTstyeOJkWyaB9bk0r8Z79ZMnqqxPf2X5UkCYD2sTXz42zPKPhXEjmQ6RxbR0vqTo2+fVtJnfg/hM6x9eipUX/JaP3vR0f7j0ZrwOvomVMlTU32Jqf91IkzRwmAE/MnRnfUeTx1nlMnLl/UB949c+ZEid3+d39n31PfP7/5t7rAxfcmj2b/4O8ef/xL/5h9dHL+I13goxOj9W9/s9vpOv3NV97uPXNRFzh66tSpV9721NVt+viU/9RovS6QXT9aUn80Me/WxLrRU/X12boASksCWApaLtGXCGQAsQcYfb1qANTAqwSSAWYCGUBsgEWRPOcqmf5vmQzg8wHrWuiAlkqgjBZiID0DEC3p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);background-size:100% auto;filter:drop-shadow(1px 0 0 var(--slate-light)) drop-shadow(-1px 0 0 var(--slate-light)) drop-shadow(0 1px 0 var(--slate-light)) drop-shadow(0 -1px 0 var(--slate-light));height:14px;width:24px}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: CdkMenuTrigger, selector: "[cdkMenuTriggerFor]", inputs: ["cdkMenuTriggerFor", "cdkMenuPosition", "cdkMenuTriggerData"], outputs: ["cdkMenuOpened", "cdkMenuClosed"], exportAs: ["cdkMenuTriggerFor"] }, { kind: "component", type: FwIconComponent, selector: "fw-icon", inputs: ["size", "color"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: FwMenuContainerComponent, selector: "fw-menu-container, fw-menu-filter", inputs: ["width", "maxHeight", "minHeight", "border", "shadow", "showFilter", "filterText", "focusFilterOnMount", "offset", "emptyText", "filterFn", "additionalMenuItems", "additionalGroups", "additionalSeparators", "keyHandler"], outputs: ["filteredMenuItemChange", "filterChanged"] }, { kind: "component", type: FwMenuComponent, selector: "fw-menu", inputs: ["disabled", "size", "multiSelect", "useCheckbox", "value"], outputs: ["change"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: FwMenuItemComponent, selector: "fw-menu-item", inputs: ["value", "size", "title", "description", "icon", "iconColor", "disabled", "showCheckbox", "checkboxColor", "multiSelect", "hidden", "collapsed", "href", "target", "subItemsOpen", "mouseEnterHandler", "focused", "selected"], outputs: ["mouseEnterHandlerChange", "click"] }, { kind: "component", type: FwMenuSeparatorComponent, selector: "fw-menu-separator" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
7913
+ }], viewQueries: [{ propertyName: "trigger", first: true, predicate: CdkMenuTrigger, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"full-container\">\n <div [class]=\"['input-container', size, showCountrySelector?'country-selector':'no-country-selector']\">\n <button\n *ngIf=\"showCountrySelector\"\n (keydown)=\"buttonKeyPress($event)\"\n [cdkMenuTriggerFor]=\"countryMenu\"\n [cdkMenuPosition]=\"[{originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 2, offsetX: -2}]\"\n [disabled]=\"disabled\">\n <div class=\"country-text\">\n <span class=\"indicator-wrapper\">\n <fw-icon>chevron-down</fw-icon>\n </span>\n <span class=\"country-selector-flag flag\" [ngClass]=\"selectedCountry?.flagClass.toLowerCase()\">\n </span>\n <span class=\"country-selector-code\" *ngIf=\"selectedCountry?.dialCode && format==='national'\">\n +{{ selectedCountry.dialCode }}\n </span>\n </div>\n </button>\n <ng-template #countryMenu>\n <fw-menu-container width=\"300px\" maxHeight=\"500px\" shadow=\"large\" [showFilter]=\"enableCountrySearch\">\n <fw-menu\n [value]=\"selectedCountryCode\" (change)=\"countrySelect($any($event), focusableInput)\"\n (filteredItemsChange)=\"filteredItemsChange($event)\">\n <ng-container *ngIf=\"!filteredCountryItems?.length\">\n <fw-menu-item\n *ngFor=\"let country of preferredCountryList\"\n [title]=\"country?.dialCode ? country.name+' +'+country.dialCode : country.name\"\n [value]=\"country.iso2\">\n <p class=\"icon-wrapper\">\n <span class=\"flag\" [ngClass]=\"country.flagClass.toLowerCase()\"></span>\n </p>\n </fw-menu-item>\n <fw-menu-separator></fw-menu-separator>\n </ng-container>\n <ng-container>\n <fw-menu-item\n *ngFor=\"let country of allCountryList\"\n [title]=\"country?.dialCode ? country.name+' +'+country.dialCode : country.name\"\n [value]=\"country.iso2\">\n <p class=\"icon-wrapper\">\n <span class=\"flag\" [ngClass]=\"country.flagClass.toLowerCase()\"></span>\n </p>\n </fw-menu-item>\n </ng-container>\n </fw-menu>\n </fw-menu-container>\n </ng-template>\n <input\n type=\"tel\"\n autocomplete=\"tel\"\n (click)=\"trigger.close()\"\n (blur)=\"onTouched()\"\n (keydown)=\"inputKeyPress($event)\"\n [(ngModel)]=\"phoneFormattedNational\"\n (ngModelChange)=\"phoneNumberChange()\"\n [placeholder]=\"placeholder || ''\"\n [readOnly]=\"readOnly\"\n [disabled]=\"disabled\"\n [maxLength]=\"15\"\n #focusableInput>\n <fw-icon class=\"error-icon\">warning-circle</fw-icon>\n <fw-icon *ngIf=\"!!rightIcon\">{{ rightIcon }}</fw-icon>\n <ng-content></ng-content>\n </div>\n <p class=\"helper-text\" *ngIf=\"!!helperText\">{{ helperText }}</p>\n <p class=\"error-text\" *ngIf=\"!!errorText\">{{ errorText }}</p>\n</div>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700\";.vision-h1{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:22px}.vision-h2{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:18px}.vision-h3{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:16px}.vision-h4{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:14px}.vision-h5{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:12px;line-height:130%}.vision-h6{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:10px;line-height:120%}.vision-p1{font-size:18px;font-family:Inter,sans-serif;color:var(--typography-base);font-weight:400}.vision-p2{font-size:14px;font-family:Inter,sans-serif;color:var(--typography-base);font-weight:400}.vision-p3{font-size:12px;font-family:Inter,sans-serif;color:var(--typography-base);font-weight:400}.vision-p4,.full-container .helper-text,.full-container .error-text{font-size:10px;font-family:Inter,sans-serif;color:var(--typography-base);font-weight:400}.vision-p5{font-size:8px;font-family:Inter,sans-serif;color:var(--typography-base);font-weight:400}.vision-link{text-decoration:underline;color:var(--primary-base);cursor:pointer}.vision-link:hover{text-decoration:none}.vision-link:active{text-decoration:none;outline:2px solid var(--primary-dark);border-radius:4px}.vision-link:visited{color:var(--secondary-base)}.vision-link-inherited{text-decoration:underline;color:var(--primary-base);cursor:pointer}.vision-link-inherited:hover{text-decoration:none}.vision-link-inherited:active{text-decoration:none;outline:2px solid var(--primary-dark);border-radius:4px}.vision-link-inherited:visited{color:var(--secondary-base)}.vision-link-inherited,.vision-link-inherited:visited{color:inherit}.vision-link-no-visited{text-decoration:underline;color:var(--primary-base);cursor:pointer}.vision-link-no-visited:hover{text-decoration:none}.vision-link-no-visited:active{text-decoration:none;outline:2px solid var(--primary-dark);border-radius:4px}.vision-link-no-visited:visited{color:var(--secondary-base)}.vision-link-no-visited:visited{color:var(--primary-base)}.full-container{display:flex;flex-direction:column;line-height:21px}.full-container .input-container{box-sizing:border-box;color:var(--typography-light);background:var(--page-light);display:flex;border:1px solid var(--separations-input);border-radius:8px;overflow:hidden;align-items:center;padding-right:8px}.full-container .input-container button{border:none;outline:none;background-color:var(--card-header);font-size:14px;padding-left:2px;margin-right:1px;height:100%}.full-container .input-container button:hover{background-color:var(--primary-hover);cursor:pointer}.full-container .input-container button .country-text{display:flex;align-items:center}.full-container .input-container button .country-text .indicator-wrapper{color:var(--separations-input);font-size:14px;margin-top:2px}.full-container .input-container.no-country-selector{padding-left:8px}.full-container .input-container fw-menu-item .menu-text h4{max-width:60%;overflow:hidden}.full-container .input-container:focus-within{border:1px solid var(--primary-base)}.full-container .input-container input{min-width:0;font-size:14px;flex-grow:1;color:var(--typography-base);background:var(--page-light);border:none}.full-container .input-container input:focus{outline:none;border:none}.full-container .input-container input::placeholder{color:var(--typography-light)}.full-container .error-icon{display:none}.full-container .helper-text,.full-container .error-text{margin-top:4px;color:var(--typography-light);line-height:13px;margin-left:6px}.full-container .error-text{color:var(--red-base);display:none}.full-container .small{height:30px}.full-container .small>fw-icon{font-size:18px}.full-container .medium{height:36px}.full-container .medium>fw-icon{font-size:20px}.full-container .large{height:40px}.full-container .large>fw-icon{font-size:24px}:host.errored .input-container,:host.ng-touched.ng-invalid .input-container{border:1px solid var(--red-base)}:host.errored .error-icon,:host.ng-touched.ng-invalid .error-icon{color:var(--red-base);display:inline!important}:host.errored .helper-text,:host.errored .full-container .error-text,:host.ng-touched.ng-invalid .helper-text,:host.ng-touched.ng-invalid .full-container .error-text{display:none}:host.errored .error-text,:host.ng-touched.ng-invalid .error-text{display:block!important}:disabled{opacity:.4;cursor:not-allowed}.icon-wrapper{display:flex;margin:0}.icon-wrapper span{display:block}.icon-wrapper,.label-wrapper{display:table-cell;vertical-align:middle}:host.ngx-floating .country-selector{opacity:1!important}.country-selector-flag{display:inline-block;margin-right:.5ex}.country-list-button{color:rgba(var(--bs-black),.87);direction:ltr;font-size:16px;font-weight:400;height:initial;line-height:normal;min-height:48px;padding:14px 24px;text-align:left;text-transform:none;width:100%}.flag.ky{background-position:0 0}.flag.ac{background-position:0 -14px}.flag.ae{background-position:0 -28px}.flag.af{background-position:0 -42px}.flag.ag{background-position:0 -56px}.flag.ai{background-position:0 -70px}.flag.al{background-position:0 -84px}.flag.am{background-position:0 -98px}.flag.ao{background-position:0 -112px}.flag.aq{background-position:0 -126px}.flag.ar{background-position:0 -140px}.flag.as{background-position:0 -154px}.flag.at{background-position:0 -168px}.flag.au{background-position:0 -182px}.flag.aw{background-position:0 -196px}.flag.ax{background-position:0 -210px}.flag.az{background-position:0 -224px}.flag.ba{background-position:0 -238px}.flag.bb{background-position:0 -252px}.flag.bd{background-position:0 -266px}.flag.be{background-position:0 -280px}.flag.bf{background-position:0 -294px}.flag.bg{background-position:0 -308px}.flag.bh{background-position:0 -322px}.flag.bi{background-position:0 -336px}.flag.bj{background-position:0 -350px}.flag.bl{background-position:0 -364px}.flag.bm{background-position:0 -378px}.flag.bn{background-position:0 -392px}.flag.bo{background-position:0 -406px}.flag.bq{background-position:0 -420px}.flag.br{background-position:0 -434px}.flag.bs{background-position:0 -448px}.flag.bt{background-position:0 -462px}.flag.bv{background-position:0 -476px}.flag.bw{background-position:0 -490px}.flag.by{background-position:0 -504px}.flag.bz{background-position:0 -518px}.flag.ca{background-position:0 -532px}.flag.cc{background-position:0 -546px}.flag.cd{background-position:0 -560px}.flag.cf{background-position:0 -574px}.flag.cg{background-position:0 -588px}.flag.ch{background-position:0 -602px}.flag.ci{background-position:0 -616px}.flag.ck{background-position:0 -630px}.flag.cl{background-position:0 -644px}.flag.cm{background-position:0 -658px}.flag.cn{background-position:0 -672px}.flag.co{background-position:0 -686px}.flag.cp{background-position:0 -700px}.flag.cr{background-position:0 -714px}.flag.cu{background-position:0 -728px}.flag.cv{background-position:0 -742px}.flag.cw{background-position:0 -756px}.flag.cx{background-position:0 -770px}.flag.cy{background-position:0 -784px}.flag.cz{background-position:0 -798px}.flag.de{background-position:0 -812px}.flag.dg{background-position:0 -826px}.flag.dj{background-position:0 -840px}.flag.dk{background-position:0 -854px}.flag.dm{background-position:0 -868px}.flag.do{background-position:0 -882px}.flag.dz{background-position:0 -896px}.flag.ea{background-position:0 -910px}.flag.ec{background-position:0 -924px}.flag.ee{background-position:0 -938px}.flag.eg{background-position:0 -952px}.flag.eh{background-position:0 -966px}.flag.er{background-position:0 -980px}.flag.es{background-position:0 -994px}.flag.et{background-position:0 -1008px}.flag.eu{background-position:0 -1022px}.flag.fi{background-position:0 -1036px}.flag.fj{background-position:0 -1050px}.flag.fk{background-position:0 -1064px}.flag.fm{background-position:0 -1078px}.flag.fo{background-position:0 -1092px}.flag.fr{background-position:0 -1106px}.flag.ga{background-position:0 -1120px}.flag.gb{background-position:0 -1134px}.flag.gd{background-position:0 -1148px}.flag.ge{background-position:0 -1162px}.flag.gf{background-position:0 -1176px}.flag.gg{background-position:0 -1190px}.flag.gh{background-position:0 -1204px}.flag.gi{background-position:0 -1218px}.flag.gl{background-position:0 -1232px}.flag.gm{background-position:0 -1246px}.flag.gn{background-position:0 -1260px}.flag.gp{background-position:0 -1274px}.flag.gq{background-position:0 -1288px}.flag.gr{background-position:0 -1302px}.flag.gs{background-position:0 -1316px}.flag.gt{background-position:0 -1330px}.flag.gu{background-position:0 -1344px}.flag.gw{background-position:0 -1358px}.flag.gy{background-position:0 -1372px}.flag.hk{background-position:0 -1386px}.flag.hm{background-position:0 -1400px}.flag.hn{background-position:0 -1414px}.flag.hr{background-position:0 -1428px}.flag.ht{background-position:0 -1442px}.flag.hu{background-position:0 -1456px}.flag.ic{background-position:0 -1470px}.flag.id{background-position:0 -1484px}.flag.ie{background-position:0 -1498px}.flag.il{background-position:0 -1512px}.flag.im{background-position:0 -1526px}.flag.in{background-position:0 -1540px}.flag.io{background-position:0 -1554px}.flag.iq{background-position:0 -1568px}.flag.ir{background-position:0 -1582px}.flag.is{background-position:0 -1596px}.flag.it{background-position:0 -1610px}.flag.je{background-position:0 -1624px}.flag.jm{background-position:0 -1638px}.flag.jo{background-position:0 -1652px}.flag.jp{background-position:0 -1666px}.flag.ke{background-position:0 -1680px}.flag.kg{background-position:0 -1694px}.flag.kh{background-position:0 -1708px}.flag.ki{background-position:0 -1722px}.flag.km{background-position:0 -1736px}.flag.kn{background-position:0 -1750px}.flag.kp{background-position:0 -1764px}.flag.kr{background-position:0 -1778px}.flag.kw{background-position:0 -1792px}.flag.ad{background-position:0 -1806px}.flag.kz{background-position:0 -1820px}.flag.la{background-position:0 -1834px}.flag.lb{background-position:0 -1848px}.flag.lc{background-position:0 -1862px}.flag.li{background-position:0 -1876px}.flag.lk{background-position:0 -1890px}.flag.lr{background-position:0 -1904px}.flag.ls{background-position:0 -1918px}.flag.lt{background-position:0 -1932px}.flag.lu{background-position:0 -1946px}.flag.lv{background-position:0 -1960px}.flag.ly{background-position:0 -1974px}.flag.ma{background-position:0 -1988px}.flag.mc{background-position:0 -2002px}.flag.md{background-position:0 -2016px}.flag.me{background-position:0 -2030px}.flag.mf{background-position:0 -2044px}.flag.mg{background-position:0 -2058px}.flag.mh{background-position:0 -2072px}.flag.mk{background-position:0 -2086px}.flag.ml{background-position:0 -2100px}.flag.mm{background-position:0 -2114px}.flag.mn{background-position:0 -2128px}.flag.mo{background-position:0 -2142px}.flag.mp{background-position:0 -2156px}.flag.mq{background-position:0 -2170px}.flag.mr{background-position:0 -2184px}.flag.ms{background-position:0 -2198px}.flag.mt{background-position:0 -2212px}.flag.mu{background-position:0 -2226px}.flag.mv{background-position:0 -2240px}.flag.mw{background-position:0 -2254px}.flag.mx{background-position:0 -2268px}.flag.my{background-position:0 -2282px}.flag.mz{background-position:0 -2296px}.flag.na{background-position:0 -2310px}.flag.nc{background-position:0 -2324px}.flag.ne{background-position:0 -2338px}.flag.nf{background-position:0 -2352px}.flag.ng{background-position:0 -2366px}.flag.ni{background-position:0 -2380px}.flag.nl{background-position:0 -2394px}.flag.no{background-position:0 -2408px}.flag.np{background-position:0 -2422px}.flag.nr{background-position:0 -2436px}.flag.nu{background-position:0 -2450px}.flag.nz{background-position:0 -2464px}.flag.om{background-position:0 -2478px}.flag.pa{background-position:0 -2492px}.flag.pe{background-position:0 -2506px}.flag.pf{background-position:0 -2520px}.flag.pg{background-position:0 -2534px}.flag.ph{background-position:0 -2548px}.flag.pk{background-position:0 -2562px}.flag.pl{background-position:0 -2576px}.flag.pm{background-position:0 -2590px}.flag.pn{background-position:0 -2604px}.flag.pr{background-position:0 -2618px}.flag.ps{background-position:0 -2632px}.flag.pt{background-position:0 -2646px}.flag.pw{background-position:0 -2660px}.flag.py{background-position:0 -2674px}.flag.qa{background-position:0 -2688px}.flag.re{background-position:0 -2702px}.flag.ro{background-position:0 -2716px}.flag.rs{background-position:0 -2730px}.flag.ru{background-position:0 -2744px}.flag.rw{background-position:0 -2758px}.flag.sa{background-position:0 -2772px}.flag.sb{background-position:0 -2786px}.flag.sc{background-position:0 -2800px}.flag.sd{background-position:0 -2814px}.flag.se{background-position:0 -2828px}.flag.sg{background-position:0 -2842px}.flag.sh{background-position:0 -2856px}.flag.si{background-position:0 -2870px}.flag.sj{background-position:0 -2884px}.flag.sk{background-position:0 -2898px}.flag.sl{background-position:0 -2912px}.flag.sm{background-position:0 -2926px}.flag.sn{background-position:0 -2940px}.flag.so{background-position:0 -2954px}.flag.sr{background-position:0 -2968px}.flag.ss{background-position:0 -2982px}.flag.st{background-position:0 -2996px}.flag.sv{background-position:0 -3010px}.flag.sx{background-position:0 -3024px}.flag.sy{background-position:0 -3038px}.flag.sz{background-position:0 -3052px}.flag.ta{background-position:0 -3066px}.flag.tc{background-position:0 -3080px}.flag.td{background-position:0 -3094px}.flag.tf{background-position:0 -3108px}.flag.tg{background-position:0 -3122px}.flag.th{background-position:0 -3136px}.flag.tj{background-position:0 -3150px}.flag.tk{background-position:0 -3164px}.flag.tl{background-position:0 -3178px}.flag.tm{background-position:0 -3192px}.flag.tn{background-position:0 -3206px}.flag.to{background-position:0 -3220px}.flag.tr{background-position:0 -3234px}.flag.tt{background-position:0 -3248px}.flag.tv{background-position:0 -3262px}.flag.tw{background-position:0 -3276px}.flag.tz{background-position:0 -3290px}.flag.ua{background-position:0 -3304px}.flag.ug{background-position:0 -3318px}.flag.um{background-position:0 -3332px}.flag.un{background-position:0 -3346px}.flag.us{background-position:0 -3360px}.flag.uy{background-position:0 -3374px}.flag.uz{background-position:0 -3388px}.flag.va{background-position:0 -3402px}.flag.vc{background-position:0 -3416px}.flag.ve{background-position:0 -3430px}.flag.vg{background-position:0 -3444px}.flag.vi{background-position:0 -3458px}.flag.vn{background-position:0 -3472px}.flag.vu{background-position:0 -3486px}.flag.wf{background-position:0 -3500px}.flag.ws{background-position:0 -3514px}.flag.xk{background-position:0 -3528px}.flag.ye{background-position:0 -3542px}.flag.yt{background-position:0 -3556px}.flag.za{background-position:0 -3570px}.flag.zm{background-position:0 -3584px}.flag.zw{background-position:0 -3598px}.flag{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAABw4CAMAAAAs8X1iAAADAFBMVEUAAAD////OESYAJH0AAAAAK3/80RbtKTn/ywDRETPQFCvYJx7/AAAAejkAI5UANpV0rt0AZTTvKy3BAQPCJy1Bid3eKg8AnUkAlETgGx3VAQD93QXtHCQAeF8AN6YBhU0AakLeChcAAIzKLzwAKWb91AActTr94wAAo17209YAbcsCrsnHDR/kABLoES0AcsEiRY1LktoAak4DJ4s6ecn38/ABHqERSK8DaacBod3GDDDYFDsAgAASrSsDlsAHiTBpuuYCKKYAmzpKrdYAP4j9zyT1s7YAZgAAV6VmzP8ormbeFh4EUZkkSaX630X0rgG6CC6eLzoPPHytHSX33xYZigABPppKl88BPxw6gj3WZHTe5/DZECNbl7H6uBEAlWcBS6joKDoAAGYaRJHlAjb1xsrZJBEAXbsCf/3gUmEjnkLNDCwANrKdqsrVJyftHSjjPDIvmzAMBwTnbnKMGj3mqK/B0eT8OjKyIjQhXDNAWInzlpX950kNXq8ei0M+bU3////c29r/cgDsho3idQnsAAD9TRQ+XrivDgv2gwFLqFZeteMWFpbgACXuxQmakKswVpmnp6X+xh3PSFB/rY8AUbrgTwf+mjIjXEI7eCgAmQDasjM/mQEiG1ASiAeozbbGvcOLJyqNqdbPf4ejyuxRfMB/msPelZ0NrS00sjBtg7hLaaPxK0IZIG0/PnEwkAngUCWwigqxxNpTSgfCHhp/teHG0rzk7uYOdCjy3roAUPBNL2rSuhy1uAglMXTHujMxLRHFpV59CRBvjTp4YmiUsjy1oyHqkBdguI3CdyFtaZFHlHNUWlWLgyqOh4ZyhnMpd2XseCNnXDOmUzh7awhLiKQzDw2yNFDvQ02RqGZagyxpoKt6tB5PaIWRxZrFQBxDTEB5flJsOE9SCxp6MBimuIf24p3sf0nltl5Ds5PYw4DPrJzAfVf22XudPyMSOTn///8CNwPAGTilUGUCi0b////MECjvKiwAMoze8+gABhCSwecEfcgAOJTnESwetTri0eK2AAABAHRSTlMA/////////////////////////////////////////////////////////////////v////3///7///////////7//f/////+///////////+//////7//////////f/////////////9/vz//////////v3//f///////////vz///7////////////////+//7/////////////////+////v/9/v7///////////7//v///v////7//////f///////v///////v////7//////v/+///+//v//////////v/////+//3//v/////U/9f7pY6kfJrKwsC2SaOqKyxZfwAAjiFJREFUeJzsvQ1cVNe97z0bBgRiG6MkPY3JPecTYsy0NiGtu/Ym57WN0z5pDBGbkyvTcNpL6DnkdIgZyphAm2QufKIxdhyETxIfkjIRHW+GlPLmTPhkVEDlRWEIiESivImgAtLTa3uf89zzfO591tovM/tlrb3XShyc0P1Thz17/7/r//uvtfaW2TOzt8kUcxXkM/bMRChLWpqFW8jck1OQn4iRCW7kEQHI5NdggcQ8EeEAITwPFw+ARBGBADo8SQpYIipOSyuOPotG14Xn9niiQBpGkYjMudkrs35yIOn06a1bR0owlqwIS+dvA+qXFZ1pZ/ILcvbAovmlTGnBdadPv316NCkKCOF5fLfmKZCk2pz5+fnrBbURQAyPDJyAiEBOz/x8T09PjpjCJIZLpgaHRIAz85U9GZW1ESBRW0kuS9AC/rpIgUT/5Etnz740GRkI3QxNI/uczn0jTYRAUu11T93x43We62IR2kB9uL3dxe77lHW1t4frCYCS+dnZPb66Ot+e2dn5EhJL4enp2VnuX0WYqAagURA/PRp5qg8oFI/AUtAX9NgqA3SPrUpA99iamHjvvZTA229jLamOrUl1nqTstyeOJkWyaB9bk0r8Z79ZMnqqxPf2X5UkCYD2sTXz42zPKPhXEjmQ6RxbR0vqTo2+fVtJnfg/hM6x9eipUX/JaP3vR0f7j0ZrwOvomVMlTU32Jqf91IkzRwmAE/MnRnfUeTx1nlMnLl/UB949c+ZEid3+d39n31PfP7/5t7rAxfcmj2b/4O8ef/xL/5h9dHL+I13goxOj9W9/s9vpOv3NV97uPXNRFzh66tSpV9721NVt+viU/9RovS6QXT9aUn80Me/WxLrRU/X12boASksCWApaLtGXCGQAsQcYfb1qANTAqwSSAWYCGUBsgEWRPOcqmf5vmQzg8wHrWuiAlkqgjBZiID0DEC3p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);background-size:100% auto;filter:drop-shadow(1px 0 0 var(--slate-light)) drop-shadow(-1px 0 0 var(--slate-light)) drop-shadow(0 1px 0 var(--slate-light)) drop-shadow(0 -1px 0 var(--slate-light));height:14px;width:24px}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: CdkMenuTrigger, selector: "[cdkMenuTriggerFor]", inputs: ["cdkMenuTriggerFor", "cdkMenuPosition", "cdkMenuTriggerData"], outputs: ["cdkMenuOpened", "cdkMenuClosed"], exportAs: ["cdkMenuTriggerFor"] }, { kind: "component", type: FwIconComponent, selector: "fw-icon", inputs: ["size", "color"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: FwMenuContainerComponent, selector: "fw-menu-container, fw-menu-filter", inputs: ["width", "maxHeight", "minHeight", "border", "shadow", "showFilter", "filterText", "focusFilterOnMount", "offset", "emptyText", "filterFn", "additionalMenuItems", "additionalGroups", "additionalSeparators", "keyHandler"], outputs: ["filteredMenuItemChange", "filterChanged"] }, { kind: "component", type: FwMenuComponent, selector: "fw-menu", inputs: ["disabled", "size", "multiSelect", "useCheckbox", "value"], outputs: ["change"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: FwMenuItemComponent, selector: "fw-menu-item", inputs: ["value", "size", "title", "description", "icon", "iconColor", "disabled", "showCheckbox", "checkboxColor", "multiSelect", "hidden", "collapsed", "href", "target", "subItemsOpen", "mouseEnterHandler", "focused", "selected"], outputs: ["mouseEnterHandlerChange", "click", "focusedChange"] }, { kind: "component", type: FwMenuSeparatorComponent, selector: "fw-menu-separator" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
7901
7914
  }
7902
7915
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: FwPhoneInputComponent, decorators: [{
7903
7916
  type: Component,
@@ -9421,6 +9434,149 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
9421
9434
  }]
9422
9435
  }] });
9423
9436
 
9437
+ /**
9438
+ * Directive for forwarding an ngControl to a child component
9439
+ *
9440
+ * Intended to be used as a host directive
9441
+ * @see [Medium Article on the approach](https://medium.com/netanelbasal/forwarding-form-controls-to-custom-control-components-in-angular-701e8406cc55)
9442
+ */
9443
+ class NoopValueAccessorDirective {
9444
+ /* eslint-disable @typescript-eslint/no-explicit-any */
9445
+ writeValue(_obj) { }
9446
+ registerOnChange(_fn) { }
9447
+ registerOnTouched(_fn) { }
9448
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: NoopValueAccessorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
9449
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: NoopValueAccessorDirective, isStandalone: true, providers: [
9450
+ {
9451
+ provide: NG_VALUE_ACCESSOR,
9452
+ multi: true,
9453
+ useExisting: NoopValueAccessorDirective,
9454
+ },
9455
+ ], ngImport: i0 }); }
9456
+ }
9457
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: NoopValueAccessorDirective, decorators: [{
9458
+ type: Directive,
9459
+ args: [{
9460
+ providers: [
9461
+ {
9462
+ provide: NG_VALUE_ACCESSOR,
9463
+ multi: true,
9464
+ useExisting: NoopValueAccessorDirective,
9465
+ },
9466
+ ],
9467
+ }]
9468
+ }] });
9469
+
9470
+ /**
9471
+ * Form control for selecting a time zone, based on fw-select
9472
+ * @see [Vision Docs](https://cdn.flywheel.io/docs/vision/latest/?path=/docs/form-controls-timezone-select--docs)
9473
+ */
9474
+ class FwTimeZoneSelectComponent {
9475
+ constructor() {
9476
+ this.ngControl = inject(NgControl, { self: true, optional: true });
9477
+ this.internalControl = new FormControl('');
9478
+ /**
9479
+ * whether the control pre-populates the user's timezone on init
9480
+ */
9481
+ this.prefillTimeZone = input(true);
9482
+ this.timezonesByRegion = signal({});
9483
+ this.regions = signal([]);
9484
+ this.usersTimezone = signal(Intl.DateTimeFormat().resolvedOptions().timeZone);
9485
+ this.filterFn = (filter, menuItems) => {
9486
+ return menuItems.filter(item => {
9487
+ // we don't want the filter to match UTC for just the offset
9488
+ const cleanedDescription = item.description?.trim().replaceAll(' ', '').replace(/UTC[\+\-]/, '') || '';
9489
+ const cleanedFilter = filter.trim().toLowerCase();
9490
+ const cleanedTitle = item.title.trim().toLowerCase();
9491
+ return cleanedDescription.includes(cleanedFilter) || cleanedTitle.includes(cleanedFilter);
9492
+ });
9493
+ };
9494
+ this.displayFn = (menuItem) => {
9495
+ const city = menuItem.title;
9496
+ const acronym = this.getTimeZoneAcronym(menuItem.value || '').replace('GMT', 'UTC');
9497
+ const displayAcronym = city === 'UTC' ? '' : ` (${acronym})`;
9498
+ return city + displayAcronym;
9499
+ };
9500
+ }
9501
+ ngOnInit() {
9502
+ this.buildTimezoneList();
9503
+ if (this.prefillTimeZone()) {
9504
+ if (this.ngControl) {
9505
+ this.ngControl.control?.setValue(this.usersTimezone());
9506
+ }
9507
+ else {
9508
+ this.internalControl.setValue(this.usersTimezone());
9509
+ }
9510
+ }
9511
+ }
9512
+ buildTimezoneList() {
9513
+ const rawTimeZones = Intl.supportedValuesOf('timeZone');
9514
+ const sortedTimezones = {};
9515
+ const uniqueRegions = new Set();
9516
+ rawTimeZones.forEach(tz => {
9517
+ const { region, city } = this.parseTimeZoneName(tz);
9518
+ uniqueRegions.add(region);
9519
+ // we only want to display an acronym if it has one GMT offsets are redundant with the UTC offset we're already displaying
9520
+ const acronym = this.getTimeZoneAcronym(tz);
9521
+ const acronymDisplay = acronym.match(/GMT[\+\-]/) ? '' : `• ${acronym}`;
9522
+ const parsedTimezone = {
9523
+ name: city,
9524
+ fullTZ: tz,
9525
+ description: `${tz} • ${this.getTimeZoneOffset(tz)} ${acronymDisplay}`,
9526
+ };
9527
+ sortedTimezones[region] = sortedTimezones[region]?.concat(parsedTimezone) || [parsedTimezone];
9528
+ });
9529
+ const regionsArray = Array.from(uniqueRegions);
9530
+ // sort the users region to the top
9531
+ const sortedRegions = regionsArray.toSorted((a, b) => {
9532
+ if (this.usersTimezone().includes(a)) {
9533
+ return -1;
9534
+ }
9535
+ if (this.usersTimezone().includes(b)) {
9536
+ return 1;
9537
+ }
9538
+ return a.localeCompare(b);
9539
+ });
9540
+ this.regions.set(sortedRegions);
9541
+ this.timezonesByRegion.set(sortedTimezones);
9542
+ }
9543
+ parseTimeZoneName(timeZone) {
9544
+ const split = timeZone.split('/');
9545
+ const [region, ...rest] = split;
9546
+ // rejoin anything past the top-level region
9547
+ // i.e. America/Argentina/La_Rioja become region="Americas" and city="Agentina/La Rioja"
9548
+ const city = rest.join('/').replaceAll('_', ' ');
9549
+ return {
9550
+ region,
9551
+ city,
9552
+ };
9553
+ }
9554
+ getTimeZoneOffset(timeZone) {
9555
+ const date = new TZDate(Date.now(), timeZone);
9556
+ const offsetMinutes = date.getTimezoneOffset();
9557
+ const sign = Math.sign(offsetMinutes);
9558
+ const displaySign = sign > 1 ? '+' : sign === 0 ? '' : '-';
9559
+ const displayMinutes = offsetMinutes !== 0 ? (offsetMinutes / 60).toString() : '';
9560
+ return `UTC${displaySign}${displayMinutes}`;
9561
+ }
9562
+ getTimeZoneAcronym(timeZone) {
9563
+ const date = new TZDate(Date.now(), timeZone);
9564
+ const acronym = date.toLocaleTimeString('en-us', { timeZoneName: 'short' }).split(' ')[2];
9565
+ return acronym;
9566
+ }
9567
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: FwTimeZoneSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9568
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: FwTimeZoneSelectComponent, isStandalone: true, selector: "fw-time-zone-select", inputs: { prefillTimeZone: { classPropertyName: "prefillTimeZone", publicName: "prefillTimeZone", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: NoopValueAccessorDirective }], ngImport: i0, template: "<fw-select\n [formControl]=\"$any(ngControl?.control || internalControl)\"\n [filterFn]=\"filterFn\"\n [valueDisplayFn]=\"displayFn\"\n width=\"100%\"\n maxOptionsHeight=\"400px\"\n optionsWidth=\"300px\"\n>\n @for (region of regions(); track region) {\n <fw-menu-item-group [title]=\"region\">\n @for (option of timezonesByRegion()[region]; track option.name) {\n <fw-menu-item [title]=\"option.name\" [value]=\"option.fullTZ\" [description]=\"option.description\"/>\n }\n </fw-menu-item-group>\n }\n <!-- special case for UTC -->\n <fw-menu-item title=\"UTC\" value=\"Etc/UTC\" description=\"Etc/UTC \u2022 UTC\" />\n</fw-select>\n", styles: [":host{display:block;width:200px}\n"], dependencies: [{ kind: "component", type: FwSelectMenuComponent, selector: "fw-select", inputs: ["options", "valueProperty", "useFullOptionAsValue", "titleProperty", "iconProperty", "staticIcon", "descriptionProperty", "showFilter", "showReset", "disabled", "errored", "width", "optionsWidth", "minOptionsHeight", "maxOptionsHeight", "size", "placeholder", "valueDisplayFn", "filterFn", "value"], outputs: ["disabledChange", "change", "filterChanged"] }, { kind: "component", type: FwMenuItemComponent, selector: "fw-menu-item", inputs: ["value", "size", "title", "description", "icon", "iconColor", "disabled", "showCheckbox", "checkboxColor", "multiSelect", "hidden", "collapsed", "href", "target", "subItemsOpen", "mouseEnterHandler", "focused", "selected"], outputs: ["mouseEnterHandlerChange", "click", "focusedChange"] }, { kind: "component", type: FwMenuItemGroupComponent, selector: "fw-menu-item-group", inputs: ["role", "title", "icon", "iconColor", "disabled"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9569
+ }
9570
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: FwTimeZoneSelectComponent, decorators: [{
9571
+ type: Component,
9572
+ args: [{ selector: 'fw-time-zone-select', imports: [
9573
+ FwSelectMenuComponent,
9574
+ FwMenuItemComponent,
9575
+ FwMenuItemGroupComponent,
9576
+ ReactiveFormsModule,
9577
+ ], hostDirectives: [NoopValueAccessorDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<fw-select\n [formControl]=\"$any(ngControl?.control || internalControl)\"\n [filterFn]=\"filterFn\"\n [valueDisplayFn]=\"displayFn\"\n width=\"100%\"\n maxOptionsHeight=\"400px\"\n optionsWidth=\"300px\"\n>\n @for (region of regions(); track region) {\n <fw-menu-item-group [title]=\"region\">\n @for (option of timezonesByRegion()[region]; track option.name) {\n <fw-menu-item [title]=\"option.name\" [value]=\"option.fullTZ\" [description]=\"option.description\"/>\n }\n </fw-menu-item-group>\n }\n <!-- special case for UTC -->\n <fw-menu-item title=\"UTC\" value=\"Etc/UTC\" description=\"Etc/UTC \u2022 UTC\" />\n</fw-select>\n", styles: [":host{display:block;width:200px}\n"] }]
9578
+ }] });
9579
+
9424
9580
  // the nature of this component is to handle a complex layout issue so disabling this lint rule
9425
9581
  /* eslint-disable @rx-angular/prefer-no-layout-sensitive-apis */
9426
9582
  class FwChipListComponent {
@@ -9772,7 +9928,7 @@ class FwTypeaheadComponent {
9772
9928
  useExisting: forwardRef(() => FwTypeaheadComponent),
9773
9929
  multi: true,
9774
9930
  },
9775
- ], viewQueries: [{ propertyName: "trigger", first: true, predicate: CdkMenuTrigger, descendants: true, isSignal: true }, { propertyName: "displayedOptions", predicate: FwMenuItemComponent, descendants: true, isSignal: true }, { propertyName: "inputRef", first: true, predicate: ["input"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"full-container\">\n <div\n (click)=\"focusInput($event)\"\n class=\"input-container\"\n [class.disabled]=\"disabled()\"\n [style.max-height]=\"maxHeight()\"\n [cdkMenuTriggerFor]=\"menuContent\"\n fwMenuRegister\n #inputContainer>\n @if (selectType() === 'multiple') {\n <fw-chip-list class=\"chips\" [disableOverflow]=\"!!maxHeight()\">\n @for(val of value(); track val) {\n <fw-chip\n color=\"primary\"\n [showClose]=\"true\"\n [title]=\"val\"\n [selectable]=\"false\"\n (close)=\"closeChip(val)\"\n />\n }\n </fw-chip-list>\n }\n <input\n test-id=\"typeahead-input\"\n [class.highlight-placeholder]=\"highlightPlaceholder()\"\n [placeholder]=\"displayedPlaceholder()\"\n [disabled]=\"disabled()\"\n [value]=\"searchValue()\"\n (keyup)=\"handleSearchChange($event)\"\n (keydown)=\"handleKey($event)\"\n (focusout)=\"onFocusLoss($event)\"\n #input\n type=\"text\"\n />\n @if(loading()) {\n <fw-progress-spinner size=\"small\"/>\n }\n @if(selectType() === 'single' && value().length === 1) {\n <fw-icon class=\"clear-icon\" (click)=\"clearValue()\">close</fw-icon>\n }\n </div>\n @if(errorText()) {\n <p class=\"vision-p4 error-text\">{{ errorText() }}</p>\n }\n</div>\n<ng-template #menuContent>\n <fw-menu-container\n [maxHeight]=\"maxOptionsHeight()\"\n [minHeight]=\"minOptionsHeight()\"\n [width]=\"optionsWidth() || inputContainer.offsetWidth - 2 + 'px'\"\n >\n <fw-menu>\n @if(loading() && !displayNewOption()) {\n <fw-menu-item title=\"Searching...\" [disabled]=\"true\"/>\n } @else if(!loading()) {\n @for (option of filteredOptions(); track option) {\n <fw-menu-item\n (click)=\"handleOptionClick($event)\"\n (mouseenter)=\"setFocusByValue(option)\"\n [title]=\"option\"\n [focused]=\"focusedOption() === option\"\n [value]=\"option\"\n />\n }\n @empty {\n @if (!displayNewOption()) {\n <fw-menu-item title=\"No tag suggestions\" [disabled]=\"true\"/>\n }\n }\n }\n @if(displayNewOption()) {\n <fw-menu-item\n (click)=\"handleOptionClick($event)\"\n (mouseenter)=\"setFocusByValue(searchValue())\"\n [title]=\"searchValue()\"\n [value]=\"searchValue()\"\n [focused]=\"focusedOption() === searchValue()\">\n <p class=\"new-tag\">New</p>\n </fw-menu-item>\n }\n </fw-menu>\n </fw-menu-container>\n</ng-template>\n", styles: [".new-tag{margin:0;color:var(--typography-light)}:host.disabled{cursor:not-allowed}:host.disabled fw-icon{cursor:not-allowed!important}:host{display:flex;flex-direction:column;width:100%;line-height:21px}:host .chips,:host fw-progress-spinner{margin:-4px 0}:host .full-container{display:flex;flex-direction:column;width:100%}:host .highlight-placeholder::placeholder{color:var(--typography-base)!important}:host .clear-icon{cursor:pointer}:host .input-container{width:100%;box-sizing:border-box;color:var(--typography-light);background:var(--page-light);display:flex;padding:8px;row-gap:8px;align-items:center;border-radius:6px;border:1px solid var(--separations-input);font-family:Inter,sans-serif;flex-wrap:wrap;overflow-y:auto}:host .input-container:focus-within{border:1px solid var(--primary-base)}:host .input-container input{min-width:80px;font-size:14px;flex:1 1 80px;color:var(--typography-base);background:var(--page-light);border:none}:host .input-container input:focus{outline:none;border:none}:host .input-container input::placeholder{color:var(--typography-light)}:host .input-container .context{color:var(--typography-light)}:host .error-text{color:var(--red-base);margin:4px 0 0}:host.errored .input-container{border:1px solid var(--red-base)}.disabled{opacity:.4;pointer-events:none}\n"], dependencies: [{ kind: "ngmodule", type: FwTextInputModule }, { kind: "ngmodule", type: FwChipModule }, { kind: "component", type: FwChipComponent, selector: "fw-chip", inputs: ["value", "variant", "color", "icon", "title", "description", "showClose", "disabled", "selected", "textWrap", "selectable"], outputs: ["close", "select"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: FwMenuModule }, { kind: "component", type: FwMenuComponent, selector: "fw-menu", inputs: ["disabled", "size", "multiSelect", "useCheckbox", "value"], outputs: ["change"] }, { kind: "component", type: FwMenuContainerComponent, selector: "fw-menu-container, fw-menu-filter", inputs: ["width", "maxHeight", "minHeight", "border", "shadow", "showFilter", "filterText", "focusFilterOnMount", "offset", "emptyText", "filterFn", "additionalMenuItems", "additionalGroups", "additionalSeparators", "keyHandler"], outputs: ["filteredMenuItemChange", "filterChanged"] }, { kind: "component", type: FwMenuItemComponent, selector: "fw-menu-item", inputs: ["value", "size", "title", "description", "icon", "iconColor", "disabled", "showCheckbox", "checkboxColor", "multiSelect", "hidden", "collapsed", "href", "target", "subItemsOpen", "mouseEnterHandler", "focused", "selected"], outputs: ["mouseEnterHandlerChange", "click"] }, { kind: "ngmodule", type: CdkMenuModule }, { kind: "directive", type: i1$3.CdkMenuTrigger, selector: "[cdkMenuTriggerFor]", inputs: ["cdkMenuTriggerFor", "cdkMenuPosition", "cdkMenuTriggerData"], outputs: ["cdkMenuOpened", "cdkMenuClosed"], exportAs: ["cdkMenuTriggerFor"] }, { kind: "directive", type: MenuRegisterDirective, selector: "[fwMenuRegister]" }, { kind: "ngmodule", type: FwProgressModule }, { kind: "component", type: FwProgressSpinnerComponent, selector: "fw-progress-spinner", inputs: ["mode", "size", "color", "showValue", "value"] }, { kind: "component", type: FwChipListComponent, selector: "fw-chip-list", inputs: ["resizeDebounceMs", "disableOverflow"] }, { kind: "component", type: FwIconComponent, selector: "fw-icon", inputs: ["size", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9931
+ ], viewQueries: [{ propertyName: "trigger", first: true, predicate: CdkMenuTrigger, descendants: true, isSignal: true }, { propertyName: "displayedOptions", predicate: FwMenuItemComponent, descendants: true, isSignal: true }, { propertyName: "inputRef", first: true, predicate: ["input"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"full-container\">\n <div\n (click)=\"focusInput($event)\"\n class=\"input-container\"\n [class.disabled]=\"disabled()\"\n [style.max-height]=\"maxHeight()\"\n [cdkMenuTriggerFor]=\"menuContent\"\n fwMenuRegister\n #inputContainer>\n @if (selectType() === 'multiple') {\n <fw-chip-list class=\"chips\" [disableOverflow]=\"!!maxHeight()\">\n @for(val of value(); track val) {\n <fw-chip\n color=\"primary\"\n [showClose]=\"true\"\n [title]=\"val\"\n [selectable]=\"false\"\n (close)=\"closeChip(val)\"\n />\n }\n </fw-chip-list>\n }\n <input\n test-id=\"typeahead-input\"\n [class.highlight-placeholder]=\"highlightPlaceholder()\"\n [placeholder]=\"displayedPlaceholder()\"\n [disabled]=\"disabled()\"\n [value]=\"searchValue()\"\n (keyup)=\"handleSearchChange($event)\"\n (keydown)=\"handleKey($event)\"\n (focusout)=\"onFocusLoss($event)\"\n #input\n type=\"text\"\n />\n @if(loading()) {\n <fw-progress-spinner size=\"small\"/>\n }\n @if(selectType() === 'single' && value().length === 1) {\n <fw-icon class=\"clear-icon\" (click)=\"clearValue()\">close</fw-icon>\n }\n </div>\n @if(errorText()) {\n <p class=\"vision-p4 error-text\">{{ errorText() }}</p>\n }\n</div>\n<ng-template #menuContent>\n <fw-menu-container\n [maxHeight]=\"maxOptionsHeight()\"\n [minHeight]=\"minOptionsHeight()\"\n [width]=\"optionsWidth() || inputContainer.offsetWidth - 2 + 'px'\"\n >\n <fw-menu>\n @if(loading() && !displayNewOption()) {\n <fw-menu-item title=\"Searching...\" [disabled]=\"true\"/>\n } @else if(!loading()) {\n @for (option of filteredOptions(); track option) {\n <fw-menu-item\n (click)=\"handleOptionClick($event)\"\n (mouseenter)=\"setFocusByValue(option)\"\n [title]=\"option\"\n [focused]=\"focusedOption() === option\"\n [value]=\"option\"\n />\n }\n @empty {\n @if (!displayNewOption()) {\n <fw-menu-item title=\"No tag suggestions\" [disabled]=\"true\"/>\n }\n }\n }\n @if(displayNewOption()) {\n <fw-menu-item\n (click)=\"handleOptionClick($event)\"\n (mouseenter)=\"setFocusByValue(searchValue())\"\n [title]=\"searchValue()\"\n [value]=\"searchValue()\"\n [focused]=\"focusedOption() === searchValue()\">\n <p class=\"new-tag\">New</p>\n </fw-menu-item>\n }\n </fw-menu>\n </fw-menu-container>\n</ng-template>\n", styles: [".new-tag{margin:0;color:var(--typography-light)}:host.disabled{cursor:not-allowed}:host.disabled fw-icon{cursor:not-allowed!important}:host{display:flex;flex-direction:column;width:100%;line-height:21px}:host .chips,:host fw-progress-spinner{margin:-4px 0}:host .full-container{display:flex;flex-direction:column;width:100%}:host .highlight-placeholder::placeholder{color:var(--typography-base)!important}:host .clear-icon{cursor:pointer}:host .input-container{width:100%;box-sizing:border-box;color:var(--typography-light);background:var(--page-light);display:flex;padding:8px;row-gap:8px;align-items:center;border-radius:6px;border:1px solid var(--separations-input);font-family:Inter,sans-serif;flex-wrap:wrap;overflow-y:auto}:host .input-container:focus-within{border:1px solid var(--primary-base)}:host .input-container input{min-width:80px;font-size:14px;flex:1 1 80px;color:var(--typography-base);background:var(--page-light);border:none}:host .input-container input:focus{outline:none;border:none}:host .input-container input::placeholder{color:var(--typography-light)}:host .input-container .context{color:var(--typography-light)}:host .error-text{color:var(--red-base);margin:4px 0 0}:host.errored .input-container{border:1px solid var(--red-base)}.disabled{opacity:.4;pointer-events:none}\n"], dependencies: [{ kind: "ngmodule", type: FwTextInputModule }, { kind: "ngmodule", type: FwChipModule }, { kind: "component", type: FwChipComponent, selector: "fw-chip", inputs: ["value", "variant", "color", "icon", "title", "description", "showClose", "disabled", "selected", "textWrap", "selectable"], outputs: ["close", "select"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: FwMenuModule }, { kind: "component", type: FwMenuComponent, selector: "fw-menu", inputs: ["disabled", "size", "multiSelect", "useCheckbox", "value"], outputs: ["change"] }, { kind: "component", type: FwMenuContainerComponent, selector: "fw-menu-container, fw-menu-filter", inputs: ["width", "maxHeight", "minHeight", "border", "shadow", "showFilter", "filterText", "focusFilterOnMount", "offset", "emptyText", "filterFn", "additionalMenuItems", "additionalGroups", "additionalSeparators", "keyHandler"], outputs: ["filteredMenuItemChange", "filterChanged"] }, { kind: "component", type: FwMenuItemComponent, selector: "fw-menu-item", inputs: ["value", "size", "title", "description", "icon", "iconColor", "disabled", "showCheckbox", "checkboxColor", "multiSelect", "hidden", "collapsed", "href", "target", "subItemsOpen", "mouseEnterHandler", "focused", "selected"], outputs: ["mouseEnterHandlerChange", "click", "focusedChange"] }, { kind: "ngmodule", type: CdkMenuModule }, { kind: "directive", type: i1$3.CdkMenuTrigger, selector: "[cdkMenuTriggerFor]", inputs: ["cdkMenuTriggerFor", "cdkMenuPosition", "cdkMenuTriggerData"], outputs: ["cdkMenuOpened", "cdkMenuClosed"], exportAs: ["cdkMenuTriggerFor"] }, { kind: "directive", type: MenuRegisterDirective, selector: "[fwMenuRegister]" }, { kind: "ngmodule", type: FwProgressModule }, { kind: "component", type: FwProgressSpinnerComponent, selector: "fw-progress-spinner", inputs: ["mode", "size", "color", "showValue", "value"] }, { kind: "component", type: FwChipListComponent, selector: "fw-chip-list", inputs: ["resizeDebounceMs", "disableOverflow"] }, { kind: "component", type: FwIconComponent, selector: "fw-icon", inputs: ["size", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9776
9932
  }
9777
9933
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: FwTypeaheadComponent, decorators: [{
9778
9934
  type: Component,
@@ -9810,11 +9966,11 @@ class FwWrappedInputComponent {
9810
9966
  this.class = true;
9811
9967
  }
9812
9968
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: FwWrappedInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9813
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.18", type: FwWrappedInputComponent, isStandalone: true, selector: "fw-wrapped-input", inputs: { title: "title", status: "status", statusColor: "statusColor", description: "description", helperText: "helperText", errorText: "errorText", required: "required" }, host: { properties: { "class.fw-wrapped-input": "this.class" } }, ngImport: i0, template: "<label>\n <fw-form-heading\n *ngIf=\"title\" [title]=\"title\" [description]=\"description\"\n [required]=\"required\" [status]=\"status\" [statusColor]=\"statusColor\">\n </fw-form-heading>\n <ng-content select=\"fw-form-heading\"></ng-content>\n</label>\n<div class=\"input-wrapper\">\n <ng-content\n select=\"fw-button-toggle, fw-date-input, fw-text-input, fw-number-input, fw-phone-input, fw-textarea-input, fw-select, fw-multi-select, fw-checkbox, fw-typeahead\"></ng-content>\n</div>\n<p class=\"vision-p4 helper-text\" *ngIf=\"!!helperText && !errorText\">{{ helperText }}</p>\n<p class=\"vision-p4 error-text\" *ngIf=\"!!errorText\">{{ errorText }}</p>\n", styles: [".fw-wrapped-input{display:flex;flex-direction:column;flex:1}.fw-wrapped-input .input-wrapper{max-width:100%;display:flex;flex-direction:row;flex:1;gap:16px}.fw-wrapped-input .input-wrapper>*{flex:1}.fw-wrapped-input .helper-text,.fw-wrapped-input .error-text{margin-top:4px;color:var(--typography-light);line-height:13px;margin-left:6px;margin-bottom:0;text-align:left}.fw-wrapped-input .error-text{color:var(--red-base)}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FwFormHeadingComponent, selector: "fw-form-heading", inputs: ["title", "description", "required", "status", "statusColor"] }], encapsulation: i0.ViewEncapsulation.None }); }
9969
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.18", type: FwWrappedInputComponent, isStandalone: true, selector: "fw-wrapped-input", inputs: { title: "title", status: "status", statusColor: "statusColor", description: "description", helperText: "helperText", errorText: "errorText", required: "required" }, host: { properties: { "class.fw-wrapped-input": "this.class" } }, ngImport: i0, template: "<label>\n <fw-form-heading\n *ngIf=\"title\" [title]=\"title\" [description]=\"description\"\n [required]=\"required\" [status]=\"status\" [statusColor]=\"statusColor\">\n </fw-form-heading>\n <ng-content select=\"fw-form-heading\"></ng-content>\n</label>\n<div class=\"input-wrapper\">\n <ng-content\n select=\"fw-button-toggle, fw-date-input, fw-text-input, fw-number-input, fw-phone-input, fw-textarea-input, fw-select, fw-multi-select, fw-checkbox, fw-typeahead, fw-time-zone-select\"></ng-content>\n</div>\n<p class=\"vision-p4 helper-text\" *ngIf=\"!!helperText && !errorText\">{{ helperText }}</p>\n<p class=\"vision-p4 error-text\" *ngIf=\"!!errorText\">{{ errorText }}</p>\n", styles: [".fw-wrapped-input{display:flex;flex-direction:column;flex:1}.fw-wrapped-input .input-wrapper{max-width:100%;display:flex;flex-direction:row;flex:1;gap:16px}.fw-wrapped-input .input-wrapper>*{flex:1}.fw-wrapped-input .helper-text,.fw-wrapped-input .error-text{margin-top:4px;color:var(--typography-light);line-height:13px;margin-left:6px;margin-bottom:0;text-align:left}.fw-wrapped-input .error-text{color:var(--red-base)}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FwFormHeadingComponent, selector: "fw-form-heading", inputs: ["title", "description", "required", "status", "statusColor"] }], encapsulation: i0.ViewEncapsulation.None }); }
9814
9970
  }
9815
9971
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: FwWrappedInputComponent, decorators: [{
9816
9972
  type: Component,
9817
- args: [{ selector: 'fw-wrapped-input', encapsulation: ViewEncapsulation.None, imports: [NgIf, FwFormHeadingComponent], template: "<label>\n <fw-form-heading\n *ngIf=\"title\" [title]=\"title\" [description]=\"description\"\n [required]=\"required\" [status]=\"status\" [statusColor]=\"statusColor\">\n </fw-form-heading>\n <ng-content select=\"fw-form-heading\"></ng-content>\n</label>\n<div class=\"input-wrapper\">\n <ng-content\n select=\"fw-button-toggle, fw-date-input, fw-text-input, fw-number-input, fw-phone-input, fw-textarea-input, fw-select, fw-multi-select, fw-checkbox, fw-typeahead\"></ng-content>\n</div>\n<p class=\"vision-p4 helper-text\" *ngIf=\"!!helperText && !errorText\">{{ helperText }}</p>\n<p class=\"vision-p4 error-text\" *ngIf=\"!!errorText\">{{ errorText }}</p>\n", styles: [".fw-wrapped-input{display:flex;flex-direction:column;flex:1}.fw-wrapped-input .input-wrapper{max-width:100%;display:flex;flex-direction:row;flex:1;gap:16px}.fw-wrapped-input .input-wrapper>*{flex:1}.fw-wrapped-input .helper-text,.fw-wrapped-input .error-text{margin-top:4px;color:var(--typography-light);line-height:13px;margin-left:6px;margin-bottom:0;text-align:left}.fw-wrapped-input .error-text{color:var(--red-base)}\n"] }]
9973
+ args: [{ selector: 'fw-wrapped-input', encapsulation: ViewEncapsulation.None, imports: [NgIf, FwFormHeadingComponent], template: "<label>\n <fw-form-heading\n *ngIf=\"title\" [title]=\"title\" [description]=\"description\"\n [required]=\"required\" [status]=\"status\" [statusColor]=\"statusColor\">\n </fw-form-heading>\n <ng-content select=\"fw-form-heading\"></ng-content>\n</label>\n<div class=\"input-wrapper\">\n <ng-content\n select=\"fw-button-toggle, fw-date-input, fw-text-input, fw-number-input, fw-phone-input, fw-textarea-input, fw-select, fw-multi-select, fw-checkbox, fw-typeahead, fw-time-zone-select\"></ng-content>\n</div>\n<p class=\"vision-p4 helper-text\" *ngIf=\"!!helperText && !errorText\">{{ helperText }}</p>\n<p class=\"vision-p4 error-text\" *ngIf=\"!!errorText\">{{ errorText }}</p>\n", styles: [".fw-wrapped-input{display:flex;flex-direction:column;flex:1}.fw-wrapped-input .input-wrapper{max-width:100%;display:flex;flex-direction:row;flex:1;gap:16px}.fw-wrapped-input .input-wrapper>*{flex:1}.fw-wrapped-input .helper-text,.fw-wrapped-input .error-text{margin-top:4px;color:var(--typography-light);line-height:13px;margin-left:6px;margin-bottom:0;text-align:left}.fw-wrapped-input .error-text{color:var(--red-base)}\n"] }]
9818
9974
  }], propDecorators: { title: [{
9819
9975
  type: Input
9820
9976
  }], status: [{
@@ -9863,5 +10019,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
9863
10019
  * Generated bundle index. Do not edit.
9864
10020
  */
9865
10021
 
9866
- export { DialogWidth, FwAlertComponent, FwAlertModule, FwAppIconComponent, FwAppIconModule, FwAvatarComponent, FwAvatarListComponent, FwAvatarModule, FwBackButtonComponent, FwBadgeComponent, FwBadgeModule, FwBreadcrumbsComponent, FwBreadcrumbsModule, FwButtonComponent, FwButtonDangerDirective, FwButtonDirective, FwButtonGroupComponent, FwButtonGroupModule, FwButtonModule, FwButtonPrimaryDirective, FwButtonSecondaryDirective, FwButtonSuccessDirective, FwButtonToggleComponent, FwButtonToggleItemComponent, FwButtonToggleModule, FwCardAttributeComponent, FwCardAuthorComponent, FwCardComponent, FwCardContentComponent, FwCardFooterComponent, FwCardHeaderComponent, FwCardModule, FwCell, FwCellDef, FwCheckboxComponent, FwCheckboxModule, FwChipComponent, FwChipModule, FwColumnDef, FwContainedInputComponent, FwContainedInputModule, FwCrumbComponent, FwDateInputComponent, FwDateInputModule, FwDialogActionsComponent, FwDialogComponent, FwDialogConfirmComponent, FwDialogContentComponent, FwDialogHeaderComponent, FwDialogService, FwDialogSimpleComponent, FwDialogsModule, FwFooterCell, FwFooterCellDef, FwFooterRow, FwFooterRowDef, FwFormHeadingComponent, FwFormHeadingModule, FwGridComponent, FwGridItemComponent, FwHeaderCell, FwHeaderCellDef, FwHeaderRow, FwHeaderRowDef, FwIconButtonComponent, FwIconButtonModule, FwIconComponent, FwIconModule, FwLayoutContextComponent, FwLayoutGroupComponent, FwLayoutPanelComponent, FwLayoutSidebarComponent, FwLayoutToolbarComponent, FwLayoutsModule, FwMenuCloseTriggersDirective, FwMenuComponent, FwMenuContainerComponent, FwMenuHeaderComponent, FwMenuItemComponent, FwMenuItemGroupComponent, FwMenuModule, FwMenuSeparatorComponent, FwMenuSubItemComponent, FwMultiSelectMenuComponent, FwNavbarComponent, FwNavbarHeaderComponent, FwNavbarItemComponent, FwNavbarModule, FwNavbarSubItemComponent, FwNoDataRow, FwNumberInputComponent, FwNumberInputModule, FwPaginatorAdvancedComponent, FwPaginatorComponent, FwPaginatorModule, FwPhoneInputComponent, FwPhoneInputModule, FwPopoverComponent, FwPopoverModule, FwPopoverPanelComponent, FwProgressBarComponent, FwProgressModule, FwProgressSpinnerComponent, FwRadioComponent, FwRadioGroupComponent, FwRadioModule, FwRow, FwRowDef, FwSectionHeadingComponent, FwSectionHeadingModule, FwSelectMenuComponent, FwSelectMenuModule, FwSnackbarComponent, FwSnackbarContainerComponent, FwSnackbarModule, FwSnackbarService, FwStepComponent, FwStepDecoratorComponent, FwStepperComponent, FwStepperModule, FwSubsectionHeadingComponent, FwSwitchComponent, FwSwitchModule, FwTabComponent, FwTabPanelComponent, FwTableComponent, FwTableDenseComponent, FwTableModule, FwTabsComponent, FwTabsModule, FwTextAreaInputComponent, FwTextAreaInputModule, FwTextComponent, FwTextInputComponent, FwTextInputModule, FwTooltipComponent, FwTooltipDirective, FwTooltipModule, FwTooltipPanelComponent, FwTypeaheadComponent, FwValidators, FwWrappedInputComponent, FwWrappedInputModule, LayoutWidth, MenuManagerService, MenuRegisterDirective, MinimalTranslationService, TranslationService, allIcons, genMessageId, notBeforeDate, notFutureDate };
10022
+ export { DialogWidth, FwAlertComponent, FwAlertModule, FwAppIconComponent, FwAppIconModule, FwAvatarComponent, FwAvatarListComponent, FwAvatarModule, FwBackButtonComponent, FwBadgeComponent, FwBadgeModule, FwBreadcrumbsComponent, FwBreadcrumbsModule, FwButtonComponent, FwButtonDangerDirective, FwButtonDirective, FwButtonGroupComponent, FwButtonGroupModule, FwButtonModule, FwButtonPrimaryDirective, FwButtonSecondaryDirective, FwButtonSuccessDirective, FwButtonToggleComponent, FwButtonToggleItemComponent, FwButtonToggleModule, FwCardAttributeComponent, FwCardAuthorComponent, FwCardComponent, FwCardContentComponent, FwCardFooterComponent, FwCardHeaderComponent, FwCardModule, FwCell, FwCellDef, FwCheckboxComponent, FwCheckboxModule, FwChipComponent, FwChipModule, FwColumnDef, FwContainedInputComponent, FwContainedInputModule, FwCrumbComponent, FwDateInputComponent, FwDateInputModule, FwDialogActionsComponent, FwDialogComponent, FwDialogConfirmComponent, FwDialogContentComponent, FwDialogHeaderComponent, FwDialogService, FwDialogSimpleComponent, FwDialogsModule, FwFooterCell, FwFooterCellDef, FwFooterRow, FwFooterRowDef, FwFormHeadingComponent, FwFormHeadingModule, FwGridComponent, FwGridItemComponent, FwHeaderCell, FwHeaderCellDef, FwHeaderRow, FwHeaderRowDef, FwIconButtonComponent, FwIconButtonModule, FwIconComponent, FwIconModule, FwLayoutContextComponent, FwLayoutGroupComponent, FwLayoutPanelComponent, FwLayoutSidebarComponent, FwLayoutToolbarComponent, FwLayoutsModule, FwMenuCloseTriggersDirective, FwMenuComponent, FwMenuContainerComponent, FwMenuHeaderComponent, FwMenuItemComponent, FwMenuItemGroupComponent, FwMenuModule, FwMenuSeparatorComponent, FwMenuSubItemComponent, FwMultiSelectMenuComponent, FwNavbarComponent, FwNavbarHeaderComponent, FwNavbarItemComponent, FwNavbarModule, FwNavbarSubItemComponent, FwNoDataRow, FwNumberInputComponent, FwNumberInputModule, FwPaginatorAdvancedComponent, FwPaginatorComponent, FwPaginatorModule, FwPhoneInputComponent, FwPhoneInputModule, FwPopoverComponent, FwPopoverModule, FwPopoverPanelComponent, FwProgressBarComponent, FwProgressModule, FwProgressSpinnerComponent, FwRadioComponent, FwRadioGroupComponent, FwRadioModule, FwRow, FwRowDef, FwSectionHeadingComponent, FwSectionHeadingModule, FwSelectMenuComponent, FwSelectMenuModule, FwSnackbarComponent, FwSnackbarContainerComponent, FwSnackbarModule, FwSnackbarService, FwStepComponent, FwStepDecoratorComponent, FwStepperComponent, FwStepperModule, FwSubsectionHeadingComponent, FwSwitchComponent, FwSwitchModule, FwTabComponent, FwTabPanelComponent, FwTableComponent, FwTableDenseComponent, FwTableModule, FwTabsComponent, FwTabsModule, FwTextAreaInputComponent, FwTextAreaInputModule, FwTextComponent, FwTextInputComponent, FwTextInputModule, FwTimeZoneSelectComponent, FwTooltipComponent, FwTooltipDirective, FwTooltipModule, FwTooltipPanelComponent, FwTypeaheadComponent, FwValidators, FwWrappedInputComponent, FwWrappedInputModule, LayoutWidth, MenuManagerService, MenuRegisterDirective, MinimalTranslationService, NoopValueAccessorDirective, TranslationService, allIcons, genMessageId, notBeforeDate, notFutureDate };
9867
10023
  //# sourceMappingURL=flywheel-io-vision.mjs.map