@angular/material-experimental 13.3.0 → 13.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/esm2020/mdc-button/fab.mjs +8 -8
  2. package/esm2020/mdc-chips/chip-action.mjs +3 -2
  3. package/esm2020/mdc-chips/chip-edit-input.mjs +2 -2
  4. package/esm2020/mdc-chips/chip-grid.mjs +18 -5
  5. package/esm2020/mdc-chips/chip-input.mjs +6 -2
  6. package/esm2020/mdc-chips/chip-option.mjs +2 -2
  7. package/esm2020/mdc-chips/chip-row.mjs +2 -2
  8. package/esm2020/mdc-chips/chip-set.mjs +2 -4
  9. package/esm2020/mdc-chips/chip-text-control.mjs +1 -1
  10. package/esm2020/mdc-chips/chip.mjs +2 -2
  11. package/esm2020/mdc-core/option/option.mjs +2 -2
  12. package/esm2020/mdc-list/list-option.mjs +2 -2
  13. package/esm2020/mdc-menu/menu.mjs +3 -3
  14. package/esm2020/mdc-progress-bar/progress-bar.mjs +4 -1
  15. package/esm2020/mdc-radio/radio.mjs +3 -3
  16. package/esm2020/mdc-select/select.mjs +3 -3
  17. package/esm2020/mdc-slider/slider.mjs +35 -6
  18. package/esm2020/mdc-snack-bar/snack-bar-container.mjs +14 -8
  19. package/esm2020/mdc-table/table.mjs +2 -2
  20. package/esm2020/mdc-tabs/tab-header.mjs +2 -2
  21. package/esm2020/mdc-tabs/tab-nav-bar/tab-nav-bar.mjs +2 -2
  22. package/esm2020/version.mjs +1 -1
  23. package/fesm2015/material-experimental.mjs +1 -1
  24. package/fesm2015/material-experimental.mjs.map +1 -1
  25. package/fesm2015/mdc-button.mjs +8 -8
  26. package/fesm2015/mdc-button.mjs.map +1 -1
  27. package/fesm2015/mdc-chips.mjs +32 -16
  28. package/fesm2015/mdc-chips.mjs.map +1 -1
  29. package/fesm2015/mdc-core.mjs +2 -2
  30. package/fesm2015/mdc-core.mjs.map +1 -1
  31. package/fesm2015/mdc-list.mjs +1 -1
  32. package/fesm2015/mdc-list.mjs.map +1 -1
  33. package/fesm2015/mdc-menu.mjs +2 -2
  34. package/fesm2015/mdc-menu.mjs.map +1 -1
  35. package/fesm2015/mdc-progress-bar.mjs +3 -0
  36. package/fesm2015/mdc-progress-bar.mjs.map +1 -1
  37. package/fesm2015/mdc-radio.mjs +2 -2
  38. package/fesm2015/mdc-radio.mjs.map +1 -1
  39. package/fesm2015/mdc-select.mjs +2 -2
  40. package/fesm2015/mdc-select.mjs.map +1 -1
  41. package/fesm2015/mdc-slider.mjs +36 -5
  42. package/fesm2015/mdc-slider.mjs.map +1 -1
  43. package/fesm2015/mdc-snack-bar.mjs +13 -7
  44. package/fesm2015/mdc-snack-bar.mjs.map +1 -1
  45. package/fesm2015/mdc-table.mjs +2 -2
  46. package/fesm2015/mdc-table.mjs.map +1 -1
  47. package/fesm2015/mdc-tabs.mjs +4 -4
  48. package/fesm2015/mdc-tabs.mjs.map +1 -1
  49. package/fesm2020/material-experimental.mjs +1 -1
  50. package/fesm2020/material-experimental.mjs.map +1 -1
  51. package/fesm2020/mdc-button.mjs +8 -8
  52. package/fesm2020/mdc-button.mjs.map +1 -1
  53. package/fesm2020/mdc-chips.mjs +32 -16
  54. package/fesm2020/mdc-chips.mjs.map +1 -1
  55. package/fesm2020/mdc-core.mjs +2 -2
  56. package/fesm2020/mdc-core.mjs.map +1 -1
  57. package/fesm2020/mdc-list.mjs +1 -1
  58. package/fesm2020/mdc-list.mjs.map +1 -1
  59. package/fesm2020/mdc-menu.mjs +2 -2
  60. package/fesm2020/mdc-menu.mjs.map +1 -1
  61. package/fesm2020/mdc-progress-bar.mjs +3 -0
  62. package/fesm2020/mdc-progress-bar.mjs.map +1 -1
  63. package/fesm2020/mdc-radio.mjs +2 -2
  64. package/fesm2020/mdc-radio.mjs.map +1 -1
  65. package/fesm2020/mdc-select.mjs +2 -2
  66. package/fesm2020/mdc-select.mjs.map +1 -1
  67. package/fesm2020/mdc-slider.mjs +34 -4
  68. package/fesm2020/mdc-slider.mjs.map +1 -1
  69. package/fesm2020/mdc-snack-bar.mjs +13 -7
  70. package/fesm2020/mdc-snack-bar.mjs.map +1 -1
  71. package/fesm2020/mdc-table.mjs +2 -2
  72. package/fesm2020/mdc-table.mjs.map +1 -1
  73. package/fesm2020/mdc-tabs.mjs +4 -4
  74. package/fesm2020/mdc-tabs.mjs.map +1 -1
  75. package/mdc-chips/_chips-theme.scss +7 -2
  76. package/mdc-chips/chip-action.d.ts +1 -1
  77. package/mdc-chips/chip-grid.d.ts +4 -0
  78. package/mdc-chips/chip-input.d.ts +3 -0
  79. package/mdc-chips/chip-set.d.ts +0 -2
  80. package/mdc-chips/chip-text-control.d.ts +2 -0
  81. package/mdc-slider/slider.d.ts +6 -0
  82. package/mdc-theming/prebuilt/deeppurple-amber.css +1 -1
  83. package/mdc-theming/prebuilt/indigo-pink.css +1 -1
  84. package/mdc-theming/prebuilt/pink-bluegrey.css +1 -1
  85. package/mdc-theming/prebuilt/purple-green.css +1 -1
  86. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"mdc-select.mjs","sources":["../../../../../../src/material-experimental/mdc-select/select-animations.ts","../../../../../../src/material-experimental/mdc-select/select.ts","../../../../../../src/material-experimental/mdc-select/select.html","../../../../../../src/material-experimental/mdc-select/module.ts","../../../../../../src/material-experimental/mdc-select/public-api.ts","../../../../../../src/material-experimental/mdc-select/index.ts","../../../../../../src/material-experimental/mdc-select/mdc-select_public_index.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n animate,\n animateChild,\n AnimationTriggerMetadata,\n query,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\n\n/**\n * The following are all the animations for the mat-select component, with each\n * const containing the metadata for one animation.\n *\n * The values below match the implementation of the AngularJS Material mat-select animation.\n * @docs-private\n */\nexport const matSelectAnimations: {\n /**\n * @deprecated No longer being used. To be removed.\n * @breaking-change 12.0.0\n */\n readonly transformPanelWrap: AnimationTriggerMetadata;\n readonly transformPanel: AnimationTriggerMetadata;\n} = {\n /**\n * This animation ensures the select's overlay panel animation (transformPanel) is called when\n * closing the select.\n * This is needed due to https://github.com/angular/angular/issues/23302\n */\n transformPanelWrap: trigger('transformPanelWrap', [\n transition('* => void', query('@transformPanel', [animateChild()], {optional: true})),\n ]),\n\n /** This animation transforms the select's overlay panel on and off the page. */\n transformPanel: trigger('transformPanel', [\n state(\n 'void',\n style({\n opacity: 0,\n transform: 'scale(1, 0.8)',\n }),\n ),\n transition(\n 'void => showing',\n animate(\n '120ms cubic-bezier(0, 0, 0.2, 1)',\n style({\n opacity: 1,\n transform: 'scale(1, 1)',\n }),\n ),\n ),\n transition('* => void', animate('100ms linear', style({opacity: 0}))),\n ]),\n};\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ContentChildren,\n Directive,\n ElementRef,\n OnInit,\n QueryList,\n ViewEncapsulation,\n} from '@angular/core';\nimport {MAT_SELECT_TRIGGER, _MatSelectBase} from '@angular/material/select';\nimport {\n MatOptgroup,\n MatOption,\n MAT_OPTGROUP,\n MAT_OPTION_PARENT_COMPONENT,\n _countGroupLabelsBeforeOption,\n _getOptionScrollPosition,\n} from '@angular/material-experimental/mdc-core';\nimport {CdkOverlayOrigin, ConnectedPosition} from '@angular/cdk/overlay';\nimport {MatFormFieldControl} from '@angular/material/form-field';\nimport {takeUntil} from 'rxjs/operators';\nimport {matSelectAnimations} from './select-animations';\n\n/** Change event object that is emitted when the select value has changed. */\nexport class MatSelectChange {\n constructor(\n /** Reference to the select that emitted the change event. */\n public source: MatSelect,\n /** Current value of the select that emitted the event. */\n public value: any,\n ) {}\n}\n\n/**\n * Allows the user to customize the trigger that is displayed when the select has a value.\n */\n@Directive({\n selector: 'mat-select-trigger',\n providers: [{provide: MAT_SELECT_TRIGGER, useExisting: MatSelectTrigger}],\n})\nexport class MatSelectTrigger {}\n\n@Component({\n selector: 'mat-select',\n exportAs: 'matSelect',\n templateUrl: 'select.html',\n styleUrls: ['select.css'],\n inputs: ['disabled', 'disableRipple', 'tabIndex'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'role': 'combobox',\n 'aria-autocomplete': 'none',\n 'aria-haspopup': 'listbox',\n 'class': 'mat-mdc-select',\n '[attr.id]': 'id',\n '[attr.tabindex]': 'tabIndex',\n '[attr.aria-controls]': 'panelOpen ? id + \"-panel\" : null',\n '[attr.aria-expanded]': 'panelOpen',\n '[attr.aria-label]': 'ariaLabel || null',\n '[attr.aria-required]': 'required.toString()',\n '[attr.aria-disabled]': 'disabled.toString()',\n '[attr.aria-invalid]': 'errorState',\n '[attr.aria-describedby]': '_ariaDescribedby || null',\n '[attr.aria-activedescendant]': '_getAriaActiveDescendant()',\n '[class.mat-mdc-select-disabled]': 'disabled',\n '[class.mat-mdc-select-invalid]': 'errorState',\n '[class.mat-mdc-select-required]': 'required',\n '[class.mat-mdc-select-empty]': 'empty',\n '[class.mat-mdc-select-multiple]': 'multiple',\n '(keydown)': '_handleKeydown($event)',\n '(focus)': '_onFocus()',\n '(blur)': '_onBlur()',\n },\n animations: [matSelectAnimations.transformPanel],\n providers: [\n {provide: MatFormFieldControl, useExisting: MatSelect},\n {provide: MAT_OPTION_PARENT_COMPONENT, useExisting: MatSelect},\n ],\n})\nexport class MatSelect extends _MatSelectBase<MatSelectChange> implements OnInit, AfterViewInit {\n @ContentChildren(MatOption, {descendants: true}) options: QueryList<MatOption>;\n @ContentChildren(MAT_OPTGROUP, {descendants: true}) optionGroups: QueryList<MatOptgroup>;\n @ContentChild(MAT_SELECT_TRIGGER) customTrigger: MatSelectTrigger;\n\n _positions: ConnectedPosition[] = [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n panelClass: 'mat-mdc-select-panel-above',\n },\n ];\n\n /** Ideal origin for the overlay panel. */\n _preferredOverlayOrigin: CdkOverlayOrigin | ElementRef | undefined;\n\n /** Width of the overlay panel. */\n _overlayWidth: number;\n\n override get shouldLabelFloat(): boolean {\n // Since the panel doesn't overlap the trigger, we\n // want the label to only float when there's a value.\n return this.panelOpen || !this.empty || (this.focused && !!this.placeholder);\n }\n\n override ngOnInit() {\n super.ngOnInit();\n this._viewportRuler\n .change()\n .pipe(takeUntil(this._destroy))\n .subscribe(() => {\n if (this.panelOpen) {\n this._overlayWidth = this._getOverlayWidth();\n this._changeDetectorRef.detectChanges();\n }\n });\n }\n\n ngAfterViewInit() {\n // Note that it's important that we read this in `ngAfterViewInit`, because\n // reading it earlier will cause the form field to return a different element.\n if (this._parentFormField) {\n this._preferredOverlayOrigin = this._parentFormField.getConnectedOverlayOrigin();\n }\n }\n\n override open() {\n this._overlayWidth = this._getOverlayWidth();\n super.open();\n // Required for the MDC form field to pick up when the overlay has been opened.\n this.stateChanges.next();\n }\n\n override close() {\n super.close();\n // Required for the MDC form field to pick up when the overlay has been closed.\n this.stateChanges.next();\n }\n\n /** Scrolls the active option into view. */\n protected _scrollOptionIntoView(index: number): void {\n const option = this.options.toArray()[index];\n\n if (option) {\n const panel: HTMLElement = this.panel.nativeElement;\n const labelCount = _countGroupLabelsBeforeOption(index, this.options, this.optionGroups);\n const element = option._getHostElement();\n\n if (index === 0 && labelCount === 1) {\n // If we've got one group label before the option and we're at the top option,\n // scroll the list to the top. This is better UX than scrolling the list to the\n // top of the option, because it allows the user to read the top group's label.\n panel.scrollTop = 0;\n } else {\n panel.scrollTop = _getOptionScrollPosition(\n element.offsetTop,\n element.offsetHeight,\n panel.scrollTop,\n panel.offsetHeight,\n );\n }\n }\n }\n\n protected _positioningSettled() {\n this._scrollOptionIntoView(this._keyManager.activeItemIndex || 0);\n }\n\n protected _getChangeEvent(value: any) {\n return new MatSelectChange(this, value);\n }\n\n /** Gets how wide the overlay panel should be. */\n private _getOverlayWidth() {\n const refToMeasure =\n this._preferredOverlayOrigin instanceof CdkOverlayOrigin\n ? this._preferredOverlayOrigin.elementRef\n : this._preferredOverlayOrigin || this._elementRef;\n return refToMeasure.nativeElement.getBoundingClientRect().width;\n }\n}\n","<!--\n Note that the select trigger element specifies `aria-owns` pointing to the listbox overlay.\n While aria-owns is not required for the ARIA 1.2 `role=\"combobox\"` interaction pattern,\n it fixes an issue with VoiceOver when the select appears inside of an `aria-model=\"true\"`\n element (e.g. a dialog). Without this `aria-owns`, the `aria-modal` on a dialog prevents\n VoiceOver from \"seeing\" the select's listbox overlay for aria-activedescendant.\n Using `aria-owns` re-parents the select overlay so that it works again.\n See https://github.com/angular/components/issues/20694\n-->\n<div cdk-overlay-origin\n [attr.aria-owns]=\"panelOpen ? id + '-panel' : null\"\n class=\"mat-mdc-select-trigger\"\n (click)=\"toggle()\"\n #fallbackOverlayOrigin=\"cdkOverlayOrigin\"\n #trigger>\n <div class=\"mat-mdc-select-value\" [ngSwitch]=\"empty\" [attr.id]=\"_valueId\">\n <span class=\"mat-mdc-select-placeholder mat-mdc-select-min-line\" *ngSwitchCase=\"true\">{{placeholder}}</span>\n <span class=\"mat-mdc-select-value-text\" *ngSwitchCase=\"false\" [ngSwitch]=\"!!customTrigger\">\n <span class=\"mat-mdc-select-min-line\" *ngSwitchDefault>{{triggerValue}}</span>\n <ng-content select=\"mat-select-trigger\" *ngSwitchCase=\"true\"></ng-content>\n </span>\n </div>\n\n <div class=\"mat-mdc-select-arrow-wrapper\">\n <div class=\"mat-mdc-select-arrow\">\n <!-- Use an inline SVG, because it works better than a CSS triangle in high contrast mode. -->\n <svg viewBox=\"0 0 24 24\" width=\"24px\" height=\"24px\" focusable=\"false\">\n <path d=\"M7 10l5 5 5-5z\"/>\n </svg>\n </div>\n </div>\n</div>\n\n<ng-template\n cdk-connected-overlay\n cdkConnectedOverlayLockPosition\n cdkConnectedOverlayHasBackdrop\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayPanelClass]=\"_overlayPanelClass\"\n [cdkConnectedOverlayScrollStrategy]=\"_scrollStrategy\"\n [cdkConnectedOverlayOrigin]=\"_preferredOverlayOrigin || fallbackOverlayOrigin\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n [cdkConnectedOverlayPositions]=\"_positions\"\n [cdkConnectedOverlayWidth]=\"_overlayWidth\"\n (backdropClick)=\"close()\"\n (attach)=\"_onAttached()\"\n (detach)=\"close()\">\n <div\n #panel\n role=\"listbox\"\n tabindex=\"-1\"\n class=\"mat-mdc-select-panel mdc-menu-surface mdc-menu-surface--open {{ _getPanelTheme() }}\"\n [attr.id]=\"id + '-panel'\"\n [attr.aria-multiselectable]=\"multiple\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"_getPanelAriaLabelledby()\"\n [ngClass]=\"panelClass\"\n [@transformPanel]=\"'showing'\"\n (@transformPanel.done)=\"_panelDoneAnimatingStream.next($event.toState)\"\n (keydown)=\"_handleKeydown($event)\">\n <ng-content></ng-content>\n </div>\n</ng-template>\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {OverlayModule} from '@angular/cdk/overlay';\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {MatCommonModule, MatOptionModule} from '@angular/material-experimental/mdc-core';\nimport {MatFormFieldModule} from '@angular/material-experimental/mdc-form-field';\nimport {CdkScrollableModule} from '@angular/cdk/scrolling';\nimport {MAT_SELECT_SCROLL_STRATEGY_PROVIDER} from '@angular/material/select';\nimport {MatSelect, MatSelectTrigger} from './select';\n\n@NgModule({\n imports: [CommonModule, OverlayModule, MatOptionModule, MatCommonModule],\n exports: [\n CdkScrollableModule,\n MatFormFieldModule,\n MatSelect,\n MatSelectTrigger,\n MatOptionModule,\n MatCommonModule,\n ],\n declarations: [MatSelect, MatSelectTrigger],\n providers: [MAT_SELECT_SCROLL_STRATEGY_PROVIDER],\n})\nexport class MatSelectModule {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport * from './module';\nexport * from './select';\nexport * from './select-animations';\nexport {\n MAT_SELECT_CONFIG,\n MAT_SELECT_SCROLL_STRATEGY,\n MAT_SELECT_SCROLL_STRATEGY_PROVIDER,\n MAT_SELECT_SCROLL_STRATEGY_PROVIDER_FACTORY,\n MAT_SELECT_TRIGGER,\n MatSelectConfig,\n} from '@angular/material/select';\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport * from './public-api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mdc-select.mjs","sources":["../../../../../../src/material-experimental/mdc-select/select-animations.ts","../../../../../../src/material-experimental/mdc-select/select.ts","../../../../../../src/material-experimental/mdc-select/select.html","../../../../../../src/material-experimental/mdc-select/module.ts","../../../../../../src/material-experimental/mdc-select/public-api.ts","../../../../../../src/material-experimental/mdc-select/index.ts","../../../../../../src/material-experimental/mdc-select/mdc-select_public_index.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n animate,\n animateChild,\n AnimationTriggerMetadata,\n query,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\n\n/**\n * The following are all the animations for the mat-select component, with each\n * const containing the metadata for one animation.\n *\n * The values below match the implementation of the AngularJS Material mat-select animation.\n * @docs-private\n */\nexport const matSelectAnimations: {\n /**\n * @deprecated No longer being used. To be removed.\n * @breaking-change 12.0.0\n */\n readonly transformPanelWrap: AnimationTriggerMetadata;\n readonly transformPanel: AnimationTriggerMetadata;\n} = {\n /**\n * This animation ensures the select's overlay panel animation (transformPanel) is called when\n * closing the select.\n * This is needed due to https://github.com/angular/angular/issues/23302\n */\n transformPanelWrap: trigger('transformPanelWrap', [\n transition('* => void', query('@transformPanel', [animateChild()], {optional: true})),\n ]),\n\n /** This animation transforms the select's overlay panel on and off the page. */\n transformPanel: trigger('transformPanel', [\n state(\n 'void',\n style({\n opacity: 0,\n transform: 'scale(1, 0.8)',\n }),\n ),\n transition(\n 'void => showing',\n animate(\n '120ms cubic-bezier(0, 0, 0.2, 1)',\n style({\n opacity: 1,\n transform: 'scale(1, 1)',\n }),\n ),\n ),\n transition('* => void', animate('100ms linear', style({opacity: 0}))),\n ]),\n};\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ContentChildren,\n Directive,\n ElementRef,\n OnInit,\n QueryList,\n ViewEncapsulation,\n} from '@angular/core';\nimport {MAT_SELECT_TRIGGER, _MatSelectBase} from '@angular/material/select';\nimport {\n MatOptgroup,\n MatOption,\n MAT_OPTGROUP,\n MAT_OPTION_PARENT_COMPONENT,\n _countGroupLabelsBeforeOption,\n _getOptionScrollPosition,\n} from '@angular/material-experimental/mdc-core';\nimport {CdkOverlayOrigin, ConnectedPosition} from '@angular/cdk/overlay';\nimport {MatFormFieldControl} from '@angular/material/form-field';\nimport {takeUntil} from 'rxjs/operators';\nimport {matSelectAnimations} from './select-animations';\n\n/** Change event object that is emitted when the select value has changed. */\nexport class MatSelectChange {\n constructor(\n /** Reference to the select that emitted the change event. */\n public source: MatSelect,\n /** Current value of the select that emitted the event. */\n public value: any,\n ) {}\n}\n\n/**\n * Allows the user to customize the trigger that is displayed when the select has a value.\n */\n@Directive({\n selector: 'mat-select-trigger',\n providers: [{provide: MAT_SELECT_TRIGGER, useExisting: MatSelectTrigger}],\n})\nexport class MatSelectTrigger {}\n\n@Component({\n selector: 'mat-select',\n exportAs: 'matSelect',\n templateUrl: 'select.html',\n styleUrls: ['select.css'],\n inputs: ['disabled', 'disableRipple', 'tabIndex'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'role': 'combobox',\n 'aria-autocomplete': 'none',\n 'aria-haspopup': 'listbox',\n 'class': 'mat-mdc-select',\n '[attr.id]': 'id',\n '[attr.tabindex]': 'tabIndex',\n '[attr.aria-controls]': 'panelOpen ? id + \"-panel\" : null',\n '[attr.aria-expanded]': 'panelOpen',\n '[attr.aria-label]': 'ariaLabel || null',\n '[attr.aria-required]': 'required.toString()',\n '[attr.aria-disabled]': 'disabled.toString()',\n '[attr.aria-invalid]': 'errorState',\n '[attr.aria-describedby]': '_ariaDescribedby || null',\n '[attr.aria-activedescendant]': '_getAriaActiveDescendant()',\n '[class.mat-mdc-select-disabled]': 'disabled',\n '[class.mat-mdc-select-invalid]': 'errorState',\n '[class.mat-mdc-select-required]': 'required',\n '[class.mat-mdc-select-empty]': 'empty',\n '[class.mat-mdc-select-multiple]': 'multiple',\n '(keydown)': '_handleKeydown($event)',\n '(focus)': '_onFocus()',\n '(blur)': '_onBlur()',\n },\n animations: [matSelectAnimations.transformPanel],\n providers: [\n {provide: MatFormFieldControl, useExisting: MatSelect},\n {provide: MAT_OPTION_PARENT_COMPONENT, useExisting: MatSelect},\n ],\n})\nexport class MatSelect extends _MatSelectBase<MatSelectChange> implements OnInit, AfterViewInit {\n @ContentChildren(MatOption, {descendants: true}) options: QueryList<MatOption>;\n @ContentChildren(MAT_OPTGROUP, {descendants: true}) optionGroups: QueryList<MatOptgroup>;\n @ContentChild(MAT_SELECT_TRIGGER) customTrigger: MatSelectTrigger;\n\n _positions: ConnectedPosition[] = [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n panelClass: 'mat-mdc-select-panel-above',\n },\n ];\n\n /** Ideal origin for the overlay panel. */\n _preferredOverlayOrigin: CdkOverlayOrigin | ElementRef | undefined;\n\n /** Width of the overlay panel. */\n _overlayWidth: number;\n\n override get shouldLabelFloat(): boolean {\n // Since the panel doesn't overlap the trigger, we\n // want the label to only float when there's a value.\n return this.panelOpen || !this.empty || (this.focused && !!this.placeholder);\n }\n\n override ngOnInit() {\n super.ngOnInit();\n this._viewportRuler\n .change()\n .pipe(takeUntil(this._destroy))\n .subscribe(() => {\n if (this.panelOpen) {\n this._overlayWidth = this._getOverlayWidth();\n this._changeDetectorRef.detectChanges();\n }\n });\n }\n\n ngAfterViewInit() {\n // Note that it's important that we read this in `ngAfterViewInit`, because\n // reading it earlier will cause the form field to return a different element.\n if (this._parentFormField) {\n this._preferredOverlayOrigin = this._parentFormField.getConnectedOverlayOrigin();\n }\n }\n\n override open() {\n this._overlayWidth = this._getOverlayWidth();\n super.open();\n // Required for the MDC form field to pick up when the overlay has been opened.\n this.stateChanges.next();\n }\n\n override close() {\n super.close();\n // Required for the MDC form field to pick up when the overlay has been closed.\n this.stateChanges.next();\n }\n\n /** Scrolls the active option into view. */\n protected _scrollOptionIntoView(index: number): void {\n const option = this.options.toArray()[index];\n\n if (option) {\n const panel: HTMLElement = this.panel.nativeElement;\n const labelCount = _countGroupLabelsBeforeOption(index, this.options, this.optionGroups);\n const element = option._getHostElement();\n\n if (index === 0 && labelCount === 1) {\n // If we've got one group label before the option and we're at the top option,\n // scroll the list to the top. This is better UX than scrolling the list to the\n // top of the option, because it allows the user to read the top group's label.\n panel.scrollTop = 0;\n } else {\n panel.scrollTop = _getOptionScrollPosition(\n element.offsetTop,\n element.offsetHeight,\n panel.scrollTop,\n panel.offsetHeight,\n );\n }\n }\n }\n\n protected _positioningSettled() {\n this._scrollOptionIntoView(this._keyManager.activeItemIndex || 0);\n }\n\n protected _getChangeEvent(value: any) {\n return new MatSelectChange(this, value);\n }\n\n /** Gets how wide the overlay panel should be. */\n private _getOverlayWidth() {\n const refToMeasure =\n this._preferredOverlayOrigin instanceof CdkOverlayOrigin\n ? this._preferredOverlayOrigin.elementRef\n : this._preferredOverlayOrigin || this._elementRef;\n return refToMeasure.nativeElement.getBoundingClientRect().width;\n }\n}\n","<!--\n Note that the select trigger element specifies `aria-owns` pointing to the listbox overlay.\n While aria-owns is not required for the ARIA 1.2 `role=\"combobox\"` interaction pattern,\n it fixes an issue with VoiceOver when the select appears inside of an `aria-model=\"true\"`\n element (e.g. a dialog). Without this `aria-owns`, the `aria-modal` on a dialog prevents\n VoiceOver from \"seeing\" the select's listbox overlay for aria-activedescendant.\n Using `aria-owns` re-parents the select overlay so that it works again.\n See https://github.com/angular/components/issues/20694\n-->\n<div cdk-overlay-origin\n [attr.aria-owns]=\"panelOpen ? id + '-panel' : null\"\n class=\"mat-mdc-select-trigger\"\n (click)=\"toggle()\"\n #fallbackOverlayOrigin=\"cdkOverlayOrigin\"\n #trigger>\n <div class=\"mat-mdc-select-value\" [ngSwitch]=\"empty\" [attr.id]=\"_valueId\">\n <span class=\"mat-mdc-select-placeholder mat-mdc-select-min-line\" *ngSwitchCase=\"true\">{{placeholder}}</span>\n <span class=\"mat-mdc-select-value-text\" *ngSwitchCase=\"false\" [ngSwitch]=\"!!customTrigger\">\n <span class=\"mat-mdc-select-min-line\" *ngSwitchDefault>{{triggerValue}}</span>\n <ng-content select=\"mat-select-trigger\" *ngSwitchCase=\"true\"></ng-content>\n </span>\n </div>\n\n <div class=\"mat-mdc-select-arrow-wrapper\">\n <div class=\"mat-mdc-select-arrow\">\n <!-- Use an inline SVG, because it works better than a CSS triangle in high contrast mode. -->\n <svg viewBox=\"0 0 24 24\" width=\"24px\" height=\"24px\" focusable=\"false\">\n <path d=\"M7 10l5 5 5-5z\"/>\n </svg>\n </div>\n </div>\n</div>\n\n<ng-template\n cdk-connected-overlay\n cdkConnectedOverlayLockPosition\n cdkConnectedOverlayHasBackdrop\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayPanelClass]=\"_overlayPanelClass\"\n [cdkConnectedOverlayScrollStrategy]=\"_scrollStrategy\"\n [cdkConnectedOverlayOrigin]=\"_preferredOverlayOrigin || fallbackOverlayOrigin\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n [cdkConnectedOverlayPositions]=\"_positions\"\n [cdkConnectedOverlayWidth]=\"_overlayWidth\"\n (backdropClick)=\"close()\"\n (attach)=\"_onAttached()\"\n (detach)=\"close()\">\n <div\n #panel\n role=\"listbox\"\n tabindex=\"-1\"\n class=\"mat-mdc-select-panel mdc-menu-surface mdc-menu-surface--open {{ _getPanelTheme() }}\"\n [attr.id]=\"id + '-panel'\"\n [attr.aria-multiselectable]=\"multiple\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"_getPanelAriaLabelledby()\"\n [ngClass]=\"panelClass\"\n [@transformPanel]=\"'showing'\"\n (@transformPanel.done)=\"_panelDoneAnimatingStream.next($event.toState)\"\n (keydown)=\"_handleKeydown($event)\">\n <ng-content></ng-content>\n </div>\n</ng-template>\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {OverlayModule} from '@angular/cdk/overlay';\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {MatCommonModule, MatOptionModule} from '@angular/material-experimental/mdc-core';\nimport {MatFormFieldModule} from '@angular/material-experimental/mdc-form-field';\nimport {CdkScrollableModule} from '@angular/cdk/scrolling';\nimport {MAT_SELECT_SCROLL_STRATEGY_PROVIDER} from '@angular/material/select';\nimport {MatSelect, MatSelectTrigger} from './select';\n\n@NgModule({\n imports: [CommonModule, OverlayModule, MatOptionModule, MatCommonModule],\n exports: [\n CdkScrollableModule,\n MatFormFieldModule,\n MatSelect,\n MatSelectTrigger,\n MatOptionModule,\n MatCommonModule,\n ],\n declarations: [MatSelect, MatSelectTrigger],\n providers: [MAT_SELECT_SCROLL_STRATEGY_PROVIDER],\n})\nexport class MatSelectModule {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport * from './module';\nexport * from './select';\nexport * from './select-animations';\nexport {\n MAT_SELECT_CONFIG,\n MAT_SELECT_SCROLL_STRATEGY,\n MAT_SELECT_SCROLL_STRATEGY_PROVIDER,\n MAT_SELECT_SCROLL_STRATEGY_PROVIDER_FACTORY,\n MAT_SELECT_TRIGGER,\n MatSelectConfig,\n} from '@angular/material/select';\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport * from './public-api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
1
  import { coerceNumberProperty, coerceBooleanProperty } from '@angular/cdk/coercion';
2
+ import * as i3 from '@angular/cdk/platform';
3
+ import { normalizePassiveListenerOptions } from '@angular/cdk/platform';
2
4
  import * as i1 from '@angular/common';
3
5
  import { DOCUMENT, CommonModule } from '@angular/common';
4
6
  import * as i0 from '@angular/core';
@@ -10,7 +12,6 @@ import { Thumb, MDCSliderFoundation, TickMark } from '@material/slider';
10
12
  import { Subject, fromEvent, Subscription } from 'rxjs';
11
13
  import * as i2 from '@angular/material-experimental/mdc-core';
12
14
  import { MatCommonModule, MatRippleModule } from '@angular/material-experimental/mdc-core';
13
- import * as i3 from '@angular/cdk/platform';
14
15
  import { takeUntil, finalize, share } from 'rxjs/operators';
15
16
  import * as i5 from '@angular/cdk/bidi';
16
17
 
@@ -70,6 +71,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
70
71
  }] }, { type: i0.NgZone }];
