@flywheel-io/vision 21.3.1 → 21.4.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flywheel-io/vision",
3
- "version": "21.3.1",
3
+ "version": "21.4.0",
4
4
  "description": "Flywheel UI elements provided as Angular components and native web components",
5
5
  "author": "Flywheel",
6
6
  "license": "MIT",
@@ -1813,6 +1813,7 @@ declare class FwMenuContainerComponent implements AfterViewInit {
1813
1813
  readonly focusFilterOnMount: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
1814
1814
  readonly offset: _angular_core.InputSignal<string>;
1815
1815
  emptyText: _angular_core.InputSignal<string>;
1816
+ readonly disableWrapperScroll: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
1816
1817
  filteredMenuItems: FwMenuItemComponent[];
1817
1818
  filteredMenuItemChange: _angular_core.OutputEmitterRef<FwMenuItemComponent[]>;
1818
1819
  private defaultFilterFn;
@@ -1840,7 +1841,7 @@ declare class FwMenuContainerComponent implements AfterViewInit {
1840
1841
  handleFilterInput(event: Event): void;
1841
1842
  onFilterChange(filter: string): void;
1842
1843
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FwMenuContainerComponent, never>;
1843
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<FwMenuContainerComponent, "fw-menu-container, fw-menu-filter", never, { "width": { "alias": "width"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "minHeight": { "alias": "minHeight"; "required": false; "isSignal": true; }; "border": { "alias": "border"; "required": false; "isSignal": true; }; "shadow": { "alias": "shadow"; "required": false; "isSignal": true; }; "showFilter": { "alias": "showFilter"; "required": false; "isSignal": true; }; "filterText": { "alias": "filterText"; "required": false; "isSignal": true; }; "focusFilterOnMount": { "alias": "focusFilterOnMount"; "required": false; "isSignal": true; }; "offset": { "alias": "offset"; "required": false; "isSignal": true; }; "emptyText": { "alias": "emptyText"; "required": false; "isSignal": true; }; "filterFn": { "alias": "filterFn"; "required": false; "isSignal": true; }; "additionalMenuItems": { "alias": "additionalMenuItems"; "required": false; "isSignal": true; }; "additionalGroups": { "alias": "additionalGroups"; "required": false; "isSignal": true; }; "additionalSeparators": { "alias": "additionalSeparators"; "required": false; "isSignal": true; }; "keyHandler": { "alias": "keyHandler"; "required": false; "isSignal": true; }; }, { "filteredMenuItemChange": "filteredMenuItemChange"; "filterChanged": "filterChanged"; }, ["menu", "childMenuItems", "childSeparators", "childGroups"], [".filter-content", "*", "custom-menu-items"], true, never>;
1844
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FwMenuContainerComponent, "fw-menu-container, fw-menu-filter", never, { "width": { "alias": "width"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "minHeight": { "alias": "minHeight"; "required": false; "isSignal": true; }; "border": { "alias": "border"; "required": false; "isSignal": true; }; "shadow": { "alias": "shadow"; "required": false; "isSignal": true; }; "showFilter": { "alias": "showFilter"; "required": false; "isSignal": true; }; "filterText": { "alias": "filterText"; "required": false; "isSignal": true; }; "focusFilterOnMount": { "alias": "focusFilterOnMount"; "required": false; "isSignal": true; }; "offset": { "alias": "offset"; "required": false; "isSignal": true; }; "emptyText": { "alias": "emptyText"; "required": false; "isSignal": true; }; "disableWrapperScroll": { "alias": "disableWrapperScroll"; "required": false; "isSignal": true; }; "filterFn": { "alias": "filterFn"; "required": false; "isSignal": true; }; "additionalMenuItems": { "alias": "additionalMenuItems"; "required": false; "isSignal": true; }; "additionalGroups": { "alias": "additionalGroups"; "required": false; "isSignal": true; }; "additionalSeparators": { "alias": "additionalSeparators"; "required": false; "isSignal": true; }; "keyHandler": { "alias": "keyHandler"; "required": false; "isSignal": true; }; }, { "filteredMenuItemChange": "filteredMenuItemChange"; "filterChanged": "filterChanged"; }, ["menu", "childMenuItems", "childSeparators", "childGroups"], [".filter-content", "*", "custom-menu-items"], true, never>;
1844
1845
  }
1845
1846
 
1846
1847
  /**
@@ -2209,9 +2210,17 @@ declare class FwSelectMenuComponent implements OnInit, OnDestroy, ControlValueAc
2209
2210
  maxOptionsHeight: _angular_core.InputSignal<string>;
2210
2211
  size: _angular_core.InputSignal<"large" | "medium" | "small">;
2211
2212
  placeholder: _angular_core.InputSignal<string>;
2213
+ /**
2214
+ * Renders the `options` list in a `cdk-virtual-scroll-viewport` instead of one `fw-menu-item` per
2215
+ * option, so opening the panel stays fast with large option sets.
2216
+ * ! WARNING ! only works with the `options` input, not with content-projected menu items
2217
+ */
2218
+ virtualScroll: _angular_core.InputSignal<boolean>;
2219
+ virtualScrollItemSize: _angular_core.InputSignal<number>;
2212
2220
  trigger: CdkMenuTrigger;
2213
2221
  textInput: FwTextInputComponent;
2214
2222
  menu: _angular_core.Signal<FwMenuComponent>;
2223
+ private virtualScrollViewport;
2215
2224
  /**
2216
2225
  * The control itself, which is only as wide as `width()`. The host element is a block element and
2217
2226
  * so can be considerably wider, and a click in that gap is an outside click.
@@ -2245,6 +2254,14 @@ declare class FwSelectMenuComponent implements OnInit, OnDestroy, ControlValueAc
2245
2254
  * ! WARNING ! only works with content-projected menu items, does not work with the `options` input
2246
2255
  */
2247
2256
  filterFn: _angular_core.InputSignal<MenuFilterFn>;
2257
+ /**
2258
+ * Height of the virtual-scroll viewport. Capped at `maxOptionsHeight()`, minus the filter box's
2259
+ * height (64px) when `showFilter()` is on since the filter box sits above the viewport inside the
2260
+ * same fixed-height panel. Below that cap, the viewport sizes down to fit the actual item count
2261
+ * (via CSS `min()`, since `maxOptionsHeight()` can be any CSS length) so a short options list
2262
+ * doesn't leave empty space under it.
2263
+ */
2264
+ virtualScrollViewportHeight: _angular_core.Signal<string>;
2248
2265
  inputDisplayValue: _angular_core.Signal<string>;
2249
2266
  get value(): any;
2250
2267
  set value(newValue: any);
@@ -2252,6 +2269,10 @@ declare class FwSelectMenuComponent implements OnInit, OnDestroy, ControlValueAc
2252
2269
  constructor();
2253
2270
  ngOnInit(): void;
2254
2271
  private findRenderedMenuItem;
2272
+ trackByTrackingId: (_index: number, item: {
2273
+ trackingId: string;
2274
+ }) => string;
2275
+ private scrollOptionIntoView;
2255
2276
  selectTitle: _angular_core.WritableSignal<string>;
2256
2277
  private subscribeToMenuItems;
2257
2278
  private menuItemsWatcher;
@@ -2308,7 +2329,7 @@ declare class FwSelectMenuComponent implements OnInit, OnDestroy, ControlValueAc
2308
2329
  onFilterChanged(value: string): void;
2309
2330
  onInputChange(event: Event): void;
2310
2331
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FwSelectMenuComponent, never>;
2311
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<FwSelectMenuComponent, "fw-select", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "valueProperty": { "alias": "valueProperty"; "required": false; "isSignal": true; }; "useFullOptionAsValue": { "alias": "useFullOptionAsValue"; "required": false; "isSignal": true; }; "titleProperty": { "alias": "titleProperty"; "required": false; "isSignal": true; }; "iconProperty": { "alias": "iconProperty"; "required": false; "isSignal": true; }; "staticIcon": { "alias": "staticIcon"; "required": false; "isSignal": true; }; "descriptionProperty": { "alias": "descriptionProperty"; "required": false; "isSignal": true; }; "showFilter": { "alias": "showFilter"; "required": false; "isSignal": true; }; "showReset": { "alias": "showReset"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "errored": { "alias": "errored"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "optionsWidth": { "alias": "optionsWidth"; "required": false; "isSignal": true; }; "minOptionsHeight": { "alias": "minOptionsHeight"; "required": false; "isSignal": true; }; "maxOptionsHeight": { "alias": "maxOptionsHeight"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "valueDisplayFn": { "alias": "valueDisplayFn"; "required": false; "isSignal": true; }; "filterFn": { "alias": "filterFn"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; }; }, { "disabled": "disabledChange"; "change": "change"; "filterChanged": "filterChanged"; }, ["menuItems", "menuItemGroups", "menuSeparators"], ["[fw-menu-item, fw-menu-separator, fw-menu-item-group]"], true, never>;
2332
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FwSelectMenuComponent, "fw-select", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "valueProperty": { "alias": "valueProperty"; "required": false; "isSignal": true; }; "useFullOptionAsValue": { "alias": "useFullOptionAsValue"; "required": false; "isSignal": true; }; "titleProperty": { "alias": "titleProperty"; "required": false; "isSignal": true; }; "iconProperty": { "alias": "iconProperty"; "required": false; "isSignal": true; }; "staticIcon": { "alias": "staticIcon"; "required": false; "isSignal": true; }; "descriptionProperty": { "alias": "descriptionProperty"; "required": false; "isSignal": true; }; "showFilter": { "alias": "showFilter"; "required": false; "isSignal": true; }; "showReset": { "alias": "showReset"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "errored": { "alias": "errored"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "optionsWidth": { "alias": "optionsWidth"; "required": false; "isSignal": true; }; "minOptionsHeight": { "alias": "minOptionsHeight"; "required": false; "isSignal": true; }; "maxOptionsHeight": { "alias": "maxOptionsHeight"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "virtualScroll": { "alias": "virtualScroll"; "required": false; "isSignal": true; }; "virtualScrollItemSize": { "alias": "virtualScrollItemSize"; "required": false; "isSignal": true; }; "valueDisplayFn": { "alias": "valueDisplayFn"; "required": false; "isSignal": true; }; "filterFn": { "alias": "filterFn"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; }; }, { "disabled": "disabledChange"; "change": "change"; "filterChanged": "filterChanged"; }, ["menuItems", "menuItemGroups", "menuSeparators"], ["[fw-menu-item, fw-menu-separator, fw-menu-item-group]"], true, never>;
2312
2333
  }
2313
2334
 
2314
2335
  /**
@@ -2954,7 +2975,7 @@ declare class FwTextAreaInputComponent implements ControlValueAccessor {
2954
2975
  */
2955
2976
  declare class FwTextAreaInputModule {
2956
2977
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FwTextAreaInputModule, never>;
2957
- static ɵmod: _angular_core.ɵɵNgModuleDeclaration<FwTextAreaInputModule, never, [typeof i1.CommonModule, typeof i2.ReactiveFormsModule, typeof i3$1.TextFieldModule, typeof FwIconModule, typeof FwTextAreaInputComponent], [typeof FwTextAreaInputComponent]>;
2978
+ static ɵmod: _angular_core.ɵɵNgModuleDeclaration<FwTextAreaInputModule, never, [typeof i1.CommonModule, typeof i2.ReactiveFormsModule, typeof i3$1.TextFieldModule, typeof FwTextAreaInputComponent], [typeof FwTextAreaInputComponent]>;
2958
2979
  static ɵinj: _angular_core.ɵɵInjectorDeclaration<FwTextAreaInputModule>;
2959
2980
  }
2960
2981