@awc-ui/angular 1.0.0-beta.8 → 1.0.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/README.md CHANGED
@@ -1,41 +1,61 @@
1
- # @awc-ui/angular
1
+ # Angular Web Components and Angular SSR — @awc-ui/angular
2
2
 
3
- Angular bindings for [AWC UI](https://www.npmjs.com/package/@awc-ui/core) — Material Design 3 web components, with directives that bridge Angular templates (including `ngModel` / reactive forms) to the underlying custom elements.
3
+ Angular 17+ integration for AWC UI.
4
4
 
5
- ## Install
5
+ `@awc-ui/angular` provides standalone component proxies and Angular form value
6
+ accessors. Imports register their custom elements automatically.
6
7
 
7
8
  ```bash
8
9
  npm install @awc-ui/angular @awc-ui/core
9
10
  ```
10
11
 
11
- Requires Angular 17+.
12
-
13
- ## Usage
12
+ Load the theme once in your application entry:
14
13
 
15
14
  ```ts
16
- // NgModule apps
17
- import { AwcUiModule } from '@awc-ui/angular';
15
+ import '@awc-ui/core/css/tokens.css';
16
+ ```
18
17
 
19
- @NgModule({
20
- imports: [AwcUiModule],
18
+ For a standalone component, import the controls and accessors into its template
19
+ scope, alongside Angular's forms module:
20
+
21
+ ```ts
22
+ import { Component } from '@angular/core';
23
+ import { FormsModule } from '@angular/forms';
24
+ import { MdButton, MdTextField, TextValueAccessor } from '@awc-ui/angular';
25
+
26
+ @Component({
27
+ selector: 'app-root',
28
+ standalone: true,
29
+ imports: [FormsModule, MdButton, MdTextField, TextValueAccessor],
30
+ template: `
31
+ <md-text-field label="Email" type="email" [(ngModel)]="email"></md-text-field>
32
+ <md-button variant="filled">Continue</md-button>
33
+ `,
21
34
  })
22
- export class AppModule {}
35
+ export class AppComponent {
36
+ email = '';
37
+ }
23
38
  ```
24
39
 
25
- ```ts
26
- // Standalone apps
27
- import { importProvidersFrom } from '@angular/core';
28
- import { AwcUiModule, provideAwcUi } from '@awc-ui/angular';
40
+ For convenience, `imports: [FormsModule, AwcUiModule]` supplies every component
41
+ and accessor. Use `ReactiveFormsModule` for `formControl` and `formControlName`.
42
+ NgModule applications also put `AwcUiModule` in `imports`.
29
43
 
30
- bootstrapApplication(AppComponent, {
31
- providers: [provideAwcUi(), importProvidersFrom(AwcUiModule)],
32
- });
33
- ```
44
+ `importProvidersFrom(AwcUiModule)` does not add directives to a standalone
45
+ component's template scope. `provideAwcUi()` is only needed for applications
46
+ using the lazy loader with raw tags; imported proxies already register themselves.
47
+
48
+ Radio controls bind the selected option's `value`, preserving each radio's
49
+ identity. Import both `MdRadio` and `RadioValueAccessor` for individual imports:
34
50
 
35
51
  ```html
36
- <md-button variant="filled">Click me</md-button>
52
+ <md-radio name="plan" value="basic" [(ngModel)]="plan">Basic</md-radio>
53
+ <md-radio name="plan" value="pro" [(ngModel)]="plan">Pro</md-radio>
37
54
  ```
38
55
 
39
- ## Documentation
56
+ Initialize `plan` to `'basic'` or `'pro'`; resetting the form to `null` clears the
57
+ selection. Multi-select accessors normalize a form reset to an empty array.
58
+
59
+ ## Server rendering
40
60
 
41
- Component docs, theming, and per-component manuals ship with [`@awc-ui/core`](https://www.npmjs.com/package/@awc-ui/core).
61
+ See the [Angular SSR guide](https://awc-ui.dev/frameworks/angular/) for the shared hydration lifecycle and reference application.
@@ -1,21 +1,23 @@
1
1
  import { Provider } from '@angular/core';
2
- import { TextValueAccessor } from './directives/text-value-accessor';
2
+ import { TextValueAccessor } from './directives/text-value-accessor.js';
3
+ import { RadioValueAccessor } from './directives/radio-value-accessor.js';
3
4
  import * as i0 from "@angular/core";
4
5
  import * as i1 from "@angular/common";
5
- import * as i2 from "./directives/proxies";
6
- import * as i3 from "./directives/text-value-accessor";
7
- import * as i4 from "./directives/select-value-accessor";
8
- import * as i5 from "./directives/boolean-value-accessor";
9
- import * as i6 from "./directives/radio-value-accessor";
10
- import * as i7 from "./directives/number-value-accessor";
11
- import * as i8 from "./directives/switch-value-accessor";
6
+ import * as i2 from "./directives/proxies.js";
7
+ import * as i3 from "./directives/text-value-accessor.js";
8
+ import * as i4 from "./directives/select-value-accessor.js";
9
+ import * as i5 from "./directives/multi-select-value-accessor.js";
10
+ import * as i6 from "./directives/boolean-value-accessor.js";
11
+ import * as i7 from "./directives/radio-value-accessor.js";
12
+ import * as i8 from "./directives/number-value-accessor.js";
13
+ import * as i9 from "./directives/switch-value-accessor.js";
12
14
  /**
13
15
  * ControlValueAccessor directives, so `[(ngModel)]` and `formControlName` bind
14
16
  * to AWC UI inputs. Declared here rather than in `DIRECTIVES` because that
15
17
  * array is GENERATED by the Stencil output target on every build and would
16
18
  * discard anything added to it.
17
19
  */
18
- export declare const VALUE_ACCESSORS: (typeof TextValueAccessor)[];
20
+ export declare const VALUE_ACCESSORS: (typeof TextValueAccessor | typeof RadioValueAccessor)[];
19
21
  /**
20
22
  * Registers ALL AWC UI custom elements (the Stencil lazy loader) during
21
23
  * application bootstrap.
@@ -36,10 +38,9 @@ export declare const VALUE_ACCESSORS: (typeof TextValueAccessor)[];
36
38
  * })
37
39
  * export class AppModule {}
38
40
  *
39
- * // Standalone app
40
- * bootstrapApplication(AppComponent, {
41
- * providers: [provideAwcUi(), importProvidersFrom(AwcUiModule)],
42
- * });
41
+ * // Raw custom elements without imported proxies:
42
+ * // AppComponent uses CUSTOM_ELEMENTS_SCHEMA; add the loader at bootstrap.
43
+ * bootstrapApplication(AppComponent, { providers: [provideAwcUi()] });
43
44
  *
44
45
  * SSR-safe: it is a no-op when `window` is not available.
45
46
  */
@@ -67,6 +68,6 @@ export declare function provideAwcUi(): Provider;
67
68
  */
68
69
  export declare class AwcUiModule {
69
70
  static ɵfac: i0.ɵɵFactoryDeclaration<AwcUiModule, never>;
70
- static ɵmod: i0.ɵɵNgModuleDeclaration<AwcUiModule, never, [typeof i1.CommonModule, typeof i2.MdAccordion, typeof i2.MdAccordionItem, typeof i2.MdAppBar, typeof i2.MdAreaChart, typeof i2.MdAutocomplete, typeof i2.MdAvatar, typeof i2.MdBadge, typeof i2.MdBarChart, typeof i2.MdBottomSheet, typeof i2.MdBreadcrumbItem, typeof i2.MdBreadcrumbs, typeof i2.MdButton, typeof i2.MdButtonGroup, typeof i2.MdCard, typeof i2.MdCheckbox, typeof i2.MdChip, typeof i2.MdColorPicker, typeof i2.MdDatePicker, typeof i2.MdDialog, typeof i2.MdDivider, typeof i2.MdFab, typeof i2.MdFabMenu, typeof i2.MdFabMenuItem, typeof i2.MdIconButton, typeof i2.MdLineChart, typeof i2.MdList, typeof i2.MdListItem, typeof i2.MdLoadingIndicator, typeof i2.MdMenu, typeof i2.MdMenuItem, typeof i2.MdMenuItemGroup, typeof i2.MdMeter, typeof i2.MdMultiSelect, typeof i2.MdNavigationBar, typeof i2.MdNavigationRail, typeof i2.MdNavigationRailTab, typeof i2.MdNavigationTab, typeof i2.MdNumberField, typeof i2.MdOrganizationChart, typeof i2.MdOtpField, typeof i2.MdPieChart, typeof i2.MdProgressIndicator, typeof i2.MdRadio, typeof i2.MdRating, typeof i2.MdRipple, typeof i2.MdSearch, typeof i2.MdSegmentedButton, typeof i2.MdSegmentedButtonSet, typeof i2.MdSelect, typeof i2.MdSelectOption, typeof i2.MdSideSheet, typeof i2.MdSkeleton, typeof i2.MdSlider, typeof i2.MdSnackbar, typeof i2.MdSparkline, typeof i2.MdSplitButton, typeof i2.MdStatusDot, typeof i2.MdStep, typeof i2.MdStepper, typeof i2.MdSubMenuItem, typeof i2.MdSwitch, typeof i2.MdTab, typeof i2.MdTabPanel, typeof i2.MdTabPanels, typeof i2.MdTable, typeof i2.MdTableBody, typeof i2.MdTableCell, typeof i2.MdTableContainer, typeof i2.MdTableExpandToggle, typeof i2.MdTableFoot, typeof i2.MdTableHead, typeof i2.MdTablePagination, typeof i2.MdTableRow, typeof i2.MdTableSortLabel, typeof i2.MdTableToolbar, typeof i2.MdTabs, typeof i2.MdTextField, typeof i2.MdTimePicker, typeof i2.MdToolbar, typeof i2.MdTooltip, typeof i2.MdTransferList, typeof i3.TextValueAccessor, typeof i4.SelectValueAccessor, typeof i5.BooleanValueAccessor, typeof i6.RadioValueAccessor, typeof i7.NumericValueAccessor, typeof i8.SwitchValueAccessor], [typeof i2.MdAccordion, typeof i2.MdAccordionItem, typeof i2.MdAppBar, typeof i2.MdAreaChart, typeof i2.MdAutocomplete, typeof i2.MdAvatar, typeof i2.MdBadge, typeof i2.MdBarChart, typeof i2.MdBottomSheet, typeof i2.MdBreadcrumbItem, typeof i2.MdBreadcrumbs, typeof i2.MdButton, typeof i2.MdButtonGroup, typeof i2.MdCard, typeof i2.MdCheckbox, typeof i2.MdChip, typeof i2.MdColorPicker, typeof i2.MdDatePicker, typeof i2.MdDialog, typeof i2.MdDivider, typeof i2.MdFab, typeof i2.MdFabMenu, typeof i2.MdFabMenuItem, typeof i2.MdIconButton, typeof i2.MdLineChart, typeof i2.MdList, typeof i2.MdListItem, typeof i2.MdLoadingIndicator, typeof i2.MdMenu, typeof i2.MdMenuItem, typeof i2.MdMenuItemGroup, typeof i2.MdMeter, typeof i2.MdMultiSelect, typeof i2.MdNavigationBar, typeof i2.MdNavigationRail, typeof i2.MdNavigationRailTab, typeof i2.MdNavigationTab, typeof i2.MdNumberField, typeof i2.MdOrganizationChart, typeof i2.MdOtpField, typeof i2.MdPieChart, typeof i2.MdProgressIndicator, typeof i2.MdRadio, typeof i2.MdRating, typeof i2.MdRipple, typeof i2.MdSearch, typeof i2.MdSegmentedButton, typeof i2.MdSegmentedButtonSet, typeof i2.MdSelect, typeof i2.MdSelectOption, typeof i2.MdSideSheet, typeof i2.MdSkeleton, typeof i2.MdSlider, typeof i2.MdSnackbar, typeof i2.MdSparkline, typeof i2.MdSplitButton, typeof i2.MdStatusDot, typeof i2.MdStep, typeof i2.MdStepper, typeof i2.MdSubMenuItem, typeof i2.MdSwitch, typeof i2.MdTab, typeof i2.MdTabPanel, typeof i2.MdTabPanels, typeof i2.MdTable, typeof i2.MdTableBody, typeof i2.MdTableCell, typeof i2.MdTableContainer, typeof i2.MdTableExpandToggle, typeof i2.MdTableFoot, typeof i2.MdTableHead, typeof i2.MdTablePagination, typeof i2.MdTableRow, typeof i2.MdTableSortLabel, typeof i2.MdTableToolbar, typeof i2.MdTabs, typeof i2.MdTextField, typeof i2.MdTimePicker, typeof i2.MdToolbar, typeof i2.MdTooltip, typeof i2.MdTransferList, typeof i3.TextValueAccessor, typeof i4.SelectValueAccessor, typeof i5.BooleanValueAccessor, typeof i6.RadioValueAccessor, typeof i7.NumericValueAccessor, typeof i8.SwitchValueAccessor]>;
71
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AwcUiModule, never, [typeof i1.CommonModule, typeof i2.MdAccordion, typeof i2.MdAccordionItem, typeof i2.MdAppBar, typeof i2.MdAreaChart, typeof i2.MdAutocomplete, typeof i2.MdAvatar, typeof i2.MdBadge, typeof i2.MdBarChart, typeof i2.MdBottomSheet, typeof i2.MdBreadcrumbItem, typeof i2.MdBreadcrumbs, typeof i2.MdButton, typeof i2.MdButtonGroup, typeof i2.MdCard, typeof i2.MdCheckbox, typeof i2.MdChip, typeof i2.MdColorPicker, typeof i2.MdDatePicker, typeof i2.MdDialog, typeof i2.MdDivider, typeof i2.MdFab, typeof i2.MdFabMenu, typeof i2.MdFabMenuItem, typeof i2.MdIconButton, typeof i2.MdLineChart, typeof i2.MdList, typeof i2.MdListItem, typeof i2.MdLoadingIndicator, typeof i2.MdMenu, typeof i2.MdMenuItem, typeof i2.MdMenuItemGroup, typeof i2.MdMeter, typeof i2.MdMultiSelect, typeof i2.MdNavigationBar, typeof i2.MdNavigationRail, typeof i2.MdNavigationRailTab, typeof i2.MdNavigationTab, typeof i2.MdNumberField, typeof i2.MdOrganizationChart, typeof i2.MdOtpField, typeof i2.MdPieChart, typeof i2.MdProgressIndicator, typeof i2.MdRadio, typeof i2.MdRating, typeof i2.MdRipple, typeof i2.MdSearch, typeof i2.MdSegmentedButton, typeof i2.MdSegmentedButtonSet, typeof i2.MdSelect, typeof i2.MdSelectOption, typeof i2.MdSideSheet, typeof i2.MdSkeleton, typeof i2.MdSlider, typeof i2.MdSnackbar, typeof i2.MdSparkline, typeof i2.MdSplitButton, typeof i2.MdStatusDot, typeof i2.MdStep, typeof i2.MdStepper, typeof i2.MdSubMenuItem, typeof i2.MdSwitch, typeof i2.MdTab, typeof i2.MdTabPanel, typeof i2.MdTabPanels, typeof i2.MdTable, typeof i2.MdTableBody, typeof i2.MdTableCell, typeof i2.MdTableContainer, typeof i2.MdTableExpandToggle, typeof i2.MdTableFoot, typeof i2.MdTableHead, typeof i2.MdTablePagination, typeof i2.MdTableRow, typeof i2.MdTableSortLabel, typeof i2.MdTableToolbar, typeof i2.MdTabs, typeof i2.MdTextField, typeof i2.MdTimePicker, typeof i2.MdToolbar, typeof i2.MdTooltip, typeof i2.MdTransferList, typeof i3.TextValueAccessor, typeof i4.SelectValueAccessor, typeof i5.MultiSelectValueAccessor, typeof i6.BooleanValueAccessor, typeof i7.RadioValueAccessor, typeof i8.NumericValueAccessor, typeof i9.SwitchValueAccessor], [typeof i2.MdAccordion, typeof i2.MdAccordionItem, typeof i2.MdAppBar, typeof i2.MdAreaChart, typeof i2.MdAutocomplete, typeof i2.MdAvatar, typeof i2.MdBadge, typeof i2.MdBarChart, typeof i2.MdBottomSheet, typeof i2.MdBreadcrumbItem, typeof i2.MdBreadcrumbs, typeof i2.MdButton, typeof i2.MdButtonGroup, typeof i2.MdCard, typeof i2.MdCheckbox, typeof i2.MdChip, typeof i2.MdColorPicker, typeof i2.MdDatePicker, typeof i2.MdDialog, typeof i2.MdDivider, typeof i2.MdFab, typeof i2.MdFabMenu, typeof i2.MdFabMenuItem, typeof i2.MdIconButton, typeof i2.MdLineChart, typeof i2.MdList, typeof i2.MdListItem, typeof i2.MdLoadingIndicator, typeof i2.MdMenu, typeof i2.MdMenuItem, typeof i2.MdMenuItemGroup, typeof i2.MdMeter, typeof i2.MdMultiSelect, typeof i2.MdNavigationBar, typeof i2.MdNavigationRail, typeof i2.MdNavigationRailTab, typeof i2.MdNavigationTab, typeof i2.MdNumberField, typeof i2.MdOrganizationChart, typeof i2.MdOtpField, typeof i2.MdPieChart, typeof i2.MdProgressIndicator, typeof i2.MdRadio, typeof i2.MdRating, typeof i2.MdRipple, typeof i2.MdSearch, typeof i2.MdSegmentedButton, typeof i2.MdSegmentedButtonSet, typeof i2.MdSelect, typeof i2.MdSelectOption, typeof i2.MdSideSheet, typeof i2.MdSkeleton, typeof i2.MdSlider, typeof i2.MdSnackbar, typeof i2.MdSparkline, typeof i2.MdSplitButton, typeof i2.MdStatusDot, typeof i2.MdStep, typeof i2.MdStepper, typeof i2.MdSubMenuItem, typeof i2.MdSwitch, typeof i2.MdTab, typeof i2.MdTabPanel, typeof i2.MdTabPanels, typeof i2.MdTable, typeof i2.MdTableBody, typeof i2.MdTableCell, typeof i2.MdTableContainer, typeof i2.MdTableExpandToggle, typeof i2.MdTableFoot, typeof i2.MdTableHead, typeof i2.MdTablePagination, typeof i2.MdTableRow, typeof i2.MdTableSortLabel, typeof i2.MdTableToolbar, typeof i2.MdTabs, typeof i2.MdTextField, typeof i2.MdTimePicker, typeof i2.MdToolbar, typeof i2.MdTooltip, typeof i2.MdTransferList, typeof i3.TextValueAccessor, typeof i4.SelectValueAccessor, typeof i5.MultiSelectValueAccessor, typeof i6.BooleanValueAccessor, typeof i7.RadioValueAccessor, typeof i8.NumericValueAccessor, typeof i9.SwitchValueAccessor]>;
71
72
  static ɵinj: i0.ɵɵInjectorDeclaration<AwcUiModule>;
72
73
  }
@@ -1,5 +1,5 @@
1
1
  import { ElementRef } from '@angular/core';
2
- import { ValueAccessor } from './value-accessor';
2
+ import { ValueAccessor } from './value-accessor.js';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class BooleanValueAccessor extends ValueAccessor {
5
5
  constructor(el: ElementRef);
@@ -1,2 +1,2 @@
1
- import * as d from './proxies';
1
+ import * as d from './proxies.js';
2
2
  export declare const DIRECTIVES: (typeof d.MdAccordion | typeof d.MdAccordionItem | typeof d.MdAppBar | typeof d.MdAreaChart | typeof d.MdAutocomplete | typeof d.MdAvatar | typeof d.MdBadge | typeof d.MdBarChart | typeof d.MdBottomSheet | typeof d.MdBreadcrumbItem | typeof d.MdBreadcrumbs | typeof d.MdButton | typeof d.MdButtonGroup | typeof d.MdCard | typeof d.MdCheckbox | typeof d.MdChip | typeof d.MdColorPicker | typeof d.MdDatePicker | typeof d.MdDialog | typeof d.MdDivider | typeof d.MdFab | typeof d.MdFabMenu | typeof d.MdFabMenuItem | typeof d.MdIconButton | typeof d.MdLineChart | typeof d.MdList | typeof d.MdListItem | typeof d.MdLoadingIndicator | typeof d.MdMenu | typeof d.MdMenuItem | typeof d.MdMenuItemGroup | typeof d.MdMeter | typeof d.MdMultiSelect | typeof d.MdNavigationBar | typeof d.MdNavigationRail | typeof d.MdNavigationRailTab | typeof d.MdNavigationTab | typeof d.MdNumberField | typeof d.MdOrganizationChart | typeof d.MdOtpField | typeof d.MdPieChart | typeof d.MdProgressIndicator | typeof d.MdRadio | typeof d.MdRating | typeof d.MdRipple | typeof d.MdSearch | typeof d.MdSegmentedButton | typeof d.MdSegmentedButtonSet | typeof d.MdSelect | typeof d.MdSelectOption | typeof d.MdSideSheet | typeof d.MdSkeleton | typeof d.MdSlider | typeof d.MdSnackbar | typeof d.MdSparkline | typeof d.MdSplitButton | typeof d.MdStatusDot | typeof d.MdStep | typeof d.MdStepper | typeof d.MdSubMenuItem | typeof d.MdSwitch | typeof d.MdTab | typeof d.MdTabPanel | typeof d.MdTabPanels | typeof d.MdTable | typeof d.MdTableBody | typeof d.MdTableCell | typeof d.MdTableContainer | typeof d.MdTableExpandToggle | typeof d.MdTableFoot | typeof d.MdTableHead | typeof d.MdTablePagination | typeof d.MdTableRow | typeof d.MdTableSortLabel | typeof d.MdTableToolbar | typeof d.MdTabs | typeof d.MdTextField | typeof d.MdTimePicker | typeof d.MdToolbar | typeof d.MdTooltip | typeof d.MdTransferList)[];
@@ -0,0 +1,10 @@
1
+ import { ElementRef } from '@angular/core';
2
+ import { ValueAccessor } from './value-accessor.js';
3
+ import * as i0 from "@angular/core";
4
+ /** Angular reset() writes null; a multi-select's empty value must remain an array. */
5
+ export declare class MultiSelectValueAccessor extends ValueAccessor {
6
+ constructor(el: ElementRef);
7
+ writeValue(value: string[] | null | undefined): void;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<MultiSelectValueAccessor, never>;
9
+ static ɵdir: i0.ɵɵDirectiveDeclaration<MultiSelectValueAccessor, "md-multi-select", never, {}, {}, never, never, true, never>;
10
+ }
@@ -1,5 +1,5 @@
1
1
  import { ElementRef } from '@angular/core';
2
- import { ValueAccessor } from './value-accessor';
2
+ import { ValueAccessor } from './value-accessor.js';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class NumericValueAccessor extends ValueAccessor {
5
5
  constructor(el: ElementRef);
@@ -519,7 +519,7 @@ export declare class MdColorPicker {
519
519
  protected el: HTMLElement;
520
520
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
521
521
  static ɵfac: i0.ɵɵFactoryDeclaration<MdColorPicker, never>;
522
- static ɵcmp: i0.ɵɵComponentDeclaration<MdColorPicker, "md-color-picker", never, { "alpha": { "alias": "alpha"; "required": false; }; "ariaLabelProp": { "alias": "ariaLabelProp"; "required": false; }; "density": { "alias": "density"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "dismissOnOutsideClick": { "alias": "dismissOnOutsideClick"; "required": false; }; "format": { "alias": "format"; "required": false; }; "open": { "alias": "open"; "required": false; }; "presets": { "alias": "presets"; "required": false; }; "showHex": { "alias": "showHex"; "required": false; }; "showInputs": { "alias": "showInputs"; "required": false; }; "value": { "alias": "value"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; }, {}, never, ["*"], true, never>;
522
+ static ɵcmp: i0.ɵɵComponentDeclaration<MdColorPicker, "md-color-picker", never, { "alpha": { "alias": "alpha"; "required": false; }; "ariaLabelProp": { "alias": "ariaLabelProp"; "required": false; }; "density": { "alias": "density"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "dismissOnOutsideClick": { "alias": "dismissOnOutsideClick"; "required": false; }; "format": { "alias": "format"; "required": false; }; "locale": { "alias": "locale"; "required": false; }; "open": { "alias": "open"; "required": false; }; "presets": { "alias": "presets"; "required": false; }; "showHex": { "alias": "showHex"; "required": false; }; "showInputs": { "alias": "showInputs"; "required": false; }; "value": { "alias": "value"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; }, {}, never, ["*"], true, never>;
523
523
  }
524
524
  export declare interface MdColorPicker extends Components.MdColorPicker {
525
525
  /**
@@ -967,7 +967,7 @@ export declare class MdNavigationBar {
967
967
  export declare interface MdNavigationBar extends Components.MdNavigationBar {
968
968
  /**
969
969
  * Emitted when the selected destination changes (user click,
970
- keyboard activation, or programmatic `select()` call).
970
+ keyboard activation, or programmatic `activeIndex` / `select()` update).
971
971
  Detail includes both the new and previous indices so listeners
972
972
  can short-circuit no-op reselects.
973
973
  */
@@ -1810,7 +1810,7 @@ export declare class MdTableSortLabel {
1810
1810
  protected el: HTMLElement;
1811
1811
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
1812
1812
  static ɵfac: i0.ɵɵFactoryDeclaration<MdTableSortLabel, never>;
1813
- static ɵcmp: i0.ɵɵComponentDeclaration<MdTableSortLabel, "md-table-sort-label", never, { "active": { "alias": "active"; "required": false; }; "column": { "alias": "column"; "required": false; }; "defaultOrder": { "alias": "defaultOrder"; "required": false; }; "density": { "alias": "density"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "iconPosition": { "alias": "iconPosition"; "required": false; }; "inactiveIcon": { "alias": "inactiveIcon"; "required": false; }; "order": { "alias": "order"; "required": false; }; }, {}, never, ["*"], true, never>;
1813
+ static ɵcmp: i0.ɵɵComponentDeclaration<MdTableSortLabel, "md-table-sort-label", never, { "active": { "alias": "active"; "required": false; }; "column": { "alias": "column"; "required": false; }; "defaultOrder": { "alias": "defaultOrder"; "required": false; }; "density": { "alias": "density"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "iconPosition": { "alias": "iconPosition"; "required": false; }; "inactiveIcon": { "alias": "inactiveIcon"; "required": false; }; "order": { "alias": "order"; "required": false; }; "sortedAscendingLabel": { "alias": "sortedAscendingLabel"; "required": false; }; "sortedDescendingLabel": { "alias": "sortedDescendingLabel"; "required": false; }; }, {}, never, ["*"], true, never>;
1814
1814
  }
1815
1815
  export declare interface MdTableSortLabel extends Components.MdTableSortLabel {
1816
1816
  /**
@@ -1851,7 +1851,7 @@ export declare class MdTextField {
1851
1851
  protected el: HTMLElement;
1852
1852
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
1853
1853
  static ɵfac: i0.ɵɵFactoryDeclaration<MdTextField, never>;
1854
- static ɵcmp: i0.ɵɵComponentDeclaration<MdTextField, "md-text-field", never, { "appearFocused": { "alias": "appearFocused"; "required": false; }; "autoCapitalize": { "alias": "autoCapitalize"; "required": false; }; "autocomplete": { "alias": "autocomplete"; "required": false; }; "chipsWrap": { "alias": "chipsWrap"; "required": false; }; "clearable": { "alias": "clearable"; "required": false; }; "debounce": { "alias": "debounce"; "required": false; }; "density": { "alias": "density"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "enterKeyHint": { "alias": "enterKeyHint"; "required": false; }; "error": { "alias": "error"; "required": false; }; "errorText": { "alias": "errorText"; "required": false; }; "focusBorderWidth": { "alias": "focusBorderWidth"; "required": false; }; "formatOn": { "alias": "formatOn"; "required": false; }; "formatter": { "alias": "formatter"; "required": false; }; "inputAriaAutocomplete": { "alias": "inputAriaAutocomplete"; "required": false; }; "inputExpanded": { "alias": "inputExpanded"; "required": false; }; "inputMode": { "alias": "inputMode"; "required": false; }; "inputRole": { "alias": "inputRole"; "required": false; }; "label": { "alias": "label"; "required": false; }; "max": { "alias": "max"; "required": false; }; "maxLength": { "alias": "maxLength"; "required": false; }; "min": { "alias": "min"; "required": false; }; "minLength": { "alias": "minLength"; "required": false; }; "multiline": { "alias": "multiline"; "required": false; }; "name": { "alias": "name"; "required": false; }; "parser": { "alias": "parser"; "required": false; }; "passwordToggle": { "alias": "passwordToggle"; "required": false; }; "pattern": { "alias": "pattern"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "prefixText": { "alias": "prefixText"; "required": false; }; "readOnly": { "alias": "readOnly"; "required": false; }; "required": { "alias": "required"; "required": false; }; "reserveSupportingSpace": { "alias": "reserveSupportingSpace"; "required": false; }; "restrict": { "alias": "restrict"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; "speechLang": { "alias": "speechLang"; "required": false; }; "speechToText": { "alias": "speechToText"; "required": false; }; "spellcheck": { "alias": "spellcheck"; "required": false; }; "step": { "alias": "step"; "required": false; }; "suffixText": { "alias": "suffixText"; "required": false; }; "supportingText": { "alias": "supportingText"; "required": false; }; "throttle": { "alias": "throttle"; "required": false; }; "type": { "alias": "type"; "required": false; }; "value": { "alias": "value"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; }, {}, never, ["*"], true, never>;
1854
+ static ɵcmp: i0.ɵɵComponentDeclaration<MdTextField, "md-text-field", never, { "appearFocused": { "alias": "appearFocused"; "required": false; }; "autoCapitalize": { "alias": "autoCapitalize"; "required": false; }; "autocomplete": { "alias": "autocomplete"; "required": false; }; "chipsWrap": { "alias": "chipsWrap"; "required": false; }; "clearable": { "alias": "clearable"; "required": false; }; "debounce": { "alias": "debounce"; "required": false; }; "density": { "alias": "density"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "enterKeyHint": { "alias": "enterKeyHint"; "required": false; }; "error": { "alias": "error"; "required": false; }; "errorText": { "alias": "errorText"; "required": false; }; "focusBorderWidth": { "alias": "focusBorderWidth"; "required": false; }; "formatOn": { "alias": "formatOn"; "required": false; }; "formatter": { "alias": "formatter"; "required": false; }; "hidePasswordLabel": { "alias": "hidePasswordLabel"; "required": false; }; "inputAriaAutocomplete": { "alias": "inputAriaAutocomplete"; "required": false; }; "inputExpanded": { "alias": "inputExpanded"; "required": false; }; "inputMode": { "alias": "inputMode"; "required": false; }; "inputRole": { "alias": "inputRole"; "required": false; }; "label": { "alias": "label"; "required": false; }; "max": { "alias": "max"; "required": false; }; "maxLength": { "alias": "maxLength"; "required": false; }; "min": { "alias": "min"; "required": false; }; "minLength": { "alias": "minLength"; "required": false; }; "multiline": { "alias": "multiline"; "required": false; }; "name": { "alias": "name"; "required": false; }; "parser": { "alias": "parser"; "required": false; }; "passwordToggle": { "alias": "passwordToggle"; "required": false; }; "pattern": { "alias": "pattern"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "prefixText": { "alias": "prefixText"; "required": false; }; "readOnly": { "alias": "readOnly"; "required": false; }; "required": { "alias": "required"; "required": false; }; "reserveSupportingSpace": { "alias": "reserveSupportingSpace"; "required": false; }; "restrict": { "alias": "restrict"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; "showPasswordLabel": { "alias": "showPasswordLabel"; "required": false; }; "speechLang": { "alias": "speechLang"; "required": false; }; "speechToText": { "alias": "speechToText"; "required": false; }; "spellcheck": { "alias": "spellcheck"; "required": false; }; "step": { "alias": "step"; "required": false; }; "suffixText": { "alias": "suffixText"; "required": false; }; "supportingText": { "alias": "supportingText"; "required": false; }; "throttle": { "alias": "throttle"; "required": false; }; "type": { "alias": "type"; "required": false; }; "value": { "alias": "value"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; }, {}, never, ["*"], true, never>;
1855
1855
  }
1856
1856
  export declare interface MdTextField extends Components.MdTextField {
1857
1857
  mdInput: EventEmitter<CustomEvent<string>>;
@@ -1,8 +1,39 @@
1
- import { ElementRef } from '@angular/core';
2
- import { ValueAccessor } from './value-accessor';
1
+ import { ElementRef, Injector, OnDestroy, OnInit } from '@angular/core';
2
+ import { ValueAccessor } from './value-accessor.js';
3
3
  import * as i0 from "@angular/core";
4
- export declare class RadioValueAccessor extends ValueAccessor {
5
- constructor(el: ElementRef);
4
+ /** Coordinates radios that share an Angular control or a named form group. */
5
+ export declare class RadioValueAccessorRegistry {
6
+ private readonly accessors;
7
+ add(accessor: RadioValueAccessor): void;
8
+ remove(accessor: RadioValueAccessor): void;
9
+ select(accessor: RadioValueAccessor): void;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<RadioValueAccessorRegistry, never>;
11
+ static ɵprov: i0.ɵɵInjectableDeclaration<RadioValueAccessorRegistry>;
12
+ }
13
+ /**
14
+ * A radio's value identifies its option; the form model chooses which option
15
+ * is checked. Kept outside valueAccessorConfigs so Stencil cannot replace this
16
+ * with its generic accessor, which writes the model over the option's value.
17
+ */
18
+ export declare class RadioValueAccessor extends ValueAccessor implements OnInit, OnDestroy {
19
+ private registry;
20
+ private injector;
21
+ private control;
22
+ private hasModelValue;
23
+ private optionValue;
24
+ private optionName;
25
+ constructor(el: ElementRef, registry: RadioValueAccessorRegistry, injector: Injector);
26
+ get value(): unknown;
27
+ set value(value: unknown);
28
+ get name(): string;
29
+ set name(name: string);
30
+ ngOnInit(): void;
31
+ ngOnDestroy(): void;
32
+ writeValue(value: unknown): void;
33
+ private updateChecked;
34
+ handleRadioChange(event: Event): void;
35
+ uncheck(selectedValue: unknown): void;
36
+ isSameGroup(other: RadioValueAccessor): boolean;
6
37
  static ɵfac: i0.ɵɵFactoryDeclaration<RadioValueAccessor, never>;
7
- static ɵdir: i0.ɵɵDirectiveDeclaration<RadioValueAccessor, "md-radio", never, {}, {}, never, never, true, never>;
38
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RadioValueAccessor, "md-radio", never, { "value": { "alias": "value"; "required": false; }; "name": { "alias": "name"; "required": false; }; }, {}, never, never, true, never>;
8
39
  }
@@ -1,8 +1,8 @@
1
1
  import { ElementRef } from '@angular/core';
2
- import { ValueAccessor } from './value-accessor';
2
+ import { ValueAccessor } from './value-accessor.js';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class SelectValueAccessor extends ValueAccessor {
5
5
  constructor(el: ElementRef);
6
6
  static ɵfac: i0.ɵɵFactoryDeclaration<SelectValueAccessor, never>;
7
- static ɵdir: i0.ɵɵDirectiveDeclaration<SelectValueAccessor, "md-select, md-multi-select, md-date-picker, md-time-picker", never, {}, {}, never, never, true, never>;
7
+ static ɵdir: i0.ɵɵDirectiveDeclaration<SelectValueAccessor, "md-select, md-date-picker, md-time-picker", never, {}, {}, never, never, true, never>;
8
8
  }
@@ -1,5 +1,5 @@
1
1
  import { ElementRef } from '@angular/core';
2
- import { ValueAccessor } from './value-accessor';
2
+ import { ValueAccessor } from './value-accessor.js';
3
3
  import * as i0 from "@angular/core";
4
4
  /**
5
5
  * ControlValueAccessor for `md-switch`.
@@ -1,5 +1,5 @@
1
1
  import { ElementRef } from '@angular/core';
2
- import { ValueAccessor } from './value-accessor';
2
+ import { ValueAccessor } from './value-accessor.js';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class TextValueAccessor extends ValueAccessor {
5
5
  constructor(el: ElementRef);
@@ -5,6 +5,7 @@ import { DIRECTIVES } from './directives';
5
5
  import { TextValueAccessor } from './directives/text-value-accessor';
6
6
  import { SelectValueAccessor } from './directives/select-value-accessor';
7
7
  import { BooleanValueAccessor } from './directives/boolean-value-accessor';
8
+ import { MultiSelectValueAccessor } from './directives/multi-select-value-accessor';
8
9
  import { RadioValueAccessor } from './directives/radio-value-accessor';
9
10
  import { NumericValueAccessor } from './directives/number-value-accessor';
10
11
  import { SwitchValueAccessor } from './directives/switch-value-accessor';
@@ -19,6 +20,7 @@ import * as i1 from "./directives/proxies";
19
20
  export const VALUE_ACCESSORS = [
20
21
  TextValueAccessor,
21
22
  SelectValueAccessor,
23
+ MultiSelectValueAccessor,
22
24
  BooleanValueAccessor,
23
25
  RadioValueAccessor,
24
26
  NumericValueAccessor,
@@ -44,10 +46,9 @@ export const VALUE_ACCESSORS = [
44
46
  * })
45
47
  * export class AppModule {}
46
48
  *
47
- * // Standalone app
48
- * bootstrapApplication(AppComponent, {
49
- * providers: [provideAwcUi(), importProvidersFrom(AwcUiModule)],
50
- * });
49
+ * // Raw custom elements without imported proxies:
50
+ * // AppComponent uses CUSTOM_ELEMENTS_SCHEMA; add the loader at bootstrap.
51
+ * bootstrapApplication(AppComponent, { providers: [provideAwcUi()] });
51
52
  *
52
53
  * SSR-safe: it is a no-op when `window` is not available.
53
54
  */
@@ -83,11 +84,13 @@ export class AwcUiModule {
83
84
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AwcUiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
84
85
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: AwcUiModule, imports: [CommonModule, i1.MdAccordion, i1.MdAccordionItem, i1.MdAppBar, i1.MdAreaChart, i1.MdAutocomplete, i1.MdAvatar, i1.MdBadge, i1.MdBarChart, i1.MdBottomSheet, i1.MdBreadcrumbItem, i1.MdBreadcrumbs, i1.MdButton, i1.MdButtonGroup, i1.MdCard, i1.MdCheckbox, i1.MdChip, i1.MdColorPicker, i1.MdDatePicker, i1.MdDialog, i1.MdDivider, i1.MdFab, i1.MdFabMenu, i1.MdFabMenuItem, i1.MdIconButton, i1.MdLineChart, i1.MdList, i1.MdListItem, i1.MdLoadingIndicator, i1.MdMenu, i1.MdMenuItem, i1.MdMenuItemGroup, i1.MdMeter, i1.MdMultiSelect, i1.MdNavigationBar, i1.MdNavigationRail, i1.MdNavigationRailTab, i1.MdNavigationTab, i1.MdNumberField, i1.MdOrganizationChart, i1.MdOtpField, i1.MdPieChart, i1.MdProgressIndicator, i1.MdRadio, i1.MdRating, i1.MdRipple, i1.MdSearch, i1.MdSegmentedButton, i1.MdSegmentedButtonSet, i1.MdSelect, i1.MdSelectOption, i1.MdSideSheet, i1.MdSkeleton, i1.MdSlider, i1.MdSnackbar, i1.MdSparkline, i1.MdSplitButton, i1.MdStatusDot, i1.MdStep, i1.MdStepper, i1.MdSubMenuItem, i1.MdSwitch, i1.MdTab, i1.MdTabPanel, i1.MdTabPanels, i1.MdTable, i1.MdTableBody, i1.MdTableCell, i1.MdTableContainer, i1.MdTableExpandToggle, i1.MdTableFoot, i1.MdTableHead, i1.MdTablePagination, i1.MdTableRow, i1.MdTableSortLabel, i1.MdTableToolbar, i1.MdTabs, i1.MdTextField, i1.MdTimePicker, i1.MdToolbar, i1.MdTooltip, i1.MdTransferList, TextValueAccessor,
85
86
  SelectValueAccessor,
87
+ MultiSelectValueAccessor,
86
88
  BooleanValueAccessor,
87
89
  RadioValueAccessor,
88
90
  NumericValueAccessor,
89
91
  SwitchValueAccessor], exports: [i1.MdAccordion, i1.MdAccordionItem, i1.MdAppBar, i1.MdAreaChart, i1.MdAutocomplete, i1.MdAvatar, i1.MdBadge, i1.MdBarChart, i1.MdBottomSheet, i1.MdBreadcrumbItem, i1.MdBreadcrumbs, i1.MdButton, i1.MdButtonGroup, i1.MdCard, i1.MdCheckbox, i1.MdChip, i1.MdColorPicker, i1.MdDatePicker, i1.MdDialog, i1.MdDivider, i1.MdFab, i1.MdFabMenu, i1.MdFabMenuItem, i1.MdIconButton, i1.MdLineChart, i1.MdList, i1.MdListItem, i1.MdLoadingIndicator, i1.MdMenu, i1.MdMenuItem, i1.MdMenuItemGroup, i1.MdMeter, i1.MdMultiSelect, i1.MdNavigationBar, i1.MdNavigationRail, i1.MdNavigationRailTab, i1.MdNavigationTab, i1.MdNumberField, i1.MdOrganizationChart, i1.MdOtpField, i1.MdPieChart, i1.MdProgressIndicator, i1.MdRadio, i1.MdRating, i1.MdRipple, i1.MdSearch, i1.MdSegmentedButton, i1.MdSegmentedButtonSet, i1.MdSelect, i1.MdSelectOption, i1.MdSideSheet, i1.MdSkeleton, i1.MdSlider, i1.MdSnackbar, i1.MdSparkline, i1.MdSplitButton, i1.MdStatusDot, i1.MdStep, i1.MdStepper, i1.MdSubMenuItem, i1.MdSwitch, i1.MdTab, i1.MdTabPanel, i1.MdTabPanels, i1.MdTable, i1.MdTableBody, i1.MdTableCell, i1.MdTableContainer, i1.MdTableExpandToggle, i1.MdTableFoot, i1.MdTableHead, i1.MdTablePagination, i1.MdTableRow, i1.MdTableSortLabel, i1.MdTableToolbar, i1.MdTabs, i1.MdTextField, i1.MdTimePicker, i1.MdToolbar, i1.MdTooltip, i1.MdTransferList, TextValueAccessor,
90
92
  SelectValueAccessor,
93
+ MultiSelectValueAccessor,
91
94
  BooleanValueAccessor,
92
95
  RadioValueAccessor,
93
96
  NumericValueAccessor,
@@ -102,4 +105,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
102
105
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
103
106
  }]
104
107
  }] });
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdjLXVpLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hd2MtdWkubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsc0JBQXNCLEVBQUUsUUFBUSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7QUFFekU7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUc7SUFDN0IsaUJBQWlCO0lBQ2pCLG1CQUFtQjtJQUNuQixvQkFBb0I7SUFDcEIsa0JBQWtCO0lBQ2xCLG9CQUFvQjtJQUNwQixtQkFBbUI7Q0FDcEIsQ0FBQztBQUVGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBCRztBQUNILE1BQU0sVUFBVSxZQUFZO0lBQzFCLE9BQU87UUFDTCxPQUFPLEVBQUUsZUFBZTtRQUN4QixLQUFLLEVBQUUsSUFBSTtRQUNYLFFBQVEsRUFBRSxHQUFrQixFQUFFLENBQzVCLE9BQU8sTUFBTSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUU7S0FDbkYsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFNSCxNQUFNLE9BQU8sV0FBVzsrR0FBWCxXQUFXO2dIQUFYLFdBQVcsWUFKWixZQUFZLHV5Q0FsRXRCLGlCQUFpQjtZQUNqQixtQkFBbUI7WUFDbkIsb0JBQW9CO1lBQ3BCLGtCQUFrQjtZQUNsQixvQkFBb0I7WUFDcEIsbUJBQW1CLGt6Q0FMbkIsaUJBQWlCO1lBQ2pCLG1CQUFtQjtZQUNuQixvQkFBb0I7WUFDcEIsa0JBQWtCO1lBQ2xCLG9CQUFvQjtZQUNwQixtQkFBbUI7Z0hBaUVSLFdBQVcsWUFKWixZQUFZOzs0RkFJWCxXQUFXO2tCQUx2QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxHQUFHLFVBQVUsRUFBRSxHQUFHLGVBQWUsQ0FBQztvQkFDMUQsT0FBTyxFQUFFLENBQUMsR0FBRyxVQUFVLEVBQUUsR0FBRyxlQUFlLENBQUM7b0JBQzVDLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFQUF9JTklUSUFMSVpFUiwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgTmdNb2R1bGUsIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudHMgfSBmcm9tICdAYXdjLXVpL2NvcmUvbG9hZGVyJztcblxuaW1wb3J0IHsgRElSRUNUSVZFUyB9IGZyb20gJy4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBUZXh0VmFsdWVBY2Nlc3NvciB9IGZyb20gJy4vZGlyZWN0aXZlcy90ZXh0LXZhbHVlLWFjY2Vzc29yJztcbmltcG9ydCB7IFNlbGVjdFZhbHVlQWNjZXNzb3IgfSBmcm9tICcuL2RpcmVjdGl2ZXMvc2VsZWN0LXZhbHVlLWFjY2Vzc29yJztcbmltcG9ydCB7IEJvb2xlYW5WYWx1ZUFjY2Vzc29yIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2Jvb2xlYW4tdmFsdWUtYWNjZXNzb3InO1xuaW1wb3J0IHsgUmFkaW9WYWx1ZUFjY2Vzc29yIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3JhZGlvLXZhbHVlLWFjY2Vzc29yJztcbmltcG9ydCB7IE51bWVyaWNWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnLi9kaXJlY3RpdmVzL251bWJlci12YWx1ZS1hY2Nlc3Nvcic7XG5pbXBvcnQgeyBTd2l0Y2hWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3N3aXRjaC12YWx1ZS1hY2Nlc3Nvcic7XG5cbi8qKlxuICogQ29udHJvbFZhbHVlQWNjZXNzb3IgZGlyZWN0aXZlcywgc28gYFsobmdNb2RlbCldYCBhbmQgYGZvcm1Db250cm9sTmFtZWAgYmluZFxuICogdG8gQVdDIFVJIGlucHV0cy4gRGVjbGFyZWQgaGVyZSByYXRoZXIgdGhhbiBpbiBgRElSRUNUSVZFU2AgYmVjYXVzZSB0aGF0XG4gKiBhcnJheSBpcyBHRU5FUkFURUQgYnkgdGhlIFN0ZW5jaWwgb3V0cHV0IHRhcmdldCBvbiBldmVyeSBidWlsZCBhbmQgd291bGRcbiAqIGRpc2NhcmQgYW55dGhpbmcgYWRkZWQgdG8gaXQuXG4gKi9cbmV4cG9ydCBjb25zdCBWQUxVRV9BQ0NFU1NPUlMgPSBbXG4gIFRleHRWYWx1ZUFjY2Vzc29yLFxuICBTZWxlY3RWYWx1ZUFjY2Vzc29yLFxuICBCb29sZWFuVmFsdWVBY2Nlc3NvcixcbiAgUmFkaW9WYWx1ZUFjY2Vzc29yLFxuICBOdW1lcmljVmFsdWVBY2Nlc3NvcixcbiAgU3dpdGNoVmFsdWVBY2Nlc3Nvcixcbl07XG5cbi8qKlxuICogUmVnaXN0ZXJzIEFMTCBBV0MgVUkgY3VzdG9tIGVsZW1lbnRzICh0aGUgU3RlbmNpbCBsYXp5IGxvYWRlcikgZHVyaW5nXG4gKiBhcHBsaWNhdGlvbiBib290c3RyYXAuXG4gKlxuICogU2luY2UgdGhlIHByb3hpZXMgYmVjYW1lIHN0YW5kYWxvbmUgKGVhY2ggb25lIHN0YXRpY2FsbHkgaW1wb3J0cyBhbmRcbiAqIHJlZ2lzdGVycyBpdHMgb3duIGVsZW1lbnQpLCB0aGlzIHByb3ZpZGVyIGlzIE5PIExPTkdFUiBSRVFVSVJFRCDigJQgaW1wb3J0aW5nXG4gKiBhIHByb3h5IGlzIGVub3VnaC4gSXQgaXMga2VwdCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgYW5kIGZvciBhcHBzIHRoYXRcbiAqIHVzZSByYXcgYG1kLSpgIHRhZ3Mgd2l0aG91dCBpbXBvcnRpbmcgdGhlIGNvcnJlc3BvbmRpbmcgcHJveHkuIEVsZW1lbnRcbiAqIGRlZmluaXRpb24gaXMgaWRlbXBvdGVudCwgc28gdXNpbmcgYm90aCBtZWNoYW5pc21zIHRvZ2V0aGVyIGlzIGhhcm1sZXNzIOKAlFxuICogYnV0IGFkZGluZyB0aGlzIHByb3ZpZGVyIGZvcmNlcyB0aGUgd2hvbGUgbGF6eS1sb2FkZXIgcmVnaXN0cnkgaW50byB0aGVcbiAqIGJ1bmRsZSwgc28gcHJlZmVyIG9taXR0aW5nIGl0LlxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBOZ01vZHVsZSBhcHBcbiAqIEBOZ01vZHVsZSh7XG4gKiAgIGltcG9ydHM6IFtBd2NVaU1vZHVsZV0sXG4gKiAgIHByb3ZpZGVyczogW3Byb3ZpZGVBd2NVaSgpXSxcbiAqIH0pXG4gKiBleHBvcnQgY2xhc3MgQXBwTW9kdWxlIHt9XG4gKlxuICogLy8gU3RhbmRhbG9uZSBhcHBcbiAqIGJvb3RzdHJhcEFwcGxpY2F0aW9uKEFwcENvbXBvbmVudCwge1xuICogICBwcm92aWRlcnM6IFtwcm92aWRlQXdjVWkoKSwgaW1wb3J0UHJvdmlkZXJzRnJvbShBd2NVaU1vZHVsZSldLFxuICogfSk7XG4gKlxuICogU1NSLXNhZmU6IGl0IGlzIGEgbm8tb3Agd2hlbiBgd2luZG93YCBpcyBub3QgYXZhaWxhYmxlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUF3Y1VpKCk6IFByb3ZpZGVyIHtcbiAgcmV0dXJuIHtcbiAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG4gICAgbXVsdGk6IHRydWUsXG4gICAgdXNlVmFsdWU6ICgpOiBQcm9taXNlPHZvaWQ+ID0+XG4gICAgICB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyA/IGRlZmluZUN1c3RvbUVsZW1lbnRzKHdpbmRvdykgOiBQcm9taXNlLnJlc29sdmUoKSxcbiAgfTtcbn1cblxuLyoqXG4gKiBBd2NVaU1vZHVsZVxuICpcbiAqIENvbnZlbmllbmNlIG1vZHVsZSBleHBvcnRpbmcgQUxMIEFXQyBVSSBjb21wb25lbnQgcHJveGllcyAodHlwZWQgaW5wdXRzLFxuICogb3V0cHV0cyBhbmQgbWV0aG9kcykgcGx1cyB0aGUgZm9ybSB2YWx1ZSBhY2Nlc3NvcnMuXG4gKlxuICogTk9URTogdGhlIHByb3hpZXMgYXJlIHN0YW5kYWxvbmUgY29tcG9uZW50cyB0aGF0IHJlZ2lzdGVyIHRoZWlyIG93biBjdXN0b21cbiAqIGVsZW1lbnQgb24gaW1wb3J0IOKAlCBubyBsb2FkZXIgYm9vdHN0cmFwIG5lZWRlZC4gRm9yIHRoZSBzbWFsbGVzdCBidW5kbGVzLFxuICogcHJlZmVyIGltcG9ydGluZyBpbmRpdmlkdWFsIGNvbXBvbmVudHMgb3ZlciB0aGlzIG1vZHVsZTogdGhpcyBtb2R1bGVcbiAqIHJlZmVyZW5jZXMgYWxsIDgxIHByb3hpZXMsIHNvIHRoZSB3aG9sZSBjb21wb25lbnQgc2V0IHNoaXBzIHdpdGggeW91ciBhcHAuXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFNtYWxsZXN0IGJ1bmRsZSDigJQgc3RhbmRhbG9uZSBjb21wb25lbnQgaW1wb3J0cyBleGFjdGx5IHdoYXQgaXQgdXNlczpcbiAqIGltcG9ydCB7IE1kQnV0dG9uIH0gZnJvbSAnQGF3Yy11aS9hbmd1bGFyJztcbiAqIEBDb21wb25lbnQoeyBzdGFuZGFsb25lOiB0cnVlLCBpbXBvcnRzOiBbTWRCdXR0b25dLCAuLi4gfSlcbiAqXG4gKiAvLyBDb252ZW5pZW5jZSDigJQgZXZlcnl0aGluZyBhdCBvbmNlIChzaGlwcyBhbGwgY29tcG9uZW50cyk6XG4gKiBpbXBvcnQgeyBBd2NVaU1vZHVsZSB9IGZyb20gJ0Bhd2MtdWkvYW5ndWxhcic7XG4gKiBATmdNb2R1bGUoeyBpbXBvcnRzOiBbQXdjVWlNb2R1bGUsIC4uLl0gfSlcbiAqIGV4cG9ydCBjbGFzcyBBcHBNb2R1bGUge31cbiAqL1xuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgLi4uRElSRUNUSVZFUywgLi4uVkFMVUVfQUNDRVNTT1JTXSxcbiAgZXhwb3J0czogWy4uLkRJUkVDVElWRVMsIC4uLlZBTFVFX0FDQ0VTU09SU10sXG4gIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgQXdjVWlNb2R1bGUge31cbiJdfQ==
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdjLXVpLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hd2MtdWkubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsc0JBQXNCLEVBQUUsUUFBUSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7QUFFekU7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUc7SUFDN0IsaUJBQWlCO0lBQ2pCLG1CQUFtQjtJQUNuQix3QkFBd0I7SUFDeEIsb0JBQW9CO0lBQ3BCLGtCQUFrQjtJQUNsQixvQkFBb0I7SUFDcEIsbUJBQW1CO0NBQ3BCLENBQUM7QUFFRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlCRztBQUNILE1BQU0sVUFBVSxZQUFZO0lBQzFCLE9BQU87UUFDTCxPQUFPLEVBQUUsZUFBZTtRQUN4QixLQUFLLEVBQUUsSUFBSTtRQUNYLFFBQVEsRUFBRSxHQUFrQixFQUFFLENBQzVCLE9BQU8sTUFBTSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUU7S0FDbkYsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFNSCxNQUFNLE9BQU8sV0FBVzsrR0FBWCxXQUFXO2dIQUFYLFdBQVcsWUFKWixZQUFZLHV5Q0FsRXRCLGlCQUFpQjtZQUNqQixtQkFBbUI7WUFDbkIsd0JBQXdCO1lBQ3hCLG9CQUFvQjtZQUNwQixrQkFBa0I7WUFDbEIsb0JBQW9CO1lBQ3BCLG1CQUFtQixrekNBTm5CLGlCQUFpQjtZQUNqQixtQkFBbUI7WUFDbkIsd0JBQXdCO1lBQ3hCLG9CQUFvQjtZQUNwQixrQkFBa0I7WUFDbEIsb0JBQW9CO1lBQ3BCLG1CQUFtQjtnSEFnRVIsV0FBVyxZQUpaLFlBQVk7OzRGQUlYLFdBQVc7a0JBTHZCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLEdBQUcsVUFBVSxFQUFFLEdBQUcsZUFBZSxDQUFDO29CQUMxRCxPQUFPLEVBQUUsQ0FBQyxHQUFHLFVBQVUsRUFBRSxHQUFHLGVBQWUsQ0FBQztvQkFDNUMsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ2xDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBOZ01vZHVsZSwgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50cyB9IGZyb20gJ0Bhd2MtdWkvY29yZS9sb2FkZXInO1xuXG5pbXBvcnQgeyBESVJFQ1RJVkVTIH0gZnJvbSAnLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7IFRleHRWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3RleHQtdmFsdWUtYWNjZXNzb3InO1xuaW1wb3J0IHsgU2VsZWN0VmFsdWVBY2Nlc3NvciB9IGZyb20gJy4vZGlyZWN0aXZlcy9zZWxlY3QtdmFsdWUtYWNjZXNzb3InO1xuaW1wb3J0IHsgQm9vbGVhblZhbHVlQWNjZXNzb3IgfSBmcm9tICcuL2RpcmVjdGl2ZXMvYm9vbGVhbi12YWx1ZS1hY2Nlc3Nvcic7XG5pbXBvcnQgeyBNdWx0aVNlbGVjdFZhbHVlQWNjZXNzb3IgfSBmcm9tICcuL2RpcmVjdGl2ZXMvbXVsdGktc2VsZWN0LXZhbHVlLWFjY2Vzc29yJztcbmltcG9ydCB7IFJhZGlvVmFsdWVBY2Nlc3NvciB9IGZyb20gJy4vZGlyZWN0aXZlcy9yYWRpby12YWx1ZS1hY2Nlc3Nvcic7XG5pbXBvcnQgeyBOdW1lcmljVmFsdWVBY2Nlc3NvciB9IGZyb20gJy4vZGlyZWN0aXZlcy9udW1iZXItdmFsdWUtYWNjZXNzb3InO1xuaW1wb3J0IHsgU3dpdGNoVmFsdWVBY2Nlc3NvciB9IGZyb20gJy4vZGlyZWN0aXZlcy9zd2l0Y2gtdmFsdWUtYWNjZXNzb3InO1xuXG4vKipcbiAqIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGRpcmVjdGl2ZXMsIHNvIGBbKG5nTW9kZWwpXWAgYW5kIGBmb3JtQ29udHJvbE5hbWVgIGJpbmRcbiAqIHRvIEFXQyBVSSBpbnB1dHMuIERlY2xhcmVkIGhlcmUgcmF0aGVyIHRoYW4gaW4gYERJUkVDVElWRVNgIGJlY2F1c2UgdGhhdFxuICogYXJyYXkgaXMgR0VORVJBVEVEIGJ5IHRoZSBTdGVuY2lsIG91dHB1dCB0YXJnZXQgb24gZXZlcnkgYnVpbGQgYW5kIHdvdWxkXG4gKiBkaXNjYXJkIGFueXRoaW5nIGFkZGVkIHRvIGl0LlxuICovXG5leHBvcnQgY29uc3QgVkFMVUVfQUNDRVNTT1JTID0gW1xuICBUZXh0VmFsdWVBY2Nlc3NvcixcbiAgU2VsZWN0VmFsdWVBY2Nlc3NvcixcbiAgTXVsdGlTZWxlY3RWYWx1ZUFjY2Vzc29yLFxuICBCb29sZWFuVmFsdWVBY2Nlc3NvcixcbiAgUmFkaW9WYWx1ZUFjY2Vzc29yLFxuICBOdW1lcmljVmFsdWVBY2Nlc3NvcixcbiAgU3dpdGNoVmFsdWVBY2Nlc3Nvcixcbl07XG5cbi8qKlxuICogUmVnaXN0ZXJzIEFMTCBBV0MgVUkgY3VzdG9tIGVsZW1lbnRzICh0aGUgU3RlbmNpbCBsYXp5IGxvYWRlcikgZHVyaW5nXG4gKiBhcHBsaWNhdGlvbiBib290c3RyYXAuXG4gKlxuICogU2luY2UgdGhlIHByb3hpZXMgYmVjYW1lIHN0YW5kYWxvbmUgKGVhY2ggb25lIHN0YXRpY2FsbHkgaW1wb3J0cyBhbmRcbiAqIHJlZ2lzdGVycyBpdHMgb3duIGVsZW1lbnQpLCB0aGlzIHByb3ZpZGVyIGlzIE5PIExPTkdFUiBSRVFVSVJFRCDigJQgaW1wb3J0aW5nXG4gKiBhIHByb3h5IGlzIGVub3VnaC4gSXQgaXMga2VwdCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgYW5kIGZvciBhcHBzIHRoYXRcbiAqIHVzZSByYXcgYG1kLSpgIHRhZ3Mgd2l0aG91dCBpbXBvcnRpbmcgdGhlIGNvcnJlc3BvbmRpbmcgcHJveHkuIEVsZW1lbnRcbiAqIGRlZmluaXRpb24gaXMgaWRlbXBvdGVudCwgc28gdXNpbmcgYm90aCBtZWNoYW5pc21zIHRvZ2V0aGVyIGlzIGhhcm1sZXNzIOKAlFxuICogYnV0IGFkZGluZyB0aGlzIHByb3ZpZGVyIGZvcmNlcyB0aGUgd2hvbGUgbGF6eS1sb2FkZXIgcmVnaXN0cnkgaW50byB0aGVcbiAqIGJ1bmRsZSwgc28gcHJlZmVyIG9taXR0aW5nIGl0LlxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBOZ01vZHVsZSBhcHBcbiAqIEBOZ01vZHVsZSh7XG4gKiAgIGltcG9ydHM6IFtBd2NVaU1vZHVsZV0sXG4gKiAgIHByb3ZpZGVyczogW3Byb3ZpZGVBd2NVaSgpXSxcbiAqIH0pXG4gKiBleHBvcnQgY2xhc3MgQXBwTW9kdWxlIHt9XG4gKlxuICogLy8gUmF3IGN1c3RvbSBlbGVtZW50cyB3aXRob3V0IGltcG9ydGVkIHByb3hpZXM6XG4gKiAvLyBBcHBDb21wb25lbnQgdXNlcyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BOyBhZGQgdGhlIGxvYWRlciBhdCBib290c3RyYXAuXG4gKiBib290c3RyYXBBcHBsaWNhdGlvbihBcHBDb21wb25lbnQsIHsgcHJvdmlkZXJzOiBbcHJvdmlkZUF3Y1VpKCldIH0pO1xuICpcbiAqIFNTUi1zYWZlOiBpdCBpcyBhIG5vLW9wIHdoZW4gYHdpbmRvd2AgaXMgbm90IGF2YWlsYWJsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVBd2NVaSgpOiBQcm92aWRlciB7XG4gIHJldHVybiB7XG4gICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxuICAgIG11bHRpOiB0cnVlLFxuICAgIHVzZVZhbHVlOiAoKTogUHJvbWlzZTx2b2lkPiA9PlxuICAgICAgdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgPyBkZWZpbmVDdXN0b21FbGVtZW50cyh3aW5kb3cpIDogUHJvbWlzZS5yZXNvbHZlKCksXG4gIH07XG59XG5cbi8qKlxuICogQXdjVWlNb2R1bGVcbiAqXG4gKiBDb252ZW5pZW5jZSBtb2R1bGUgZXhwb3J0aW5nIEFMTCBBV0MgVUkgY29tcG9uZW50IHByb3hpZXMgKHR5cGVkIGlucHV0cyxcbiAqIG91dHB1dHMgYW5kIG1ldGhvZHMpIHBsdXMgdGhlIGZvcm0gdmFsdWUgYWNjZXNzb3JzLlxuICpcbiAqIE5PVEU6IHRoZSBwcm94aWVzIGFyZSBzdGFuZGFsb25lIGNvbXBvbmVudHMgdGhhdCByZWdpc3RlciB0aGVpciBvd24gY3VzdG9tXG4gKiBlbGVtZW50IG9uIGltcG9ydCDigJQgbm8gbG9hZGVyIGJvb3RzdHJhcCBuZWVkZWQuIEZvciB0aGUgc21hbGxlc3QgYnVuZGxlcyxcbiAqIHByZWZlciBpbXBvcnRpbmcgaW5kaXZpZHVhbCBjb21wb25lbnRzIG92ZXIgdGhpcyBtb2R1bGU6IHRoaXMgbW9kdWxlXG4gKiByZWZlcmVuY2VzIGFsbCA4MSBwcm94aWVzLCBzbyB0aGUgd2hvbGUgY29tcG9uZW50IHNldCBzaGlwcyB3aXRoIHlvdXIgYXBwLlxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBTbWFsbGVzdCBidW5kbGUg4oCUIHN0YW5kYWxvbmUgY29tcG9uZW50IGltcG9ydHMgZXhhY3RseSB3aGF0IGl0IHVzZXM6XG4gKiBpbXBvcnQgeyBNZEJ1dHRvbiB9IGZyb20gJ0Bhd2MtdWkvYW5ndWxhcic7XG4gKiBAQ29tcG9uZW50KHsgc3RhbmRhbG9uZTogdHJ1ZSwgaW1wb3J0czogW01kQnV0dG9uXSwgLi4uIH0pXG4gKlxuICogLy8gQ29udmVuaWVuY2Ug4oCUIGV2ZXJ5dGhpbmcgYXQgb25jZSAoc2hpcHMgYWxsIGNvbXBvbmVudHMpOlxuICogaW1wb3J0IHsgQXdjVWlNb2R1bGUgfSBmcm9tICdAYXdjLXVpL2FuZ3VsYXInO1xuICogQE5nTW9kdWxlKHsgaW1wb3J0czogW0F3Y1VpTW9kdWxlLCAuLi5dIH0pXG4gKiBleHBvcnQgY2xhc3MgQXBwTW9kdWxlIHt9XG4gKi9cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIC4uLkRJUkVDVElWRVMsIC4uLlZBTFVFX0FDQ0VTU09SU10sXG4gIGV4cG9ydHM6IFsuLi5ESVJFQ1RJVkVTLCAuLi5WQUxVRV9BQ0NFU1NPUlNdLFxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIEF3Y1VpTW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,23 @@
1
+ import { Directive } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import { ValueAccessor } from './value-accessor';
4
+ import * as i0 from "@angular/core";
5
+ /** Angular reset() writes null; a multi-select's empty value must remain an array. */
6
+ export class MultiSelectValueAccessor extends ValueAccessor {
7
+ constructor(el) { super(el); }
8
+ writeValue(value) {
9
+ this.el.nativeElement.value = this.lastValue = value ?? [];
10
+ }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MultiSelectValueAccessor, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
12
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: MultiSelectValueAccessor, isStandalone: true, selector: "md-multi-select", host: { listeners: { "mdChange": "handleChangeEvent($event.target.value)" } }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: MultiSelectValueAccessor, multi: true }], usesInheritance: true, ngImport: i0 }); }
13
+ }
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MultiSelectValueAccessor, decorators: [{
15
+ type: Directive,
16
+ args: [{
17
+ selector: 'md-multi-select',
18
+ host: { '(mdChange)': 'handleChangeEvent($event.target.value)' },
19
+ providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: MultiSelectValueAccessor, multi: true }],
20
+ standalone: true,
21
+ }]
22
+ }], ctorParameters: () => [{ type: i0.ElementRef }] });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LXZhbHVlLWFjY2Vzc29yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RpcmVjdGl2ZXMvbXVsdGktc2VsZWN0LXZhbHVlLWFjY2Vzc29yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQUVqRCxzRkFBc0Y7QUFPdEYsTUFBTSxPQUFPLHdCQUF5QixTQUFRLGFBQWE7SUFDekQsWUFBWSxFQUFjLElBQUksS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVqQyxVQUFVLENBQUMsS0FBa0M7UUFDcEQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQztJQUM3RCxDQUFDOytHQUxVLHdCQUF3QjttR0FBeEIsd0JBQXdCLDZJQUh4QixDQUFDLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSx3QkFBd0IsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7OzRGQUdwRix3QkFBd0I7a0JBTnBDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsSUFBSSxFQUFFLEVBQUUsWUFBWSxFQUFFLHdDQUF3QyxFQUFFO29CQUNoRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLDBCQUEwQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztvQkFDL0YsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFZhbHVlQWNjZXNzb3IgfSBmcm9tICcuL3ZhbHVlLWFjY2Vzc29yJztcblxuLyoqIEFuZ3VsYXIgcmVzZXQoKSB3cml0ZXMgbnVsbDsgYSBtdWx0aS1zZWxlY3QncyBlbXB0eSB2YWx1ZSBtdXN0IHJlbWFpbiBhbiBhcnJheS4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ21kLW11bHRpLXNlbGVjdCcsXG4gIGhvc3Q6IHsgJyhtZENoYW5nZSknOiAnaGFuZGxlQ2hhbmdlRXZlbnQoJGV2ZW50LnRhcmdldC52YWx1ZSknIH0sXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsIHVzZUV4aXN0aW5nOiBNdWx0aVNlbGVjdFZhbHVlQWNjZXNzb3IsIG11bHRpOiB0cnVlIH1dLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBNdWx0aVNlbGVjdFZhbHVlQWNjZXNzb3IgZXh0ZW5kcyBWYWx1ZUFjY2Vzc29yIHtcbiAgY29uc3RydWN0b3IoZWw6IEVsZW1lbnRSZWYpIHsgc3VwZXIoZWwpOyB9XG5cbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nW10gfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnZhbHVlID0gdGhpcy5sYXN0VmFsdWUgPSB2YWx1ZSA/PyBbXTtcbiAgfVxufVxuIl19