71
72
  } });
72
73
 
74
+ /** Options used to bind passive event listeners. */
75
+ const passiveEventListenerOptions = normalizePassiveListenerOptions({ passive: true });
73
76
  /**
74
77
  * The visual slider thumb.
75
78
  *
@@ -609,6 +612,7 @@ class MatSlider extends _MatSliderMixinBase {
609
612
  this._foundation.init();
610
613
  this._foundation.layout();
611
614
  this._initialized = true;
615
+ this._observeHostResize();
612
616
  }
613
617
  // The MDC foundation requires access to the view and content children of the MatSlider. In
614
618
  // order to access the view and content children of MatSlider we need to wait until change
@@ -623,10 +627,14 @@ class MatSlider extends _MatSliderMixinBase {
623
627
  this._cdr.detectChanges();
624
628
  }
625
629
  ngOnDestroy() {
630
+ var _a;
626
631
  if (this._platform.isBrowser) {
627
632
  this._foundation.destroy();
628
633
  }
629
634
  this._dirChangeSubscription.unsubscribe();
635
+ (_a = this._resizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
636
+ this._resizeObserver = null;
637
+ clearTimeout(this._resizeTimer);
630
638
  this._removeUISyncEventListener();
631
639
  }
632
640
  /** Returns true if the language direction for this slider element is right to left. */
@@ -647,21 +655,21 @@ class MatSlider extends _MatSliderMixinBase {
647
655
  // would prefer to use "mousedown" as the default, for some reason it does not work (the
648
656
  // callback is never triggered).
649
657
  if (this._SUPPORTS_POINTER_EVENTS) {
650
- this._elementRef.nativeElement.addEventListener('pointerdown', this._layout);
658
+ this._elementRef.nativeElement.addEventListener('pointerdown', this._layout, passiveEventListenerOptions);
651
659
  }
652
660
  else {
653
661
  this._elementRef.nativeElement.addEventListener('mouseenter', this._layout);
654
- this._elementRef.nativeElement.addEventListener('touchstart', this._layout);
662
+ this._elementRef.nativeElement.addEventListener('touchstart', this._layout, passiveEventListenerOptions);
655
663
  }
656
664
  }
657
665
  /** Removes the event listener that keeps sync the slider UI and the foundation in sync. */
658
666
  _removeUISyncEventListener() {
659
667
  if (this._SUPPORTS_POINTER_EVENTS) {
660
- this._elementRef.nativeElement.removeEventListener('pointerdown', this._layout);
668
+ this._elementRef.nativeElement.removeEventListener('pointerdown', this._layout, passiveEventListenerOptions);
661
669
  }
662
670
  else {
663
671
  this._elementRef.nativeElement.removeEventListener('mouseenter', this._layout);
664
- this._elementRef.nativeElement.removeEventListener('touchstart', this._layout);
672
+ this._elementRef.nativeElement.removeEventListener('touchstart', this._layout, passiveEventListenerOptions);
665
673
  }
666
674
  }
667
675
  /**
@@ -785,6 +793,29 @@ class MatSlider extends _MatSliderMixinBase {
785
793
  var _a;
786
794
  return this.disabled || this.disableRipple || !!((_a = this._globalRippleOptions) === null || _a === void 0 ? void 0 : _a.disabled);
787
795
  }
796
+ /** Starts observing and updating the slider if the host changes its size. */
797
+ _observeHostResize() {
798
+ if (typeof ResizeObserver === 'undefined' || !ResizeObserver) {
799
+ return;
800
+ }
801
+ // MDC only updates the slider when the window is resized which
802
+ // doesn't capture changes of the container itself. We use a resize
803
+ // observer to ensure that the layout is correct (see #24590).
804
+ this._ngZone.runOutsideAngular(() => {
805
+ // The callback will fire as soon as an element is observed and
806
+ // we only want to know after the initial layout.
807
+ let hasResized = false;
808
+ this._resizeObserver = new ResizeObserver(() => {
809
+ if (hasResized) {
810
+ // Debounce the layouts since they can happen frequently.
811
+ clearTimeout(this._resizeTimer);
812
+ this._resizeTimer = setTimeout(this._layout, 50);
813
+ }
814
+ hasResized = true;
815
+ });
816
+ this._resizeObserver.observe(this._elementRef.nativeElement);
817
+ });
818
+ }
788
819
  }
789
820
  MatSlider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: MatSlider, deps: [{ token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i3.Platform }, { token: GlobalChangeAndInputListener }, { token: DOCUMENT }, { token: i5.Directionality, optional: true }, { token: MAT_RIPPLE_GLOBAL_OPTIONS, optional: true }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Component });
790
821
  MatSlider.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: MatSlider, selector: "mat-slider", inputs: { color: "color", disableRipple: "disableRipple", disabled: "disabled", discrete: "discrete", showTickMarks: "showTickMarks", min: "min", max: "max", step: "step", displayWith: "displayWith" }, host: { properties: { "class.mdc-slider--range": "_isRange()", "class.mdc-slider--disabled": "disabled", "class.mdc-slider--discrete": "discrete", "class.mdc-slider--tick-marks": "showTickMarks", "class._mat-animation-noopable": "_noopAnimations" }, classAttribute: "mat-mdc-slider mdc-slider" }, queries: [{ propertyName: "_inputs", predicate: MatSliderThumb }], viewQueries: [{ propertyName: "_trackActive", first: true, predicate: ["trackActive"], descendants: true }, { propertyName: "_thumbs", predicate: MatSliderVisualThumb, descendants: true }], exportAs: ["matSlider"], usesInheritance: true, ngImport: i0, template: "<!-- Inputs -->\n<ng-content></ng-content>\n\n<!-- Track -->\n<div class=\"mdc-slider__track\">\n <div class=\"mdc-slider__track--inactive\"></div>\n <div class=\"mdc-slider__track--active\">\n <div class=\"mdc-slider__track--active_fill\" #trackActive></div>\n </div>\n <div *ngIf=\"showTickMarks\" class=\"mdc-slider__tick-marks\" #tickMarkContainer>\n <div *ngFor=\"let tickMark of _tickMarks\" [class]=\"_getTickMarkClass(tickMark)\"></div>\n </div>\n</div>\n\n<!-- Thumbs -->\n<mat-slider-visual-thumb\n *ngFor=\"let thumb of _inputs\"\n [discrete]=\"discrete\"\n [disableRipple]=\"_isRippleDisabled()\"\n [thumbPosition]=\"thumb._thumbPosition\"\n [valueIndicatorText]=\"_getValueIndicatorText(thumb._thumbPosition)\">\n</mat-slider-visual-thumb>\n", styles: [".mdc-slider{cursor:pointer;height:48px;margin:0 24px;position:relative;touch-action:pan-y}.mdc-slider .mdc-slider__track{height:4px;position:absolute;top:50%;transform:translateY(-50%);width:100%}.mdc-slider .mdc-slider__track--active,.mdc-slider .mdc-slider__track--inactive{display:flex;height:100%;position:absolute;width:100%}.mdc-slider .mdc-slider__track--active{border-radius:3px;height:6px;overflow:hidden;top:-1px}.mdc-slider .mdc-slider__track--active_fill{border-top:6px solid;box-sizing:border-box;height:100%;width:100%;position:relative;-webkit-transform-origin:left;transform-origin:left}[dir=rtl] .mdc-slider .mdc-slider__track--active_fill,.mdc-slider .mdc-slider__track--active_fill[dir=rtl]{-webkit-transform-origin:right;transform-origin:right}.mdc-slider .mdc-slider__track--inactive{border-radius:2px;height:4px;left:0;top:0}.mdc-slider .mdc-slider__track--inactive::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid transparent;border-radius:inherit;content:\"\";pointer-events:none}@media screen and (forced-colors: active){.mdc-slider .mdc-slider__track--inactive::before{border-color:CanvasText}}.mdc-slider .mdc-slider__value-indicator-container{bottom:44px;left:var(--slider-value-indicator-container-left, 50%);pointer-events:none;position:absolute;right:var(--slider-value-indicator-container-right);transform:var(--slider-value-indicator-container-transform, translateX(-50%))}.mdc-slider .mdc-slider__value-indicator{transition:transform 100ms 0ms cubic-bezier(0.4, 0, 1, 1);align-items:center;border-radius:4px;display:flex;height:32px;padding:0 12px;transform:scale(0);transform-origin:bottom}.mdc-slider .mdc-slider__value-indicator::before{border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid;bottom:-5px;content:\"\";height:0;left:var(--slider-value-indicator-caret-left, 50%);position:absolute;right:var(--slider-value-indicator-caret-right);transform:var(--slider-value-indicator-caret-transform, translateX(-50%));width:0}.mdc-slider .mdc-slider__value-indicator::after{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid transparent;border-radius:inherit;content:\"\";pointer-events:none}@media screen and (forced-colors: active){.mdc-slider .mdc-slider__value-indicator::after{border-color:CanvasText}}.mdc-slider .mdc-slider__thumb--with-indicator .mdc-slider__value-indicator-container{pointer-events:auto}.mdc-slider .mdc-slider__thumb--with-indicator .mdc-slider__value-indicator{transition:transform 100ms 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(1)}@media(prefers-reduced-motion){.mdc-slider .mdc-slider__value-indicator,.mdc-slider .mdc-slider__thumb--with-indicator .mdc-slider__value-indicator{transition:none}}.mdc-slider .mdc-slider__thumb{display:flex;height:48px;left:-24px;outline:none;position:absolute;user-select:none;width:48px}.mdc-slider .mdc-slider__thumb--top{z-index:1}.mdc-slider .mdc-slider__thumb--top .mdc-slider__thumb-knob,.mdc-slider .mdc-slider__thumb--top.mdc-slider__thumb:hover .mdc-slider__thumb-knob,.mdc-slider .mdc-slider__thumb--top.mdc-slider__thumb--focused .mdc-slider__thumb-knob{border-style:solid;border-width:1px;box-sizing:content-box}.mdc-slider .mdc-slider__thumb-knob{border:10px solid;border-radius:50%;box-sizing:border-box;height:20px;left:50%;position:absolute;top:50%;transform:translate(-50%, -50%);width:20px}.mdc-slider .mdc-slider__thumb.mdc-ripple-upgraded--background-focused::before,.mdc-slider .mdc-slider__thumb:not(.mdc-ripple-upgraded):focus::before{transition-duration:75ms}.mdc-slider .mdc-slider__thumb:not(.mdc-ripple-upgraded)::after{transition:opacity 150ms linear}.mdc-slider .mdc-slider__thumb:not(.mdc-ripple-upgraded):active::after{transition-duration:75ms}.mdc-slider .mdc-slider__tick-marks{align-items:center;box-sizing:border-box;display:flex;height:100%;justify-content:space-between;padding:0 1px;position:absolute;width:100%}.mdc-slider .mdc-slider__tick-mark--active,.mdc-slider .mdc-slider__tick-mark--inactive{border-radius:50%;height:2px;width:2px}.mdc-slider--discrete .mdc-slider__thumb,.mdc-slider--discrete .mdc-slider__track--active_fill{transition:transform 80ms ease}@media(prefers-reduced-motion){.mdc-slider--discrete .mdc-slider__thumb,.mdc-slider--discrete .mdc-slider__track--active_fill{transition:none}}.mdc-slider--disabled{cursor:auto}.mdc-slider--disabled .mdc-slider__thumb{pointer-events:none}.mdc-slider__input{cursor:pointer;left:0;margin:0;height:100%;opacity:0;pointer-events:none;position:absolute;top:0;width:100%}.mat-mdc-slider{display:inline-block;box-sizing:border-box;outline:none;vertical-align:middle;margin-left:8px;margin-right:8px;width:auto;min-width:112px}.mat-mdc-slider._mat-animation-noopable.mdc-slider--discrete .mdc-slider__thumb,.mat-mdc-slider._mat-animation-noopable.mdc-slider--discrete .mdc-slider__track--active_fill,.mat-mdc-slider._mat-animation-noopable .mdc-slider__value-indicator{transition:none}\n"], components: [{ type: MatSliderVisualThumb, selector: "mat-slider-visual-thumb", inputs: ["discrete", "thumbPosition", "valueIndicatorText", "disableRipple"] }], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });