@angular/material 2.0.0-beta.0 → 2.0.0-beta.12
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/LICENSE +1 -1
- package/README.md +4 -165
- package/_theming.scss +3878 -0
- package/autocomplete/index.d.ts +8 -5
- package/autocomplete/index.metadata.json +12 -1
- package/autocomplete/package.json +7 -0
- package/autocomplete/typings/autocomplete-module.d.ts +2 -0
- package/autocomplete/typings/autocomplete-trigger.d.ts +159 -0
- package/autocomplete/typings/autocomplete.d.ts +62 -0
- package/autocomplete/typings/index.d.ts +4 -0
- package/autocomplete/typings/index.metadata.json +1 -0
- package/autocomplete/typings/public-api.d.ts +10 -0
- package/autocomplete.d.ts +8 -0
- package/autocomplete.metadata.json +12 -0
- package/bundles/material-autocomplete.umd.js +2969 -0
- package/bundles/material-autocomplete.umd.js.map +1 -0
- package/bundles/material-autocomplete.umd.min.js +10 -0
- package/bundles/material-autocomplete.umd.min.js.map +1 -0
- package/bundles/material-button-toggle.umd.js +2284 -0
- package/bundles/material-button-toggle.umd.js.map +1 -0
- package/bundles/material-button-toggle.umd.min.js +10 -0
- package/bundles/material-button-toggle.umd.min.js.map +1 -0
- package/bundles/material-button.umd.js +2092 -0
- package/bundles/material-button.umd.js.map +1 -0
- package/bundles/material-button.umd.min.js +10 -0
- package/bundles/material-button.umd.min.js.map +1 -0
- package/bundles/material-card.umd.js +2006 -0
- package/bundles/material-card.umd.js.map +1 -0
- package/bundles/material-card.umd.min.js +9 -0
- package/bundles/material-card.umd.min.js.map +1 -0
- package/bundles/material-checkbox.umd.js +2327 -0
- package/bundles/material-checkbox.umd.js.map +1 -0
- package/bundles/material-checkbox.umd.min.js +10 -0
- package/bundles/material-checkbox.umd.min.js.map +1 -0
- package/bundles/material-chips.umd.js +3542 -0
- package/bundles/material-chips.umd.js.map +1 -0
- package/bundles/material-chips.umd.min.js +10 -0
- package/bundles/material-chips.umd.min.js.map +1 -0
- package/bundles/material-core.umd.js +2206 -0
- package/bundles/material-core.umd.js.map +1 -0
- package/bundles/material-core.umd.min.js +9 -0
- package/bundles/material-core.umd.min.js.map +1 -0
- package/bundles/material-datepicker.umd.js +6128 -0
- package/bundles/material-datepicker.umd.js.map +1 -0
- package/bundles/material-datepicker.umd.min.js +12 -0
- package/bundles/material-datepicker.umd.min.js.map +1 -0
- package/bundles/material-dialog.umd.js +2530 -0
- package/bundles/material-dialog.umd.js.map +1 -0
- package/bundles/material-dialog.umd.min.js +10 -0
- package/bundles/material-dialog.umd.min.js.map +1 -0
- package/bundles/material-expansion.umd.js +2128 -0
- package/bundles/material-expansion.umd.js.map +1 -0
- package/bundles/material-expansion.umd.min.js +9 -0
- package/bundles/material-expansion.umd.min.js.map +1 -0
- package/bundles/material-form-field.umd.js +2091 -0
- package/bundles/material-form-field.umd.js.map +1 -0
- package/bundles/material-form-field.umd.min.js +10 -0
- package/bundles/material-form-field.umd.min.js.map +1 -0
- package/bundles/material-grid-list.umd.js +2621 -0
- package/bundles/material-grid-list.umd.js.map +1 -0
- package/bundles/material-grid-list.umd.min.js +10 -0
- package/bundles/material-grid-list.umd.min.js.map +1 -0
- package/bundles/material-icon.umd.js +2442 -0
- package/bundles/material-icon.umd.js.map +1 -0
- package/bundles/material-icon.umd.min.js +10 -0
- package/bundles/material-icon.umd.min.js.map +1 -0
- package/bundles/material-input.umd.js +2716 -0
- package/bundles/material-input.umd.js.map +1 -0
- package/bundles/material-input.umd.min.js +10 -0
- package/bundles/material-input.umd.min.js.map +1 -0
- package/bundles/material-list.umd.js +2611 -0
- package/bundles/material-list.umd.js.map +1 -0
- package/bundles/material-list.umd.min.js +11 -0
- package/bundles/material-list.umd.min.js.map +1 -0
- package/bundles/material-menu.umd.js +2613 -0
- package/bundles/material-menu.umd.js.map +1 -0
- package/bundles/material-menu.umd.min.js +10 -0
- package/bundles/material-menu.umd.min.js.map +1 -0
- package/bundles/material-paginator.umd.js +5228 -0
- package/bundles/material-paginator.umd.js.map +1 -0
- package/bundles/material-paginator.umd.min.js +11 -0
- package/bundles/material-paginator.umd.min.js.map +1 -0
- package/bundles/material-progress-bar.umd.js +1784 -0
- package/bundles/material-progress-bar.umd.js.map +1 -0
- package/bundles/material-progress-bar.umd.min.js +9 -0
- package/bundles/material-progress-bar.umd.min.js.map +1 -0
- package/bundles/material-progress-spinner.umd.js +2005 -0
- package/bundles/material-progress-spinner.umd.js.map +1 -0
- package/bundles/material-progress-spinner.umd.min.js +10 -0
- package/bundles/material-progress-spinner.umd.min.js.map +1 -0
- package/bundles/material-radio.umd.js +2530 -0
- package/bundles/material-radio.umd.js.map +1 -0
- package/bundles/material-radio.umd.min.js +10 -0
- package/bundles/material-radio.umd.min.js.map +1 -0
- package/bundles/material-select.umd.js +3843 -0
- package/bundles/material-select.umd.js.map +1 -0
- package/bundles/material-select.umd.min.js +10 -0
- package/bundles/material-select.umd.min.js.map +1 -0
- package/bundles/material-sidenav.umd.js +2577 -0
- package/bundles/material-sidenav.umd.js.map +1 -0
- package/bundles/material-sidenav.umd.min.js +10 -0
- package/bundles/material-sidenav.umd.min.js.map +1 -0
- package/bundles/material-slide-toggle.umd.js +2253 -0
- package/bundles/material-slide-toggle.umd.js.map +1 -0
- package/bundles/material-slide-toggle.umd.min.js +10 -0
- package/bundles/material-slide-toggle.umd.min.js.map +1 -0
- package/bundles/material-slider.umd.js +2621 -0
- package/bundles/material-slider.umd.js.map +1 -0
- package/bundles/material-slider.umd.min.js +10 -0
- package/bundles/material-slider.umd.min.js.map +1 -0
- package/bundles/material-snack-bar.umd.js +2258 -0
- package/bundles/material-snack-bar.umd.js.map +1 -0
- package/bundles/material-snack-bar.umd.min.js +10 -0
- package/bundles/material-snack-bar.umd.min.js.map +1 -0
- package/bundles/material-sort.umd.js +1917 -0
- package/bundles/material-sort.umd.js.map +1 -0
- package/bundles/material-sort.umd.min.js +9 -0
- package/bundles/material-sort.umd.min.js.map +1 -0
- package/bundles/material-stepper.umd.js +3271 -0
- package/bundles/material-stepper.umd.js.map +1 -0
- package/bundles/material-stepper.umd.min.js +10 -0
- package/bundles/material-stepper.umd.min.js.map +1 -0
- package/bundles/material-table.umd.js +1976 -0
- package/bundles/material-table.umd.js.map +1 -0
- package/bundles/material-table.umd.min.js +9 -0
- package/bundles/material-table.umd.min.js.map +1 -0
- package/bundles/material-tabs.umd.js +3341 -0
- package/bundles/material-tabs.umd.js.map +1 -0
- package/bundles/material-tabs.umd.min.js +10 -0
- package/bundles/material-tabs.umd.min.js.map +1 -0
- package/bundles/material-toolbar.umd.js +1790 -0
- package/bundles/material-toolbar.umd.js.map +1 -0
- package/bundles/material-toolbar.umd.min.js +9 -0
- package/bundles/material-toolbar.umd.min.js.map +1 -0
- package/bundles/material-tooltip.umd.js +2339 -0
- package/bundles/material-tooltip.umd.js.map +1 -0
- package/bundles/material-tooltip.umd.min.js +10 -0
- package/bundles/material-tooltip.umd.min.js.map +1 -0
- package/bundles/material.umd.js +21541 -12552
- package/bundles/material.umd.js.map +1 -0
- package/bundles/material.umd.min.js +22 -0
- package/bundles/material.umd.min.js.map +1 -0
- package/button/index.d.ts +8 -1
- package/button/index.metadata.json +12 -1
- package/button/package.json +7 -0
- package/button/typings/button-module.d.ts +2 -0
- package/button/typings/button.d.ts +77 -0
- package/button/typings/index.d.ts +4 -0
- package/button/typings/index.metadata.json +1 -0
- package/button/typings/public-api.d.ts +9 -0
- package/button-toggle/index.d.ts +8 -1
- package/button-toggle/index.metadata.json +12 -1
- package/button-toggle/package.json +7 -0
- package/button-toggle/typings/button-toggle-module.d.ts +2 -0
- package/button-toggle/typings/button-toggle.d.ts +163 -0
- package/button-toggle/typings/index.d.ts +4 -0
- package/button-toggle/typings/index.metadata.json +1 -0
- package/button-toggle/typings/public-api.d.ts +9 -0
- package/button-toggle.d.ts +8 -0
- package/button-toggle.metadata.json +12 -0
- package/button.d.ts +8 -0
- package/button.metadata.json +12 -0
- package/card/index.d.ts +8 -1
- package/card/index.metadata.json +12 -1
- package/card/package.json +7 -0
- package/card/typings/card-module.d.ts +2 -0
- package/card/typings/card.d.ts +95 -0
- package/card/typings/index.d.ts +4 -0
- package/card/typings/index.metadata.json +1 -0
- package/card/typings/public-api.d.ts +9 -0
- package/card.d.ts +8 -0
- package/card.metadata.json +12 -0
- package/checkbox/index.d.ts +8 -1
- package/checkbox/index.metadata.json +12 -1
- package/checkbox/package.json +7 -0
- package/checkbox/typings/checkbox-module.d.ts +2 -0
- package/checkbox/typings/checkbox-required-validator.d.ts +18 -0
- package/checkbox/typings/checkbox.d.ts +157 -0
- package/checkbox/typings/index.d.ts +4 -0
- package/checkbox/typings/index.metadata.json +1 -0
- package/checkbox/typings/public-api.d.ts +10 -0
- package/checkbox.d.ts +8 -0
- package/checkbox.metadata.json +12 -0
- package/chips/index.d.ts +8 -2
- package/chips/index.metadata.json +12 -1
- package/chips/package.json +7 -0
- package/chips/typings/chip-input.d.ts +43 -0
- package/chips/typings/chip-list.d.ts +222 -0
- package/chips/typings/chip.d.ts +123 -0
- package/chips/typings/chips-module.d.ts +2 -0
- package/chips/typings/index.d.ts +4 -0
- package/chips/typings/index.metadata.json +1 -0
- package/chips/typings/public-api.d.ts +11 -0
- package/chips.d.ts +8 -0
- package/chips.metadata.json +12 -0
- package/core/index.d.ts +8 -1
- package/core/index.metadata.json +12 -1
- package/core/package.json +7 -0
- package/core/typings/animation/animation.d.ts +20 -0
- package/core/typings/common-behaviors/color.d.ts +22 -0
- package/core/typings/common-behaviors/common-module.d.ts +25 -0
- package/core/typings/common-behaviors/constructor.d.ts +9 -0
- package/core/typings/common-behaviors/disable-ripple.d.ts +7 -0
- package/core/typings/common-behaviors/disabled.d.ts +7 -0
- package/core/typings/common-behaviors/index.d.ts +12 -0
- package/core/typings/common-behaviors/tabindex.d.ts +15 -0
- package/core/typings/compatibility/compatibility.d.ts +32 -0
- package/core/typings/datetime/date-adapter.d.ts +198 -0
- package/core/typings/datetime/date-formats.d.ts +20 -0
- package/core/typings/datetime/index.d.ts +8 -0
- package/core/typings/datetime/native-date-adapter.d.ts +50 -0
- package/core/typings/datetime/native-date-formats.d.ts +9 -0
- package/core/typings/error/error-options.d.ts +9 -0
- package/core/typings/gestures/gesture-annotations.d.ts +51 -0
- package/core/{gestures → typings/gestures}/gesture-config.d.ts +0 -0
- package/core/typings/index.d.ts +5 -0
- package/core/typings/index.metadata.json +1 -0
- package/core/typings/line/line.d.ts +30 -0
- package/core/typings/option/index.d.ts +4 -0
- package/core/typings/option/optgroup.d.ts +14 -0
- package/core/typings/option/option.d.ts +90 -0
- package/core/typings/placeholder/placeholder-options.d.ts +15 -0
- package/core/typings/public-api.d.ts +22 -0
- package/core/typings/ripple/index.d.ts +5 -0
- package/core/typings/ripple/ripple-ref.d.ts +28 -0
- package/core/typings/ripple/ripple-renderer.d.ts +69 -0
- package/core/typings/ripple/ripple.d.ts +65 -0
- package/core/typings/selection/index.d.ts +3 -0
- package/core/typings/selection/pseudo-checkbox/pseudo-checkbox.d.ts +20 -0
- package/core/typings/style/apply-transform.d.ts +13 -0
- package/core/typings/style/index.d.ts +8 -0
- package/core/typings/testing/month-constants.d.ts +12 -0
- package/core/typings/util/object-extend.d.ts +15 -0
- package/core.d.ts +7 -0
- package/core.metadata.json +12 -1
- package/datepicker/index.d.ts +8 -0
- package/datepicker/index.metadata.json +12 -0
- package/datepicker/package.json +7 -0
- package/datepicker/typings/calendar-body.d.ts +52 -0
- package/datepicker/typings/calendar.d.ts +97 -0
- package/datepicker/typings/coerce-date-property.d.ts +19 -0
- package/datepicker/typings/datepicker-errors.d.ts +9 -0
- package/datepicker/typings/datepicker-input.d.ts +92 -0
- package/datepicker/typings/datepicker-intl.d.ts +25 -0
- package/datepicker/typings/datepicker-module.d.ts +2 -0
- package/datepicker/typings/datepicker-toggle.d.ts +24 -0
- package/datepicker/typings/datepicker.d.ts +117 -0
- package/datepicker/typings/index.d.ts +4 -0
- package/datepicker/typings/index.metadata.json +1 -0
- package/datepicker/typings/month-view.d.ts +66 -0
- package/datepicker/typings/public-api.d.ts +17 -0
- package/datepicker/typings/year-view.d.ts +55 -0
- package/datepicker.d.ts +8 -0
- package/datepicker.metadata.json +12 -0
- package/dialog/index.d.ts +8 -9
- package/dialog/index.metadata.json +12 -1
- package/dialog/package.json +7 -0
- package/dialog/typings/dialog-config.d.ts +54 -0
- package/dialog/typings/dialog-container.d.ts +68 -0
- package/dialog/typings/dialog-content-directives.d.ts +43 -0
- package/dialog/typings/dialog-module.d.ts +2 -0
- package/dialog/typings/dialog-ref.d.ts +68 -0
- package/dialog/typings/dialog.d.ts +108 -0
- package/dialog/typings/index.d.ts +4 -0
- package/dialog/typings/index.metadata.json +1 -0
- package/dialog/typings/public-api.d.ts +13 -0
- package/dialog.d.ts +8 -0
- package/dialog.metadata.json +12 -0
- package/esm2015/autocomplete.js +673 -0
- package/esm2015/autocomplete.js.map +1 -0
- package/esm2015/button-toggle.js +589 -0
- package/esm2015/button-toggle.js.map +1 -0
- package/esm2015/button.js +318 -0
- package/esm2015/button.js.map +1 -0
- package/esm2015/card.js +312 -0
- package/esm2015/card.js.map +1 -0
- package/esm2015/checkbox.js +500 -0
- package/esm2015/checkbox.js.map +1 -0
- package/esm2015/chips.js +1330 -0
- package/esm2015/chips.js.map +1 -0
- package/esm2015/core.js +2117 -0
- package/esm2015/core.js.map +1 -0
- package/esm2015/datepicker.js +1813 -0
- package/esm2015/datepicker.js.map +1 -0
- package/esm2015/dialog.js +854 -0
- package/esm2015/dialog.js.map +1 -0
- package/esm2015/expansion.js +587 -0
- package/esm2015/expansion.js.map +1 -0
- package/esm2015/form-field.js +535 -0
- package/esm2015/form-field.js.map +1 -0
- package/esm2015/grid-list.js +827 -0
- package/esm2015/grid-list.js.map +1 -0
- package/esm2015/icon.js +735 -0
- package/esm2015/icon.js.map +1 -0
- package/esm2015/input.js +585 -0
- package/esm2015/input.js.map +1 -0
- package/esm2015/list.js +640 -0
- package/esm2015/list.js.map +1 -0
- package/esm2015/material.js +51 -0
- package/esm2015/material.js.map +1 -0
- package/esm2015/menu.js +923 -0
- package/esm2015/menu.js.map +1 -0
- package/esm2015/paginator.js +303 -0
- package/esm2015/paginator.js.map +1 -0
- package/esm2015/progress-bar.js +133 -0
- package/esm2015/progress-bar.js.map +1 -0
- package/esm2015/progress-spinner.js +303 -0
- package/esm2015/progress-spinner.js.map +1 -0
- package/esm2015/radio.js +709 -0
- package/esm2015/radio.js.map +1 -0
- package/esm2015/select.js +1394 -0
- package/esm2015/select.js.map +1 -0
- package/esm2015/sidenav.js +866 -0
- package/esm2015/sidenav.js.map +1 -0
- package/esm2015/slide-toggle.js +428 -0
- package/esm2015/slide-toggle.js.map +1 -0
- package/esm2015/slider.js +834 -0
- package/esm2015/slider.js.map +1 -0
- package/esm2015/snack-bar.js +596 -0
- package/esm2015/snack-bar.js.map +1 -0
- package/esm2015/sort.js +371 -0
- package/esm2015/sort.js.map +1 -0
- package/esm2015/stepper.js +395 -0
- package/esm2015/stepper.js.map +1 -0
- package/esm2015/table.js +272 -0
- package/esm2015/table.js.map +1 -0
- package/esm2015/tabs.js +1480 -0
- package/esm2015/tabs.js.map +1 -0
- package/esm2015/toolbar.js +89 -0
- package/esm2015/toolbar.js.map +1 -0
- package/esm2015/tooltip.js +671 -0
- package/esm2015/tooltip.js.map +1 -0
- package/esm5/autocomplete.es5.js +712 -0
- package/esm5/autocomplete.es5.js.map +1 -0
- package/esm5/button-toggle.es5.js +646 -0
- package/esm5/button-toggle.es5.js.map +1 -0
- package/esm5/button.es5.js +344 -0
- package/esm5/button.es5.js.map +1 -0
- package/esm5/card.es5.js +355 -0
- package/esm5/card.es5.js.map +1 -0
- package/esm5/checkbox.es5.js +538 -0
- package/esm5/checkbox.es5.js.map +1 -0
- package/esm5/chips.es5.js +1464 -0
- package/esm5/chips.es5.js.map +1 -0
- package/esm5/core.es5.js +2126 -0
- package/esm5/core.es5.js.map +1 -0
- package/esm5/datepicker.es5.js +1946 -0
- package/esm5/datepicker.es5.js.map +1 -0
- package/esm5/dialog.es5.js +894 -0
- package/esm5/dialog.es5.js.map +1 -0
- package/esm5/expansion.es5.js +622 -0
- package/esm5/expansion.es5.js.map +1 -0
- package/esm5/form-field.es5.js +580 -0
- package/esm5/form-field.es5.js.map +1 -0
- package/esm5/grid-list.es5.js +888 -0
- package/esm5/grid-list.es5.js.map +1 -0
- package/esm5/icon.es5.js +754 -0
- package/esm5/icon.es5.js.map +1 -0
- package/esm5/input.es5.js +630 -0
- package/esm5/input.es5.js.map +1 -0
- package/esm5/list.es5.js +704 -0
- package/esm5/list.es5.js.map +1 -0
- package/esm5/material.es5.js +51 -0
- package/esm5/material.es5.js.map +1 -0
- package/esm5/menu.es5.js +962 -0
- package/esm5/menu.es5.js.map +1 -0
- package/esm5/paginator.es5.js +328 -0
- package/esm5/paginator.es5.js.map +1 -0
- package/esm5/progress-bar.es5.js +147 -0
- package/esm5/progress-bar.es5.js.map +1 -0
- package/esm5/progress-spinner.es5.js +317 -0
- package/esm5/progress-spinner.es5.js.map +1 -0
- package/esm5/radio.es5.js +786 -0
- package/esm5/radio.es5.js.map +1 -0
- package/esm5/select.es5.js +1481 -0
- package/esm5/select.es5.js.map +1 -0
- package/esm5/sidenav.es5.js +946 -0
- package/esm5/sidenav.es5.js.map +1 -0
- package/esm5/slide-toggle.es5.js +455 -0
- package/esm5/slide-toggle.es5.js.map +1 -0
- package/esm5/slider.es5.js +938 -0
- package/esm5/slider.es5.js.map +1 -0
- package/esm5/snack-bar.es5.js +622 -0
- package/esm5/snack-bar.es5.js.map +1 -0
- package/esm5/sort.es5.js +389 -0
- package/esm5/sort.es5.js.map +1 -0
- package/esm5/stepper.es5.js +448 -0
- package/esm5/stepper.es5.js.map +1 -0
- package/esm5/table.es5.js +323 -0
- package/esm5/table.es5.js.map +1 -0
- package/esm5/tabs.es5.js +1591 -0
- package/esm5/tabs.es5.js.map +1 -0
- package/esm5/toolbar.es5.js +100 -0
- package/esm5/toolbar.es5.js.map +1 -0
- package/esm5/tooltip.es5.js +705 -0
- package/esm5/tooltip.es5.js.map +1 -0
- package/expansion/index.d.ts +8 -0
- package/expansion/index.metadata.json +12 -0
- package/expansion/package.json +7 -0
- package/expansion/typings/accordion-item.d.ts +41 -0
- package/expansion/typings/accordion.d.ts +29 -0
- package/expansion/typings/expansion-module.d.ts +2 -0
- package/expansion/typings/expansion-panel-header.d.ts +49 -0
- package/expansion/typings/expansion-panel.d.ts +40 -0
- package/expansion/typings/index.d.ts +5 -0
- package/expansion/typings/index.metadata.json +1 -0
- package/expansion/typings/public-api.d.ts +12 -0
- package/expansion.d.ts +8 -0
- package/expansion.metadata.json +12 -0
- package/form-field/index.d.ts +8 -0
- package/form-field/index.metadata.json +12 -0
- package/form-field/package.json +7 -0
- package/form-field/typings/error.d.ts +4 -0
- package/form-field/typings/form-field-control.d.ts +47 -0
- package/form-field/typings/form-field-errors.d.ts +13 -0
- package/form-field/typings/form-field-module.d.ts +2 -0
- package/form-field/typings/form-field.d.ts +78 -0
- package/form-field/typings/hint.d.ts +7 -0
- package/form-field/typings/index.d.ts +4 -0
- package/form-field/typings/index.metadata.json +1 -0
- package/form-field/typings/placeholder.d.ts +3 -0
- package/form-field/typings/prefix.d.ts +3 -0
- package/form-field/typings/public-api.d.ts +16 -0
- package/form-field/typings/suffix.d.ts +3 -0
- package/form-field.d.ts +8 -0
- package/form-field.metadata.json +12 -0
- package/grid-list/index.d.ts +8 -1
- package/grid-list/index.metadata.json +12 -1
- package/grid-list/package.json +7 -0
- package/grid-list/typings/grid-list-measure.d.ts +17 -0
- package/grid-list/typings/grid-list-module.d.ts +2 -0
- package/grid-list/typings/grid-list.d.ts +53 -0
- package/grid-list/typings/grid-tile.d.ts +55 -0
- package/grid-list/typings/index.d.ts +5 -0
- package/grid-list/typings/index.metadata.json +1 -0
- package/grid-list/typings/public-api.d.ts +10 -0
- package/grid-list/typings/tile-coordinator.d.ts +64 -0
- package/grid-list/typings/tile-styler.d.ts +129 -0
- package/grid-list.d.ts +8 -0
- package/grid-list.metadata.json +12 -0
- package/icon/index.d.ts +8 -1
- package/icon/index.metadata.json +12 -1
- package/icon/package.json +7 -0
- package/icon/typings/icon-module.d.ts +2 -0
- package/icon/typings/icon-registry.d.ts +187 -0
- package/icon/typings/icon.d.ts +69 -0
- package/icon/typings/index.d.ts +4 -0
- package/icon/typings/index.metadata.json +1 -0
- package/icon/typings/public-api.d.ts +10 -0
- package/icon.d.ts +8 -0
- package/icon.metadata.json +12 -0
- package/input/index.d.ts +8 -4
- package/input/index.metadata.json +12 -1
- package/input/package.json +7 -0
- package/input/typings/autosize.d.ts +43 -0
- package/input/typings/index.d.ts +4 -0
- package/input/typings/index.metadata.json +1 -0
- package/input/typings/input-errors.d.ts +9 -0
- package/input/typings/input-module.d.ts +2 -0
- package/input/typings/input.d.ts +85 -0
- package/input/typings/public-api.d.ts +11 -0
- package/input.d.ts +8 -0
- package/input.metadata.json +12 -0
- package/list/index.d.ts +8 -1
- package/list/index.metadata.json +12 -1
- package/list/package.json +7 -0
- package/list/typings/index.d.ts +4 -0
- package/list/typings/index.metadata.json +1 -0
- package/list/typings/list-module.d.ts +2 -0
- package/list/typings/list.d.ts +77 -0
- package/list/typings/public-api.d.ts +10 -0
- package/list/typings/selection-list.d.ts +103 -0
- package/list.d.ts +8 -0
- package/list.metadata.json +12 -0
- package/material.d.ts +39 -0
- package/material.metadata.json +105 -0
- package/menu/index.d.ts +8 -5
- package/menu/index.metadata.json +12 -1
- package/menu/package.json +7 -0
- package/menu/typings/index.d.ts +6 -0
- package/menu/typings/index.metadata.json +1 -0
- package/menu/typings/menu-animations.d.ts +27 -0
- package/menu/typings/menu-directive.d.ts +89 -0
- package/menu/typings/menu-errors.d.ts +24 -0
- package/menu/typings/menu-item.d.ts +42 -0
- package/menu/typings/menu-module.d.ts +2 -0
- package/menu/typings/menu-panel.d.ts +22 -0
- package/menu/typings/menu-positions.d.ts +9 -0
- package/menu/typings/menu-trigger.d.ts +115 -0
- package/menu/typings/menu.d.ts +12 -0
- package/menu/typings/public-api.d.ts +11 -0
- package/menu.d.ts +8 -0
- package/menu.metadata.json +12 -0
- package/package.json +10 -9
- package/paginator/index.d.ts +8 -0
- package/paginator/index.metadata.json +12 -0
- package/paginator/package.json +7 -0
- package/paginator/typings/index.d.ts +4 -0
- package/paginator/typings/index.metadata.json +1 -0
- package/paginator/typings/paginator-intl.d.ts +20 -0
- package/paginator/typings/paginator-module.d.ts +2 -0
- package/paginator/typings/paginator.d.ts +75 -0
- package/paginator/typings/public-api.d.ts +10 -0
- package/paginator.d.ts +8 -0
- package/paginator.metadata.json +12 -0
- package/prebuilt-themes/deeppurple-amber.css +1 -0
- package/prebuilt-themes/indigo-pink.css +1 -0
- package/prebuilt-themes/pink-bluegrey.css +1 -0
- package/prebuilt-themes/purple-green.css +1 -0
- package/progress-bar/index.d.ts +8 -1
- package/progress-bar/index.metadata.json +12 -1
- package/progress-bar/package.json +7 -0
- package/progress-bar/typings/index.d.ts +4 -0
- package/progress-bar/typings/index.metadata.json +1 -0
- package/progress-bar/typings/progress-bar-module.d.ts +2 -0
- package/progress-bar/typings/progress-bar.d.ts +32 -0
- package/progress-bar/typings/public-api.d.ts +9 -0
- package/progress-bar.d.ts +8 -0
- package/progress-bar.metadata.json +12 -0
- package/progress-spinner/index.d.ts +8 -2
- package/progress-spinner/index.metadata.json +12 -1
- package/progress-spinner/package.json +7 -0
- package/progress-spinner/typings/index.d.ts +4 -0
- package/progress-spinner/typings/index.metadata.json +1 -0
- package/progress-spinner/typings/progress-spinner-module.d.ts +3 -0
- package/progress-spinner/typings/progress-spinner.d.ts +69 -0
- package/progress-spinner/typings/public-api.d.ts +9 -0
- package/progress-spinner.d.ts +8 -0
- package/progress-spinner.metadata.json +12 -0
- package/radio/index.d.ts +8 -1
- package/radio/index.metadata.json +12 -1
- package/radio/package.json +7 -0
- package/radio/typings/index.d.ts +4 -0
- package/radio/typings/index.metadata.json +1 -0
- package/radio/typings/public-api.d.ts +9 -0
- package/radio/typings/radio-module.d.ts +2 -0
- package/radio/typings/radio.d.ts +215 -0
- package/radio.d.ts +8 -0
- package/radio.metadata.json +12 -0
- package/select/index.d.ts +8 -7
- package/select/index.metadata.json +12 -1
- package/select/package.json +7 -0
- package/select/typings/index.d.ts +4 -0
- package/select/typings/index.metadata.json +1 -0
- package/select/typings/public-api.d.ts +10 -0
- package/select/typings/select-animations.d.ts +30 -0
- package/select/typings/select-errors.d.ts +26 -0
- package/select/typings/select-module.d.ts +2 -0
- package/select/typings/select.d.ts +393 -0
- package/select.d.ts +8 -0
- package/select.metadata.json +12 -0
- package/sidenav/index.d.ts +8 -1
- package/sidenav/index.metadata.json +12 -1
- package/sidenav/package.json +7 -0
- package/sidenav/typings/drawer.d.ts +190 -0
- package/sidenav/typings/index.d.ts +4 -0
- package/sidenav/typings/index.metadata.json +1 -0
- package/sidenav/typings/public-api.d.ts +10 -0
- package/sidenav/typings/sidenav-module.d.ts +2 -0
- package/sidenav/typings/sidenav.d.ts +33 -0
- package/sidenav.d.ts +8 -0
- package/sidenav.metadata.json +12 -0
- package/slide-toggle/index.d.ts +8 -1
- package/slide-toggle/index.metadata.json +12 -1
- package/slide-toggle/package.json +7 -0
- package/slide-toggle/typings/index.d.ts +4 -0
- package/slide-toggle/typings/index.metadata.json +1 -0
- package/slide-toggle/typings/public-api.d.ts +9 -0
- package/slide-toggle/typings/slide-toggle-module.d.ts +2 -0
- package/slide-toggle/typings/slide-toggle.d.ts +93 -0
- package/slide-toggle.d.ts +8 -0
- package/slide-toggle.metadata.json +12 -0
- package/slider/index.d.ts +8 -1
- package/slider/index.metadata.json +12 -1
- package/slider/package.json +7 -0
- package/slider/typings/index.d.ts +4 -0
- package/slider/typings/index.metadata.json +1 -0
- package/slider/typings/public-api.d.ts +9 -0
- package/slider/typings/slider-module.d.ts +2 -0
- package/slider/typings/slider.d.ts +207 -0
- package/slider.d.ts +8 -0
- package/slider.metadata.json +12 -0
- package/snack-bar/index.d.ts +8 -4
- package/snack-bar/index.metadata.json +12 -1
- package/snack-bar/package.json +7 -0
- package/snack-bar/typings/index.d.ts +4 -0
- package/snack-bar/typings/index.metadata.json +1 -0
- package/snack-bar/typings/public-api.d.ts +13 -0
- package/snack-bar/typings/simple-snack-bar.d.ts +18 -0
- package/snack-bar/typings/snack-bar-config.d.ts +38 -0
- package/snack-bar/typings/snack-bar-container.d.ts +55 -0
- package/snack-bar/typings/snack-bar-module.d.ts +2 -0
- package/snack-bar/typings/snack-bar-ref.d.ts +51 -0
- package/snack-bar/typings/snack-bar.d.ts +70 -0
- package/snack-bar.d.ts +8 -0
- package/snack-bar.metadata.json +12 -0
- package/sort/index.d.ts +8 -0
- package/sort/index.metadata.json +12 -0
- package/sort/package.json +7 -0
- package/sort/typings/index.d.ts +4 -0
- package/sort/typings/index.metadata.json +1 -0
- package/sort/typings/public-api.d.ts +12 -0
- package/sort/typings/sort-direction.d.ts +8 -0
- package/sort/typings/sort-errors.d.ts +15 -0
- package/sort/typings/sort-header-intl.d.ts +17 -0
- package/sort/typings/sort-header.d.ts +43 -0
- package/sort/typings/sort-module.d.ts +2 -0
- package/sort/typings/sort.d.ts +55 -0
- package/sort.d.ts +8 -0
- package/sort.metadata.json +12 -0
- package/stepper/index.d.ts +8 -0
- package/stepper/index.metadata.json +12 -0
- package/stepper/package.json +7 -0
- package/stepper/typings/index.d.ts +4 -0
- package/stepper/typings/index.metadata.json +1 -0
- package/stepper/typings/public-api.d.ts +13 -0
- package/stepper/typings/step-header.d.ts +41 -0
- package/stepper/typings/step-label.d.ts +14 -0
- package/stepper/typings/stepper-button.d.ts +10 -0
- package/stepper/typings/stepper-intl.d.ts +11 -0
- package/stepper/typings/stepper-module.d.ts +2 -0
- package/stepper/typings/stepper.d.ts +26 -0
- package/stepper.d.ts +8 -0
- package/stepper.metadata.json +12 -0
- package/table/index.d.ts +8 -0
- package/table/index.metadata.json +12 -0
- package/table/package.json +7 -0
- package/table/typings/cell.d.ts +43 -0
- package/table/typings/index.d.ts +4 -0
- package/table/typings/index.metadata.json +1 -0
- package/table/typings/public-api.d.ts +11 -0
- package/table/typings/row.d.ts +25 -0
- package/table/typings/table-module.d.ts +2 -0
- package/table/typings/table.d.ts +8 -0
- package/table.d.ts +8 -0
- package/table.metadata.json +12 -0
- package/tabs/index.d.ts +8 -7
- package/tabs/index.metadata.json +12 -1
- package/tabs/package.json +7 -0
- package/tabs/typings/index.d.ts +8 -0
- package/tabs/typings/index.metadata.json +1 -0
- package/tabs/typings/ink-bar.d.ts +33 -0
- package/tabs/typings/public-api.d.ts +16 -0
- package/tabs/typings/tab-body.d.ts +69 -0
- package/tabs/typings/tab-group.d.ts +104 -0
- package/tabs/typings/tab-header.d.ts +158 -0
- package/tabs/typings/tab-label-wrapper.d.ts +25 -0
- package/tabs/typings/tab-label.d.ts +15 -0
- package/tabs/typings/tab-nav-bar/index.d.ts +8 -0
- package/tabs/typings/tab-nav-bar/tab-nav-bar.d.ts +78 -0
- package/tabs/typings/tab.d.ts +50 -0
- package/tabs/typings/tabs-module.d.ts +2 -0
- package/tabs.d.ts +8 -0
- package/tabs.metadata.json +12 -0
- package/toolbar/index.d.ts +8 -1
- package/toolbar/index.metadata.json +12 -1
- package/toolbar/package.json +7 -0
- package/toolbar/typings/index.d.ts +4 -0
- package/toolbar/typings/index.metadata.json +1 -0
- package/toolbar/typings/public-api.d.ts +9 -0
- package/toolbar/typings/toolbar-module.d.ts +2 -0
- package/toolbar/typings/toolbar.d.ts +21 -0
- package/toolbar.d.ts +8 -0
- package/toolbar.metadata.json +12 -0
- package/tooltip/index.d.ts +8 -1
- package/tooltip/index.metadata.json +12 -1
- package/tooltip/package.json +7 -0
- package/tooltip/typings/index.d.ts +4 -0
- package/tooltip/typings/index.metadata.json +1 -0
- package/tooltip/typings/public-api.d.ts +9 -0
- package/tooltip/typings/tooltip-module.d.ts +2 -0
- package/tooltip/typings/tooltip.d.ts +175 -0
- package/tooltip.d.ts +8 -0
- package/tooltip.metadata.json +12 -0
- package/typings/autocomplete/autocomplete-module.d.ts +2 -0
- package/typings/autocomplete/autocomplete-trigger.d.ts +159 -0
- package/typings/autocomplete/autocomplete.d.ts +62 -0
- package/typings/autocomplete/index.d.ts +4 -0
- package/typings/autocomplete/index.metadata.json +1 -0
- package/typings/autocomplete/public-api.d.ts +10 -0
- package/typings/button/button-module.d.ts +2 -0
- package/typings/button/button.d.ts +77 -0
- package/typings/button/index.d.ts +4 -0
- package/typings/button/index.metadata.json +1 -0
- package/typings/button/public-api.d.ts +9 -0
- package/typings/button-toggle/button-toggle-module.d.ts +2 -0
- package/typings/button-toggle/button-toggle.d.ts +163 -0
- package/typings/button-toggle/index.d.ts +4 -0
- package/typings/button-toggle/index.metadata.json +1 -0
- package/typings/button-toggle/public-api.d.ts +9 -0
- package/typings/card/card-module.d.ts +2 -0
- package/typings/card/card.d.ts +95 -0
- package/typings/card/index.d.ts +4 -0
- package/typings/card/index.metadata.json +1 -0
- package/typings/card/public-api.d.ts +9 -0
- package/typings/checkbox/checkbox-module.d.ts +2 -0
- package/typings/checkbox/checkbox-required-validator.d.ts +18 -0
- package/typings/checkbox/checkbox.d.ts +157 -0
- package/typings/checkbox/index.d.ts +4 -0
- package/typings/checkbox/index.metadata.json +1 -0
- package/typings/checkbox/public-api.d.ts +10 -0
- package/typings/chips/chip-input.d.ts +43 -0
- package/typings/chips/chip-list.d.ts +222 -0
- package/typings/chips/chip.d.ts +123 -0
- package/typings/chips/chips-module.d.ts +2 -0
- package/typings/chips/index.d.ts +4 -0
- package/typings/chips/index.metadata.json +1 -0
- package/typings/chips/public-api.d.ts +11 -0
- package/typings/core/animation/animation.d.ts +20 -0
- package/typings/core/common-behaviors/color.d.ts +22 -0
- package/typings/core/common-behaviors/common-module.d.ts +25 -0
- package/typings/core/common-behaviors/constructor.d.ts +9 -0
- package/typings/core/common-behaviors/disable-ripple.d.ts +7 -0
- package/typings/core/common-behaviors/disabled.d.ts +7 -0
- package/typings/core/common-behaviors/index.d.ts +12 -0
- package/typings/core/common-behaviors/tabindex.d.ts +15 -0
- package/typings/core/compatibility/compatibility.d.ts +32 -0
- package/typings/core/datetime/date-adapter.d.ts +198 -0
- package/typings/core/datetime/date-formats.d.ts +20 -0
- package/typings/core/datetime/index.d.ts +8 -0
- package/typings/core/datetime/native-date-adapter.d.ts +50 -0
- package/typings/core/datetime/native-date-formats.d.ts +9 -0
- package/typings/core/error/error-options.d.ts +9 -0
- package/typings/core/gestures/gesture-annotations.d.ts +51 -0
- package/typings/core/gestures/gesture-config.d.ts +23 -0
- package/typings/core/index.d.ts +5 -0
- package/typings/core/index.metadata.json +1 -0
- package/typings/core/line/line.d.ts +30 -0
- package/typings/core/option/index.d.ts +4 -0
- package/typings/core/option/optgroup.d.ts +14 -0
- package/typings/core/option/option.d.ts +90 -0
- package/typings/core/placeholder/placeholder-options.d.ts +15 -0
- package/typings/core/public-api.d.ts +22 -0
- package/typings/core/ripple/index.d.ts +5 -0
- package/typings/core/ripple/ripple-ref.d.ts +28 -0
- package/typings/core/ripple/ripple-renderer.d.ts +69 -0
- package/typings/core/ripple/ripple.d.ts +65 -0
- package/typings/core/selection/index.d.ts +3 -0
- package/typings/core/selection/pseudo-checkbox/pseudo-checkbox.d.ts +20 -0
- package/typings/core/style/apply-transform.d.ts +13 -0
- package/typings/core/style/index.d.ts +8 -0
- package/typings/core/testing/month-constants.d.ts +12 -0
- package/typings/core/util/object-extend.d.ts +15 -0
- package/typings/datepicker/calendar-body.d.ts +52 -0
- package/typings/datepicker/calendar.d.ts +97 -0
- package/typings/datepicker/coerce-date-property.d.ts +19 -0
- package/typings/datepicker/datepicker-errors.d.ts +9 -0
- package/typings/datepicker/datepicker-input.d.ts +92 -0
- package/typings/datepicker/datepicker-intl.d.ts +25 -0
- package/typings/datepicker/datepicker-module.d.ts +2 -0
- package/typings/datepicker/datepicker-toggle.d.ts +24 -0
- package/typings/datepicker/datepicker.d.ts +117 -0
- package/typings/datepicker/index.d.ts +4 -0
- package/typings/datepicker/index.metadata.json +1 -0
- package/typings/datepicker/month-view.d.ts +66 -0
- package/typings/datepicker/public-api.d.ts +17 -0
- package/typings/datepicker/year-view.d.ts +55 -0
- package/typings/dialog/dialog-config.d.ts +54 -0
- package/typings/dialog/dialog-container.d.ts +68 -0
- package/typings/dialog/dialog-content-directives.d.ts +43 -0
- package/typings/dialog/dialog-module.d.ts +2 -0
- package/typings/dialog/dialog-ref.d.ts +68 -0
- package/typings/dialog/dialog.d.ts +108 -0
- package/typings/dialog/index.d.ts +4 -0
- package/typings/dialog/index.metadata.json +1 -0
- package/typings/dialog/public-api.d.ts +13 -0
- package/typings/expansion/accordion-item.d.ts +41 -0
- package/typings/expansion/accordion.d.ts +29 -0
- package/typings/expansion/expansion-module.d.ts +2 -0
- package/typings/expansion/expansion-panel-header.d.ts +49 -0
- package/typings/expansion/expansion-panel.d.ts +40 -0
- package/typings/expansion/index.d.ts +5 -0
- package/typings/expansion/index.metadata.json +1 -0
- package/typings/expansion/public-api.d.ts +12 -0
- package/typings/form-field/error.d.ts +4 -0
- package/typings/form-field/form-field-control.d.ts +47 -0
- package/typings/form-field/form-field-errors.d.ts +13 -0
- package/typings/form-field/form-field-module.d.ts +2 -0
- package/typings/form-field/form-field.d.ts +78 -0
- package/typings/form-field/hint.d.ts +7 -0
- package/typings/form-field/index.d.ts +4 -0
- package/typings/form-field/index.metadata.json +1 -0
- package/typings/form-field/placeholder.d.ts +3 -0
- package/typings/form-field/prefix.d.ts +3 -0
- package/typings/form-field/public-api.d.ts +16 -0
- package/typings/form-field/suffix.d.ts +3 -0
- package/typings/grid-list/grid-list-measure.d.ts +17 -0
- package/typings/grid-list/grid-list-module.d.ts +2 -0
- package/typings/grid-list/grid-list.d.ts +53 -0
- package/typings/grid-list/grid-tile.d.ts +55 -0
- package/typings/grid-list/index.d.ts +5 -0
- package/typings/grid-list/index.metadata.json +1 -0
- package/typings/grid-list/public-api.d.ts +10 -0
- package/typings/grid-list/tile-coordinator.d.ts +64 -0
- package/typings/grid-list/tile-styler.d.ts +129 -0
- package/typings/icon/icon-module.d.ts +2 -0
- package/typings/icon/icon-registry.d.ts +187 -0
- package/typings/icon/icon.d.ts +69 -0
- package/typings/icon/index.d.ts +4 -0
- package/typings/icon/index.metadata.json +1 -0
- package/typings/icon/public-api.d.ts +10 -0
- package/typings/index.d.ts +4 -0
- package/typings/index.metadata.json +1 -0
- package/typings/input/autosize.d.ts +43 -0
- package/typings/input/index.d.ts +4 -0
- package/typings/input/index.metadata.json +1 -0
- package/typings/input/input-errors.d.ts +9 -0
- package/typings/input/input-module.d.ts +2 -0
- package/typings/input/input.d.ts +85 -0
- package/typings/input/public-api.d.ts +11 -0
- package/typings/list/index.d.ts +4 -0
- package/typings/list/index.metadata.json +1 -0
- package/typings/list/list-module.d.ts +2 -0
- package/typings/list/list.d.ts +77 -0
- package/typings/list/public-api.d.ts +10 -0
- package/typings/list/selection-list.d.ts +103 -0
- package/typings/menu/index.d.ts +6 -0
- package/typings/menu/index.metadata.json +1 -0
- package/typings/menu/menu-animations.d.ts +27 -0
- package/typings/menu/menu-directive.d.ts +89 -0
- package/typings/menu/menu-errors.d.ts +24 -0
- package/typings/menu/menu-item.d.ts +42 -0
- package/typings/menu/menu-module.d.ts +2 -0
- package/typings/menu/menu-panel.d.ts +22 -0
- package/typings/menu/menu-positions.d.ts +9 -0
- package/typings/menu/menu-trigger.d.ts +115 -0
- package/typings/menu/menu.d.ts +12 -0
- package/typings/menu/public-api.d.ts +11 -0
- package/typings/paginator/index.d.ts +4 -0
- package/typings/paginator/index.metadata.json +1 -0
- package/typings/paginator/paginator-intl.d.ts +20 -0
- package/typings/paginator/paginator-module.d.ts +2 -0
- package/typings/paginator/paginator.d.ts +75 -0
- package/typings/paginator/public-api.d.ts +10 -0
- package/typings/progress-bar/index.d.ts +4 -0
- package/typings/progress-bar/index.metadata.json +1 -0
- package/typings/progress-bar/progress-bar-module.d.ts +2 -0
- package/typings/progress-bar/progress-bar.d.ts +32 -0
- package/typings/progress-bar/public-api.d.ts +9 -0
- package/typings/progress-spinner/index.d.ts +4 -0
- package/typings/progress-spinner/index.metadata.json +1 -0
- package/typings/progress-spinner/progress-spinner-module.d.ts +3 -0
- package/typings/progress-spinner/progress-spinner.d.ts +69 -0
- package/typings/progress-spinner/public-api.d.ts +9 -0
- package/typings/public-api.d.ts +39 -0
- package/typings/radio/index.d.ts +4 -0
- package/typings/radio/index.metadata.json +1 -0
- package/typings/radio/public-api.d.ts +9 -0
- package/typings/radio/radio-module.d.ts +2 -0
- package/typings/radio/radio.d.ts +215 -0
- package/typings/select/index.d.ts +4 -0
- package/typings/select/index.metadata.json +1 -0
- package/typings/select/public-api.d.ts +10 -0
- package/typings/select/select-animations.d.ts +30 -0
- package/typings/select/select-errors.d.ts +26 -0
- package/typings/select/select-module.d.ts +2 -0
- package/typings/select/select.d.ts +393 -0
- package/typings/sidenav/drawer.d.ts +190 -0
- package/typings/sidenav/index.d.ts +4 -0
- package/typings/sidenav/index.metadata.json +1 -0
- package/typings/sidenav/public-api.d.ts +10 -0
- package/typings/sidenav/sidenav-module.d.ts +2 -0
- package/typings/sidenav/sidenav.d.ts +33 -0
- package/typings/slide-toggle/index.d.ts +4 -0
- package/typings/slide-toggle/index.metadata.json +1 -0
- package/typings/slide-toggle/public-api.d.ts +9 -0
- package/typings/slide-toggle/slide-toggle-module.d.ts +2 -0
- package/typings/slide-toggle/slide-toggle.d.ts +93 -0
- package/typings/slider/index.d.ts +4 -0
- package/typings/slider/index.metadata.json +1 -0
- package/typings/slider/public-api.d.ts +9 -0
- package/typings/slider/slider-module.d.ts +2 -0
- package/typings/slider/slider.d.ts +207 -0
- package/typings/snack-bar/index.d.ts +4 -0
- package/typings/snack-bar/index.metadata.json +1 -0
- package/typings/snack-bar/public-api.d.ts +13 -0
- package/typings/snack-bar/simple-snack-bar.d.ts +18 -0
- package/typings/snack-bar/snack-bar-config.d.ts +38 -0
- package/typings/snack-bar/snack-bar-container.d.ts +55 -0
- package/typings/snack-bar/snack-bar-module.d.ts +2 -0
- package/typings/snack-bar/snack-bar-ref.d.ts +51 -0
- package/typings/snack-bar/snack-bar.d.ts +70 -0
- package/typings/sort/index.d.ts +4 -0
- package/typings/sort/index.metadata.json +1 -0
- package/typings/sort/public-api.d.ts +12 -0
- package/typings/sort/sort-direction.d.ts +8 -0
- package/typings/sort/sort-errors.d.ts +15 -0
- package/typings/sort/sort-header-intl.d.ts +17 -0
- package/typings/sort/sort-header.d.ts +43 -0
- package/typings/sort/sort-module.d.ts +2 -0
- package/typings/sort/sort.d.ts +55 -0
- package/typings/stepper/index.d.ts +4 -0
- package/typings/stepper/index.metadata.json +1 -0
- package/typings/stepper/public-api.d.ts +13 -0
- package/typings/stepper/step-header.d.ts +41 -0
- package/typings/stepper/step-label.d.ts +14 -0
- package/typings/stepper/stepper-button.d.ts +10 -0
- package/typings/stepper/stepper-intl.d.ts +11 -0
- package/typings/stepper/stepper-module.d.ts +2 -0
- package/typings/stepper/stepper.d.ts +26 -0
- package/typings/table/cell.d.ts +43 -0
- package/typings/table/index.d.ts +4 -0
- package/typings/table/index.metadata.json +1 -0
- package/typings/table/public-api.d.ts +11 -0
- package/typings/table/row.d.ts +25 -0
- package/typings/table/table-module.d.ts +2 -0
- package/typings/table/table.d.ts +8 -0
- package/typings/tabs/index.d.ts +8 -0
- package/typings/tabs/index.metadata.json +1 -0
- package/typings/tabs/ink-bar.d.ts +33 -0
- package/typings/tabs/public-api.d.ts +16 -0
- package/typings/tabs/tab-body.d.ts +69 -0
- package/typings/tabs/tab-group.d.ts +104 -0
- package/typings/tabs/tab-header.d.ts +158 -0
- package/typings/tabs/tab-label-wrapper.d.ts +25 -0
- package/typings/tabs/tab-label.d.ts +15 -0
- package/typings/tabs/tab-nav-bar/index.d.ts +8 -0
- package/typings/tabs/tab-nav-bar/tab-nav-bar.d.ts +78 -0
- package/typings/tabs/tab.d.ts +50 -0
- package/typings/tabs/tabs-module.d.ts +2 -0
- package/typings/toolbar/index.d.ts +4 -0
- package/typings/toolbar/index.metadata.json +1 -0
- package/typings/toolbar/public-api.d.ts +9 -0
- package/typings/toolbar/toolbar-module.d.ts +2 -0
- package/typings/toolbar/toolbar.d.ts +21 -0
- package/typings/tooltip/index.d.ts +4 -0
- package/typings/tooltip/index.metadata.json +1 -0
- package/typings/tooltip/public-api.d.ts +9 -0
- package/typings/tooltip/tooltip-module.d.ts +2 -0
- package/typings/tooltip/tooltip.d.ts +175 -0
- package/typings/version.d.ts +10 -0
- package/autocomplete/README.md +0 -5
- package/autocomplete/_autocomplete-theme.scss +0 -5
- package/autocomplete/autocomplete.css +0 -0
- package/autocomplete/autocomplete.css.map +0 -1
- package/autocomplete/autocomplete.d.ts +0 -2
- package/autocomplete/autocomplete.html +0 -1
- package/autocomplete/autocomplete.js +0 -25
- package/autocomplete/autocomplete.js.map +0 -1
- package/autocomplete/autocomplete.metadata.json +0 -1
- package/autocomplete/autocomplete.scss +0 -0
- package/autocomplete/index.js +0 -34
- package/autocomplete/index.js.map +0 -1
- package/button/OVERVIEW.md +0 -25
- package/button/README.md +0 -116
- package/button/_button-base.scss +0 -111
- package/button/_button-theme.scss +0 -85
- package/button/button.css +0 -1
- package/button/button.css.map +0 -1
- package/button/button.d.ts +0 -46
- package/button/button.html +0 -1
- package/button/button.js +0 -203
- package/button/button.js.map +0 -1
- package/button/button.metadata.json +0 -1
- package/button/button.scss +0 -105
- package/button/index.js +0 -3
- package/button/index.js.map +0 -1
- package/button-toggle/OVERVIEW.md +0 -22
- package/button-toggle/README.md +0 -139
- package/button-toggle/_button-toggle-theme.scss +0 -14
- package/button-toggle/button-toggle.css +0 -1
- package/button-toggle/button-toggle.css.map +0 -1
- package/button-toggle/button-toggle.d.ts +0 -136
- package/button-toggle/button-toggle.html +0 -1
- package/button-toggle/button-toggle.js +0 -502
- package/button-toggle/button-toggle.js.map +0 -1
- package/button-toggle/button-toggle.metadata.json +0 -1
- package/button-toggle/button-toggle.scss +0 -49
- package/button-toggle/index.js +0 -3
- package/button-toggle/index.js.map +0 -1
- package/card/OVERVIEW.md +0 -45
- package/card/README.md +0 -116
- package/card/_card-theme.scss +0 -17
- package/card/card-header.html +0 -1
- package/card/card-title-group.html +0 -1
- package/card/card.css +0 -1
- package/card/card.css.map +0 -1
- package/card/card.d.ts +0 -54
- package/card/card.html +0 -1
- package/card/card.js +0 -174
- package/card/card.js.map +0 -1
- package/card/card.metadata.json +0 -1
- package/card/card.scss +0 -227
- package/card/index.js +0 -3
- package/card/index.js.map +0 -1
- package/checkbox/OVERVIEW.md +0 -28
- package/checkbox/README.md +0 -93
- package/checkbox/_checkbox-theme.scss +0 -84
- package/checkbox/checkbox.css +0 -1
- package/checkbox/checkbox.css.map +0 -1
- package/checkbox/checkbox.d.ts +0 -155
- package/checkbox/checkbox.html +0 -1
- package/checkbox/checkbox.js +0 -432
- package/checkbox/checkbox.js.map +0 -1
- package/checkbox/checkbox.metadata.json +0 -1
- package/checkbox/checkbox.scss +0 -431
- package/checkbox/index.js +0 -3
- package/checkbox/index.js.map +0 -1
- package/chips/OVERVIEW.md +0 -40
- package/chips/README.md +0 -7
- package/chips/_chips-theme.scss +0 -49
- package/chips/chip-list.d.ts +0 -66
- package/chips/chip-list.js +0 -210
- package/chips/chip-list.js.map +0 -1
- package/chips/chip-list.metadata.json +0 -1
- package/chips/chip.d.ts +0 -53
- package/chips/chip.js +0 -177
- package/chips/chip.js.map +0 -1
- package/chips/chip.metadata.json +0 -1
- package/chips/chips.css +0 -1
- package/chips/chips.css.map +0 -1
- package/chips/chips.scss +0 -80
- package/chips/index.js +0 -4
- package/chips/index.js.map +0 -1
- package/core/README.md +0 -1
- package/core/_core.scss +0 -27
- package/core/a11y/README.md +0 -30
- package/core/a11y/_a11y.scss +0 -24
- package/core/a11y/fake-mousedown.d.ts +0 -8
- package/core/a11y/fake-mousedown.js +0 -12
- package/core/a11y/fake-mousedown.js.map +0 -1
- package/core/a11y/fake-mousedown.metadata.json +0 -1
- package/core/a11y/focus-trap.d.ts +0 -41
- package/core/a11y/focus-trap.html +0 -1
- package/core/a11y/focus-trap.js +0 -129
- package/core/a11y/focus-trap.js.map +0 -1
- package/core/a11y/focus-trap.metadata.json +0 -1
- package/core/a11y/index.d.ts +0 -7
- package/core/a11y/index.js +0 -40
- package/core/a11y/index.js.map +0 -1
- package/core/a11y/index.metadata.json +0 -1
- package/core/a11y/interactivity-checker.d.ts +0 -45
- package/core/a11y/interactivity-checker.js +0 -210
- package/core/a11y/interactivity-checker.js.map +0 -1
- package/core/a11y/interactivity-checker.metadata.json +0 -1
- package/core/a11y/list-key-manager.d.ts +0 -83
- package/core/a11y/list-key-manager.js +0 -157
- package/core/a11y/list-key-manager.js.map +0 -1
- package/core/a11y/list-key-manager.metadata.json +0 -1
- package/core/a11y/live-announcer.d.ts +0 -17
- package/core/a11y/live-announcer.js +0 -63
- package/core/a11y/live-announcer.js.map +0 -1
- package/core/a11y/live-announcer.metadata.json +0 -1
- package/core/animation/animation.d.ts +0 -13
- package/core/animation/animation.js +0 -21
- package/core/animation/animation.js.map +0 -1
- package/core/animation/animation.metadata.json +0 -1
- package/core/async/promise-completer.d.ts +0 -7
- package/core/async/promise-completer.js +0 -13
- package/core/async/promise-completer.js.map +0 -1
- package/core/async/promise-completer.metadata.json +0 -1
- package/core/coercion/boolean-property.d.ts +0 -2
- package/core/coercion/boolean-property.js +0 -6
- package/core/coercion/boolean-property.js.map +0 -1
- package/core/coercion/boolean-property.metadata.json +0 -1
- package/core/coercion/number-property.d.ts +0 -2
- package/core/coercion/number-property.js +0 -10
- package/core/coercion/number-property.js.map +0 -1
- package/core/coercion/number-property.metadata.json +0 -1
- package/core/compatibility/default-mode.d.ts +0 -19
- package/core/compatibility/default-mode.js +0 -61
- package/core/compatibility/default-mode.js.map +0 -1
- package/core/compatibility/default-mode.metadata.json +0 -1
- package/core/compatibility/no-conflict-mode.d.ts +0 -10
- package/core/compatibility/no-conflict-mode.js +0 -47
- package/core/compatibility/no-conflict-mode.js.map +0 -1
- package/core/compatibility/no-conflict-mode.metadata.json +0 -1
- package/core/coordination/unique-selection-dispatcher.d.ts +0 -21
- package/core/coordination/unique-selection-dispatcher.js +0 -46
- package/core/coordination/unique-selection-dispatcher.js.map +0 -1
- package/core/coordination/unique-selection-dispatcher.metadata.json +0 -1
- package/core/core.d.ts +0 -45
- package/core/core.js +0 -110
- package/core/core.js.map +0 -1
- package/core/core.metadata.json +0 -1
- package/core/errors/error.d.ts +0 -7
- package/core/errors/error.js +0 -20
- package/core/errors/error.js.map +0 -1
- package/core/errors/error.metadata.json +0 -1
- package/core/gestures/gesture-annotations.d.ts +0 -44
- package/core/gestures/gesture-annotations.js +0 -7
- package/core/gestures/gesture-annotations.js.map +0 -1
- package/core/gestures/gesture-config.js +0 -85
- package/core/gestures/gesture-config.js.map +0 -1
- package/core/gestures/gesture-config.metadata.json +0 -1
- package/core/index.js +0 -3
- package/core/index.js.map +0 -1
- package/core/keyboard/keycodes.d.ts +0 -14
- package/core/keyboard/keycodes.js +0 -20
- package/core/keyboard/keycodes.js.map +0 -1
- package/core/keyboard/keycodes.metadata.json +0 -1
- package/core/line/line.d.ts +0 -23
- package/core/line/line.js +0 -74
- package/core/line/line.js.map +0 -1
- package/core/line/line.metadata.json +0 -1
- package/core/observe-content/observe-content.d.ts +0 -17
- package/core/observe-content/observe-content.js +0 -66
- package/core/observe-content/observe-content.js.map +0 -1
- package/core/observe-content/observe-content.metadata.json +0 -1
- package/core/overlay/_overlay.scss +0 -68
- package/core/overlay/generic-component-type.d.ts +0 -3
- package/core/overlay/generic-component-type.js +0 -3
- package/core/overlay/generic-component-type.js.map +0 -1
- package/core/overlay/overlay-container.d.ts +0 -19
- package/core/overlay/overlay-container.js +0 -33
- package/core/overlay/overlay-container.js.map +0 -1
- package/core/overlay/overlay-container.metadata.json +0 -1
- package/core/overlay/overlay-directives.d.ts +0 -80
- package/core/overlay/overlay-directives.js +0 -316
- package/core/overlay/overlay-directives.js.map +0 -1
- package/core/overlay/overlay-directives.metadata.json +0 -1
- package/core/overlay/overlay-ref.d.ts +0 -56
- package/core/overlay/overlay-ref.js +0 -155
- package/core/overlay/overlay-ref.js.map +0 -1
- package/core/overlay/overlay-ref.metadata.json +0 -1
- package/core/overlay/overlay-state.d.ts +0 -24
- package/core/overlay/overlay-state.js +0 -17
- package/core/overlay/overlay-state.js.map +0 -1
- package/core/overlay/overlay-state.metadata.json +0 -1
- package/core/overlay/overlay.d.ts +0 -54
- package/core/overlay/overlay.js +0 -97
- package/core/overlay/overlay.js.map +0 -1
- package/core/overlay/overlay.metadata.json +0 -1
- package/core/overlay/position/connected-position-strategy.d.ts +0 -133
- package/core/overlay/position/connected-position-strategy.js +0 -292
- package/core/overlay/position/connected-position-strategy.js.map +0 -1
- package/core/overlay/position/connected-position-strategy.metadata.json +0 -1
- package/core/overlay/position/connected-position.d.ts +0 -56
- package/core/overlay/position/connected-position.js +0 -65
- package/core/overlay/position/connected-position.js.map +0 -1
- package/core/overlay/position/connected-position.metadata.json +0 -1
- package/core/overlay/position/fake-viewport-ruler.d.ts +0 -15
- package/core/overlay/position/fake-viewport-ruler.js +0 -16
- package/core/overlay/position/fake-viewport-ruler.js.map +0 -1
- package/core/overlay/position/fake-viewport-ruler.metadata.json +0 -1
- package/core/overlay/position/global-position-strategy.d.ts +0 -75
- package/core/overlay/position/global-position-strategy.js +0 -148
- package/core/overlay/position/global-position-strategy.js.map +0 -1
- package/core/overlay/position/global-position-strategy.metadata.json +0 -1
- package/core/overlay/position/overlay-position-builder.d.ts +0 -21
- package/core/overlay/position/overlay-position-builder.js +0 -41
- package/core/overlay/position/overlay-position-builder.js.map +0 -1
- package/core/overlay/position/overlay-position-builder.metadata.json +0 -1
- package/core/overlay/position/position-strategy.d.ts +0 -7
- package/core/overlay/position/position-strategy.js +0 -3
- package/core/overlay/position/position-strategy.js.map +0 -1
- package/core/overlay/position/relative-position-strategy.d.ts +0 -9
- package/core/overlay/position/relative-position-strategy.js +0 -16
- package/core/overlay/position/relative-position-strategy.js.map +0 -1
- package/core/overlay/position/relative-position-strategy.metadata.json +0 -1
- package/core/overlay/position/viewport-ruler.d.ts +0 -16
- package/core/overlay/position/viewport-ruler.js +0 -67
- package/core/overlay/position/viewport-ruler.js.map +0 -1
- package/core/overlay/position/viewport-ruler.metadata.json +0 -1
- package/core/overlay/scroll/scroll-dispatcher.d.ts +0 -44
- package/core/overlay/scroll/scroll-dispatcher.js +0 -94
- package/core/overlay/scroll/scroll-dispatcher.js.map +0 -1
- package/core/overlay/scroll/scroll-dispatcher.metadata.json +0 -1
- package/core/overlay/scroll/scrollable.d.ts +0 -21
- package/core/overlay/scroll/scrollable.js +0 -48
- package/core/overlay/scroll/scrollable.js.map +0 -1
- package/core/overlay/scroll/scrollable.metadata.json +0 -1
- package/core/platform/features.d.ts +0 -2
- package/core/platform/features.js +0 -37
- package/core/platform/features.js.map +0 -1
- package/core/platform/features.metadata.json +0 -1
- package/core/platform/index.d.ts +0 -6
- package/core/platform/index.js +0 -30
- package/core/platform/index.js.map +0 -1
- package/core/platform/index.metadata.json +0 -1
- package/core/platform/platform.d.ts +0 -16
- package/core/platform/platform.js +0 -48
- package/core/platform/platform.js.map +0 -1
- package/core/platform/platform.metadata.json +0 -1
- package/core/portal/README.md +0 -72
- package/core/portal/dom-portal-host.d.ts +0 -31
- package/core/portal/dom-portal-host.js +0 -108
- package/core/portal/dom-portal-host.js.map +0 -1
- package/core/portal/dom-portal-host.metadata.json +0 -1
- package/core/portal/portal-directives.d.ts +0 -49
- package/core/portal/portal-directives.js +0 -148
- package/core/portal/portal-directives.js.map +0 -1
- package/core/portal/portal-directives.metadata.json +0 -1
- package/core/portal/portal-errors.d.ts +0 -43
- package/core/portal/portal-errors.js +0 -75
- package/core/portal/portal-errors.js.map +0 -1
- package/core/portal/portal-errors.metadata.json +0 -1
- package/core/portal/portal.d.ts +0 -85
- package/core/portal/portal.js +0 -155
- package/core/portal/portal.js.map +0 -1
- package/core/portal/portal.metadata.json +0 -1
- package/core/projection/projection.d.ts +0 -45
- package/core/projection/projection.js +0 -111
- package/core/projection/projection.js.map +0 -1
- package/core/projection/projection.metadata.json +0 -1
- package/core/ripple/README.md +0 -27
- package/core/ripple/_ripple.scss +0 -106
- package/core/ripple/ripple-renderer.d.ts +0 -76
- package/core/ripple/ripple-renderer.js +0 -177
- package/core/ripple/ripple-renderer.js.map +0 -1
- package/core/ripple/ripple-renderer.metadata.json +0 -1
- package/core/ripple/ripple.d.ts +0 -92
- package/core/ripple/ripple.js +0 -295
- package/core/ripple/ripple.js.map +0 -1
- package/core/ripple/ripple.metadata.json +0 -1
- package/core/rtl/dir.d.ts +0 -21
- package/core/rtl/dir.js +0 -87
- package/core/rtl/dir.js.map +0 -1
- package/core/rtl/dir.metadata.json +0 -1
- package/core/style/_button-common.scss +0 -7
- package/core/style/_elevation.scss +0 -174
- package/core/style/_form-common.scss +0 -12
- package/core/style/_layout-common.scss +0 -8
- package/core/style/_list-common.scss +0 -49
- package/core/style/_menu-common.scss +0 -89
- package/core/style/_variables.scss +0 -64
- package/core/style/apply-transform.d.ts +0 -6
- package/core/style/apply-transform.js +0 -14
- package/core/style/apply-transform.js.map +0 -1
- package/core/style/apply-transform.metadata.json +0 -1
- package/core/theming/_all-theme.scss +0 -52
- package/core/theming/_palette.scss +0 -694
- package/core/theming/_theming.scss +0 -84
- package/core/theming/prebuilt/deeppurple-amber.css +0 -1
- package/core/theming/prebuilt/deeppurple-amber.css.map +0 -1
- package/core/theming/prebuilt/deeppurple-amber.scss +0 -14
- package/core/theming/prebuilt/indigo-pink.css +0 -1
- package/core/theming/prebuilt/indigo-pink.css.map +0 -1
- package/core/theming/prebuilt/indigo-pink.scss +0 -14
- package/core/theming/prebuilt/pink-bluegrey.css +0 -1
- package/core/theming/prebuilt/pink-bluegrey.css.map +0 -1
- package/core/theming/prebuilt/pink-bluegrey.scss +0 -14
- package/core/theming/prebuilt/purple-green.css +0 -1
- package/core/theming/prebuilt/purple-green.css.map +0 -1
- package/core/theming/prebuilt/purple-green.scss +0 -14
- package/core/typography/_typography.scss +0 -6
- package/core/util/object-extend.d.ts +0 -8
- package/core/util/object-extend.js +0 -29
- package/core/util/object-extend.js.map +0 -1
- package/core/util/object-extend.metadata.json +0 -1
- package/core.js +0 -3
- package/core.js.map +0 -1
- package/dialog/OVERVIEW.md +0 -39
- package/dialog/README.md +0 -102
- package/dialog/_dialog-theme.scss +0 -11
- package/dialog/dialog-config.d.ts +0 -26
- package/dialog/dialog-config.js +0 -19
- package/dialog/dialog-config.js.map +0 -1
- package/dialog/dialog-config.metadata.json +0 -1
- package/dialog/dialog-container.d.ts +0 -37
- package/dialog/dialog-container.html +0 -1
- package/dialog/dialog-container.js +0 -97
- package/dialog/dialog-container.js.map +0 -1
- package/dialog/dialog-container.metadata.json +0 -1
- package/dialog/dialog-content-directives.d.ts +0 -26
- package/dialog/dialog-content-directives.js +0 -81
- package/dialog/dialog-content-directives.js.map +0 -1
- package/dialog/dialog-content-directives.metadata.json +0 -1
- package/dialog/dialog-errors.d.ts +0 -8
- package/dialog/dialog-errors.js +0 -19
- package/dialog/dialog-errors.js.map +0 -1
- package/dialog/dialog-errors.metadata.json +0 -1
- package/dialog/dialog-injector.d.ts +0 -9
- package/dialog/dialog-injector.js +0 -17
- package/dialog/dialog-injector.js.map +0 -1
- package/dialog/dialog-injector.metadata.json +0 -1
- package/dialog/dialog-ref.d.ts +0 -22
- package/dialog/dialog-ref.js +0 -31
- package/dialog/dialog-ref.js.map +0 -1
- package/dialog/dialog-ref.metadata.json +0 -1
- package/dialog/dialog.css +0 -1
- package/dialog/dialog.css.map +0 -1
- package/dialog/dialog.d.ts +0 -57
- package/dialog/dialog.js +0 -157
- package/dialog/dialog.js.map +0 -1
- package/dialog/dialog.metadata.json +0 -1
- package/dialog/dialog.scss +0 -54
- package/dialog/index.js +0 -59
- package/dialog/index.js.map +0 -1
- package/grid-list/OVERVIEW.md +0 -43
- package/grid-list/README.md +0 -105
- package/grid-list/_grid-list-theme.scss +0 -6
- package/grid-list/grid-list-errors.d.ts +0 -22
- package/grid-list/grid-list-errors.js +0 -41
- package/grid-list/grid-list-errors.js.map +0 -1
- package/grid-list/grid-list-errors.metadata.json +0 -1
- package/grid-list/grid-list-measure.d.ts +0 -10
- package/grid-list/grid-list-measure.js +0 -16
- package/grid-list/grid-list-measure.js.map +0 -1
- package/grid-list/grid-list-measure.metadata.json +0 -1
- package/grid-list/grid-list.css +0 -1
- package/grid-list/grid-list.css.map +0 -1
- package/grid-list/grid-list.d.ts +0 -49
- package/grid-list/grid-list.html +0 -1
- package/grid-list/grid-list.js +0 -166
- package/grid-list/grid-list.js.map +0 -1
- package/grid-list/grid-list.metadata.json +0 -1
- package/grid-list/grid-list.scss +0 -91
- package/grid-list/grid-tile-text.html +0 -1
- package/grid-list/grid-tile.d.ts +0 -30
- package/grid-list/grid-tile.html +0 -1
- package/grid-list/grid-tile.js +0 -81
- package/grid-list/grid-tile.js.map +0 -1
- package/grid-list/grid-tile.metadata.json +0 -1
- package/grid-list/index.js +0 -3
- package/grid-list/index.js.map +0 -1
- package/grid-list/tile-coordinator.d.ts +0 -56
- package/grid-list/tile-coordinator.js +0 -129
- package/grid-list/tile-coordinator.js.map +0 -1
- package/grid-list/tile-coordinator.metadata.json +0 -1
- package/grid-list/tile-styler.d.ts +0 -112
- package/grid-list/tile-styler.js +0 -211
- package/grid-list/tile-styler.js.map +0 -1
- package/grid-list/tile-styler.metadata.json +0 -1
- package/icon/OVERVIEW.md +0 -88
- package/icon/README.md +0 -129
- package/icon/_icon-theme.scss +0 -25
- package/icon/fake-svgs.d.ts +0 -6
- package/icon/fake-svgs.js +0 -31
- package/icon/fake-svgs.js.map +0 -1
- package/icon/fake-svgs.metadata.json +0 -1
- package/icon/icon-registry.d.ts +0 -180
- package/icon/icon-registry.js +0 -413
- package/icon/icon-registry.js.map +0 -1
- package/icon/icon-registry.metadata.json +0 -1
- package/icon/icon.css +0 -1
- package/icon/icon.css.map +0 -1
- package/icon/icon.d.ts +0 -91
- package/icon/icon.js +0 -264
- package/icon/icon.js.map +0 -1
- package/icon/icon.metadata.json +0 -1
- package/icon/icon.scss +0 -13
- package/icon/index.js +0 -3
- package/icon/index.js.map +0 -1
- package/index.d.ts +0 -25
- package/index.js +0 -27
- package/index.js.map +0 -1
- package/index.metadata.json +0 -1
- package/input/OVERVIEW.md +0 -72
- package/input/README.md +0 -183
- package/input/_input-theme.scss +0 -62
- package/input/autosize.d.ts +0 -29
- package/input/autosize.js +0 -94
- package/input/autosize.js.map +0 -1
- package/input/autosize.metadata.json +0 -1
- package/input/index.js +0 -6
- package/input/index.js.map +0 -1
- package/input/input-container-errors.d.ts +0 -17
- package/input/input-container-errors.js +0 -41
- package/input/input-container-errors.js.map +0 -1
- package/input/input-container-errors.metadata.json +0 -1
- package/input/input-container.css +0 -1
- package/input/input-container.css.map +0 -1
- package/input/input-container.d.ts +0 -95
- package/input/input-container.html +0 -1
- package/input/input-container.js +0 -352
- package/input/input-container.js.map +0 -1
- package/input/input-container.metadata.json +0 -1
- package/input/input-container.scss +0 -32
- package/input/input.css +0 -1
- package/input/input.css.map +0 -1
- package/input/input.d.ts +0 -184
- package/input/input.html +0 -1
- package/input/input.js +0 -564
- package/input/input.js.map +0 -1
- package/input/input.metadata.json +0 -1
- package/input/input.scss +0 -202
- package/list/OVERVIEW.md +0 -124
- package/list/README.md +0 -154
- package/list/_list-theme.scss +0 -28
- package/list/index.js +0 -3
- package/list/index.js.map +0 -1
- package/list/list-item.html +0 -1
- package/list/list.css +0 -1
- package/list/list.css.map +0 -1
- package/list/list.d.ts +0 -23
- package/list/list.js +0 -119
- package/list/list.js.map +0 -1
- package/list/list.metadata.json +0 -1
- package/list/list.scss +0 -181
- package/menu/OVERVIEW.md +0 -62
- package/menu/README.md +0 -171
- package/menu/_menu-theme.scss +0 -29
- package/menu/index.js +0 -7
- package/menu/index.js.map +0 -1
- package/menu/menu-animations.d.ts +0 -19
- package/menu/menu-animations.js +0 -43
- package/menu/menu-animations.js.map +0 -1
- package/menu/menu-animations.metadata.json +0 -1
- package/menu/menu-directive.d.ts +0 -46
- package/menu/menu-directive.js +0 -136
- package/menu/menu-directive.js.map +0 -1
- package/menu/menu-directive.metadata.json +0 -1
- package/menu/menu-errors.d.ts +0 -24
- package/menu/menu-errors.js +0 -43
- package/menu/menu-errors.js.map +0 -1
- package/menu/menu-errors.metadata.json +0 -1
- package/menu/menu-item.d.ts +0 -20
- package/menu/menu-item.html +0 -1
- package/menu/menu-item.js +0 -77
- package/menu/menu-item.js.map +0 -1
- package/menu/menu-item.metadata.json +0 -1
- package/menu/menu-panel.d.ts +0 -10
- package/menu/menu-panel.js +0 -3
- package/menu/menu-panel.js.map +0 -1
- package/menu/menu-positions.d.ts +0 -2
- package/menu/menu-positions.js +0 -3
- package/menu/menu-positions.js.map +0 -1
- package/menu/menu-trigger.d.ts +0 -92
- package/menu/menu-trigger.js +0 -246
- package/menu/menu-trigger.js.map +0 -1
- package/menu/menu-trigger.metadata.json +0 -1
- package/menu/menu.css +0 -1
- package/menu/menu.css.map +0 -1
- package/menu/menu.d.ts +0 -9
- package/menu/menu.html +0 -1
- package/menu/menu.js +0 -40
- package/menu/menu.js.map +0 -1
- package/menu/menu.metadata.json +0 -1
- package/menu/menu.scss +0 -44
- package/module.d.ts +0 -6
- package/module.js +0 -132
- package/module.js.map +0 -1
- package/module.metadata.json +0 -1
- package/progress-bar/OVERVIEW.md +0 -30
- package/progress-bar/README.md +0 -54
- package/progress-bar/_progress-bar-theme.scss +0 -70
- package/progress-bar/index.js +0 -3
- package/progress-bar/index.js.map +0 -1
- package/progress-bar/progress-bar.css +0 -1
- package/progress-bar/progress-bar.css.map +0 -1
- package/progress-bar/progress-bar.d.ts +0 -36
- package/progress-bar/progress-bar.html +0 -1
- package/progress-bar/progress-bar.js +0 -124
- package/progress-bar/progress-bar.js.map +0 -1
- package/progress-bar/progress-bar.metadata.json +0 -1
- package/progress-bar/progress-bar.scss +0 -230
- package/progress-spinner/OVERVIEW.md +0 -23
- package/progress-spinner/README.md +0 -51
- package/progress-spinner/_progress-spinner-theme.scss +0 -23
- package/progress-spinner/index.js +0 -4
- package/progress-spinner/index.js.map +0 -1
- package/progress-spinner/progress-circle.d.ts +0 -4
- package/progress-spinner/progress-circle.js +0 -6
- package/progress-spinner/progress-circle.js.map +0 -1
- package/progress-spinner/progress-circle.metadata.json +0 -1
- package/progress-spinner/progress-spinner.css +0 -1
- package/progress-spinner/progress-spinner.css.map +0 -1
- package/progress-spinner/progress-spinner.d.ts +0 -80
- package/progress-spinner/progress-spinner.html +0 -1
- package/progress-spinner/progress-spinner.js +0 -337
- package/progress-spinner/progress-spinner.js.map +0 -1
- package/progress-spinner/progress-spinner.metadata.json +0 -1
- package/progress-spinner/progress-spinner.scss +0 -68
- package/radio/OVERVIEW.md +0 -29
- package/radio/README.md +0 -55
- package/radio/_radio-theme.scss +0 -39
- package/radio/index.js +0 -3
- package/radio/index.js.map +0 -1
- package/radio/radio.css +0 -1
- package/radio/radio.css.map +0 -1
- package/radio/radio.d.ts +0 -179
- package/radio/radio.html +0 -1
- package/radio/radio.js +0 -552
- package/radio/radio.js.map +0 -1
- package/radio/radio.metadata.json +0 -1
- package/radio/radio.scss +0 -102
- package/select/OVERVIEW.md +0 -8
- package/select/README.md +0 -3
- package/select/_select-theme.scss +0 -64
- package/select/index.js +0 -38
- package/select/index.js.map +0 -1
- package/select/option.d.ts +0 -44
- package/select/option.html +0 -1
- package/select/option.js +0 -135
- package/select/option.js.map +0 -1
- package/select/option.metadata.json +0 -1
- package/select/select-animations.d.ts +0 -29
- package/select/select-animations.js +0 -66
- package/select/select-animations.js.map +0 -1
- package/select/select-animations.metadata.json +0 -1
- package/select/select.css +0 -1
- package/select/select.css.map +0 -1
- package/select/select.d.ts +0 -258
- package/select/select.html +0 -1
- package/select/select.js +0 -604
- package/select/select.js.map +0 -1
- package/select/select.metadata.json +0 -1
- package/select/select.scss +0 -131
- package/sidenav/OVERVIEW.md +0 -70
- package/sidenav/README.md +0 -166
- package/sidenav/_sidenav-theme.scss +0 -37
- package/sidenav/index.js +0 -3
- package/sidenav/index.js.map +0 -1
- package/sidenav/sidenav-container.html +0 -1
- package/sidenav/sidenav-transitions.css +0 -1
- package/sidenav/sidenav-transitions.css.map +0 -1
- package/sidenav/sidenav-transitions.scss +0 -14
- package/sidenav/sidenav.css +0 -1
- package/sidenav/sidenav.css.map +0 -1
- package/sidenav/sidenav.d.ts +0 -182
- package/sidenav/sidenav.html +0 -1
- package/sidenav/sidenav.js +0 -580
- package/sidenav/sidenav.js.map +0 -1
- package/sidenav/sidenav.metadata.json +0 -1
- package/sidenav/sidenav.scss +0 -151
- package/slide-toggle/OVERVIEW.md +0 -24
- package/slide-toggle/README.md +0 -66
- package/slide-toggle/_slide-toggle-theme.scss +0 -89
- package/slide-toggle/index.js +0 -3
- package/slide-toggle/index.js.map +0 -1
- package/slide-toggle/slide-toggle.css +0 -1
- package/slide-toggle/slide-toggle.css.map +0 -1
- package/slide-toggle/slide-toggle.d.ts +0 -84
- package/slide-toggle/slide-toggle.html +0 -1
- package/slide-toggle/slide-toggle.js +0 -347
- package/slide-toggle/slide-toggle.js.map +0 -1
- package/slide-toggle/slide-toggle.metadata.json +0 -1
- package/slide-toggle/slide-toggle.scss +0 -158
- package/slider/OVERVIEW.md +0 -87
- package/slider/README.md +0 -150
- package/slider/_slider-theme.scss +0 -32
- package/slider/index.js +0 -3
- package/slider/index.js.map +0 -1
- package/slider/slider.css +0 -1
- package/slider/slider.css.map +0 -1
- package/slider/slider.d.ts +0 -176
- package/slider/slider.html +0 -1
- package/slider/slider.js +0 -609
- package/slider/slider.js.map +0 -1
- package/slider/slider.metadata.json +0 -1
- package/slider/slider.scss +0 -307
- package/slider/test-gesture-config.d.ts +0 -21
- package/slider/test-gesture-config.js +0 -60
- package/slider/test-gesture-config.js.map +0 -1
- package/slider/test-gesture-config.metadata.json +0 -1
- package/snack-bar/OVERVIEW.md +0 -47
- package/snack-bar/README.md +0 -37
- package/snack-bar/index.js +0 -6
- package/snack-bar/index.js.map +0 -1
- package/snack-bar/simple-snack-bar.css +0 -1
- package/snack-bar/simple-snack-bar.css.map +0 -1
- package/snack-bar/simple-snack-bar.d.ts +0 -17
- package/snack-bar/simple-snack-bar.html +0 -1
- package/snack-bar/simple-snack-bar.js +0 -38
- package/snack-bar/simple-snack-bar.js.map +0 -1
- package/snack-bar/simple-snack-bar.metadata.json +0 -1
- package/snack-bar/simple-snack-bar.scss +0 -28
- package/snack-bar/snack-bar-config.d.ts +0 -15
- package/snack-bar/snack-bar-config.js +0 -18
- package/snack-bar/snack-bar-config.js.map +0 -1
- package/snack-bar/snack-bar-config.metadata.json +0 -1
- package/snack-bar/snack-bar-container.css +0 -1
- package/snack-bar/snack-bar-container.css.map +0 -1
- package/snack-bar/snack-bar-container.d.ts +0 -43
- package/snack-bar/snack-bar-container.html +0 -1
- package/snack-bar/snack-bar-container.js +0 -124
- package/snack-bar/snack-bar-container.js.map +0 -1
- package/snack-bar/snack-bar-container.metadata.json +0 -1
- package/snack-bar/snack-bar-container.scss +0 -27
- package/snack-bar/snack-bar-errors.d.ts +0 -8
- package/snack-bar/snack-bar-errors.js +0 -19
- package/snack-bar/snack-bar-errors.js.map +0 -1
- package/snack-bar/snack-bar-errors.metadata.json +0 -1
- package/snack-bar/snack-bar-ref.d.ts +0 -38
- package/snack-bar/snack-bar-ref.js +0 -70
- package/snack-bar/snack-bar-ref.js.map +0 -1
- package/snack-bar/snack-bar-ref.metadata.json +0 -1
- package/snack-bar/snack-bar.d.ts +0 -45
- package/snack-bar/snack-bar.js +0 -145
- package/snack-bar/snack-bar.js.map +0 -1
- package/snack-bar/snack-bar.metadata.json +0 -1
- package/system-config-spec.d.ts +0 -2
- package/tabs/OVERVIEW.md +0 -81
- package/tabs/README.md +0 -64
- package/tabs/Tabs Pagination.png +0 -0
- package/tabs/_tabs-common.scss +0 -42
- package/tabs/_tabs-theme.scss +0 -24
- package/tabs/index.js +0 -9
- package/tabs/index.js.map +0 -1
- package/tabs/ink-bar.d.ts +0 -27
- package/tabs/ink-bar.js +0 -58
- package/tabs/ink-bar.js.map +0 -1
- package/tabs/ink-bar.metadata.json +0 -1
- package/tabs/tab-body.d.ts +0 -59
- package/tabs/tab-body.html +0 -1
- package/tabs/tab-body.js +0 -157
- package/tabs/tab-body.js.map +0 -1
- package/tabs/tab-body.metadata.json +0 -1
- package/tabs/tab-group.css +0 -1
- package/tabs/tab-group.css.map +0 -1
- package/tabs/tab-group.d.ts +0 -71
- package/tabs/tab-group.html +0 -1
- package/tabs/tab-group.js +0 -236
- package/tabs/tab-group.js.map +0 -1
- package/tabs/tab-group.metadata.json +0 -1
- package/tabs/tab-group.scss +0 -59
- package/tabs/tab-header.css +0 -1
- package/tabs/tab-header.css.map +0 -1
- package/tabs/tab-header.d.ts +0 -137
- package/tabs/tab-header.html +0 -1
- package/tabs/tab-header.js +0 -354
- package/tabs/tab-header.js.map +0 -1
- package/tabs/tab-header.metadata.json +0 -1
- package/tabs/tab-header.scss +0 -85
- package/tabs/tab-label-wrapper.d.ts +0 -15
- package/tabs/tab-label-wrapper.js +0 -53
- package/tabs/tab-label-wrapper.js.map +0 -1
- package/tabs/tab-label-wrapper.metadata.json +0 -1
- package/tabs/tab-label.d.ts +0 -6
- package/tabs/tab-label.js +0 -32
- package/tabs/tab-label.js.map +0 -1
- package/tabs/tab-label.metadata.json +0 -1
- package/tabs/tab-nav-bar/index.d.ts +0 -1
- package/tabs/tab-nav-bar/index.js +0 -3
- package/tabs/tab-nav-bar/index.js.map +0 -1
- package/tabs/tab-nav-bar/index.metadata.json +0 -1
- package/tabs/tab-nav-bar/tab-nav-bar.css +0 -1
- package/tabs/tab-nav-bar/tab-nav-bar.css.map +0 -1
- package/tabs/tab-nav-bar/tab-nav-bar.d.ts +0 -37
- package/tabs/tab-nav-bar/tab-nav-bar.html +0 -1
- package/tabs/tab-nav-bar/tab-nav-bar.js +0 -103
- package/tabs/tab-nav-bar/tab-nav-bar.js.map +0 -1
- package/tabs/tab-nav-bar/tab-nav-bar.metadata.json +0 -1
- package/tabs/tab-nav-bar/tab-nav-bar.scss +0 -26
- package/tabs/tab.d.ts +0 -30
- package/tabs/tab.html +0 -1
- package/tabs/tab.js +0 -74
- package/tabs/tab.js.map +0 -1
- package/tabs/tab.metadata.json +0 -1
- package/toolbar/OVERVIEW.md +0 -51
- package/toolbar/README.md +0 -68
- package/toolbar/_toolbar-theme.scss +0 -33
- package/toolbar/index.js +0 -3
- package/toolbar/index.js.map +0 -1
- package/toolbar/toolbar.css +0 -1
- package/toolbar/toolbar.css.map +0 -1
- package/toolbar/toolbar.d.ts +0 -16
- package/toolbar/toolbar.html +0 -1
- package/toolbar/toolbar.js +0 -84
- package/toolbar/toolbar.js.map +0 -1
- package/toolbar/toolbar.metadata.json +0 -1
- package/toolbar/toolbar.scss +0 -58
- package/tooltip/OVERVIEW.md +0 -35
- package/tooltip/README.md +0 -28
- package/tooltip/_tooltip-theme.scss +0 -9
- package/tooltip/index.js +0 -3
- package/tooltip/index.js.map +0 -1
- package/tooltip/tooltip-errors.d.ts +0 -8
- package/tooltip/tooltip-errors.js +0 -19
- package/tooltip/tooltip-errors.js.map +0 -1
- package/tooltip/tooltip-errors.metadata.json +0 -1
- package/tooltip/tooltip.css +0 -1
- package/tooltip/tooltip.css.map +0 -1
- package/tooltip/tooltip.d.ts +0 -116
- package/tooltip/tooltip.html +0 -1
- package/tooltip/tooltip.js +0 -387
- package/tooltip/tooltip.js.map +0 -1
- package/tooltip/tooltip.metadata.json +0 -1
- package/tooltip/tooltip.scss +0 -26
- package/tsconfig-srcs.json +0 -31
- package/tsconfig.json +0 -34
- package/typedoc.json +0 -20
- package/typings.d.ts +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"material-paginator.umd.js","sources":["../../node_modules/tslib/tslib.es6.js","material/core.es5.js","material/button.es5.js","material/form-field.es5.js","material/select.es5.js","material/tooltip.es5.js","material/paginator.es5.js"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator.throw(value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [0, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; }; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator];\r\n return m ? m.call(o) : typeof __values === \"function\" ? __values(o) : o[Symbol.iterator]();\r\n}","/**\n * @license\n * Copyright Google Inc. 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 */\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Directive, ElementRef, EventEmitter, Inject, Injectable, InjectionToken, Input, LOCALE_ID, NgModule, NgZone, Optional, Output, ViewEncapsulation, isDevMode } from '@angular/core';\nimport { BidiModule } from '@angular/cdk/bidi';\nimport { __extends } from 'tslib';\nimport * as tslib_1 from 'tslib';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Subject } from 'rxjs/Subject';\nimport { HammerGestureConfig } from '@angular/platform-browser';\nimport { CommonModule } from '@angular/common';\nimport { Platform, PlatformModule } from '@angular/cdk/platform';\nimport { ENTER, SPACE } from '@angular/cdk/keycodes';\n\n/**\n * \\@docs-private\n */\nvar AnimationCurves = (function () {\n function AnimationCurves() {\n }\n AnimationCurves.STANDARD_CURVE = 'cubic-bezier(0.4,0.0,0.2,1)';\n AnimationCurves.DECELERATION_CURVE = 'cubic-bezier(0.0,0.0,0.2,1)';\n AnimationCurves.ACCELERATION_CURVE = 'cubic-bezier(0.4,0.0,1,1)';\n AnimationCurves.SHARP_CURVE = 'cubic-bezier(0.4,0.0,0.6,1)';\n return AnimationCurves;\n}());\n/**\n * \\@docs-private\n */\nvar AnimationDurations = (function () {\n function AnimationDurations() {\n }\n AnimationDurations.COMPLEX = '375ms';\n AnimationDurations.ENTERING = '225ms';\n AnimationDurations.EXITING = '195ms';\n return AnimationDurations;\n}());\n\nvar MATERIAL_COMPATIBILITY_MODE = new InjectionToken('md-compatibility-mode');\n/**\n * Selector that matches all elements that may have style collisions with AngularJS Material.\n */\nvar MAT_ELEMENTS_SELECTOR = \"\\n [mat-button],\\n [mat-fab],\\n [mat-icon-button],\\n [mat-mini-fab],\\n [mat-raised-button],\\n [matCardSubtitle],\\n [matCardTitle],\\n [matCellDef],\\n [matColumnDef],\\n [matDialogActions],\\n [matDialogClose],\\n [matDialogContent],\\n [matDialogTitle],\\n [matHeaderCellDef],\\n [matHeaderRowDef],\\n [matLine],\\n [matRowDef],\\n [matStepLabel],\\n [matStepperNext],\\n [matStepperPrevious],\\n [matTabLabel],\\n [matTabLink],\\n [matTabNav],\\n [matTooltip],\\n [matInput],\\n [matPrefix],\\n [matSuffix],\\n mat-autocomplete,\\n mat-button-toggle,\\n mat-button-toggle,\\n mat-button-toggle-group,\\n mat-card,\\n mat-card-actions,\\n mat-card-content,\\n mat-card-footer,\\n mat-card-header,\\n mat-card-subtitle,\\n mat-card-title,\\n mat-card-title-group,\\n mat-cell,\\n mat-checkbox,\\n mat-chip,\\n mat-dialog-actions,\\n mat-dialog-container,\\n mat-dialog-content,\\n mat-divider,\\n mat-error,\\n mat-grid-list,\\n mat-grid-tile,\\n mat-grid-tile-footer,\\n mat-grid-tile-header,\\n mat-header-cell,\\n mat-header-row,\\n mat-hint,\\n mat-horizontal-stepper,\\n mat-icon,\\n mat-input-container,\\n mat-form-field,\\n mat-list,\\n mat-list-item,\\n mat-menu,\\n mat-nav-list,\\n mat-option,\\n mat-placeholder,\\n mat-progress-bar,\\n mat-pseudo-checkbox,\\n mat-radio-button,\\n mat-radio-group,\\n mat-row,\\n mat-select,\\n mat-sidenav,\\n mat-sidenav-container,\\n mat-slider,\\n mat-spinner,\\n mat-step,\\n mat-tab,\\n mat-table,\\n mat-tab-group,\\n mat-toolbar,\\n mat-vertical-stepper\";\n/**\n * Selector that matches all elements that may have style collisions with AngularJS Material.\n */\nvar MD_ELEMENTS_SELECTOR = \"\\n [md-button],\\n [md-fab],\\n [md-icon-button],\\n [md-mini-fab],\\n [md-raised-button],\\n [mdCardSubtitle],\\n [mdCardTitle],\\n [mdCellDef],\\n [mdColumnDef],\\n [mdDialogActions],\\n [mdDialogClose],\\n [mdDialogContent],\\n [mdDialogTitle],\\n [mdHeaderCellDef],\\n [mdHeaderRowDef],\\n [mdLine],\\n [mdRowDef],\\n [mdStepLabel],\\n [mdStepperNext],\\n [mdStepperPrevious],\\n [mdTabLabel],\\n [mdTabLink],\\n [mdTabNav],\\n [mdTooltip],\\n [mdInput],\\n [mdPrefix],\\n [mdSuffix],\\n md-autocomplete,\\n md-button-toggle,\\n md-button-toggle,\\n md-button-toggle-group,\\n md-card,\\n md-card-actions,\\n md-card-content,\\n md-card-footer,\\n md-card-header,\\n md-card-subtitle,\\n md-card-title,\\n md-card-title-group,\\n md-cell,\\n md-checkbox,\\n md-chip,\\n md-dialog-actions,\\n md-dialog-container,\\n md-dialog-content,\\n md-divider,\\n md-error,\\n md-grid-list,\\n md-grid-tile,\\n md-grid-tile-footer,\\n md-grid-tile-header,\\n md-header-cell,\\n md-header-row,\\n md-hint,\\n md-horizontal-stepper,\\n md-icon,\\n md-input-container,\\n md-form-field,\\n md-list,\\n md-list-item,\\n md-menu,\\n md-nav-list,\\n md-option,\\n md-placeholder,\\n md-progress-bar,\\n md-pseudo-checkbox,\\n md-radio-button,\\n md-radio-group,\\n md-row,\\n md-select,\\n md-sidenav,\\n md-sidenav-container,\\n md-slider,\\n md-spinner,\\n md-step,\\n md-tab,\\n md-table,\\n md-tab-group,\\n md-toolbar,\\n md-vertical-stepper\";\n/**\n * Directive that enforces that the `mat-` prefix cannot be used.\n */\nvar MatPrefixRejector = (function () {\n function MatPrefixRejector() {\n }\n MatPrefixRejector.decorators = [\n { type: Directive, args: [{ selector: MAT_ELEMENTS_SELECTOR },] },\n ];\n /**\n * @nocollapse\n */\n MatPrefixRejector.ctorParameters = function () { return []; };\n return MatPrefixRejector;\n}());\n/**\n * Directive that enforces that the `md-` prefix cannot be used.\n */\nvar MdPrefixRejector = (function () {\n function MdPrefixRejector() {\n }\n MdPrefixRejector.decorators = [\n { type: Directive, args: [{ selector: MD_ELEMENTS_SELECTOR },] },\n ];\n /**\n * @nocollapse\n */\n MdPrefixRejector.ctorParameters = function () { return []; };\n return MdPrefixRejector;\n}());\n/**\n * Module that enforces the default compatibility mode settings. When this module is loaded\n * without NoConflictStyleCompatibilityMode also being imported, it will throw an error if\n * there are any uses of the `mat-` prefix.\n */\nvar CompatibilityModule = (function () {\n function CompatibilityModule() {\n }\n CompatibilityModule.decorators = [\n { type: NgModule, args: [{\n declarations: [MatPrefixRejector, MdPrefixRejector],\n exports: [MatPrefixRejector, MdPrefixRejector],\n },] },\n ];\n /**\n * @nocollapse\n */\n CompatibilityModule.ctorParameters = function () { return []; };\n return CompatibilityModule;\n}());\n/**\n * Module that enforces \"no-conflict\" compatibility mode settings. When this module is loaded,\n * it will throw an error if there are any uses of the `md-` prefix.\n */\nvar NoConflictStyleCompatibilityMode = (function () {\n function NoConflictStyleCompatibilityMode() {\n }\n NoConflictStyleCompatibilityMode.decorators = [\n { type: NgModule },\n ];\n /**\n * @nocollapse\n */\n NoConflictStyleCompatibilityMode.ctorParameters = function () { return []; };\n return NoConflictStyleCompatibilityMode;\n}());\n\n/**\n * Injection token that configures whether the Material sanity checks are enabled.\n */\nvar MATERIAL_SANITY_CHECKS = new InjectionToken('mat-sanity-checks');\n/**\n * Module that captures anything that should be loaded and/or run for *all* Angular Material\n * components. This includes Bidi, compatibility mode, etc.\n *\n * This module should be imported to each top-level component module (e.g., MatTabsModule).\n */\nvar MatCommonModule = (function () {\n /**\n * @param {?} sanityChecksEnabled\n */\n function MatCommonModule(sanityChecksEnabled) {\n /**\n * Whether we've done the global sanity checks (e.g. a theme is loaded, there is a doctype).\n */\n this._hasDoneGlobalChecks = false;\n /**\n * Reference to the global `document` object.\n */\n this._document = typeof document === 'object' && document ? document : null;\n if (sanityChecksEnabled && !this._hasDoneGlobalChecks && isDevMode()) {\n this._checkDoctype();\n this._checkTheme();\n this._hasDoneGlobalChecks = true;\n }\n }\n /**\n * @return {?}\n */\n MatCommonModule.prototype._checkDoctype = function () {\n if (this._document && !this._document.doctype) {\n console.warn('Current document does not have a doctype. This may cause ' +\n 'some Angular Material components not to behave as expected.');\n }\n };\n /**\n * @return {?}\n */\n MatCommonModule.prototype._checkTheme = function () {\n if (this._document && typeof getComputedStyle === 'function') {\n var /** @type {?} */ testElement = this._document.createElement('div');\n testElement.classList.add('mat-theme-loaded-marker');\n this._document.body.appendChild(testElement);\n var /** @type {?} */ computedStyle = getComputedStyle(testElement);\n // In some situations, the computed style of the test element can be null. For example in\n // Firefox, the computed style is null if an application is running inside of a hidden iframe.\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n if (computedStyle && computedStyle.display !== 'none') {\n console.warn('Could not find Angular Material core theme. Most Material ' +\n 'components may not work as expected. For more info refer ' +\n 'to the theming guide: https://material.angular.io/guide/theming');\n }\n this._document.body.removeChild(testElement);\n }\n };\n MatCommonModule.decorators = [\n { type: NgModule, args: [{\n imports: [CompatibilityModule, BidiModule],\n exports: [CompatibilityModule, BidiModule],\n providers: [{\n provide: MATERIAL_SANITY_CHECKS, useValue: true,\n }],\n },] },\n ];\n /**\n * @nocollapse\n */\n MatCommonModule.ctorParameters = function () { return [\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MATERIAL_SANITY_CHECKS,] },] },\n ]; };\n return MatCommonModule;\n}());\n\n/**\n * Mixin to augment a directive with a `disabled` property.\n * @template T\n * @param {?} base\n * @return {?}\n */\nfunction mixinDisabled(base) {\n return (function (_super) {\n __extends(class_1, _super);\n /**\n * @param {...?} args\n */\n function class_1() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _this = _super.apply(this, args) || this;\n _this._disabled = false;\n return _this;\n }\n Object.defineProperty(class_1.prototype, \"disabled\", {\n /**\n * @return {?}\n */\n get: function () { return this._disabled; },\n /**\n * @param {?} value\n * @return {?}\n */\n set: function (value) { this._disabled = coerceBooleanProperty(value); },\n enumerable: true,\n configurable: true\n });\n return class_1;\n }(base));\n}\n\n/**\n * Mixin to augment a directive with a `color` property.\n * @template T\n * @param {?} base\n * @param {?=} defaultColor\n * @return {?}\n */\nfunction mixinColor(base, defaultColor) {\n return (function (_super) {\n __extends(class_1, _super);\n /**\n * @param {...?} args\n */\n function class_1() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _this = _super.apply(this, args) || this;\n // Set the default color that can be specified from the mixin.\n _this.color = defaultColor;\n return _this;\n }\n Object.defineProperty(class_1.prototype, \"color\", {\n /**\n * @return {?}\n */\n get: function () { return this._color; },\n /**\n * @param {?} value\n * @return {?}\n */\n set: function (value) {\n var /** @type {?} */ colorPalette = value || defaultColor;\n if (colorPalette !== this._color) {\n if (this._color) {\n this._renderer.removeClass(this._elementRef.nativeElement, \"mat-\" + this._color);\n }\n if (colorPalette) {\n this._renderer.addClass(this._elementRef.nativeElement, \"mat-\" + colorPalette);\n }\n this._color = colorPalette;\n }\n },\n enumerable: true,\n configurable: true\n });\n return class_1;\n }(base));\n}\n\n/**\n * Mixin to augment a directive with a `disableRipple` property.\n * @template T\n * @param {?} base\n * @return {?}\n */\nfunction mixinDisableRipple(base) {\n return (function (_super) {\n __extends(class_1, _super);\n /**\n * @param {...?} args\n */\n function class_1() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _this = _super.apply(this, args) || this;\n _this._disableRipple = false;\n return _this;\n }\n Object.defineProperty(class_1.prototype, \"disableRipple\", {\n /**\n * Whether the ripple effect is disabled or not.\n * @return {?}\n */\n get: function () { return this._disableRipple; },\n /**\n * @param {?} value\n * @return {?}\n */\n set: function (value) { this._disableRipple = coerceBooleanProperty(value); },\n enumerable: true,\n configurable: true\n });\n return class_1;\n }(base));\n}\n\n/**\n * Mixin to augment a directive with a `tabIndex` property.\n * @template T\n * @param {?} base\n * @param {?=} defaultTabIndex\n * @return {?}\n */\nfunction mixinTabIndex(base, defaultTabIndex) {\n if (defaultTabIndex === void 0) { defaultTabIndex = 0; }\n return (function (_super) {\n __extends(class_1, _super);\n /**\n * @param {...?} args\n */\n function class_1() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _this = _super.apply(this, args) || this;\n _this._tabIndex = defaultTabIndex;\n return _this;\n }\n Object.defineProperty(class_1.prototype, \"tabIndex\", {\n /**\n * @return {?}\n */\n get: function () { return this.disabled ? -1 : this._tabIndex; },\n /**\n * @param {?} value\n * @return {?}\n */\n set: function (value) {\n // If the specified tabIndex value is null or undefined, fall back to the default value.\n this._tabIndex = value != null ? value : defaultTabIndex;\n },\n enumerable: true,\n configurable: true\n });\n return class_1;\n }(base));\n}\n\n/**\n * InjectionToken for datepicker that can be used to override default locale code.\n */\nvar MAT_DATE_LOCALE = new InjectionToken('MAT_DATE_LOCALE');\n/**\n * Provider for MAT_DATE_LOCALE injection token.\n */\nvar MAT_DATE_LOCALE_PROVIDER = { provide: MAT_DATE_LOCALE, useExisting: LOCALE_ID };\n/**\n * Adapts type `D` to be usable as a date by cdk-based components that work with dates.\n * @abstract\n */\nvar DateAdapter = (function () {\n function DateAdapter() {\n this._localeChanges = new Subject();\n }\n Object.defineProperty(DateAdapter.prototype, \"localeChanges\", {\n /**\n * A stream that emits when the locale changes.\n * @return {?}\n */\n get: function () { return this._localeChanges; },\n enumerable: true,\n configurable: true\n });\n /**\n * Gets the year component of the given date.\n * @abstract\n * @param {?} date The date to extract the year from.\n * @return {?} The year component.\n */\n DateAdapter.prototype.getYear = function (date) { };\n /**\n * Gets the month component of the given date.\n * @abstract\n * @param {?} date The date to extract the month from.\n * @return {?} The month component (0-indexed, 0 = January).\n */\n DateAdapter.prototype.getMonth = function (date) { };\n /**\n * Gets the date of the month component of the given date.\n * @abstract\n * @param {?} date The date to extract the date of the month from.\n * @return {?} The month component (1-indexed, 1 = first of month).\n */\n DateAdapter.prototype.getDate = function (date) { };\n /**\n * Gets the day of the week component of the given date.\n * @abstract\n * @param {?} date The date to extract the day of the week from.\n * @return {?} The month component (0-indexed, 0 = Sunday).\n */\n DateAdapter.prototype.getDayOfWeek = function (date) { };\n /**\n * Gets a list of names for the months.\n * @abstract\n * @param {?} style The naming style (e.g. long = 'January', short = 'Jan', narrow = 'J').\n * @return {?} An ordered list of all month names, starting with January.\n */\n DateAdapter.prototype.getMonthNames = function (style) { };\n /**\n * Gets a list of names for the dates of the month.\n * @abstract\n * @return {?} An ordered list of all date of the month names, starting with '1'.\n */\n DateAdapter.prototype.getDateNames = function () { };\n /**\n * Gets a list of names for the days of the week.\n * @abstract\n * @param {?} style The naming style (e.g. long = 'Sunday', short = 'Sun', narrow = 'S').\n * @return {?} An ordered list of all weekday names, starting with Sunday.\n */\n DateAdapter.prototype.getDayOfWeekNames = function (style) { };\n /**\n * Gets the name for the year of the given date.\n * @abstract\n * @param {?} date The date to get the year name for.\n * @return {?} The name of the given year (e.g. '2017').\n */\n DateAdapter.prototype.getYearName = function (date) { };\n /**\n * Gets the first day of the week.\n * @abstract\n * @return {?} The first day of the week (0-indexed, 0 = Sunday).\n */\n DateAdapter.prototype.getFirstDayOfWeek = function () { };\n /**\n * Gets the number of days in the month of the given date.\n * @abstract\n * @param {?} date The date whose month should be checked.\n * @return {?} The number of days in the month of the given date.\n */\n DateAdapter.prototype.getNumDaysInMonth = function (date) { };\n /**\n * Clones the given date.\n * @abstract\n * @param {?} date The date to clone\n * @return {?} A new date equal to the given date.\n */\n DateAdapter.prototype.clone = function (date) { };\n /**\n * Creates a date with the given year, month, and date. Does not allow over/under-flow of the\n * month and date.\n * @abstract\n * @param {?} year The full year of the date. (e.g. 89 means the year 89, not the year 1989).\n * @param {?} month The month of the date (0-indexed, 0 = January). Must be an integer 0 - 11.\n * @param {?} date The date of month of the date. Must be an integer 1 - length of the given month.\n * @return {?} The new date, or null if invalid.\n */\n DateAdapter.prototype.createDate = function (year, month, date) { };\n /**\n * Gets today's date.\n * @abstract\n * @return {?} Today's date.\n */\n DateAdapter.prototype.today = function () { };\n /**\n * Parses a date from a value.\n * @abstract\n * @param {?} value The value to parse.\n * @param {?} parseFormat The expected format of the value being parsed\n * (type is implementation-dependent).\n * @return {?} The parsed date.\n */\n DateAdapter.prototype.parse = function (value, parseFormat) { };\n /**\n * Formats a date as a string.\n * @abstract\n * @param {?} date The value to format.\n * @param {?} displayFormat The format to use to display the date as a string.\n * @return {?} The formatted date string.\n */\n DateAdapter.prototype.format = function (date, displayFormat) { };\n /**\n * Adds the given number of years to the date. Years are counted as if flipping 12 pages on the\n * calendar for each year and then finding the closest date in the new month. For example when\n * adding 1 year to Feb 29, 2016, the resulting date will be Feb 28, 2017.\n * @abstract\n * @param {?} date The date to add years to.\n * @param {?} years The number of years to add (may be negative).\n * @return {?} A new date equal to the given one with the specified number of years added.\n */\n DateAdapter.prototype.addCalendarYears = function (date, years) { };\n /**\n * Adds the given number of months to the date. Months are counted as if flipping a page on the\n * calendar for each month and then finding the closest date in the new month. For example when\n * adding 1 month to Jan 31, 2017, the resulting date will be Feb 28, 2017.\n * @abstract\n * @param {?} date The date to add months to.\n * @param {?} months The number of months to add (may be negative).\n * @return {?} A new date equal to the given one with the specified number of months added.\n */\n DateAdapter.prototype.addCalendarMonths = function (date, months) { };\n /**\n * Adds the given number of days to the date. Days are counted as if moving one cell on the\n * calendar for each day.\n * @abstract\n * @param {?} date The date to add days to.\n * @param {?} days The number of days to add (may be negative).\n * @return {?} A new date equal to the given one with the specified number of days added.\n */\n DateAdapter.prototype.addCalendarDays = function (date, days) { };\n /**\n * Gets the RFC 3339 compatible string (https://tools.ietf.org/html/rfc3339) for the given date.\n * @abstract\n * @param {?} date The date to get the ISO date string for.\n * @return {?} The ISO date string date string.\n */\n DateAdapter.prototype.toIso8601 = function (date) { };\n /**\n * Creates a date from an RFC 3339 compatible string (https://tools.ietf.org/html/rfc3339).\n * @abstract\n * @param {?} iso8601String The ISO date string to create a date from\n * @return {?} The date created from the ISO date string.\n */\n DateAdapter.prototype.fromIso8601 = function (iso8601String) { };\n /**\n * Checks whether the given object is considered a date instance by this DateAdapter.\n * @abstract\n * @param {?} obj The object to check\n * @return {?} Whether the object is a date instance.\n */\n DateAdapter.prototype.isDateInstance = function (obj) { };\n /**\n * Checks whether the given date is valid.\n * @abstract\n * @param {?} date The date to check.\n * @return {?} Whether the date is valid.\n */\n DateAdapter.prototype.isValid = function (date) { };\n /**\n * Sets the locale used for all dates.\n * @param {?} locale The new locale.\n * @return {?}\n */\n DateAdapter.prototype.setLocale = function (locale) {\n this.locale = locale;\n this._localeChanges.next();\n };\n /**\n * Compares two dates.\n * @param {?} first The first date to compare.\n * @param {?} second The second date to compare.\n * @return {?} 0 if the dates are equal, a number less than 0 if the first date is earlier,\n * a number greater than 0 if the first date is later.\n */\n DateAdapter.prototype.compareDate = function (first, second) {\n return this.getYear(first) - this.getYear(second) ||\n this.getMonth(first) - this.getMonth(second) ||\n this.getDate(first) - this.getDate(second);\n };\n /**\n * Checks if two dates are equal.\n * @param {?} first The first date to check.\n * @param {?} second The second date to check.\n * Null dates are considered equal to other null dates.\n * @return {?}\n */\n DateAdapter.prototype.sameDate = function (first, second) {\n return first && second ? !this.compareDate(first, second) : first == second;\n };\n /**\n * Clamp the given date between min and max dates.\n * @param {?} date The date to clamp.\n * @param {?=} min The minimum value to allow. If null or omitted no min is enforced.\n * @param {?=} max The maximum value to allow. If null or omitted no max is enforced.\n * @return {?} `min` if `date` is less than `min`, `max` if date is greater than `max`,\n * otherwise `date`.\n */\n DateAdapter.prototype.clampDate = function (date, min, max) {\n if (min && this.compareDate(date, min) < 0) {\n return min;\n }\n if (max && this.compareDate(date, max) > 0) {\n return max;\n }\n return date;\n };\n return DateAdapter;\n}());\n\n/**\n * Extends an object with the *enumerable* and *own* properties of one or more source objects,\n * similar to Object.assign.\n *\n * @param {?} dest The object which will have properties copied to it.\n * @param {...?} sources The source objects from which properties will be copied.\n * @return {?}\n */\nfunction extendObject(dest) {\n var sources = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n sources[_i - 1] = arguments[_i];\n }\n if (dest == null) {\n throw TypeError('Cannot convert undefined or null to object');\n }\n for (var _a = 0, sources_1 = sources; _a < sources_1.length; _a++) {\n var source = sources_1[_a];\n if (source != null) {\n for (var /** @type {?} */ key in source) {\n if (source.hasOwnProperty(key)) {\n dest[key] = source[key];\n }\n }\n }\n }\n return dest;\n}\n\n/**\n * Whether the browser supports the Intl API.\n */\nvar SUPPORTS_INTL_API = typeof Intl != 'undefined';\n/**\n * The default month names to use if Intl API is not available.\n */\nvar DEFAULT_MONTH_NAMES = {\n 'long': [\n 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September',\n 'October', 'November', 'December'\n ],\n 'short': ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n 'narrow': ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D']\n};\n/**\n * The default date names to use if Intl API is not available.\n */\nvar DEFAULT_DATE_NAMES = range(31, function (i) { return String(i + 1); });\n/**\n * The default day of the week names to use if Intl API is not available.\n */\nvar DEFAULT_DAY_OF_WEEK_NAMES = {\n 'long': ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n 'short': ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n 'narrow': ['S', 'M', 'T', 'W', 'T', 'F', 'S']\n};\n/**\n * Matches strings that have the form of a valid RFC 3339 string\n * (https://tools.ietf.org/html/rfc3339). Note that the string may not actually be a valid date\n * because the regex will match strings an with out of bounds month, date, etc.\n */\nvar ISO_8601_REGEX = /^\\d{4}-\\d{2}-\\d{2}(?:T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|(?:(?:\\+|-)\\d{2}:\\d{2}))?)?$/;\n/**\n * Creates an array and fills it with values.\n * @template T\n * @param {?} length\n * @param {?} valueFunction\n * @return {?}\n */\nfunction range(length, valueFunction) {\n var /** @type {?} */ valuesArray = Array(length);\n for (var /** @type {?} */ i = 0; i < length; i++) {\n valuesArray[i] = valueFunction(i);\n }\n return valuesArray;\n}\n/**\n * Adapts the native JS Date for use with cdk-based components that work with dates.\n */\nvar NativeDateAdapter = (function (_super) {\n __extends(NativeDateAdapter, _super);\n /**\n * @param {?} matDateLocale\n */\n function NativeDateAdapter(matDateLocale) {\n var _this = _super.call(this) || this;\n /**\n * Whether to use `timeZone: 'utc'` with `Intl.DateTimeFormat` when formatting dates.\n * Without this `Intl.DateTimeFormat` sometimes chooses the wrong timeZone, which can throw off\n * the result. (e.g. in the en-US locale `new Date(1800, 7, 14).toLocaleDateString()`\n * will produce `'8/13/1800'`.\n */\n _this.useUtcForDisplay = true;\n _super.prototype.setLocale.call(_this, matDateLocale);\n return _this;\n }\n /**\n * @param {?} date\n * @return {?}\n */\n NativeDateAdapter.prototype.getYear = function (date) {\n return date.getFullYear();\n };\n /**\n * @param {?} date\n * @return {?}\n */\n NativeDateAdapter.prototype.getMonth = function (date) {\n return date.getMonth();\n };\n /**\n * @param {?} date\n * @return {?}\n */\n NativeDateAdapter.prototype.getDate = function (date) {\n return date.getDate();\n };\n /**\n * @param {?} date\n * @return {?}\n */\n NativeDateAdapter.prototype.getDayOfWeek = function (date) {\n return date.getDay();\n };\n /**\n * @param {?} style\n * @return {?}\n */\n NativeDateAdapter.prototype.getMonthNames = function (style) {\n var _this = this;\n if (SUPPORTS_INTL_API) {\n var /** @type {?} */ dtf_1 = new Intl.DateTimeFormat(this.locale, { month: style });\n return range(12, function (i) { return _this._stripDirectionalityCharacters(dtf_1.format(new Date(2017, i, 1))); });\n }\n return DEFAULT_MONTH_NAMES[style];\n };\n /**\n * @return {?}\n */\n NativeDateAdapter.prototype.getDateNames = function () {\n var _this = this;\n if (SUPPORTS_INTL_API) {\n var /** @type {?} */ dtf_2 = new Intl.DateTimeFormat(this.locale, { day: 'numeric' });\n return range(31, function (i) { return _this._stripDirectionalityCharacters(dtf_2.format(new Date(2017, 0, i + 1))); });\n }\n return DEFAULT_DATE_NAMES;\n };\n /**\n * @param {?} style\n * @return {?}\n */\n NativeDateAdapter.prototype.getDayOfWeekNames = function (style) {\n var _this = this;\n if (SUPPORTS_INTL_API) {\n var /** @type {?} */ dtf_3 = new Intl.DateTimeFormat(this.locale, { weekday: style });\n return range(7, function (i) { return _this._stripDirectionalityCharacters(dtf_3.format(new Date(2017, 0, i + 1))); });\n }\n return DEFAULT_DAY_OF_WEEK_NAMES[style];\n };\n /**\n * @param {?} date\n * @return {?}\n */\n NativeDateAdapter.prototype.getYearName = function (date) {\n if (SUPPORTS_INTL_API) {\n var /** @type {?} */ dtf = new Intl.DateTimeFormat(this.locale, { year: 'numeric' });\n return this._stripDirectionalityCharacters(dtf.format(date));\n }\n return String(this.getYear(date));\n };\n /**\n * @return {?}\n */\n NativeDateAdapter.prototype.getFirstDayOfWeek = function () {\n // We can't tell using native JS Date what the first day of the week is, we default to Sunday.\n return 0;\n };\n /**\n * @param {?} date\n * @return {?}\n */\n NativeDateAdapter.prototype.getNumDaysInMonth = function (date) {\n return this.getDate(this._createDateWithOverflow(this.getYear(date), this.getMonth(date) + 1, 0));\n };\n /**\n * @param {?} date\n * @return {?}\n */\n NativeDateAdapter.prototype.clone = function (date) {\n return this.createDate(this.getYear(date), this.getMonth(date), this.getDate(date));\n };\n /**\n * @param {?} year\n * @param {?} month\n * @param {?} date\n * @return {?}\n */\n NativeDateAdapter.prototype.createDate = function (year, month, date) {\n // Check for invalid month and date (except upper bound on date which we have to check after\n // creating the Date).\n if (month < 0 || month > 11) {\n throw Error(\"Invalid month index \\\"\" + month + \"\\\". Month index has to be between 0 and 11.\");\n }\n if (date < 1) {\n throw Error(\"Invalid date \\\"\" + date + \"\\\". Date has to be greater than 0.\");\n }\n var /** @type {?} */ result = this._createDateWithOverflow(year, month, date);\n // Check that the date wasn't above the upper bound for the month, causing the month to overflow\n if (result.getMonth() != month) {\n throw Error(\"Invalid date \\\"\" + date + \"\\\" for month with index \\\"\" + month + \"\\\".\");\n }\n return result;\n };\n /**\n * @return {?}\n */\n NativeDateAdapter.prototype.today = function () {\n return new Date();\n };\n /**\n * @param {?} value\n * @return {?}\n */\n NativeDateAdapter.prototype.parse = function (value) {\n // We have no way using the native JS Date to set the parse format or locale, so we ignore these\n // parameters.\n if (typeof value == 'number') {\n return new Date(value);\n }\n return value ? new Date(Date.parse(value)) : null;\n };\n /**\n * @param {?} date\n * @param {?} displayFormat\n * @return {?}\n */\n NativeDateAdapter.prototype.format = function (date, displayFormat) {\n if (!this.isValid(date)) {\n throw Error('NativeDateAdapter: Cannot format invalid date.');\n }\n if (SUPPORTS_INTL_API) {\n if (this.useUtcForDisplay) {\n date = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n displayFormat = extendObject({}, displayFormat, { timeZone: 'utc' });\n }\n var /** @type {?} */ dtf = new Intl.DateTimeFormat(this.locale, displayFormat);\n return this._stripDirectionalityCharacters(dtf.format(date));\n }\n return this._stripDirectionalityCharacters(date.toDateString());\n };\n /**\n * @param {?} date\n * @param {?} years\n * @return {?}\n */\n NativeDateAdapter.prototype.addCalendarYears = function (date, years) {\n return this.addCalendarMonths(date, years * 12);\n };\n /**\n * @param {?} date\n * @param {?} months\n * @return {?}\n */\n NativeDateAdapter.prototype.addCalendarMonths = function (date, months) {\n var /** @type {?} */ newDate = this._createDateWithOverflow(this.getYear(date), this.getMonth(date) + months, this.getDate(date));\n // It's possible to wind up in the wrong month if the original month has more days than the new\n // month. In this case we want to go to the last day of the desired month.\n // Note: the additional + 12 % 12 ensures we end up with a positive number, since JS % doesn't\n // guarantee this.\n if (this.getMonth(newDate) != ((this.getMonth(date) + months) % 12 + 12) % 12) {\n newDate = this._createDateWithOverflow(this.getYear(newDate), this.getMonth(newDate), 0);\n }\n return newDate;\n };\n /**\n * @param {?} date\n * @param {?} days\n * @return {?}\n */\n NativeDateAdapter.prototype.addCalendarDays = function (date, days) {\n return this._createDateWithOverflow(this.getYear(date), this.getMonth(date), this.getDate(date) + days);\n };\n /**\n * @param {?} date\n * @return {?}\n */\n NativeDateAdapter.prototype.toIso8601 = function (date) {\n return [\n date.getUTCFullYear(),\n this._2digit(date.getUTCMonth() + 1),\n this._2digit(date.getUTCDate())\n ].join('-');\n };\n /**\n * @param {?} iso8601String\n * @return {?}\n */\n NativeDateAdapter.prototype.fromIso8601 = function (iso8601String) {\n // The `Date` constructor accepts formats other than ISO 8601, so we need to make sure the\n // string is the right format first.\n if (ISO_8601_REGEX.test(iso8601String)) {\n var /** @type {?} */ d = new Date(iso8601String);\n if (this.isValid(d)) {\n return d;\n }\n }\n return null;\n };\n /**\n * @param {?} obj\n * @return {?}\n */\n NativeDateAdapter.prototype.isDateInstance = function (obj) {\n return obj instanceof Date;\n };\n /**\n * @param {?} date\n * @return {?}\n */\n NativeDateAdapter.prototype.isValid = function (date) {\n return !isNaN(date.getTime());\n };\n /**\n * Creates a date but allows the month and date to overflow.\n * @param {?} year\n * @param {?} month\n * @param {?} date\n * @return {?}\n */\n NativeDateAdapter.prototype._createDateWithOverflow = function (year, month, date) {\n var /** @type {?} */ result = new Date(year, month, date);\n // We need to correct for the fact that JS native Date treats years in range [0, 99] as\n // abbreviations for 19xx.\n if (year >= 0 && year < 100) {\n result.setFullYear(this.getYear(result) - 1900);\n }\n return result;\n };\n /**\n * Pads a number to make it two digits.\n * @param {?} n The number to pad.\n * @return {?} The padded number.\n */\n NativeDateAdapter.prototype._2digit = function (n) {\n return ('00' + n).slice(-2);\n };\n /**\n * Strip out unicode LTR and RTL characters. Edge and IE insert these into formatted dates while\n * other browsers do not. We remove them to make output consistent and because they interfere with\n * date parsing.\n * @param {?} str The string to strip direction characters from.\n * @return {?} The stripped string.\n */\n NativeDateAdapter.prototype._stripDirectionalityCharacters = function (str) {\n return str.replace(/[\\u200e\\u200f]/g, '');\n };\n NativeDateAdapter.decorators = [\n { type: Injectable },\n ];\n /**\n * @nocollapse\n */\n NativeDateAdapter.ctorParameters = function () { return [\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MAT_DATE_LOCALE,] },] },\n ]; };\n return NativeDateAdapter;\n}(DateAdapter));\n\nvar MAT_DATE_FORMATS = new InjectionToken('mat-date-formats');\n\nvar MAT_NATIVE_DATE_FORMATS = {\n parse: {\n dateInput: null,\n },\n display: {\n dateInput: { year: 'numeric', month: 'numeric', day: 'numeric' },\n monthYearLabel: { year: 'numeric', month: 'short' },\n dateA11yLabel: { year: 'numeric', month: 'long', day: 'numeric' },\n monthYearA11yLabel: { year: 'numeric', month: 'long' },\n }\n};\n\nvar NativeDateModule = (function () {\n function NativeDateModule() {\n }\n NativeDateModule.decorators = [\n { type: NgModule, args: [{\n providers: [\n { provide: DateAdapter, useClass: NativeDateAdapter },\n MAT_DATE_LOCALE_PROVIDER\n ],\n },] },\n ];\n /**\n * @nocollapse\n */\n NativeDateModule.ctorParameters = function () { return []; };\n return NativeDateModule;\n}());\nvar MatNativeDateModule = (function () {\n function MatNativeDateModule() {\n }\n MatNativeDateModule.decorators = [\n { type: NgModule, args: [{\n imports: [NativeDateModule],\n providers: [{ provide: MAT_DATE_FORMATS, useValue: MAT_NATIVE_DATE_FORMATS }],\n },] },\n ];\n /**\n * @nocollapse\n */\n MatNativeDateModule.ctorParameters = function () { return []; };\n return MatNativeDateModule;\n}());\n\n/**\n * Error state matcher that matches when a control is invalid and dirty.\n */\nvar ShowOnDirtyErrorStateMatcher = (function () {\n function ShowOnDirtyErrorStateMatcher() {\n }\n /**\n * @param {?} control\n * @param {?} form\n * @return {?}\n */\n ShowOnDirtyErrorStateMatcher.prototype.isErrorState = function (control, form) {\n return !!(control && control.invalid && (control.dirty || (form && form.submitted)));\n };\n ShowOnDirtyErrorStateMatcher.decorators = [\n { type: Injectable },\n ];\n /**\n * @nocollapse\n */\n ShowOnDirtyErrorStateMatcher.ctorParameters = function () { return []; };\n return ShowOnDirtyErrorStateMatcher;\n}());\n/**\n * Provider that defines how form controls behave with regards to displaying error messages.\n */\nvar ErrorStateMatcher = (function () {\n function ErrorStateMatcher() {\n }\n /**\n * @param {?} control\n * @param {?} form\n * @return {?}\n */\n ErrorStateMatcher.prototype.isErrorState = function (control, form) {\n return !!(control && control.invalid && (control.touched || (form && form.submitted)));\n };\n ErrorStateMatcher.decorators = [\n { type: Injectable },\n ];\n /**\n * @nocollapse\n */\n ErrorStateMatcher.ctorParameters = function () { return []; };\n return ErrorStateMatcher;\n}());\n\nvar GestureConfig = (function (_super) {\n __extends(GestureConfig, _super);\n function GestureConfig() {\n var _this = _super.call(this) || this;\n _this._hammer = typeof window !== 'undefined' ? ((window)).Hammer : null;\n /* List of new event names to add to the gesture support list */\n _this.events = _this._hammer ? [\n 'longpress',\n 'slide',\n 'slidestart',\n 'slideend',\n 'slideright',\n 'slideleft'\n ] : [];\n if (!_this._hammer && isDevMode()) {\n console.warn('Could not find HammerJS. Certain Angular Material ' +\n 'components may not work correctly.');\n }\n return _this;\n }\n /**\n * Builds Hammer instance manually to add custom recognizers that match the Material Design spec.\n *\n * Our gesture names come from the Material Design gestures spec:\n * https://www.google.com/design/spec/patterns/gestures.html#gestures-touch-mechanics\n *\n * More information on default recognizers can be found in Hammer docs:\n * http://hammerjs.github.io/recognizer-pan/\n * http://hammerjs.github.io/recognizer-press/\n *\n * @param {?} element Element to which to assign the new HammerJS gestures.\n * @return {?} Newly-created HammerJS instance.\n */\n GestureConfig.prototype.buildHammer = function (element) {\n var /** @type {?} */ mc = new this._hammer(element);\n // Default Hammer Recognizers.\n var /** @type {?} */ pan = new this._hammer.Pan();\n var /** @type {?} */ swipe = new this._hammer.Swipe();\n var /** @type {?} */ press = new this._hammer.Press();\n // Notice that a HammerJS recognizer can only depend on one other recognizer once.\n // Otherwise the previous `recognizeWith` will be dropped.\n // TODO: Confirm threshold numbers with Material Design UX Team\n var /** @type {?} */ slide = this._createRecognizer(pan, { event: 'slide', threshold: 0 }, swipe);\n var /** @type {?} */ longpress = this._createRecognizer(press, { event: 'longpress', time: 500 });\n // Overwrite the default `pan` event to use the swipe event.\n pan.recognizeWith(swipe);\n // Add customized gestures to Hammer manager\n mc.add([swipe, press, pan, slide, longpress]);\n return (mc);\n };\n /**\n * Creates a new recognizer, without affecting the default recognizers of HammerJS\n * @param {?} base\n * @param {?} options\n * @param {...?} inheritances\n * @return {?}\n */\n GestureConfig.prototype._createRecognizer = function (base, options) {\n var inheritances = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n inheritances[_i - 2] = arguments[_i];\n }\n var /** @type {?} */ recognizer = new ((base.constructor))(options);\n inheritances.push(base);\n inheritances.forEach(function (item) { return recognizer.recognizeWith(item); });\n return recognizer;\n };\n GestureConfig.decorators = [\n { type: Injectable },\n ];\n /**\n * @nocollapse\n */\n GestureConfig.ctorParameters = function () { return []; };\n return GestureConfig;\n}(HammerGestureConfig));\n\n/**\n * Shared directive to count lines inside a text area, such as a list item.\n * Line elements can be extracted with a \\@ContentChildren(MatLine) query, then\n * counted by checking the query list's length.\n */\nvar MatLine = (function () {\n function MatLine() {\n }\n MatLine.decorators = [\n { type: Directive, args: [{\n selector: '[mat-line], [matLine]',\n host: { 'class': 'mat-line' }\n },] },\n ];\n /**\n * @nocollapse\n */\n MatLine.ctorParameters = function () { return []; };\n return MatLine;\n}());\n/**\n * Helper that takes a query list of lines and sets the correct class on the host.\n * \\@docs-private\n */\nvar MatLineSetter = (function () {\n /**\n * @param {?} _lines\n * @param {?} _renderer\n * @param {?} _element\n */\n function MatLineSetter(_lines, _renderer, _element) {\n var _this = this;\n this._lines = _lines;\n this._renderer = _renderer;\n this._element = _element;\n this._setLineClass(this._lines.length);\n this._lines.changes.subscribe(function () {\n _this._setLineClass(_this._lines.length);\n });\n }\n /**\n * @param {?} count\n * @return {?}\n */\n MatLineSetter.prototype._setLineClass = function (count) {\n this._resetClasses();\n if (count === 2 || count === 3) {\n this._setClass(\"mat-\" + count + \"-line\", true);\n }\n else if (count > 3) {\n this._setClass(\"mat-multi-line\", true);\n }\n };\n /**\n * @return {?}\n */\n MatLineSetter.prototype._resetClasses = function () {\n this._setClass('mat-2-line', false);\n this._setClass('mat-3-line', false);\n this._setClass('mat-multi-line', false);\n };\n /**\n * @param {?} className\n * @param {?} isAdd\n * @return {?}\n */\n MatLineSetter.prototype._setClass = function (className, isAdd) {\n if (isAdd) {\n this._renderer.addClass(this._element.nativeElement, className);\n }\n else {\n this._renderer.removeClass(this._element.nativeElement, className);\n }\n };\n return MatLineSetter;\n}());\nvar MatLineModule = (function () {\n function MatLineModule() {\n }\n MatLineModule.decorators = [\n { type: NgModule, args: [{\n imports: [MatCommonModule],\n exports: [MatLine, MatCommonModule],\n declarations: [MatLine],\n },] },\n ];\n /**\n * @nocollapse\n */\n MatLineModule.ctorParameters = function () { return []; };\n return MatLineModule;\n}());\n\nvar RippleState = {};\nRippleState.FADING_IN = 0;\nRippleState.VISIBLE = 1;\nRippleState.FADING_OUT = 2;\nRippleState.HIDDEN = 3;\nRippleState[RippleState.FADING_IN] = \"FADING_IN\";\nRippleState[RippleState.VISIBLE] = \"VISIBLE\";\nRippleState[RippleState.FADING_OUT] = \"FADING_OUT\";\nRippleState[RippleState.HIDDEN] = \"HIDDEN\";\n/**\n * Reference to a previously launched ripple element.\n */\nvar RippleRef = (function () {\n /**\n * @param {?} _renderer\n * @param {?} element\n * @param {?} config\n */\n function RippleRef(_renderer, element, config) {\n this._renderer = _renderer;\n this.element = element;\n this.config = config;\n /**\n * Current state of the ripple reference.\n */\n this.state = RippleState.HIDDEN;\n }\n /**\n * Fades out the ripple element.\n * @return {?}\n */\n RippleRef.prototype.fadeOut = function () {\n this._renderer.fadeOutRipple(this);\n };\n return RippleRef;\n}());\n\n/**\n * Fade-in duration for the ripples. Can be modified with the speedFactor option.\n */\nvar RIPPLE_FADE_IN_DURATION = 450;\n/**\n * Fade-out duration for the ripples in milliseconds. This can't be modified by the speedFactor.\n */\nvar RIPPLE_FADE_OUT_DURATION = 400;\n/**\n * Helper service that performs DOM manipulations. Not intended to be used outside this module.\n * The constructor takes a reference to the ripple directive's host element and a map of DOM\n * event handlers to be installed on the element that triggers ripple animations.\n * This will eventually become a custom renderer once Angular support exists.\n * \\@docs-private\n */\nvar RippleRenderer = (function () {\n /**\n * @param {?} elementRef\n * @param {?} _ngZone\n * @param {?} platform\n */\n function RippleRenderer(elementRef, _ngZone, platform) {\n this._ngZone = _ngZone;\n /**\n * Whether the pointer is currently being held on the trigger or not.\n */\n this._isPointerDown = false;\n /**\n * Events to be registered on the trigger element.\n */\n this._triggerEvents = new Map();\n /**\n * Set of currently active ripple references.\n */\n this._activeRipples = new Set();\n /**\n * Ripple config for all ripples created by events.\n */\n this.rippleConfig = {};\n /**\n * Whether mouse ripples should be created or not.\n */\n this.rippleDisabled = false;\n // Only do anything if we're on the browser.\n if (platform.isBrowser) {\n this._containerElement = elementRef.nativeElement;\n // Specify events which need to be registered on the trigger.\n this._triggerEvents.set('mousedown', this.onMousedown.bind(this));\n this._triggerEvents.set('touchstart', this.onTouchstart.bind(this));\n this._triggerEvents.set('mouseup', this.onPointerUp.bind(this));\n this._triggerEvents.set('touchend', this.onPointerUp.bind(this));\n this._triggerEvents.set('mouseleave', this.onPointerLeave.bind(this));\n // By default use the host element as trigger element.\n this.setTriggerElement(this._containerElement);\n }\n }\n /**\n * Fades in a ripple at the given coordinates.\n * @param {?} x Coordinate within the element, along the X axis at which to start the ripple.\n * @param {?} y\n * @param {?=} config Extra ripple options.\n * @return {?}\n */\n RippleRenderer.prototype.fadeInRipple = function (x, y, config) {\n var _this = this;\n if (config === void 0) { config = {}; }\n var /** @type {?} */ containerRect = this._containerElement.getBoundingClientRect();\n if (config.centered) {\n x = containerRect.left + containerRect.width / 2;\n y = containerRect.top + containerRect.height / 2;\n }\n var /** @type {?} */ radius = config.radius || distanceToFurthestCorner(x, y, containerRect);\n var /** @type {?} */ duration = RIPPLE_FADE_IN_DURATION * (1 / (config.speedFactor || 1));\n var /** @type {?} */ offsetX = x - containerRect.left;\n var /** @type {?} */ offsetY = y - containerRect.top;\n var /** @type {?} */ ripple = document.createElement('div');\n ripple.classList.add('mat-ripple-element');\n ripple.style.left = offsetX - radius + \"px\";\n ripple.style.top = offsetY - radius + \"px\";\n ripple.style.height = radius * 2 + \"px\";\n ripple.style.width = radius * 2 + \"px\";\n // If the color is not set, the default CSS color will be used.\n ripple.style.backgroundColor = config.color || null;\n ripple.style.transitionDuration = duration + \"ms\";\n this._containerElement.appendChild(ripple);\n // By default the browser does not recalculate the styles of dynamically created\n // ripple elements. This is critical because then the `scale` would not animate properly.\n enforceStyleRecalculation(ripple);\n ripple.style.transform = 'scale(1)';\n // Exposed reference to the ripple that will be returned.\n var /** @type {?} */ rippleRef = new RippleRef(this, ripple, config);\n rippleRef.state = RippleState.FADING_IN;\n // Add the ripple reference to the list of all active ripples.\n this._activeRipples.add(rippleRef);\n // Wait for the ripple element to be completely faded in.\n // Once it's faded in, the ripple can be hidden immediately if the mouse is released.\n this.runTimeoutOutsideZone(function () {\n rippleRef.state = RippleState.VISIBLE;\n if (!config.persistent && !_this._isPointerDown) {\n rippleRef.fadeOut();\n }\n }, duration);\n return rippleRef;\n };\n /**\n * Fades out a ripple reference.\n * @param {?} rippleRef\n * @return {?}\n */\n RippleRenderer.prototype.fadeOutRipple = function (rippleRef) {\n // For ripples that are not active anymore, don't re-un the fade-out animation.\n if (!this._activeRipples.delete(rippleRef)) {\n return;\n }\n var /** @type {?} */ rippleEl = rippleRef.element;\n rippleEl.style.transitionDuration = RIPPLE_FADE_OUT_DURATION + \"ms\";\n rippleEl.style.opacity = '0';\n rippleRef.state = RippleState.FADING_OUT;\n // Once the ripple faded out, the ripple can be safely removed from the DOM.\n this.runTimeoutOutsideZone(function () {\n rippleRef.state = RippleState.HIDDEN; /** @type {?} */\n ((rippleEl.parentNode)).removeChild(rippleEl);\n }, RIPPLE_FADE_OUT_DURATION);\n };\n /**\n * Fades out all currently active ripples.\n * @return {?}\n */\n RippleRenderer.prototype.fadeOutAll = function () {\n this._activeRipples.forEach(function (ripple) { return ripple.fadeOut(); });\n };\n /**\n * Sets the trigger element and registers the mouse events.\n * @param {?} element\n * @return {?}\n */\n RippleRenderer.prototype.setTriggerElement = function (element) {\n var _this = this;\n // Remove all previously register event listeners from the trigger element.\n if (this._triggerElement) {\n this._triggerEvents.forEach(function (fn, type) {\n ((_this._triggerElement)).removeEventListener(type, fn);\n });\n }\n if (element) {\n // If the element is not null, register all event listeners on the trigger element.\n this._ngZone.runOutsideAngular(function () {\n _this._triggerEvents.forEach(function (fn, type) { return element.addEventListener(type, fn); });\n });\n }\n this._triggerElement = element;\n };\n /**\n * Function being called whenever the trigger is being pressed.\n * @param {?} event\n * @return {?}\n */\n RippleRenderer.prototype.onMousedown = function (event) {\n if (!this.rippleDisabled) {\n this._isPointerDown = true;\n this.fadeInRipple(event.clientX, event.clientY, this.rippleConfig);\n }\n };\n /**\n * Function being called whenever the pointer is being released.\n * @return {?}\n */\n RippleRenderer.prototype.onPointerUp = function () {\n this._isPointerDown = false;\n // Fade-out all ripples that are completely visible and not persistent.\n this._activeRipples.forEach(function (ripple) {\n if (!ripple.config.persistent && ripple.state === RippleState.VISIBLE) {\n ripple.fadeOut();\n }\n });\n };\n /**\n * Function being called whenever the pointer leaves the trigger.\n * @return {?}\n */\n RippleRenderer.prototype.onPointerLeave = function () {\n if (this._isPointerDown) {\n this.onPointerUp();\n }\n };\n /**\n * Function being called whenever the trigger is being touched.\n * @param {?} event\n * @return {?}\n */\n RippleRenderer.prototype.onTouchstart = function (event) {\n if (!this.rippleDisabled) {\n var _a = event.touches[0], clientX = _a.clientX, clientY = _a.clientY;\n this._isPointerDown = true;\n this.fadeInRipple(clientX, clientY, this.rippleConfig);\n }\n };\n /**\n * Runs a timeout outside of the Angular zone to avoid triggering the change detection.\n * @param {?} fn\n * @param {?=} delay\n * @return {?}\n */\n RippleRenderer.prototype.runTimeoutOutsideZone = function (fn, delay) {\n if (delay === void 0) { delay = 0; }\n this._ngZone.runOutsideAngular(function () { return setTimeout(fn, delay); });\n };\n return RippleRenderer;\n}());\n/**\n * @param {?} element\n * @return {?}\n */\nfunction enforceStyleRecalculation(element) {\n // Enforce a style recalculation by calling `getComputedStyle` and accessing any property.\n // Calling `getPropertyValue` is important to let optimizers know that this is not a noop.\n // See: https://gist.github.com/paulirish/5d52fb081b3570c81e3a\n window.getComputedStyle(element).getPropertyValue('opacity');\n}\n/**\n * Returns the distance from the point (x, y) to the furthest corner of a rectangle.\n * @param {?} x\n * @param {?} y\n * @param {?} rect\n * @return {?}\n */\nfunction distanceToFurthestCorner(x, y, rect) {\n var /** @type {?} */ distX = Math.max(Math.abs(x - rect.left), Math.abs(x - rect.right));\n var /** @type {?} */ distY = Math.max(Math.abs(y - rect.top), Math.abs(y - rect.bottom));\n return Math.sqrt(distX * distX + distY * distY);\n}\n\n/**\n * Injection token that can be used to specify the global ripple options.\n */\nvar MAT_RIPPLE_GLOBAL_OPTIONS = new InjectionToken('mat-ripple-global-options');\nvar MatRipple = (function () {\n /**\n * @param {?} elementRef\n * @param {?} ngZone\n * @param {?} platform\n * @param {?} globalOptions\n */\n function MatRipple(elementRef, ngZone, platform, globalOptions) {\n /**\n * If set, the radius in pixels of foreground ripples when fully expanded. If unset, the radius\n * will be the distance from the center of the ripple to the furthest corner of the host element's\n * bounding rectangle.\n */\n this.radius = 0;\n /**\n * If set, the normal duration of ripple animations is divided by this value. For example,\n * setting it to 0.5 will cause the animations to take twice as long.\n * A changed speedFactor will not modify the fade-out duration of the ripples.\n */\n this.speedFactor = 1;\n this._rippleRenderer = new RippleRenderer(elementRef, ngZone, platform);\n this._globalOptions = globalOptions ? globalOptions : {};\n this._updateRippleRenderer();\n }\n /**\n * @param {?} changes\n * @return {?}\n */\n MatRipple.prototype.ngOnChanges = function (changes) {\n if ((changes['trigger'] || changes['_matRippleTrigger']) && this.trigger) {\n this._rippleRenderer.setTriggerElement(this.trigger);\n }\n this._updateRippleRenderer();\n };\n /**\n * @return {?}\n */\n MatRipple.prototype.ngOnDestroy = function () {\n // Set the trigger element to null to cleanup all listeners.\n this._rippleRenderer.setTriggerElement(null);\n };\n /**\n * Launches a manual ripple at the specified position.\n * @param {?} x\n * @param {?} y\n * @param {?=} config\n * @return {?}\n */\n MatRipple.prototype.launch = function (x, y, config) {\n if (config === void 0) { config = this.rippleConfig; }\n return this._rippleRenderer.fadeInRipple(x, y, config);\n };\n /**\n * Fades out all currently showing ripple elements.\n * @return {?}\n */\n MatRipple.prototype.fadeOutAll = function () {\n this._rippleRenderer.fadeOutAll();\n };\n Object.defineProperty(MatRipple.prototype, \"rippleConfig\", {\n /**\n * Ripple configuration from the directive's input values.\n * @return {?}\n */\n get: function () {\n return {\n centered: this.centered,\n speedFactor: this.speedFactor * (this._globalOptions.baseSpeedFactor || 1),\n radius: this.radius,\n color: this.color\n };\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Updates the ripple renderer with the latest ripple configuration.\n * @return {?}\n */\n MatRipple.prototype._updateRippleRenderer = function () {\n this._rippleRenderer.rippleDisabled = this._globalOptions.disabled || this.disabled;\n this._rippleRenderer.rippleConfig = this.rippleConfig;\n };\n MatRipple.decorators = [\n { type: Directive, args: [{\n selector: '[mat-ripple], [matRipple]',\n exportAs: 'matRipple',\n host: {\n 'class': 'mat-ripple',\n '[class.mat-ripple-unbounded]': 'unbounded'\n }\n },] },\n ];\n /**\n * @nocollapse\n */\n MatRipple.ctorParameters = function () { return [\n { type: ElementRef, },\n { type: NgZone, },\n { type: Platform, },\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MAT_RIPPLE_GLOBAL_OPTIONS,] },] },\n ]; };\n MatRipple.propDecorators = {\n 'trigger': [{ type: Input, args: ['matRippleTrigger',] },],\n 'centered': [{ type: Input, args: ['matRippleCentered',] },],\n 'disabled': [{ type: Input, args: ['matRippleDisabled',] },],\n 'radius': [{ type: Input, args: ['matRippleRadius',] },],\n 'speedFactor': [{ type: Input, args: ['matRippleSpeedFactor',] },],\n 'color': [{ type: Input, args: ['matRippleColor',] },],\n 'unbounded': [{ type: Input, args: ['matRippleUnbounded',] },],\n };\n return MatRipple;\n}());\n\nvar MatRippleModule = (function () {\n function MatRippleModule() {\n }\n MatRippleModule.decorators = [\n { type: NgModule, args: [{\n imports: [MatCommonModule, PlatformModule],\n exports: [MatRipple, MatCommonModule],\n declarations: [MatRipple],\n },] },\n ];\n /**\n * @nocollapse\n */\n MatRippleModule.ctorParameters = function () { return []; };\n return MatRippleModule;\n}());\n\n/**\n * Component that shows a simplified checkbox without including any kind of \"real\" checkbox.\n * Meant to be used when the checkbox is purely decorative and a large number of them will be\n * included, such as for the options in a multi-select. Uses no SVGs or complex animations.\n * Note that theming is meant to be handled by the parent element, e.g.\n * `mat-primary .mat-pseudo-checkbox`.\n *\n * Note that this component will be completely invisible to screen-reader users. This is *not*\n * interchangeable with <mat-checkbox> and should *not* be used if the user would directly interact\n * with the checkbox. The pseudo-checkbox should only be used as an implementation detail of\n * more complex components that appropriately handle selected / checked state.\n * \\@docs-private\n */\nvar MatPseudoCheckbox = (function () {\n function MatPseudoCheckbox() {\n /**\n * Display state of the checkbox.\n */\n this.state = 'unchecked';\n /**\n * Whether the checkbox is disabled.\n */\n this.disabled = false;\n }\n MatPseudoCheckbox.decorators = [\n { type: Component, args: [{encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'mat-pseudo-checkbox',\n styles: [\".mat-pseudo-checkbox{width:20px;height:20px;border:2px solid;border-radius:2px;cursor:pointer;display:inline-block;vertical-align:middle;box-sizing:border-box;position:relative;flex-shrink:0;transition:border-color 90ms cubic-bezier(0,0,.2,.1),background-color 90ms cubic-bezier(0,0,.2,.1)}.mat-pseudo-checkbox::after{position:absolute;opacity:0;content:'';border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0,0,.2,.1)}.mat-pseudo-checkbox.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox.mat-pseudo-checkbox-indeterminate{border:none}.mat-pseudo-checkbox-disabled{cursor:default}.mat-pseudo-checkbox-indeterminate::after{top:9px;left:2px;width:16px;opacity:1}.mat-pseudo-checkbox-checked::after{top:5px;left:3px;width:12px;height:5px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1}\"],\n template: '',\n host: {\n 'class': 'mat-pseudo-checkbox',\n '[class.mat-pseudo-checkbox-indeterminate]': 'state === \"indeterminate\"',\n '[class.mat-pseudo-checkbox-checked]': 'state === \"checked\"',\n '[class.mat-pseudo-checkbox-disabled]': 'disabled',\n },\n },] },\n ];\n /**\n * @nocollapse\n */\n MatPseudoCheckbox.ctorParameters = function () { return []; };\n MatPseudoCheckbox.propDecorators = {\n 'state': [{ type: Input },],\n 'disabled': [{ type: Input },],\n };\n return MatPseudoCheckbox;\n}());\n\nvar MatPseudoCheckboxModule = (function () {\n function MatPseudoCheckboxModule() {\n }\n MatPseudoCheckboxModule.decorators = [\n { type: NgModule, args: [{\n exports: [MatPseudoCheckbox],\n declarations: [MatPseudoCheckbox]\n },] },\n ];\n /**\n * @nocollapse\n */\n MatPseudoCheckboxModule.ctorParameters = function () { return []; };\n return MatPseudoCheckboxModule;\n}());\n\n/**\n * \\@docs-private\n */\nvar MatOptgroupBase = (function () {\n function MatOptgroupBase() {\n }\n return MatOptgroupBase;\n}());\nvar _MatOptgroupMixinBase = mixinDisabled(MatOptgroupBase);\n// Counter for unique group ids.\nvar _uniqueOptgroupIdCounter = 0;\n/**\n * Component that is used to group instances of `mat-option`.\n */\nvar MatOptgroup = (function (_super) {\n __extends(MatOptgroup, _super);\n function MatOptgroup() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * Unique id for the underlying label.\n */\n _this._labelId = \"mat-optgroup-label-\" + _uniqueOptgroupIdCounter++;\n return _this;\n }\n MatOptgroup.decorators = [\n { type: Component, args: [{selector: 'mat-optgroup',\n exportAs: 'matOptgroup',\n template: \"<label class=\\\"mat-optgroup-label\\\" [id]=\\\"_labelId\\\">{{ label }}</label><ng-content select=\\\"mat-option\\\"></ng-content>\",\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n inputs: ['disabled'],\n host: {\n 'class': 'mat-optgroup',\n 'role': 'group',\n '[class.mat-optgroup-disabled]': 'disabled',\n '[attr.aria-disabled]': 'disabled.toString()',\n '[attr.aria-labelledby]': '_labelId',\n }\n },] },\n ];\n /**\n * @nocollapse\n */\n MatOptgroup.ctorParameters = function () { return []; };\n MatOptgroup.propDecorators = {\n 'label': [{ type: Input },],\n };\n return MatOptgroup;\n}(_MatOptgroupMixinBase));\n\n/**\n * Option IDs need to be unique across components, so this counter exists outside of\n * the component definition.\n */\nvar _uniqueIdCounter = 0;\n/**\n * Event object emitted by MatOption when selected or deselected.\n */\nvar MatOptionSelectionChange = (function () {\n /**\n * @param {?} source\n * @param {?=} isUserInput\n */\n function MatOptionSelectionChange(source, isUserInput) {\n if (isUserInput === void 0) { isUserInput = false; }\n this.source = source;\n this.isUserInput = isUserInput;\n }\n return MatOptionSelectionChange;\n}());\n/**\n * Single option inside of a `<mat-select>` element.\n */\nvar MatOption = (function () {\n /**\n * @param {?} _element\n * @param {?} _changeDetectorRef\n * @param {?} group\n */\n function MatOption(_element, _changeDetectorRef, group) {\n this._element = _element;\n this._changeDetectorRef = _changeDetectorRef;\n this.group = group;\n this._selected = false;\n this._active = false;\n this._multiple = false;\n this._disableRipple = false;\n /**\n * Whether the option is disabled.\n */\n this._disabled = false;\n this._id = \"mat-option-\" + _uniqueIdCounter++;\n /**\n * Event emitted when the option is selected or deselected.\n */\n this.onSelectionChange = new EventEmitter();\n }\n Object.defineProperty(MatOption.prototype, \"multiple\", {\n /**\n * Whether the wrapping component is in multiple selection mode.\n * @return {?}\n */\n get: function () { return this._multiple; },\n /**\n * @param {?} value\n * @return {?}\n */\n set: function (value) {\n if (value !== this._multiple) {\n this._multiple = value;\n this._changeDetectorRef.markForCheck();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatOption.prototype, \"id\", {\n /**\n * The unique ID of the option.\n * @return {?}\n */\n get: function () { return this._id; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatOption.prototype, \"selected\", {\n /**\n * Whether or not the option is currently selected.\n * @return {?}\n */\n get: function () { return this._selected; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatOption.prototype, \"disabled\", {\n /**\n * Whether the option is disabled.\n * @return {?}\n */\n get: function () { return (this.group && this.group.disabled) || this._disabled; },\n /**\n * @param {?} value\n * @return {?}\n */\n set: function (value) { this._disabled = coerceBooleanProperty(value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatOption.prototype, \"disableRipple\", {\n /**\n * Whether ripples for the option are disabled.\n * @return {?}\n */\n get: function () { return this._disableRipple; },\n /**\n * @param {?} value\n * @return {?}\n */\n set: function (value) {\n this._disableRipple = value;\n this._changeDetectorRef.markForCheck();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatOption.prototype, \"active\", {\n /**\n * Whether or not the option is currently active and ready to be selected.\n * An active option displays styles as if it is focused, but the\n * focus is actually retained somewhere else. This comes in handy\n * for components like autocomplete where focus must remain on the input.\n * @return {?}\n */\n get: function () {\n return this._active;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatOption.prototype, \"viewValue\", {\n /**\n * The displayed value of the option. It is necessary to show the selected option in the\n * select's trigger.\n * @return {?}\n */\n get: function () {\n // TODO(kara): Add input property alternative for node envs.\n return (this._getHostElement().textContent || '').trim();\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Selects the option.\n * @return {?}\n */\n MatOption.prototype.select = function () {\n this._selected = true;\n this._changeDetectorRef.markForCheck();\n this._emitSelectionChangeEvent();\n };\n /**\n * Deselects the option.\n * @return {?}\n */\n MatOption.prototype.deselect = function () {\n this._selected = false;\n this._changeDetectorRef.markForCheck();\n this._emitSelectionChangeEvent();\n };\n /**\n * Sets focus onto this option.\n * @return {?}\n */\n MatOption.prototype.focus = function () {\n var /** @type {?} */ element = this._getHostElement();\n if (typeof element.focus === 'function') {\n element.focus();\n }\n };\n /**\n * This method sets display styles on the option to make it appear\n * active. This is used by the ActiveDescendantKeyManager so key\n * events will display the proper options as active on arrow key events.\n * @return {?}\n */\n MatOption.prototype.setActiveStyles = function () {\n if (!this._active) {\n this._active = true;\n this._changeDetectorRef.markForCheck();\n }\n };\n /**\n * This method removes display styles on the option that made it appear\n * active. This is used by the ActiveDescendantKeyManager so key\n * events will display the proper options as active on arrow key events.\n * @return {?}\n */\n MatOption.prototype.setInactiveStyles = function () {\n if (this._active) {\n this._active = false;\n this._changeDetectorRef.markForCheck();\n }\n };\n /**\n * Gets the label to be used when determining whether the option should be focused.\n * @return {?}\n */\n MatOption.prototype.getLabel = function () {\n return this.viewValue;\n };\n /**\n * Ensures the option is selected when activated from the keyboard.\n * @param {?} event\n * @return {?}\n */\n MatOption.prototype._handleKeydown = function (event) {\n if (event.keyCode === ENTER || event.keyCode === SPACE) {\n this._selectViaInteraction();\n // Prevent the page from scrolling down and form submits.\n event.preventDefault();\n }\n };\n /**\n * Selects the option while indicating the selection came from the user. Used to\n * determine if the select's view -> model callback should be invoked.\n * @return {?}\n */\n MatOption.prototype._selectViaInteraction = function () {\n if (!this.disabled) {\n this._selected = this.multiple ? !this._selected : true;\n this._changeDetectorRef.markForCheck();\n this._emitSelectionChangeEvent(true);\n }\n };\n /**\n * Returns the correct tabindex for the option depending on disabled state.\n * @return {?}\n */\n MatOption.prototype._getTabIndex = function () {\n return this.disabled ? '-1' : '0';\n };\n /**\n * Gets the host DOM element.\n * @return {?}\n */\n MatOption.prototype._getHostElement = function () {\n return this._element.nativeElement;\n };\n /**\n * Emits the selection change event.\n * @param {?=} isUserInput\n * @return {?}\n */\n MatOption.prototype._emitSelectionChangeEvent = function (isUserInput) {\n if (isUserInput === void 0) { isUserInput = false; }\n this.onSelectionChange.emit(new MatOptionSelectionChange(this, isUserInput));\n };\n /**\n * Counts the amount of option group labels that precede the specified option.\n * @param {?} optionIndex Index of the option at which to start counting.\n * @param {?} options Flat list of all of the options.\n * @param {?} optionGroups Flat list of all of the option groups.\n * @return {?}\n */\n MatOption.countGroupLabelsBeforeOption = function (optionIndex, options, optionGroups) {\n if (optionGroups.length) {\n var /** @type {?} */ optionsArray = options.toArray();\n var /** @type {?} */ groups = optionGroups.toArray();\n var /** @type {?} */ groupCounter = 0;\n for (var /** @type {?} */ i = 0; i < optionIndex + 1; i++) {\n if (optionsArray[i].group && optionsArray[i].group === groups[groupCounter]) {\n groupCounter++;\n }\n }\n return groupCounter;\n }\n return 0;\n };\n MatOption.decorators = [\n { type: Component, args: [{selector: 'mat-option',\n exportAs: 'matOption',\n host: {\n 'role': 'option',\n '[attr.tabindex]': '_getTabIndex()',\n '[class.mat-selected]': 'selected',\n '[class.mat-option-multiple]': 'multiple',\n '[class.mat-active]': 'active',\n '[id]': 'id',\n '[attr.aria-selected]': 'selected.toString()',\n '[attr.aria-disabled]': 'disabled.toString()',\n '[class.mat-option-disabled]': 'disabled',\n '(click)': '_selectViaInteraction()',\n '(keydown)': '_handleKeydown($event)',\n 'class': 'mat-option',\n },\n template: \"<span *ngIf=\\\"multiple\\\"><mat-pseudo-checkbox class=\\\"mat-option-pseudo-checkbox\\\" [state]=\\\"selected ? 'checked' : ''\\\" [disabled]=\\\"disabled\\\"></mat-pseudo-checkbox></span><span class=\\\"mat-option-text\\\"><ng-content></ng-content></span><div class=\\\"mat-option-ripple\\\" mat-ripple [matRippleTrigger]=\\\"_getHostElement()\\\" [matRippleDisabled]=\\\"disabled || disableRipple\\\"></div>\",\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n },] },\n ];\n /**\n * @nocollapse\n */\n MatOption.ctorParameters = function () { return [\n { type: ElementRef, },\n { type: ChangeDetectorRef, },\n { type: MatOptgroup, decorators: [{ type: Optional },] },\n ]; };\n MatOption.propDecorators = {\n 'value': [{ type: Input },],\n 'disabled': [{ type: Input },],\n 'onSelectionChange': [{ type: Output },],\n };\n return MatOption;\n}());\n\nvar MatOptionModule = (function () {\n function MatOptionModule() {\n }\n MatOptionModule.decorators = [\n { type: NgModule, args: [{\n imports: [MatRippleModule, CommonModule, MatPseudoCheckboxModule],\n exports: [MatOption, MatOptgroup],\n declarations: [MatOption, MatOptgroup]\n },] },\n ];\n /**\n * @nocollapse\n */\n MatOptionModule.ctorParameters = function () { return []; };\n return MatOptionModule;\n}());\n\n/**\n * InjectionToken that can be used to specify the global placeholder options.\n */\nvar MAT_PLACEHOLDER_GLOBAL_OPTIONS = new InjectionToken('mat-placeholder-global-options');\n\n/**\n * Applies a CSS transform to an element, including browser-prefixed properties.\n * @param {?} element\n * @param {?} transformValue\n * @return {?}\n */\nfunction applyCssTransform(element, transformValue) {\n // It's important to trim the result, because the browser will ignore the set operation\n // if the string contains only whitespace.\n var /** @type {?} */ value = transformValue.trim();\n element.style.transform = value;\n element.style.webkitTransform = value;\n}\n\n/**\n * When constructing a Date, the month is zero-based. This can be confusing, since people are\n * used to seeing them one-based. So we create these aliases to make writing the tests easier.\n */\nvar JAN = 0;\nvar FEB = 1;\nvar MAR = 2;\nvar APR = 3;\nvar MAY = 4;\nvar JUN = 5;\nvar JUL = 6;\nvar AUG = 7;\nvar SEP = 8;\nvar OCT = 9;\nvar NOV = 10;\nvar DEC = 11;\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AnimationCurves, AnimationDurations, MatCommonModule, MATERIAL_SANITY_CHECKS, mixinDisabled, mixinColor, mixinDisableRipple, mixinTabIndex, MATERIAL_COMPATIBILITY_MODE, MAT_ELEMENTS_SELECTOR, MD_ELEMENTS_SELECTOR, MatPrefixRejector, MdPrefixRejector, CompatibilityModule, NoConflictStyleCompatibilityMode, NativeDateModule, MatNativeDateModule, MAT_DATE_LOCALE, MAT_DATE_LOCALE_PROVIDER, DateAdapter, MAT_DATE_FORMATS, NativeDateAdapter, MAT_NATIVE_DATE_FORMATS, ShowOnDirtyErrorStateMatcher, ErrorStateMatcher, GestureConfig, MatLine, MatLineSetter, MatLineModule, MatOptionModule, MatOptionSelectionChange, MatOption, MatOptgroupBase, _MatOptgroupMixinBase, MatOptgroup, MAT_PLACEHOLDER_GLOBAL_OPTIONS, MatRipple, MAT_RIPPLE_GLOBAL_OPTIONS, RippleRef, RippleState, RIPPLE_FADE_IN_DURATION, RIPPLE_FADE_OUT_DURATION, MatRippleModule, MatPseudoCheckboxModule, MatPseudoCheckbox, applyCssTransform, extendObject, JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC, RippleRenderer as ɵa0 };\n//# sourceMappingURL=core.es5.js.map\n","/**\n * @license\n * Copyright Google Inc. 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 */\nimport { ChangeDetectionStrategy, Component, Directive, ElementRef, Inject, NgModule, Optional, Renderer2, Self, ViewEncapsulation, forwardRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatCommonModule, MatRippleModule, mixinColor, mixinDisableRipple, mixinDisabled } from '@angular/material/core';\nimport { A11yModule, FocusMonitor } from '@angular/cdk/a11y';\nimport { __extends } from 'tslib';\nimport * as tslib_1 from 'tslib';\nimport { Platform } from '@angular/cdk/platform';\n\n/**\n * Default color palette for round buttons (mat-fab and mat-mini-fab)\n */\nvar DEFAULT_ROUND_BUTTON_COLOR = 'accent';\n/**\n * Directive whose purpose is to add the mat- CSS styling to this selector.\n * \\@docs-private\n */\nvar MatButtonCssMatStyler = (function () {\n function MatButtonCssMatStyler() {\n }\n MatButtonCssMatStyler.decorators = [\n { type: Directive, args: [{\n selector: 'button[mat-button], a[mat-button]',\n host: { 'class': 'mat-button' }\n },] },\n ];\n /**\n * @nocollapse\n */\n MatButtonCssMatStyler.ctorParameters = function () { return []; };\n return MatButtonCssMatStyler;\n}());\n/**\n * Directive whose purpose is to add the mat- CSS styling to this selector.\n * \\@docs-private\n */\nvar MatRaisedButtonCssMatStyler = (function () {\n function MatRaisedButtonCssMatStyler() {\n }\n MatRaisedButtonCssMatStyler.decorators = [\n { type: Directive, args: [{\n selector: 'button[mat-raised-button], a[mat-raised-button]',\n host: { 'class': 'mat-raised-button' }\n },] },\n ];\n /**\n * @nocollapse\n */\n MatRaisedButtonCssMatStyler.ctorParameters = function () { return []; };\n return MatRaisedButtonCssMatStyler;\n}());\n/**\n * Directive whose purpose is to add the mat- CSS styling to this selector.\n * \\@docs-private\n */\nvar MatIconButtonCssMatStyler = (function () {\n function MatIconButtonCssMatStyler() {\n }\n MatIconButtonCssMatStyler.decorators = [\n { type: Directive, args: [{\n selector: 'button[mat-icon-button], a[mat-icon-button]',\n host: { 'class': 'mat-icon-button' }\n },] },\n ];\n /**\n * @nocollapse\n */\n MatIconButtonCssMatStyler.ctorParameters = function () { return []; };\n return MatIconButtonCssMatStyler;\n}());\n/**\n * Directive whose purpose is to add the mat- CSS styling to this selector.\n * \\@docs-private\n */\nvar MatFab = (function () {\n /**\n * @param {?} button\n * @param {?} anchor\n */\n function MatFab(button, anchor) {\n // Set the default color palette for the mat-fab components.\n (button || anchor).color = DEFAULT_ROUND_BUTTON_COLOR;\n }\n MatFab.decorators = [\n { type: Directive, args: [{\n selector: 'button[mat-fab], a[mat-fab]',\n host: { 'class': 'mat-fab' }\n },] },\n ];\n /**\n * @nocollapse\n */\n MatFab.ctorParameters = function () { return [\n { type: MatButton, decorators: [{ type: Self }, { type: Optional }, { type: Inject, args: [forwardRef(function () { return MatButton; }),] },] },\n { type: MatAnchor, decorators: [{ type: Self }, { type: Optional }, { type: Inject, args: [forwardRef(function () { return MatAnchor; }),] },] },\n ]; };\n return MatFab;\n}());\n/**\n * Directive that targets mini-fab buttons and anchors. It's used to apply the `mat-` class\n * to all mini-fab buttons and also is responsible for setting the default color palette.\n * \\@docs-private\n */\nvar MatMiniFab = (function () {\n /**\n * @param {?} button\n * @param {?} anchor\n */\n function MatMiniFab(button, anchor) {\n // Set the default color palette for the mat-mini-fab components.\n (button || anchor).color = DEFAULT_ROUND_BUTTON_COLOR;\n }\n MatMiniFab.decorators = [\n { type: Directive, args: [{\n selector: 'button[mat-mini-fab], a[mat-mini-fab]',\n host: { 'class': 'mat-mini-fab' }\n },] },\n ];\n /**\n * @nocollapse\n */\n MatMiniFab.ctorParameters = function () { return [\n { type: MatButton, decorators: [{ type: Self }, { type: Optional }, { type: Inject, args: [forwardRef(function () { return MatButton; }),] },] },\n { type: MatAnchor, decorators: [{ type: Self }, { type: Optional }, { type: Inject, args: [forwardRef(function () { return MatAnchor; }),] },] },\n ]; };\n return MatMiniFab;\n}());\n/**\n * \\@docs-private\n */\nvar MatButtonBase = (function () {\n /**\n * @param {?} _renderer\n * @param {?} _elementRef\n */\n function MatButtonBase(_renderer, _elementRef) {\n this._renderer = _renderer;\n this._elementRef = _elementRef;\n }\n return MatButtonBase;\n}());\nvar _MatButtonMixinBase = mixinColor(mixinDisabled(mixinDisableRipple(MatButtonBase)));\n/**\n * Material design button.\n */\nvar MatButton = (function (_super) {\n __extends(MatButton, _super);\n /**\n * @param {?} renderer\n * @param {?} elementRef\n * @param {?} _platform\n * @param {?} _focusMonitor\n */\n function MatButton(renderer, elementRef, _platform, _focusMonitor) {\n var _this = _super.call(this, renderer, elementRef) || this;\n _this._platform = _platform;\n _this._focusMonitor = _focusMonitor;\n /**\n * Whether the button is round.\n */\n _this._isRoundButton = _this._hasAttributeWithPrefix('fab', 'mini-fab');\n /**\n * Whether the button is icon button.\n */\n _this._isIconButton = _this._hasAttributeWithPrefix('icon-button');\n _this._focusMonitor.monitor(_this._elementRef.nativeElement, _this._renderer, true);\n return _this;\n }\n /**\n * @return {?}\n */\n MatButton.prototype.ngOnDestroy = function () {\n this._focusMonitor.stopMonitoring(this._elementRef.nativeElement);\n };\n /**\n * Focuses the button.\n * @return {?}\n */\n MatButton.prototype.focus = function () {\n this._getHostElement().focus();\n };\n /**\n * @return {?}\n */\n MatButton.prototype._getHostElement = function () {\n return this._elementRef.nativeElement;\n };\n /**\n * @return {?}\n */\n MatButton.prototype._isRippleDisabled = function () {\n return this.disableRipple || this.disabled;\n };\n /**\n * Gets whether the button has one of the given attributes with a 'mat-' prefix.\n * @param {...?} unprefixedAttributeNames\n * @return {?}\n */\n MatButton.prototype._hasAttributeWithPrefix = function () {\n var _this = this;\n var unprefixedAttributeNames = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n unprefixedAttributeNames[_i] = arguments[_i];\n }\n // If not on the browser, say that there are none of the attributes present.\n // Since these only affect how the ripple displays (and ripples only happen on the client),\n // detecting these attributes isn't necessary when not on the browser.\n if (!this._platform.isBrowser) {\n return false;\n }\n return unprefixedAttributeNames.some(function (suffix) {\n return _this._getHostElement().hasAttribute('mat-' + suffix);\n });\n };\n MatButton.decorators = [\n { type: Component, args: [{selector: \"button[mat-button], button[mat-raised-button], button[mat-icon-button],\\n button[mat-fab], button[mat-mini-fab]\",\n exportAs: 'matButton',\n host: {\n '[disabled]': 'disabled || null',\n },\n template: \"<span class=\\\"mat-button-wrapper\\\"><ng-content></ng-content></span><div matRipple class=\\\"mat-button-ripple\\\" [class.mat-button-ripple-round]=\\\"_isRoundButton || _isIconButton\\\" [matRippleDisabled]=\\\"_isRippleDisabled()\\\" [matRippleCentered]=\\\"_isIconButton\\\" [matRippleTrigger]=\\\"_getHostElement()\\\"></div><div class=\\\"mat-button-focus-overlay\\\"></div>\",\n styles: [\".mat-button,.mat-fab,.mat-icon-button,.mat-mini-fab,.mat-raised-button{box-sizing:border-box;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:0;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:88px;line-height:36px;padding:0 16px;border-radius:2px}[disabled].mat-button,[disabled].mat-fab,[disabled].mat-icon-button,[disabled].mat-mini-fab,[disabled].mat-raised-button{cursor:default}.cdk-keyboard-focused.mat-button .mat-button-focus-overlay,.cdk-keyboard-focused.mat-fab .mat-button-focus-overlay,.cdk-keyboard-focused.mat-icon-button .mat-button-focus-overlay,.cdk-keyboard-focused.mat-mini-fab .mat-button-focus-overlay,.cdk-keyboard-focused.mat-raised-button .mat-button-focus-overlay{opacity:1}.mat-button::-moz-focus-inner,.mat-fab::-moz-focus-inner,.mat-icon-button::-moz-focus-inner,.mat-mini-fab::-moz-focus-inner,.mat-raised-button::-moz-focus-inner{border:0}.mat-fab,.mat-mini-fab,.mat-raised-button{transform:translate3d(0,0,0);transition:background .4s cubic-bezier(.25,.8,.25,1),box-shadow 280ms cubic-bezier(.4,0,.2,1)}.mat-fab:not([class*=mat-elevation-z]),.mat-mini-fab:not([class*=mat-elevation-z]),.mat-raised-button:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.mat-fab:not([disabled]):active:not([class*=mat-elevation-z]),.mat-mini-fab:not([disabled]):active:not([class*=mat-elevation-z]),.mat-raised-button:not([disabled]):active:not([class*=mat-elevation-z]){box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}[disabled].mat-fab,[disabled].mat-mini-fab,[disabled].mat-raised-button{box-shadow:none}.mat-button .mat-button-focus-overlay,.mat-icon-button .mat-button-focus-overlay{transition:none;opacity:0}.mat-button:hover .mat-button-focus-overlay{opacity:1}.mat-fab{min-width:0;border-radius:50%;width:56px;height:56px;padding:0;flex-shrink:0}.mat-fab:not([class*=mat-elevation-z]){box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.mat-fab:not([disabled]):active:not([class*=mat-elevation-z]){box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12)}.mat-fab .mat-button-wrapper{padding:16px 0;display:inline-block;line-height:24px}.mat-mini-fab{min-width:0;border-radius:50%;width:40px;height:40px;padding:0;flex-shrink:0}.mat-mini-fab:not([class*=mat-elevation-z]){box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.mat-mini-fab:not([disabled]):active:not([class*=mat-elevation-z]){box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12)}.mat-mini-fab .mat-button-wrapper{padding:8px 0;display:inline-block;line-height:24px}.mat-icon-button{padding:0;min-width:0;width:40px;height:40px;flex-shrink:0;line-height:40px;border-radius:50%}.mat-icon-button .mat-icon,.mat-icon-button i{line-height:24px}.mat-button,.mat-icon-button,.mat-raised-button{color:currentColor}.mat-button .mat-button-wrapper>*,.mat-icon-button .mat-button-wrapper>*,.mat-raised-button .mat-button-wrapper>*{vertical-align:middle}.mat-button-focus-overlay,.mat-button-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-button-focus-overlay{background-color:rgba(0,0,0,.12);border-radius:inherit;opacity:0;transition:opacity .2s cubic-bezier(.35,0,.25,1),background-color .2s cubic-bezier(.35,0,.25,1)}@media screen and (-ms-high-contrast:active){.mat-button-focus-overlay{background-color:rgba(255,255,255,.5)}}.mat-button-ripple-round{border-radius:50%;z-index:1}@media screen and (-ms-high-contrast:active){.mat-button,.mat-fab,.mat-icon-button,.mat-mini-fab,.mat-raised-button{outline:solid 1px}}\"],\n inputs: ['disabled', 'disableRipple', 'color'],\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n },] },\n ];\n /**\n * @nocollapse\n */\n MatButton.ctorParameters = function () { return [\n { type: Renderer2, },\n { type: ElementRef, },\n { type: Platform, },\n { type: FocusMonitor, },\n ]; };\n return MatButton;\n}(_MatButtonMixinBase));\n/**\n * Raised Material design button.\n */\nvar MatAnchor = (function (_super) {\n __extends(MatAnchor, _super);\n /**\n * @param {?} platform\n * @param {?} focusMonitor\n * @param {?} elementRef\n * @param {?} renderer\n */\n function MatAnchor(platform, focusMonitor, elementRef, renderer) {\n return _super.call(this, renderer, elementRef, platform, focusMonitor) || this;\n }\n /**\n * @param {?} event\n * @return {?}\n */\n MatAnchor.prototype._haltDisabledEvents = function (event) {\n // A disabled button shouldn't apply any actions\n if (this.disabled) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n };\n MatAnchor.decorators = [\n { type: Component, args: [{selector: \"a[mat-button], a[mat-raised-button], a[mat-icon-button], a[mat-fab], a[mat-mini-fab]\",\n exportAs: 'matButton, matAnchor',\n host: {\n '[attr.tabindex]': 'disabled ? -1 : 0',\n '[attr.disabled]': 'disabled || null',\n '[attr.aria-disabled]': 'disabled.toString()',\n '(click)': '_haltDisabledEvents($event)',\n },\n inputs: ['disabled', 'disableRipple', 'color'],\n template: \"<span class=\\\"mat-button-wrapper\\\"><ng-content></ng-content></span><div matRipple class=\\\"mat-button-ripple\\\" [class.mat-button-ripple-round]=\\\"_isRoundButton || _isIconButton\\\" [matRippleDisabled]=\\\"_isRippleDisabled()\\\" [matRippleCentered]=\\\"_isIconButton\\\" [matRippleTrigger]=\\\"_getHostElement()\\\"></div><div class=\\\"mat-button-focus-overlay\\\"></div>\",\n styles: [\".mat-button,.mat-fab,.mat-icon-button,.mat-mini-fab,.mat-raised-button{box-sizing:border-box;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:0;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:88px;line-height:36px;padding:0 16px;border-radius:2px}[disabled].mat-button,[disabled].mat-fab,[disabled].mat-icon-button,[disabled].mat-mini-fab,[disabled].mat-raised-button{cursor:default}.cdk-keyboard-focused.mat-button .mat-button-focus-overlay,.cdk-keyboard-focused.mat-fab .mat-button-focus-overlay,.cdk-keyboard-focused.mat-icon-button .mat-button-focus-overlay,.cdk-keyboard-focused.mat-mini-fab .mat-button-focus-overlay,.cdk-keyboard-focused.mat-raised-button .mat-button-focus-overlay{opacity:1}.mat-button::-moz-focus-inner,.mat-fab::-moz-focus-inner,.mat-icon-button::-moz-focus-inner,.mat-mini-fab::-moz-focus-inner,.mat-raised-button::-moz-focus-inner{border:0}.mat-fab,.mat-mini-fab,.mat-raised-button{transform:translate3d(0,0,0);transition:background .4s cubic-bezier(.25,.8,.25,1),box-shadow 280ms cubic-bezier(.4,0,.2,1)}.mat-fab:not([class*=mat-elevation-z]),.mat-mini-fab:not([class*=mat-elevation-z]),.mat-raised-button:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.mat-fab:not([disabled]):active:not([class*=mat-elevation-z]),.mat-mini-fab:not([disabled]):active:not([class*=mat-elevation-z]),.mat-raised-button:not([disabled]):active:not([class*=mat-elevation-z]){box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}[disabled].mat-fab,[disabled].mat-mini-fab,[disabled].mat-raised-button{box-shadow:none}.mat-button .mat-button-focus-overlay,.mat-icon-button .mat-button-focus-overlay{transition:none;opacity:0}.mat-button:hover .mat-button-focus-overlay{opacity:1}.mat-fab{min-width:0;border-radius:50%;width:56px;height:56px;padding:0;flex-shrink:0}.mat-fab:not([class*=mat-elevation-z]){box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.mat-fab:not([disabled]):active:not([class*=mat-elevation-z]){box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12)}.mat-fab .mat-button-wrapper{padding:16px 0;display:inline-block;line-height:24px}.mat-mini-fab{min-width:0;border-radius:50%;width:40px;height:40px;padding:0;flex-shrink:0}.mat-mini-fab:not([class*=mat-elevation-z]){box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.mat-mini-fab:not([disabled]):active:not([class*=mat-elevation-z]){box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12)}.mat-mini-fab .mat-button-wrapper{padding:8px 0;display:inline-block;line-height:24px}.mat-icon-button{padding:0;min-width:0;width:40px;height:40px;flex-shrink:0;line-height:40px;border-radius:50%}.mat-icon-button .mat-icon,.mat-icon-button i{line-height:24px}.mat-button,.mat-icon-button,.mat-raised-button{color:currentColor}.mat-button .mat-button-wrapper>*,.mat-icon-button .mat-button-wrapper>*,.mat-raised-button .mat-button-wrapper>*{vertical-align:middle}.mat-button-focus-overlay,.mat-button-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-button-focus-overlay{background-color:rgba(0,0,0,.12);border-radius:inherit;opacity:0;transition:opacity .2s cubic-bezier(.35,0,.25,1),background-color .2s cubic-bezier(.35,0,.25,1)}@media screen and (-ms-high-contrast:active){.mat-button-focus-overlay{background-color:rgba(255,255,255,.5)}}.mat-button-ripple-round{border-radius:50%;z-index:1}@media screen and (-ms-high-contrast:active){.mat-button,.mat-fab,.mat-icon-button,.mat-mini-fab,.mat-raised-button{outline:solid 1px}}\"],\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n },] },\n ];\n /**\n * @nocollapse\n */\n MatAnchor.ctorParameters = function () { return [\n { type: Platform, },\n { type: FocusMonitor, },\n { type: ElementRef, },\n { type: Renderer2, },\n ]; };\n return MatAnchor;\n}(MatButton));\n\nvar MatButtonModule = (function () {\n function MatButtonModule() {\n }\n MatButtonModule.decorators = [\n { type: NgModule, args: [{\n imports: [\n CommonModule,\n MatRippleModule,\n MatCommonModule,\n A11yModule,\n ],\n exports: [\n MatButton,\n MatAnchor,\n MatMiniFab,\n MatFab,\n MatCommonModule,\n MatButtonCssMatStyler,\n MatRaisedButtonCssMatStyler,\n MatIconButtonCssMatStyler,\n ],\n declarations: [\n MatButton,\n MatAnchor,\n MatMiniFab,\n MatFab,\n MatButtonCssMatStyler,\n MatRaisedButtonCssMatStyler,\n MatIconButtonCssMatStyler,\n ],\n },] },\n ];\n /**\n * @nocollapse\n */\n MatButtonModule.ctorParameters = function () { return []; };\n return MatButtonModule;\n}());\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MatButtonModule, MatButtonCssMatStyler, MatRaisedButtonCssMatStyler, MatIconButtonCssMatStyler, MatFab, MatMiniFab, MatButtonBase, _MatButtonMixinBase, MatButton, MatAnchor };\n//# sourceMappingURL=button.es5.js.map\n","/**\n * @license\n * Copyright Google Inc. 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 */\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, ContentChildren, Directive, ElementRef, Inject, Input, NgModule, Optional, Renderer2, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { PlatformModule } from '@angular/cdk/platform';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { first, startWith } from '@angular/cdk/rxjs';\nimport { MAT_PLACEHOLDER_GLOBAL_OPTIONS } from '@angular/material/core';\nimport { fromEvent } from 'rxjs/observable/fromEvent';\n\nvar nextUniqueId = 0;\n/**\n * Single error message to be shown underneath the form field.\n */\nvar MatError = (function () {\n function MatError() {\n this.id = \"mat-error-\" + nextUniqueId++;\n }\n MatError.decorators = [\n { type: Directive, args: [{\n selector: 'mat-error',\n host: {\n 'class': 'mat-error',\n 'role': 'alert',\n '[attr.id]': 'id',\n }\n },] },\n ];\n /**\n * @nocollapse\n */\n MatError.ctorParameters = function () { return []; };\n MatError.propDecorators = {\n 'id': [{ type: Input },],\n };\n return MatError;\n}());\n\n/**\n * An interface which allows a control to work inside of a `MatFormField`.\n * @abstract\n */\nvar MatFormFieldControl = (function () {\n function MatFormFieldControl() {\n }\n /**\n * Sets the list of element IDs that currently describe this control.\n * @abstract\n * @param {?} ids\n * @return {?}\n */\n MatFormFieldControl.prototype.setDescribedByIds = function (ids) { };\n /**\n * Handles a click on the control's container.\n * @abstract\n * @param {?} event\n * @return {?}\n */\n MatFormFieldControl.prototype.onContainerClick = function (event) { };\n return MatFormFieldControl;\n}());\n\n/**\n * \\@docs-private\n * @return {?}\n */\nfunction getMatFormFieldPlaceholderConflictError() {\n return Error('Placeholder attribute and child element were both specified.');\n}\n/**\n * \\@docs-private\n * @param {?} align\n * @return {?}\n */\nfunction getMatFormFieldDuplicatedHintError(align) {\n return Error(\"A hint was already declared for 'align=\\\"\" + align + \"\\\"'.\");\n}\n/**\n * \\@docs-private\n * @return {?}\n */\nfunction getMatFormFieldMissingControlError() {\n return Error('mat-form-field must contain a MatFormFieldControl. ' +\n 'Did you forget to add matInput to the native input or textarea element?');\n}\n\nvar nextUniqueId$2 = 0;\n/**\n * Hint text to be shown underneath the form field control.\n */\nvar MatHint = (function () {\n function MatHint() {\n /**\n * Whether to align the hint label at the start or end of the line.\n */\n this.align = 'start';\n /**\n * Unique ID for the hint. Used for the aria-describedby on the form field control.\n */\n this.id = \"mat-hint-\" + nextUniqueId$2++;\n }\n MatHint.decorators = [\n { type: Directive, args: [{\n selector: 'mat-hint',\n host: {\n 'class': 'mat-hint',\n '[class.mat-right]': 'align == \"end\"',\n '[attr.id]': 'id',\n // Remove align attribute to prevent it from interfering with layout.\n '[attr.align]': 'null',\n }\n },] },\n ];\n /**\n * @nocollapse\n */\n MatHint.ctorParameters = function () { return []; };\n MatHint.propDecorators = {\n 'align': [{ type: Input },],\n 'id': [{ type: Input },],\n };\n return MatHint;\n}());\n\n/**\n * The floating placeholder for an `MatFormField`.\n */\nvar MatPlaceholder = (function () {\n function MatPlaceholder() {\n }\n MatPlaceholder.decorators = [\n { type: Directive, args: [{\n selector: 'mat-placeholder'\n },] },\n ];\n /**\n * @nocollapse\n */\n MatPlaceholder.ctorParameters = function () { return []; };\n return MatPlaceholder;\n}());\n\n/**\n * Prefix to be placed the the front of the form field.\n */\nvar MatPrefix = (function () {\n function MatPrefix() {\n }\n MatPrefix.decorators = [\n { type: Directive, args: [{\n selector: '[matPrefix]',\n },] },\n ];\n /**\n * @nocollapse\n */\n MatPrefix.ctorParameters = function () { return []; };\n return MatPrefix;\n}());\n\n/**\n * Suffix to be placed at the end of the form field.\n */\nvar MatSuffix = (function () {\n function MatSuffix() {\n }\n MatSuffix.decorators = [\n { type: Directive, args: [{\n selector: '[matSuffix]',\n },] },\n ];\n /**\n * @nocollapse\n */\n MatSuffix.ctorParameters = function () { return []; };\n return MatSuffix;\n}());\n\nvar nextUniqueId$1 = 0;\n/**\n * Container for form controls that applies Material Design styling and behavior.\n */\nvar MatFormField = (function () {\n /**\n * @param {?} _elementRef\n * @param {?} _renderer\n * @param {?} _changeDetectorRef\n * @param {?} placeholderOptions\n */\n function MatFormField(_elementRef, _renderer, _changeDetectorRef, placeholderOptions) {\n this._elementRef = _elementRef;\n this._renderer = _renderer;\n this._changeDetectorRef = _changeDetectorRef;\n /**\n * Color of the form field underline, based on the theme.\n */\n this.color = 'primary';\n /**\n * Override for the logic that disables the placeholder animation in certain cases.\n */\n this._showAlwaysAnimate = false;\n /**\n * State of the mat-hint and mat-error animations.\n */\n this._subscriptAnimationState = '';\n this._hintLabel = '';\n // Unique id for the hint label.\n this._hintLabelId = \"mat-hint-\" + nextUniqueId$1++;\n this._placeholderOptions = placeholderOptions ? placeholderOptions : {};\n this.floatPlaceholder = this._placeholderOptions.float || 'auto';\n }\n Object.defineProperty(MatFormField.prototype, \"dividerColor\", {\n /**\n * @deprecated Use `color` instead.\n * @return {?}\n */\n get: function () { return this.color; },\n /**\n * @param {?} value\n * @return {?}\n */\n set: function (value) { this.color = value; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatFormField.prototype, \"hideRequiredMarker\", {\n /**\n * Whether the required marker should be hidden.\n * @return {?}\n */\n get: function () { return this._hideRequiredMarker; },\n /**\n * @param {?} value\n * @return {?}\n */\n set: function (value) {\n this._hideRequiredMarker = coerceBooleanProperty(value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatFormField.prototype, \"_shouldAlwaysFloat\", {\n /**\n * Whether the floating label should always float or not.\n * @return {?}\n */\n get: function () {\n return this._floatPlaceholder === 'always' && !this._showAlwaysAnimate;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatFormField.prototype, \"_canPlaceholderFloat\", {\n /**\n * Whether the placeholder can float or not.\n * @return {?}\n */\n get: function () { return this._floatPlaceholder !== 'never'; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatFormField.prototype, \"hintLabel\", {\n /**\n * Text for the form field hint.\n * @return {?}\n */\n get: function () { return this._hintLabel; },\n /**\n * @param {?} value\n * @return {?}\n */\n set: function (value) {\n this._hintLabel = value;\n this._processHints();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatFormField.prototype, \"floatPlaceholder\", {\n /**\n * Whether the placeholder should always float, never float or float as the user types.\n * @return {?}\n */\n get: function () { return this._floatPlaceholder; },\n /**\n * @param {?} value\n * @return {?}\n */\n set: function (value) {\n if (value !== this._floatPlaceholder) {\n this._floatPlaceholder = value || this._placeholderOptions.float || 'auto';\n this._changeDetectorRef.markForCheck();\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n MatFormField.prototype.ngAfterContentInit = function () {\n var _this = this;\n this._validateControlChild();\n if (this._control.controlType) {\n this._renderer.addClass(this._elementRef.nativeElement, \"mat-form-field-type-\" + this._control.controlType);\n }\n // Subscribe to changes in the child control state in order to update the form field UI.\n startWith.call(this._control.stateChanges, null).subscribe(function () {\n _this._validatePlaceholders();\n _this._syncDescribedByIds();\n _this._changeDetectorRef.markForCheck();\n });\n var /** @type {?} */ ngControl = this._control.ngControl;\n if (ngControl && ngControl.valueChanges) {\n ngControl.valueChanges.subscribe(function () {\n _this._changeDetectorRef.markForCheck();\n });\n }\n // Re-validate when the number of hints changes.\n startWith.call(this._hintChildren.changes, null).subscribe(function () {\n _this._processHints();\n _this._changeDetectorRef.markForCheck();\n });\n // Update the aria-described by when the number of errors changes.\n startWith.call(this._errorChildren.changes, null).subscribe(function () {\n _this._syncDescribedByIds();\n _this._changeDetectorRef.markForCheck();\n });\n };\n /**\n * @return {?}\n */\n MatFormField.prototype.ngAfterContentChecked = function () {\n this._validateControlChild();\n };\n /**\n * @return {?}\n */\n MatFormField.prototype.ngAfterViewInit = function () {\n // Avoid animations on load.\n this._subscriptAnimationState = 'enter';\n this._changeDetectorRef.detectChanges();\n };\n /**\n * Determines whether a class from the NgControl should be forwarded to the host element.\n * @param {?} prop\n * @return {?}\n */\n MatFormField.prototype._shouldForward = function (prop) {\n var /** @type {?} */ ngControl = this._control ? this._control.ngControl : null;\n return ngControl && ((ngControl))[prop];\n };\n /**\n * Whether the form field has a placeholder.\n * @return {?}\n */\n MatFormField.prototype._hasPlaceholder = function () {\n return !!(this._control.placeholder || this._placeholderChild);\n };\n /**\n * Determines whether to display hints or errors.\n * @return {?}\n */\n MatFormField.prototype._getDisplayedMessages = function () {\n return (this._errorChildren && this._errorChildren.length > 0 &&\n this._control.errorState) ? 'error' : 'hint';\n };\n /**\n * Animates the placeholder up and locks it in position.\n * @return {?}\n */\n MatFormField.prototype._animateAndLockPlaceholder = function () {\n var _this = this;\n if (this._placeholder && this._canPlaceholderFloat) {\n this._showAlwaysAnimate = true;\n this._floatPlaceholder = 'always';\n first.call(fromEvent(this._placeholder.nativeElement, 'transitionend')).subscribe(function () {\n _this._showAlwaysAnimate = false;\n });\n this._changeDetectorRef.markForCheck();\n }\n };\n /**\n * Ensure that there is only one placeholder (either `placeholder` attribute on the child control\n * or child element with the `mat-placeholder` directive).\n * @return {?}\n */\n MatFormField.prototype._validatePlaceholders = function () {\n if (this._control.placeholder && this._placeholderChild) {\n throw getMatFormFieldPlaceholderConflictError();\n }\n };\n /**\n * Does any extra processing that is required when handling the hints.\n * @return {?}\n */\n MatFormField.prototype._processHints = function () {\n this._validateHints();\n this._syncDescribedByIds();\n };\n /**\n * Ensure that there is a maximum of one of each `<mat-hint>` alignment specified, with the\n * attribute being considered as `align=\"start\"`.\n * @return {?}\n */\n MatFormField.prototype._validateHints = function () {\n var _this = this;\n if (this._hintChildren) {\n var /** @type {?} */ startHint_1;\n var /** @type {?} */ endHint_1;\n this._hintChildren.forEach(function (hint) {\n if (hint.align == 'start') {\n if (startHint_1 || _this.hintLabel) {\n throw getMatFormFieldDuplicatedHintError('start');\n }\n startHint_1 = hint;\n }\n else if (hint.align == 'end') {\n if (endHint_1) {\n throw getMatFormFieldDuplicatedHintError('end');\n }\n endHint_1 = hint;\n }\n });\n }\n };\n /**\n * Sets the list of element IDs that describe the child control. This allows the control to update\n * its `aria-describedby` attribute accordingly.\n * @return {?}\n */\n MatFormField.prototype._syncDescribedByIds = function () {\n if (this._control) {\n var /** @type {?} */ ids = [];\n if (this._getDisplayedMessages() === 'hint') {\n var /** @type {?} */ startHint = this._hintChildren ?\n this._hintChildren.find(function (hint) { return hint.align === 'start'; }) : null;\n var /** @type {?} */ endHint = this._hintChildren ?\n this._hintChildren.find(function (hint) { return hint.align === 'end'; }) : null;\n if (startHint) {\n ids.push(startHint.id);\n }\n else if (this._hintLabel) {\n ids.push(this._hintLabelId);\n }\n if (endHint) {\n ids.push(endHint.id);\n }\n }\n else if (this._errorChildren) {\n ids = this._errorChildren.map(function (error) { return error.id; });\n }\n this._control.setDescribedByIds(ids);\n }\n };\n /**\n * Throws an error if the form field's control is missing.\n * @return {?}\n */\n MatFormField.prototype._validateControlChild = function () {\n if (!this._control) {\n throw getMatFormFieldMissingControlError();\n }\n };\n MatFormField.decorators = [\n { type: Component, args: [{// TODO(mmalerba): the input-container selectors and classes are deprecated and will be removed.\n selector: 'mat-input-container, mat-form-field',\n exportAs: 'matFormField',\n template: \"<div class=\\\"mat-input-wrapper mat-form-field-wrapper\\\"><div class=\\\"mat-input-flex mat-form-field-flex\\\" #connectionContainer (click)=\\\"_control.onContainerClick && _control.onContainerClick($event)\\\"><div class=\\\"mat-input-prefix mat-form-field-prefix\\\" *ngIf=\\\"_prefixChildren.length\\\"><ng-content select=\\\"[matPrefix]\\\"></ng-content></div><div class=\\\"mat-input-infix mat-form-field-infix\\\"><ng-content></ng-content><span class=\\\"mat-input-placeholder-wrapper mat-form-field-placeholder-wrapper\\\"><label class=\\\"mat-input-placeholder mat-form-field-placeholder\\\" [attr.for]=\\\"_control.id\\\" [attr.aria-owns]=\\\"_control.id\\\" [class.mat-empty]=\\\"_control.empty && !_shouldAlwaysFloat\\\" [class.mat-form-field-empty]=\\\"_control.empty && !_shouldAlwaysFloat\\\" [class.mat-accent]=\\\"color == 'accent'\\\" [class.mat-warn]=\\\"color == 'warn'\\\" #placeholder *ngIf=\\\"_hasPlaceholder()\\\"><ng-content select=\\\"mat-placeholder\\\"></ng-content>{{_control.placeholder}} <span class=\\\"mat-placeholder-required mat-form-field-required-marker\\\" aria-hidden=\\\"true\\\" *ngIf=\\\"!hideRequiredMarker && _control.required\\\">*</span></label></span></div><div class=\\\"mat-input-suffix mat-form-field-suffix\\\" *ngIf=\\\"_suffixChildren.length\\\"><ng-content select=\\\"[matSuffix]\\\"></ng-content></div></div><div class=\\\"mat-input-underline mat-form-field-underline\\\" #underline [class.mat-disabled]=\\\"_control.disabled\\\"><span class=\\\"mat-input-ripple mat-form-field-ripple\\\" [class.mat-accent]=\\\"color == 'accent'\\\" [class.mat-warn]=\\\"color == 'warn'\\\"></span></div><div class=\\\"mat-input-subscript-wrapper mat-form-field-subscript-wrapper\\\" [ngSwitch]=\\\"_getDisplayedMessages()\\\"><div *ngSwitchCase=\\\"'error'\\\" [@transitionMessages]=\\\"_subscriptAnimationState\\\"><ng-content select=\\\"mat-error\\\"></ng-content></div><div class=\\\"mat-input-hint-wrapper mat-form-field-hint-wrapper\\\" *ngSwitchCase=\\\"'hint'\\\" [@transitionMessages]=\\\"_subscriptAnimationState\\\"><div *ngIf=\\\"hintLabel\\\" [id]=\\\"_hintLabelId\\\" class=\\\"mat-hint\\\">{{hintLabel}}</div><ng-content select=\\\"mat-hint:not([align='end'])\\\"></ng-content><div class=\\\"mat-input-hint-spacer mat-form-field-hint-spacer\\\"></div><ng-content select=\\\"mat-hint[align='end']\\\"></ng-content></div></div></div>\",\n // MatInput is a directive and can't have styles, so we need to include its styles here.\n // The MatInput styles are fairly minimal so it shouldn't be a big deal for people who\n // aren't using MatInput.\n styles: [\".mat-form-field{display:inline-block;position:relative;text-align:left}[dir=rtl] .mat-form-field{text-align:right}.mat-form-field-wrapper{position:relative}.mat-form-field-flex{display:inline-flex;align-items:baseline;width:100%}.mat-form-field-prefix,.mat-form-field-suffix{white-space:nowrap;flex:none}.mat-form-field-prefix .mat-icon,.mat-form-field-suffix .mat-icon{width:1em}.mat-form-field-prefix .mat-icon-button,.mat-form-field-suffix .mat-icon-button{font:inherit;vertical-align:baseline}.mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field-suffix .mat-icon-button .mat-icon{font-size:inherit}.mat-form-field-infix{display:block;position:relative;flex:auto;min-width:0}.mat-form-field-placeholder-wrapper{position:absolute;left:0;box-sizing:content-box;width:100%;height:100%;overflow:hidden;pointer-events:none}.mat-form-field-placeholder{position:absolute;left:0;font:inherit;pointer-events:none;width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;transform:perspective(100px);-ms-transform:none;transform-origin:0 0;transition:transform .4s cubic-bezier(.25,.8,.25,1),color .4s cubic-bezier(.25,.8,.25,1),width .4s cubic-bezier(.25,.8,.25,1);display:none}[dir=rtl] .mat-form-field-placeholder{transform-origin:100% 0;left:auto;right:0}.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-placeholder,.mat-form-field-empty.mat-form-field-placeholder{display:block}.mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-placeholder-wrapper .mat-form-field-placeholder{display:none}.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-placeholder-wrapper .mat-form-field-placeholder{display:block;transition:none}.mat-form-field-placeholder:not(.mat-form-field-empty){transition:none}.mat-form-field-underline{position:absolute;height:1px;width:100%}.mat-form-field-underline.mat-disabled{background-position:0;background-color:transparent}.mat-form-field-underline .mat-form-field-ripple{position:absolute;height:1px;top:0;left:0;width:100%;transform-origin:50%;transform:scaleX(.5);visibility:hidden;transition:background-color .3s cubic-bezier(.55,0,.55,.2)}.mat-focused .mat-form-field-underline .mat-form-field-ripple{height:2px}.mat-focused .mat-form-field-underline .mat-form-field-ripple,.mat-form-field-invalid .mat-form-field-underline .mat-form-field-ripple{visibility:visible;transform:scaleX(1);transition:transform 150ms linear,background-color .3s cubic-bezier(.55,0,.55,.2)}.mat-form-field-subscript-wrapper{position:absolute;width:100%;overflow:hidden}.mat-form-field-placeholder-wrapper .mat-icon,.mat-form-field-subscript-wrapper .mat-icon{width:1em;height:1em;font-size:inherit;vertical-align:baseline}.mat-form-field-hint-wrapper{display:flex}.mat-form-field-hint-spacer{flex:1 0 1em}.mat-error{display:block} .mat-input-element{font:inherit;background:0 0;color:currentColor;border:none;outline:0;padding:0;margin:0;width:100%;max-width:100%;vertical-align:bottom}.mat-input-element:-moz-ui-invalid{box-shadow:none}.mat-input-element::placeholder{color:transparent!important}.mat-input-element::-moz-placeholder{color:transparent!important}.mat-input-element::-webkit-input-placeholder{color:transparent!important}.mat-input-element:-ms-input-placeholder{color:transparent!important}textarea.mat-input-element{resize:vertical;overflow:auto}\"],\n animations: [\n // TODO(mmalerba): Use angular animations for placeholder animation as well.\n trigger('transitionMessages', [\n state('enter', style({ opacity: 1, transform: 'translateY(0%)' })),\n transition('void => enter', [\n style({ opacity: 0, transform: 'translateY(-100%)' }),\n animate('300ms cubic-bezier(0.55, 0, 0.55, 0.2)'),\n ]),\n ]),\n ],\n host: {\n 'class': 'mat-input-container mat-form-field',\n '[class.mat-input-invalid]': '_control.errorState',\n '[class.mat-form-field-invalid]': '_control.errorState',\n '[class.mat-form-field-can-float]': '_canPlaceholderFloat',\n '[class.mat-form-field-should-float]': '_control.shouldPlaceholderFloat || _shouldAlwaysFloat',\n '[class.mat-focused]': '_control.focused',\n '[class.mat-primary]': 'color == \"primary\"',\n '[class.mat-accent]': 'color == \"accent\"',\n '[class.mat-warn]': 'color == \"warn\"',\n '[class.ng-untouched]': '_shouldForward(\"untouched\")',\n '[class.ng-touched]': '_shouldForward(\"touched\")',\n '[class.ng-pristine]': '_shouldForward(\"pristine\")',\n '[class.ng-dirty]': '_shouldForward(\"dirty\")',\n '[class.ng-valid]': '_shouldForward(\"valid\")',\n '[class.ng-invalid]': '_shouldForward(\"invalid\")',\n '[class.ng-pending]': '_shouldForward(\"pending\")',\n },\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n },] },\n ];\n /**\n * @nocollapse\n */\n MatFormField.ctorParameters = function () { return [\n { type: ElementRef, },\n { type: Renderer2, },\n { type: ChangeDetectorRef, },\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MAT_PLACEHOLDER_GLOBAL_OPTIONS,] },] },\n ]; };\n MatFormField.propDecorators = {\n 'color': [{ type: Input },],\n 'dividerColor': [{ type: Input },],\n 'hideRequiredMarker': [{ type: Input },],\n 'hintLabel': [{ type: Input },],\n 'floatPlaceholder': [{ type: Input },],\n 'underlineRef': [{ type: ViewChild, args: ['underline',] },],\n '_connectionContainerRef': [{ type: ViewChild, args: ['connectionContainer',] },],\n '_placeholder': [{ type: ViewChild, args: ['placeholder',] },],\n '_control': [{ type: ContentChild, args: [MatFormFieldControl,] },],\n '_placeholderChild': [{ type: ContentChild, args: [MatPlaceholder,] },],\n '_errorChildren': [{ type: ContentChildren, args: [MatError,] },],\n '_hintChildren': [{ type: ContentChildren, args: [MatHint,] },],\n '_prefixChildren': [{ type: ContentChildren, args: [MatPrefix,] },],\n '_suffixChildren': [{ type: ContentChildren, args: [MatSuffix,] },],\n };\n return MatFormField;\n}());\n\nvar MatFormFieldModule = (function () {\n function MatFormFieldModule() {\n }\n MatFormFieldModule.decorators = [\n { type: NgModule, args: [{\n declarations: [\n MatError,\n MatHint,\n MatFormField,\n MatPlaceholder,\n MatPrefix,\n MatSuffix,\n ],\n imports: [\n CommonModule,\n PlatformModule,\n ],\n exports: [\n MatError,\n MatHint,\n MatFormField,\n MatPlaceholder,\n MatPrefix,\n MatSuffix,\n ],\n },] },\n ];\n /**\n * @nocollapse\n */\n MatFormFieldModule.ctorParameters = function () { return []; };\n return MatFormFieldModule;\n}());\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MatFormFieldModule, MatError, MatFormField, MatFormFieldControl, getMatFormFieldPlaceholderConflictError, getMatFormFieldDuplicatedHintError, getMatFormFieldMissingControlError, MatHint, MatPlaceholder, MatPrefix, MatSuffix };\n//# sourceMappingURL=form-field.es5.js.map\n","/**\n * @license\n * Copyright Google Inc. 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 */\nimport { Attribute, ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, ContentChildren, Directive, ElementRef, EventEmitter, Inject, InjectionToken, Input, NgModule, NgZone, Optional, Output, Renderer2, Self, ViewChild, ViewEncapsulation, isDevMode } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { __extends } from 'tslib';\nimport * as tslib_1 from 'tslib';\nimport { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { DOWN_ARROW, END, ENTER, HOME, SPACE, UP_ARROW } from '@angular/cdk/keycodes';\nimport { ConnectedOverlayDirective, Overlay, OverlayModule, ViewportRuler } from '@angular/cdk/overlay';\nimport { filter, first, startWith } from '@angular/cdk/rxjs';\nimport { FormGroupDirective, NgControl, NgForm } from '@angular/forms';\nimport { ErrorStateMatcher, MatCommonModule, MatOptgroup, MatOption, MatOptionModule, mixinDisabled, mixinTabIndex } from '@angular/material/core';\nimport { MatFormField, MatFormFieldControl, MatFormFieldModule } from '@angular/material/form-field';\nimport { merge } from 'rxjs/observable/merge';\nimport { Subject } from 'rxjs/Subject';\nimport { Subscription } from 'rxjs/Subscription';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\n\n/**\n * This animation transforms the select's overlay panel on and off the page.\n *\n * When the panel is attached to the DOM, it expands its width by the amount of padding, scales it\n * up to 100% on the Y axis, fades in its border, and translates slightly up and to the\n * side to ensure the option text correctly overlaps the trigger text.\n *\n * When the panel is removed from the DOM, it simply fades out linearly.\n */\nvar transformPanel = trigger('transformPanel', [\n state('showing', style({\n opacity: 1,\n minWidth: 'calc(100% + 32px)',\n transform: 'scaleY(1)'\n })),\n state('showing-multiple', style({\n opacity: 1,\n minWidth: 'calc(100% + 64px)',\n transform: 'scaleY(1)'\n })),\n transition('void => *', [\n style({\n opacity: 0,\n minWidth: '100%',\n transform: 'scaleY(0)'\n }),\n animate('150ms cubic-bezier(0.25, 0.8, 0.25, 1)')\n ]),\n transition('* => void', [\n animate('250ms 100ms linear', style({ opacity: 0 }))\n ])\n]);\n/**\n * This animation fades in the background color and text content of the\n * select's options. It is time delayed to occur 100ms after the overlay\n * panel has transformed in.\n */\nvar fadeInContent = trigger('fadeInContent', [\n state('showing', style({ opacity: 1 })),\n transition('void => showing', [\n style({ opacity: 0 }),\n animate('150ms 100ms cubic-bezier(0.55, 0, 0.55, 0.2)')\n ])\n]);\n\n/**\n * Returns an exception to be thrown when attempting to change a select's `multiple` option\n * after initialization.\n * \\@docs-private\n * @return {?}\n */\nfunction getMatSelectDynamicMultipleError() {\n return Error('Cannot change `multiple` mode of select after initialization.');\n}\n/**\n * Returns an exception to be thrown when attempting to assign a non-array value to a select\n * in `multiple` mode. Note that `undefined` and `null` are still valid values to allow for\n * resetting the value.\n * \\@docs-private\n * @return {?}\n */\nfunction getMatSelectNonArrayValueError() {\n return Error('Cannot assign truthy non-array value to select in `multiple` mode.');\n}\n/**\n * Returns an exception to be thrown when assigning a non-function value to the comparator\n * used to determine if a value corresponds to an option. Note that whether the function\n * actually takes two values and returns a boolean is not checked.\n * @return {?}\n */\nfunction getMatSelectNonFunctionValueError() {\n return Error('Cannot assign a non-function value to `compareWith`.');\n}\n\nvar nextUniqueId = 0;\n/**\n * The max height of the select's overlay panel\n */\nvar SELECT_PANEL_MAX_HEIGHT = 256;\n/**\n * The panel's padding on the x-axis\n */\nvar SELECT_PANEL_PADDING_X = 16;\n/**\n * The panel's x axis padding if it is indented (e.g. there is an option group).\n */\nvar SELECT_PANEL_INDENT_PADDING_X = SELECT_PANEL_PADDING_X * 2;\n/**\n * The height of the select items in `em` units.\n */\nvar SELECT_ITEM_HEIGHT_EM = 3;\n/**\n * Distance between the panel edge and the option text in\n * multi-selection mode.\n *\n * (SELECT_PANEL_PADDING_X * 1.5) + 20 = 44\n * The padding is multiplied by 1.5 because the checkbox's margin is half the padding.\n * The checkbox width is 20px.\n */\nvar SELECT_MULTIPLE_PANEL_PADDING_X = SELECT_PANEL_PADDING_X * 1.5 + 20;\n/**\n * The select panel will only \"fit\" inside the viewport if it is positioned at\n * this value or more away from the viewport boundary.\n */\nvar SELECT_PANEL_VIEWPORT_PADDING = 8;\n/**\n * Injection token that determines the scroll handling while a select is open.\n */\nvar MAT_SELECT_SCROLL_STRATEGY = new InjectionToken('mat-select-scroll-strategy');\n/**\n * \\@docs-private\n * @param {?} overlay\n * @return {?}\n */\nfunction MAT_SELECT_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay) {\n return function () { return overlay.scrollStrategies.reposition(); };\n}\n/**\n * \\@docs-private\n */\nvar MAT_SELECT_SCROLL_STRATEGY_PROVIDER = {\n provide: MAT_SELECT_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: MAT_SELECT_SCROLL_STRATEGY_PROVIDER_FACTORY,\n};\n/**\n * Change event object that is emitted when the select value has changed.\n */\nvar MatSelectChange = (function () {\n /**\n * @param {?} source\n * @param {?} value\n */\n function MatSelectChange(source, value) {\n this.source = source;\n this.value = value;\n }\n return MatSelectChange;\n}());\n/**\n * \\@docs-private\n */\nvar MatSelectBase = (function () {\n /**\n * @param {?} _renderer\n * @param {?} _elementRef\n */\n function MatSelectBase(_renderer, _elementRef) {\n this._renderer = _renderer;\n this._elementRef = _elementRef;\n }\n return MatSelectBase;\n}());\nvar _MatSelectMixinBase = mixinTabIndex(mixinDisabled(MatSelectBase));\n/**\n * Allows the user to customize the trigger that is displayed when the select has a value.\n */\nvar MatSelectTrigger = (function () {\n function MatSelectTrigger() {\n }\n MatSelectTrigger.decorators = [\n { type: Directive, args: [{\n selector: 'mat-select-trigger'\n },] },\n ];\n /**\n * @nocollapse\n */\n MatSelectTrigger.ctorParameters = function () { return []; };\n return MatSelectTrigger;\n}());\nvar MatSelect = (function (_super) {\n __extends(MatSelect, _super);\n /**\n * @param {?} _viewportRuler\n * @param {?} _changeDetectorRef\n * @param {?} _ngZone\n * @param {?} _defaultErrorStateMatcher\n * @param {?} renderer\n * @param {?} elementRef\n * @param {?} _dir\n * @param {?} _parentForm\n * @param {?} _parentFormGroup\n * @param {?} _parentFormField\n * @param {?} ngControl\n * @param {?} tabIndex\n * @param {?} _scrollStrategyFactory\n */\n function MatSelect(_viewportRuler, _changeDetectorRef, _ngZone, _defaultErrorStateMatcher, renderer, elementRef, _dir, _parentForm, _parentFormGroup, _parentFormField, ngControl, tabIndex, _scrollStrategyFactory) {\n var _this = _super.call(this, renderer, elementRef) || this;\n _this._viewportRuler = _viewportRuler;\n _this._changeDetectorRef = _changeDetectorRef;\n _this._ngZone = _ngZone;\n _this._defaultErrorStateMatcher = _defaultErrorStateMatcher;\n _this._dir = _dir;\n _this._parentForm = _parentForm;\n _this._parentFormGroup = _parentFormGroup;\n _this._parentFormField = _parentFormField;\n _this.ngControl = ngControl;\n _this._scrollStrategyFactory = _scrollStrategyFactory;\n /**\n * Whether or not the overlay panel is open.\n */\n _this._panelOpen = false;\n /**\n * Subscriptions to option events.\n */\n _this._optionSubscription = Subscription.EMPTY;\n /**\n * Subscription to changes in the option list.\n */\n _this._changeSubscription = Subscription.EMPTY;\n /**\n * Subscription to tab events while overlay is focused.\n */\n _this._tabSubscription = Subscription.EMPTY;\n /**\n * Whether filling out the select is required in the form.\n */\n _this._required = false;\n /**\n * The scroll position of the overlay panel, calculated to center the selected option.\n */\n _this._scrollTop = 0;\n /**\n * Whether the component is in multiple selection mode.\n */\n _this._multiple = false;\n /**\n * Comparison function to specify which option is displayed. Defaults to object equality.\n */\n _this._compareWith = function (o1, o2) { return o1 === o2; };\n /**\n * Unique id for this input.\n */\n _this._uid = \"mat-select-\" + nextUniqueId++;\n /**\n * The cached font-size of the trigger element.\n */\n _this._triggerFontSize = 0;\n /**\n * View -> model callback called when value changes\n */\n _this._onChange = function () { };\n /**\n * View -> model callback called when select has been touched\n */\n _this._onTouched = function () { };\n /**\n * The IDs of child options to be passed to the aria-owns attribute.\n */\n _this._optionIds = '';\n /**\n * The value of the select panel's transform-origin property.\n */\n _this._transformOrigin = 'top';\n /**\n * Whether the panel's animation is done.\n */\n _this._panelDoneAnimating = false;\n /**\n * Strategy that will be used to handle scrolling while the select panel is open.\n */\n _this._scrollStrategy = _this._scrollStrategyFactory();\n /**\n * The y-offset of the overlay panel in relation to the trigger's top start corner.\n * This must be adjusted to align the selected option text over the trigger text.\n * when the panel opens. Will change based on the y-position of the selected option.\n */\n _this._offsetY = 0;\n /**\n * This position config ensures that the top \"start\" corner of the overlay\n * is aligned with with the top \"start\" of the origin by default (overlapping\n * the trigger completely). If the panel cannot fit below the trigger, it\n * will fall back to a position above the trigger.\n */\n _this._positions = [\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n ];\n /**\n * Stream that emits whenever the state of the select changes such that the wrapping\n * `MatFormField` needs to run change detection.\n */\n _this.stateChanges = new Subject();\n /**\n * Whether the select is focused.\n */\n _this.focused = false;\n /**\n * A name for this control that can be used by `mat-form-field`.\n */\n _this.controlType = 'mat-select';\n _this._disableRipple = false;\n /**\n * Aria label of the select. If not specified, the placeholder will be used as label.\n */\n _this.ariaLabel = '';\n /**\n * Event emitted when the select has been opened.\n */\n _this.onOpen = new EventEmitter();\n /**\n * Event emitted when the select has been closed.\n */\n _this.onClose = new EventEmitter();\n /**\n * Event emitted when the selected value has been changed by the user.\n */\n _this.change = new EventEmitter();\n /**\n * Event that emits whenever the raw value of the select changes. This is here primarily\n * to facilitate the two-way binding for the `value` input.\n * \\@docs-private\n */\n _this.valueChange = new EventEmitter();\n if (_this.ngControl) {\n _this.ngControl.valueAccessor = _this;\n }\n _this.tabIndex = parseInt(tabIndex) || 0;\n // Force setter to be called in case id was not specified.\n _this.id = _this.id;\n return _this;\n }\n Object.defineProperty(MatSelect.prototype, \"placeholder\", {\n /**\n * Placeholder to be shown if no value has been selected.\n * @return {?}\n */\n get: function () { return this._placeholder; },\n /**\n * @param {?} value\n * @return {?}\n */\n set: function (value) {\n this._placeholder = value;\n this.stateChanges.next();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatSelect.prototype, \"required\", {\n /**\n * Whether the component is required.\n * @return {?}\n */\n get: function () { return this._required; },\n /**\n * @param {?} value\n * @return {?}\n */\n set: function (value) {\n this._required = coerceBooleanProperty(value);\n this.stateChanges.next();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatSelect.prototype, \"multiple\", {\n /**\n * Whether the user should be allowed to select multiple options.\n * @return {?}\n */\n get: function () { return this._multiple; },\n /**\n * @param {?} value\n * @return {?}\n */\n set: function (value) {\n if (this._selectionModel) {\n throw getMatSelectDynamicMultipleError();\n }\n this._multiple = coerceBooleanProperty(value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatSelect.prototype, \"compareWith\", {\n /**\n * A function to compare the option values with the selected values. The first argument\n * is a value from an option. The second is a value from the selection. A boolean\n * should be returned.\n * @return {?}\n */\n get: function () { return this._compareWith; },\n /**\n * @param {?} fn\n * @return {?}\n */\n set: function (fn) {\n if (typeof fn !== 'function') {\n throw getMatSelectNonFunctionValueError();\n }\n this._compareWith = fn;\n if (this._selectionModel) {\n // A different comparator means the selection could change.\n this._initializeSelection();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatSelect.prototype, \"value\", {\n /**\n * Value of the select control.\n * @return {?}\n */\n get: function () { return this._value; },\n /**\n * @param {?} newValue\n * @return {?}\n */\n set: function (newValue) {\n if (newValue !== this._value) {\n this.writeValue(newValue);\n this._value = newValue;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatSelect.prototype, \"disableRipple\", {\n /**\n * Whether ripples for all options in the select are disabled.\n * @return {?}\n */\n get: function () { return this._disableRipple; },\n /**\n * @param {?} value\n * @return {?}\n */\n set: function (value) {\n this._disableRipple = coerceBooleanProperty(value);\n this._setOptionDisableRipple();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatSelect.prototype, \"id\", {\n /**\n * Unique id of the element.\n * @return {?}\n */\n get: function () { return this._id; },\n /**\n * @param {?} value\n * @return {?}\n */\n set: function (value) {\n this._id = value || this._uid;\n this.stateChanges.next();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatSelect.prototype, \"optionSelectionChanges\", {\n /**\n * Combined stream of all of the child options' change events.\n * @return {?}\n */\n get: function () {\n return merge.apply(void 0, this.options.map(function (option) { return option.onSelectionChange; }));\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n MatSelect.prototype.ngOnInit = function () {\n this._selectionModel = new SelectionModel(this.multiple, undefined, false);\n this.stateChanges.next();\n };\n /**\n * @return {?}\n */\n MatSelect.prototype.ngAfterContentInit = function () {\n var _this = this;\n this._initKeyManager();\n this._changeSubscription = startWith.call(this.options.changes, null).subscribe(function () {\n _this._resetOptions();\n _this._initializeSelection();\n });\n };\n /**\n * @return {?}\n */\n MatSelect.prototype.ngOnDestroy = function () {\n this._dropSubscriptions();\n this._changeSubscription.unsubscribe();\n this._tabSubscription.unsubscribe();\n };\n /**\n * Toggles the overlay panel open or closed.\n * @return {?}\n */\n MatSelect.prototype.toggle = function () {\n this.panelOpen ? this.close() : this.open();\n };\n /**\n * Opens the overlay panel.\n * @return {?}\n */\n MatSelect.prototype.open = function () {\n var _this = this;\n if (this.disabled || !this.options.length) {\n return;\n }\n this._triggerRect = this.trigger.nativeElement.getBoundingClientRect();\n // Note: The computed font-size will be a string pixel value (e.g. \"16px\").\n // `parseInt` ignores the trailing 'px' and converts this to a number.\n this._triggerFontSize = parseInt(getComputedStyle(this.trigger.nativeElement)['font-size']);\n this._calculateOverlayPosition();\n this._highlightCorrectOption();\n this._panelOpen = true;\n this._changeDetectorRef.markForCheck();\n // Set the font size on the panel element once it exists.\n first.call(this._ngZone.onStable).subscribe(function () {\n if (_this._triggerFontSize && _this.overlayDir.overlayRef &&\n _this.overlayDir.overlayRef.overlayElement) {\n _this.overlayDir.overlayRef.overlayElement.style.fontSize = _this._triggerFontSize + \"px\";\n }\n });\n };\n /**\n * Closes the overlay panel and focuses the host element.\n * @return {?}\n */\n MatSelect.prototype.close = function () {\n if (this._panelOpen) {\n this._panelOpen = false;\n this._changeDetectorRef.markForCheck();\n this.focus();\n }\n };\n /**\n * Sets the select's value. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param {?} value New value to be written to the model.\n * @return {?}\n */\n MatSelect.prototype.writeValue = function (value) {\n if (this.options) {\n this._setSelectionByValue(value);\n }\n };\n /**\n * Saves a callback function to be invoked when the select's value\n * changes from user input. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param {?} fn Callback to be triggered when the value changes.\n * @return {?}\n */\n MatSelect.prototype.registerOnChange = function (fn) {\n this._onChange = fn;\n };\n /**\n * Saves a callback function to be invoked when the select is blurred\n * by the user. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param {?} fn Callback to be triggered when the component has been touched.\n * @return {?}\n */\n MatSelect.prototype.registerOnTouched = function (fn) {\n this._onTouched = fn;\n };\n /**\n * Disables the select. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param {?} isDisabled Sets whether the component is disabled.\n * @return {?}\n */\n MatSelect.prototype.setDisabledState = function (isDisabled) {\n this.disabled = isDisabled;\n this._changeDetectorRef.markForCheck();\n this.stateChanges.next();\n };\n Object.defineProperty(MatSelect.prototype, \"panelOpen\", {\n /**\n * Whether or not the overlay panel is open.\n * @return {?}\n */\n get: function () {\n return this._panelOpen;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatSelect.prototype, \"selected\", {\n /**\n * The currently selected option.\n * @return {?}\n */\n get: function () {\n return this.multiple ? this._selectionModel.selected : this._selectionModel.selected[0];\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatSelect.prototype, \"triggerValue\", {\n /**\n * The value displayed in the trigger.\n * @return {?}\n */\n get: function () {\n if (!this._selectionModel || this._selectionModel.isEmpty()) {\n return '';\n }\n if (this._multiple) {\n var /** @type {?} */ selectedOptions = this._selectionModel.selected.map(function (option) { return option.viewValue; });\n if (this._isRtl()) {\n selectedOptions.reverse();\n }\n // TODO(crisbeto): delimiter should be configurable for proper localization.\n return selectedOptions.join(', ');\n }\n return this._selectionModel.selected[0].viewValue;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Whether the element is in RTL mode.\n * @return {?}\n */\n MatSelect.prototype._isRtl = function () {\n return this._dir ? this._dir.value === 'rtl' : false;\n };\n /**\n * Handles all keydown events on the select.\n * @param {?} event\n * @return {?}\n */\n MatSelect.prototype._handleKeydown = function (event) {\n if (!this.disabled) {\n this.panelOpen ? this._handleOpenKeydown(event) : this._handleClosedKeydown(event);\n }\n };\n /**\n * Handles keyboard events while the select is closed.\n * @param {?} event\n * @return {?}\n */\n MatSelect.prototype._handleClosedKeydown = function (event) {\n if (event.keyCode === ENTER || event.keyCode === SPACE) {\n event.preventDefault(); // prevents the page from scrolling down when pressing space\n this.open();\n }\n else if (event.keyCode === UP_ARROW || event.keyCode === DOWN_ARROW) {\n this._handleClosedArrowKey(event);\n }\n };\n /**\n * Handles keyboard events when the selected is open.\n * @param {?} event\n * @return {?}\n */\n MatSelect.prototype._handleOpenKeydown = function (event) {\n var _this = this;\n var /** @type {?} */ keyCode = event.keyCode;\n if (keyCode === HOME || keyCode === END) {\n event.preventDefault();\n keyCode === HOME ? this._keyManager.setFirstItemActive() :\n this._keyManager.setLastItemActive();\n }\n else if ((keyCode === ENTER || keyCode === SPACE) && this._keyManager.activeItem) {\n event.preventDefault();\n this._keyManager.activeItem._selectViaInteraction();\n }\n else {\n this._keyManager.onKeydown(event);\n // TODO(crisbeto): get rid of the Promise.resolve when #6441 gets in.\n Promise.resolve().then(function () {\n if (_this.panelOpen) {\n _this._scrollActiveOptionIntoView();\n }\n });\n }\n };\n /**\n * When the panel element is finished transforming in (though not fading in), it\n * emits an event and focuses an option if the panel is open.\n * @return {?}\n */\n MatSelect.prototype._onPanelDone = function () {\n if (this.panelOpen) {\n this._scrollTop = 0;\n this.onOpen.emit();\n }\n else {\n this.onClose.emit();\n this._panelDoneAnimating = false;\n this.overlayDir.offsetX = 0;\n this._changeDetectorRef.markForCheck();\n }\n };\n /**\n * When the panel content is done fading in, the _panelDoneAnimating property is\n * set so the proper class can be added to the panel.\n * @return {?}\n */\n MatSelect.prototype._onFadeInDone = function () {\n this._panelDoneAnimating = this.panelOpen;\n this.panel.nativeElement.focus();\n this._changeDetectorRef.markForCheck();\n };\n /**\n * @return {?}\n */\n MatSelect.prototype._onFocus = function () {\n if (!this.disabled) {\n this.focused = true;\n this.stateChanges.next();\n }\n };\n /**\n * Calls the touched callback only if the panel is closed. Otherwise, the trigger will\n * \"blur\" to the panel when it opens, causing a false positive.\n * @return {?}\n */\n MatSelect.prototype._onBlur = function () {\n if (!this.disabled && !this.panelOpen) {\n this.focused = false;\n this._onTouched();\n this._changeDetectorRef.markForCheck();\n this.stateChanges.next();\n }\n };\n /**\n * Callback that is invoked when the overlay panel has been attached.\n * @return {?}\n */\n MatSelect.prototype._onAttached = function () {\n this._changeDetectorRef.detectChanges();\n this._calculateOverlayOffsetX();\n this.panel.nativeElement.scrollTop = this._scrollTop;\n };\n /**\n * Returns the theme to be used on the panel.\n * @return {?}\n */\n MatSelect.prototype._getPanelTheme = function () {\n return this._parentFormField ? \"mat-\" + this._parentFormField.color : '';\n };\n Object.defineProperty(MatSelect.prototype, \"empty\", {\n /**\n * Whether the select has a value.\n * @return {?}\n */\n get: function () {\n return !this._selectionModel || this._selectionModel.isEmpty();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatSelect.prototype, \"errorState\", {\n /**\n * Whether the select is in an error state.\n * @return {?}\n */\n get: function () {\n var /** @type {?} */ parent = this._parentFormGroup || this._parentForm;\n var /** @type {?} */ matcher = this.errorStateMatcher || this._defaultErrorStateMatcher;\n var /** @type {?} */ control = this.ngControl ? (this.ngControl.control) : null;\n return matcher.isErrorState(control, parent);\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n MatSelect.prototype._initializeSelection = function () {\n var _this = this;\n // Defer setting the value in order to avoid the \"Expression\n // has changed after it was checked\" errors from Angular.\n Promise.resolve().then(function () {\n _this._setSelectionByValue(_this.ngControl ? _this.ngControl.value : _this._value);\n });\n };\n /**\n * Sets the selected option based on a value. If no option can be\n * found with the designated value, the select trigger is cleared.\n * @param {?} value\n * @param {?=} isUserInput\n * @return {?}\n */\n MatSelect.prototype._setSelectionByValue = function (value, isUserInput) {\n var _this = this;\n if (isUserInput === void 0) { isUserInput = false; }\n var /** @type {?} */ isArray = Array.isArray(value);\n if (this.multiple && value && !isArray) {\n throw getMatSelectNonArrayValueError();\n }\n this._clearSelection();\n if (isArray) {\n value.forEach(function (currentValue) { return _this._selectValue(currentValue, isUserInput); });\n this._sortValues();\n }\n else {\n var /** @type {?} */ correspondingOption = this._selectValue(value, isUserInput);\n // Shift focus to the active item. Note that we shouldn't do this in multiple\n // mode, because we don't know what option the user interacted with last.\n if (correspondingOption) {\n this._keyManager.setActiveItem(this.options.toArray().indexOf(correspondingOption));\n }\n }\n this._changeDetectorRef.markForCheck();\n };\n /**\n * Finds and selects and option based on its value.\n * @param {?} value\n * @param {?=} isUserInput\n * @return {?} Option that has the corresponding value.\n */\n MatSelect.prototype._selectValue = function (value, isUserInput) {\n var _this = this;\n if (isUserInput === void 0) { isUserInput = false; }\n var /** @type {?} */ correspondingOption = this.options.find(function (option) {\n try {\n // Treat null as a special reset value.\n return option.value != null && _this._compareWith(option.value, value);\n }\n catch (error) {\n if (isDevMode()) {\n // Notify developers of errors in their comparator.\n console.warn(error);\n }\n return false;\n }\n });\n if (correspondingOption) {\n isUserInput ? correspondingOption._selectViaInteraction() : correspondingOption.select();\n this._selectionModel.select(correspondingOption);\n this.stateChanges.next();\n }\n return correspondingOption;\n };\n /**\n * Clears the select trigger and deselects every option in the list.\n * @param {?=} skip Option that should not be deselected.\n * @return {?}\n */\n MatSelect.prototype._clearSelection = function (skip) {\n this._selectionModel.clear();\n this.options.forEach(function (option) {\n if (option !== skip) {\n option.deselect();\n }\n });\n this.stateChanges.next();\n };\n /**\n * Sets up a key manager to listen to keyboard events on the overlay panel.\n * @return {?}\n */\n MatSelect.prototype._initKeyManager = function () {\n var _this = this;\n this._keyManager = new ActiveDescendantKeyManager(this.options).withTypeAhead();\n this._tabSubscription = this._keyManager.tabOut.subscribe(function () { return _this.close(); });\n };\n /**\n * Drops current option subscriptions and IDs and resets from scratch.\n * @return {?}\n */\n MatSelect.prototype._resetOptions = function () {\n this._dropSubscriptions();\n this._listenToOptions();\n this._setOptionIds();\n this._setOptionMultiple();\n this._setOptionDisableRipple();\n };\n /**\n * Listens to user-generated selection events on each option.\n * @return {?}\n */\n MatSelect.prototype._listenToOptions = function () {\n var _this = this;\n this._optionSubscription = filter.call(this.optionSelectionChanges, function (event) { return event.isUserInput; }).subscribe(function (event) {\n _this._onSelect(event.source);\n if (!_this.multiple) {\n _this.close();\n }\n });\n };\n /**\n * Invoked when an option is clicked.\n * @param {?} option\n * @return {?}\n */\n MatSelect.prototype._onSelect = function (option) {\n var /** @type {?} */ wasSelected = this._selectionModel.isSelected(option);\n // TODO(crisbeto): handle blank/null options inside multi-select.\n if (this.multiple) {\n this._selectionModel.toggle(option);\n this.stateChanges.next();\n wasSelected ? option.deselect() : option.select();\n this._sortValues();\n }\n else {\n this._clearSelection(option.value == null ? undefined : option);\n if (option.value == null) {\n this._propagateChanges(option.value);\n }\n else {\n this._selectionModel.select(option);\n this.stateChanges.next();\n }\n }\n if (wasSelected !== this._selectionModel.isSelected(option)) {\n this._propagateChanges();\n }\n };\n /**\n * Sorts the model values, ensuring that they keep the same\n * order that they have in the panel.\n * @return {?}\n */\n MatSelect.prototype._sortValues = function () {\n var _this = this;\n if (this._multiple) {\n this._selectionModel.clear();\n this.options.forEach(function (option) {\n if (option.selected) {\n _this._selectionModel.select(option);\n }\n });\n this.stateChanges.next();\n }\n };\n /**\n * Unsubscribes from all option subscriptions.\n * @return {?}\n */\n MatSelect.prototype._dropSubscriptions = function () {\n this._optionSubscription.unsubscribe();\n };\n /**\n * Emits change event to set the model value.\n * @param {?=} fallbackValue\n * @return {?}\n */\n MatSelect.prototype._propagateChanges = function (fallbackValue) {\n var /** @type {?} */ valueToEmit = null;\n if (Array.isArray(this.selected)) {\n valueToEmit = this.selected.map(function (option) { return option.value; });\n }\n else {\n valueToEmit = this.selected ? this.selected.value : fallbackValue;\n }\n this._value = valueToEmit;\n this._onChange(valueToEmit);\n this.change.emit(new MatSelectChange(this, valueToEmit));\n this.valueChange.emit(valueToEmit);\n this._changeDetectorRef.markForCheck();\n };\n /**\n * Records option IDs to pass to the aria-owns property.\n * @return {?}\n */\n MatSelect.prototype._setOptionIds = function () {\n this._optionIds = this.options.map(function (option) { return option.id; }).join(' ');\n };\n /**\n * Sets the `multiple` property on each option. The promise is necessary\n * in order to avoid Angular errors when modifying the property after init.\n * @return {?}\n */\n MatSelect.prototype._setOptionMultiple = function () {\n var _this = this;\n if (this.multiple) {\n Promise.resolve(null).then(function () {\n _this.options.forEach(function (option) { return option.multiple = _this.multiple; });\n });\n }\n };\n /**\n * Sets the `disableRipple` property on each option.\n * @return {?}\n */\n MatSelect.prototype._setOptionDisableRipple = function () {\n var _this = this;\n if (this.options) {\n this.options.forEach(function (option) { return option.disableRipple = _this.disableRipple; });\n }\n };\n /**\n * Highlights the selected item. If no option is selected, it will highlight\n * the first item instead.\n * @return {?}\n */\n MatSelect.prototype._highlightCorrectOption = function () {\n if (this._selectionModel.isEmpty()) {\n this._keyManager.setFirstItemActive();\n }\n else {\n this._keyManager.setActiveItem(/** @type {?} */ ((this._getOptionIndex(this._selectionModel.selected[0]))));\n }\n };\n /**\n * Scrolls the active option into view.\n * @return {?}\n */\n MatSelect.prototype._scrollActiveOptionIntoView = function () {\n var /** @type {?} */ itemHeight = this._getItemHeight();\n var /** @type {?} */ activeOptionIndex = this._keyManager.activeItemIndex || 0;\n var /** @type {?} */ labelCount = MatOption.countGroupLabelsBeforeOption(activeOptionIndex, this.options, this.optionGroups);\n var /** @type {?} */ scrollOffset = (activeOptionIndex + labelCount) * itemHeight;\n var /** @type {?} */ panelTop = this.panel.nativeElement.scrollTop;\n if (scrollOffset < panelTop) {\n this.panel.nativeElement.scrollTop = scrollOffset;\n }\n else if (scrollOffset + itemHeight > panelTop + SELECT_PANEL_MAX_HEIGHT) {\n this.panel.nativeElement.scrollTop =\n Math.max(0, scrollOffset - SELECT_PANEL_MAX_HEIGHT + itemHeight);\n }\n };\n /**\n * Focuses the select element.\n * @return {?}\n */\n MatSelect.prototype.focus = function () {\n this._elementRef.nativeElement.focus();\n };\n /**\n * Gets the index of the provided option in the option list.\n * @param {?} option\n * @return {?}\n */\n MatSelect.prototype._getOptionIndex = function (option) {\n return this.options.reduce(function (result, current, index) {\n return result === undefined ? (option === current ? index : undefined) : result;\n }, undefined);\n };\n /**\n * Calculates the scroll position and x- and y-offsets of the overlay panel.\n * @return {?}\n */\n MatSelect.prototype._calculateOverlayPosition = function () {\n var /** @type {?} */ itemHeight = this._getItemHeight();\n var /** @type {?} */ items = this._getItemCount();\n var /** @type {?} */ panelHeight = Math.min(items * itemHeight, SELECT_PANEL_MAX_HEIGHT);\n var /** @type {?} */ scrollContainerHeight = items * itemHeight;\n // The farthest the panel can be scrolled before it hits the bottom\n var /** @type {?} */ maxScroll = scrollContainerHeight - panelHeight;\n // If no value is selected we open the popup to the first item.\n var /** @type {?} */ selectedOptionOffset = this.empty ? 0 : ((this._getOptionIndex(this._selectionModel.selected[0])));\n selectedOptionOffset += MatOption.countGroupLabelsBeforeOption(selectedOptionOffset, this.options, this.optionGroups);\n // We must maintain a scroll buffer so the selected option will be scrolled to the\n // center of the overlay panel rather than the top.\n var /** @type {?} */ scrollBuffer = panelHeight / 2;\n this._scrollTop = this._calculateOverlayScroll(selectedOptionOffset, scrollBuffer, maxScroll);\n this._offsetY = this._calculateOverlayOffsetY(selectedOptionOffset, scrollBuffer, maxScroll);\n this._checkOverlayWithinViewport(maxScroll);\n };\n /**\n * Calculates the scroll position of the select's overlay panel.\n *\n * Attempts to center the selected option in the panel. If the option is\n * too high or too low in the panel to be scrolled to the center, it clamps the\n * scroll position to the min or max scroll positions respectively.\n * @param {?} selectedIndex\n * @param {?} scrollBuffer\n * @param {?} maxScroll\n * @return {?}\n */\n MatSelect.prototype._calculateOverlayScroll = function (selectedIndex, scrollBuffer, maxScroll) {\n var /** @type {?} */ itemHeight = this._getItemHeight();\n var /** @type {?} */ optionOffsetFromScrollTop = itemHeight * selectedIndex;\n var /** @type {?} */ halfOptionHeight = itemHeight / 2;\n // Starts at the optionOffsetFromScrollTop, which scrolls the option to the top of the\n // scroll container, then subtracts the scroll buffer to scroll the option down to\n // the center of the overlay panel. Half the option height must be re-added to the\n // scrollTop so the option is centered based on its middle, not its top edge.\n var /** @type {?} */ optimalScrollPosition = optionOffsetFromScrollTop - scrollBuffer + halfOptionHeight;\n return Math.min(Math.max(0, optimalScrollPosition), maxScroll);\n };\n Object.defineProperty(MatSelect.prototype, \"_ariaLabel\", {\n /**\n * Returns the aria-label of the select component.\n * @return {?}\n */\n get: function () {\n // If an ariaLabelledby value has been set, the select should not overwrite the\n // `aria-labelledby` value by setting the ariaLabel to the placeholder.\n return this.ariaLabelledby ? null : this.ariaLabel || this.placeholder;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Determines the `aria-activedescendant` to be set on the host.\n * @return {?}\n */\n MatSelect.prototype._getAriaActiveDescendant = function () {\n if (this.panelOpen && this._keyManager && this._keyManager.activeItem) {\n return this._keyManager.activeItem.id;\n }\n return null;\n };\n /**\n * Sets the x-offset of the overlay panel in relation to the trigger's top start corner.\n * This must be adjusted to align the selected option text over the trigger text when\n * the panel opens. Will change based on LTR or RTL text direction. Note that the offset\n * can't be calculated until the panel has been attached, because we need to know the\n * content width in order to constrain the panel within the viewport.\n * @return {?}\n */\n MatSelect.prototype._calculateOverlayOffsetX = function () {\n var /** @type {?} */ overlayRect = this.overlayDir.overlayRef.overlayElement.getBoundingClientRect();\n var /** @type {?} */ viewportRect = this._viewportRuler.getViewportRect();\n var /** @type {?} */ isRtl = this._isRtl();\n var /** @type {?} */ paddingWidth = this.multiple ? SELECT_MULTIPLE_PANEL_PADDING_X + SELECT_PANEL_PADDING_X :\n SELECT_PANEL_PADDING_X * 2;\n var /** @type {?} */ offsetX;\n // Adjust the offset, depending on the option padding.\n if (this.multiple) {\n offsetX = SELECT_MULTIPLE_PANEL_PADDING_X;\n }\n else {\n var /** @type {?} */ selected = this._selectionModel.selected[0] || this.options.first;\n offsetX = selected && selected.group ? SELECT_PANEL_INDENT_PADDING_X : SELECT_PANEL_PADDING_X;\n }\n // Invert the offset in LTR.\n if (!isRtl) {\n offsetX *= -1;\n }\n // Determine how much the select overflows on each side.\n var /** @type {?} */ leftOverflow = 0 - (overlayRect.left + offsetX - (isRtl ? paddingWidth : 0));\n var /** @type {?} */ rightOverflow = overlayRect.right + offsetX - viewportRect.width\n + (isRtl ? 0 : paddingWidth);\n // If the element overflows on either side, reduce the offset to allow it to fit.\n if (leftOverflow > 0) {\n offsetX += leftOverflow + SELECT_PANEL_VIEWPORT_PADDING;\n }\n else if (rightOverflow > 0) {\n offsetX -= rightOverflow + SELECT_PANEL_VIEWPORT_PADDING;\n }\n // Set the offset directly in order to avoid having to go through change detection and\n // potentially triggering \"changed after it was checked\" errors.\n this.overlayDir.offsetX = offsetX;\n this.overlayDir.overlayRef.updatePosition();\n };\n /**\n * Calculates the y-offset of the select's overlay panel in relation to the\n * top start corner of the trigger. It has to be adjusted in order for the\n * selected option to be aligned over the trigger when the panel opens.\n * @param {?} selectedIndex\n * @param {?} scrollBuffer\n * @param {?} maxScroll\n * @return {?}\n */\n MatSelect.prototype._calculateOverlayOffsetY = function (selectedIndex, scrollBuffer, maxScroll) {\n var /** @type {?} */ itemHeight = this._getItemHeight();\n var /** @type {?} */ optionHeightAdjustment = (itemHeight - this._triggerRect.height) / 2;\n var /** @type {?} */ maxOptionsDisplayed = Math.floor(SELECT_PANEL_MAX_HEIGHT / itemHeight);\n var /** @type {?} */ optionOffsetFromPanelTop;\n if (this._scrollTop === 0) {\n optionOffsetFromPanelTop = selectedIndex * itemHeight;\n }\n else if (this._scrollTop === maxScroll) {\n var /** @type {?} */ firstDisplayedIndex = this._getItemCount() - maxOptionsDisplayed;\n var /** @type {?} */ selectedDisplayIndex = selectedIndex - firstDisplayedIndex;\n // The first item is partially out of the viewport. Therefore we need to calculate what\n // portion of it is shown in the viewport and account for it in our offset.\n var /** @type {?} */ partialItemHeight = itemHeight - (this._getItemCount() * itemHeight - SELECT_PANEL_MAX_HEIGHT) % itemHeight;\n // Because the panel height is longer than the height of the options alone,\n // there is always extra padding at the top or bottom of the panel. When\n // scrolled to the very bottom, this padding is at the top of the panel and\n // must be added to the offset.\n optionOffsetFromPanelTop = selectedDisplayIndex * itemHeight + partialItemHeight;\n }\n else {\n // If the option was scrolled to the middle of the panel using a scroll buffer,\n // its offset will be the scroll buffer minus the half height that was added to\n // center it.\n optionOffsetFromPanelTop = scrollBuffer - itemHeight / 2;\n }\n // The final offset is the option's offset from the top, adjusted for the height\n // difference, multiplied by -1 to ensure that the overlay moves in the correct\n // direction up the page.\n return optionOffsetFromPanelTop * -1 - optionHeightAdjustment;\n };\n /**\n * Checks that the attempted overlay position will fit within the viewport.\n * If it will not fit, tries to adjust the scroll position and the associated\n * y-offset so the panel can open fully on-screen. If it still won't fit,\n * sets the offset back to 0 to allow the fallback position to take over.\n * @param {?} maxScroll\n * @return {?}\n */\n MatSelect.prototype._checkOverlayWithinViewport = function (maxScroll) {\n var /** @type {?} */ itemHeight = this._getItemHeight();\n var /** @type {?} */ viewportRect = this._viewportRuler.getViewportRect();\n var /** @type {?} */ topSpaceAvailable = this._triggerRect.top - SELECT_PANEL_VIEWPORT_PADDING;\n var /** @type {?} */ bottomSpaceAvailable = viewportRect.height - this._triggerRect.bottom - SELECT_PANEL_VIEWPORT_PADDING;\n var /** @type {?} */ panelHeightTop = Math.abs(this._offsetY);\n var /** @type {?} */ totalPanelHeight = Math.min(this._getItemCount() * itemHeight, SELECT_PANEL_MAX_HEIGHT);\n var /** @type {?} */ panelHeightBottom = totalPanelHeight - panelHeightTop - this._triggerRect.height;\n if (panelHeightBottom > bottomSpaceAvailable) {\n this._adjustPanelUp(panelHeightBottom, bottomSpaceAvailable);\n }\n else if (panelHeightTop > topSpaceAvailable) {\n this._adjustPanelDown(panelHeightTop, topSpaceAvailable, maxScroll);\n }\n else {\n this._transformOrigin = this._getOriginBasedOnOption();\n }\n };\n /**\n * Adjusts the overlay panel up to fit in the viewport.\n * @param {?} panelHeightBottom\n * @param {?} bottomSpaceAvailable\n * @return {?}\n */\n MatSelect.prototype._adjustPanelUp = function (panelHeightBottom, bottomSpaceAvailable) {\n // Browsers ignore fractional scroll offsets, so we need to round.\n var /** @type {?} */ distanceBelowViewport = Math.round(panelHeightBottom - bottomSpaceAvailable);\n // Scrolls the panel up by the distance it was extending past the boundary, then\n // adjusts the offset by that amount to move the panel up into the viewport.\n this._scrollTop -= distanceBelowViewport;\n this._offsetY -= distanceBelowViewport;\n this._transformOrigin = this._getOriginBasedOnOption();\n // If the panel is scrolled to the very top, it won't be able to fit the panel\n // by scrolling, so set the offset to 0 to allow the fallback position to take\n // effect.\n if (this._scrollTop <= 0) {\n this._scrollTop = 0;\n this._offsetY = 0;\n this._transformOrigin = \"50% bottom 0px\";\n }\n };\n /**\n * Adjusts the overlay panel down to fit in the viewport.\n * @param {?} panelHeightTop\n * @param {?} topSpaceAvailable\n * @param {?} maxScroll\n * @return {?}\n */\n MatSelect.prototype._adjustPanelDown = function (panelHeightTop, topSpaceAvailable, maxScroll) {\n // Browsers ignore fractional scroll offsets, so we need to round.\n var /** @type {?} */ distanceAboveViewport = Math.round(panelHeightTop - topSpaceAvailable);\n // Scrolls the panel down by the distance it was extending past the boundary, then\n // adjusts the offset by that amount to move the panel down into the viewport.\n this._scrollTop += distanceAboveViewport;\n this._offsetY += distanceAboveViewport;\n this._transformOrigin = this._getOriginBasedOnOption();\n // If the panel is scrolled to the very bottom, it won't be able to fit the\n // panel by scrolling, so set the offset to 0 to allow the fallback position\n // to take effect.\n if (this._scrollTop >= maxScroll) {\n this._scrollTop = maxScroll;\n this._offsetY = 0;\n this._transformOrigin = \"50% top 0px\";\n return;\n }\n };\n /**\n * Sets the transform origin point based on the selected option.\n * @return {?}\n */\n MatSelect.prototype._getOriginBasedOnOption = function () {\n var /** @type {?} */ itemHeight = this._getItemHeight();\n var /** @type {?} */ optionHeightAdjustment = (itemHeight - this._triggerRect.height) / 2;\n var /** @type {?} */ originY = Math.abs(this._offsetY) - optionHeightAdjustment + itemHeight / 2;\n return \"50% \" + originY + \"px 0px\";\n };\n /**\n * Handles the user pressing the arrow keys on a closed select.\n * @param {?} event\n * @return {?}\n */\n MatSelect.prototype._handleClosedArrowKey = function (event) {\n var _this = this;\n if (this._multiple) {\n event.preventDefault();\n this.open();\n }\n else {\n var /** @type {?} */ prevActiveItem_1 = this._keyManager.activeItem;\n // Cycle though the select options even when the select is closed,\n // matching the behavior of the native select element.\n // TODO(crisbeto): native selects also cycle through the options with left/right arrows,\n // however the key manager only supports up/down at the moment.\n this._keyManager.onKeydown(event);\n // TODO(crisbeto): get rid of the Promise.resolve when #6441 gets in.\n Promise.resolve().then(function () {\n var /** @type {?} */ currentActiveItem = _this._keyManager.activeItem;\n if (currentActiveItem && currentActiveItem !== prevActiveItem_1) {\n _this._clearSelection();\n _this._setSelectionByValue(currentActiveItem.value, true);\n }\n });\n }\n };\n /**\n * Calculates the amount of items in the select. This includes options and group labels.\n * @return {?}\n */\n MatSelect.prototype._getItemCount = function () {\n return this.options.length + this.optionGroups.length;\n };\n /**\n * Calculates the height of the select's options.\n * @return {?}\n */\n MatSelect.prototype._getItemHeight = function () {\n return this._triggerFontSize * SELECT_ITEM_HEIGHT_EM;\n };\n /**\n * @param {?} ids\n * @return {?}\n */\n MatSelect.prototype.setDescribedByIds = function (ids) {\n this._ariaDescribedby = ids.join(' ');\n };\n /**\n * @return {?}\n */\n MatSelect.prototype.onContainerClick = function () {\n this.focus();\n this.open();\n };\n Object.defineProperty(MatSelect.prototype, \"shouldPlaceholderFloat\", {\n /**\n * @return {?}\n */\n get: function () { return this._panelOpen || !this.empty; },\n enumerable: true,\n configurable: true\n });\n MatSelect.decorators = [\n { type: Component, args: [{selector: 'mat-select',\n exportAs: 'matSelect',\n template: \"<div cdk-overlay-origin class=\\\"mat-select-trigger\\\" aria-hidden=\\\"true\\\" (click)=\\\"toggle()\\\" #origin=\\\"cdkOverlayOrigin\\\" #trigger><div class=\\\"mat-select-value\\\"><ng-container *ngIf=\\\"empty\\\"> </ng-container><span class=\\\"mat-select-value-text\\\" *ngIf=\\\"!empty\\\" [ngSwitch]=\\\"!!customTrigger\\\"><span *ngSwitchDefault>{{ triggerValue }}</span><ng-content select=\\\"mat-select-trigger\\\" *ngSwitchCase=\\\"true\\\"></ng-content></span></div><div class=\\\"mat-select-arrow-wrapper\\\"><div class=\\\"mat-select-arrow\\\"></div></div></div><ng-template cdk-connected-overlay hasBackdrop backdropClass=\\\"cdk-overlay-transparent-backdrop\\\" [scrollStrategy]=\\\"_scrollStrategy\\\" [origin]=\\\"origin\\\" [open]=\\\"panelOpen\\\" [positions]=\\\"_positions\\\" [minWidth]=\\\"_triggerRect?.width\\\" [offsetY]=\\\"_offsetY\\\" (backdropClick)=\\\"close()\\\" (attach)=\\\"_onAttached()\\\" (detach)=\\\"close()\\\"><div #panel class=\\\"mat-select-panel {{ _getPanelTheme() }}\\\" [ngClass]=\\\"panelClass\\\" [@transformPanel]=\\\"multiple ? 'showing-multiple' : 'showing'\\\" (@transformPanel.done)=\\\"_onPanelDone()\\\" [style.transformOrigin]=\\\"_transformOrigin\\\" [class.mat-select-panel-done-animating]=\\\"_panelDoneAnimating\\\" [style.font-size.px]=\\\"_triggerFontSize\\\"><div class=\\\"mat-select-content\\\" [@fadeInContent]=\\\"'showing'\\\" (@fadeInContent.done)=\\\"_onFadeInDone()\\\"><ng-content></ng-content></div></div></ng-template>\",\n styles: [\".mat-select{display:inline-block;width:100%;outline:0}.mat-select-trigger{display:inline-table;cursor:pointer;position:relative;box-sizing:border-box}.mat-select-disabled .mat-select-trigger{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.mat-select-value{display:table-cell;max-width:0;width:100%;overflow:hidden;text-overflow:ellipsis}.mat-select-value-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-select-arrow-wrapper{display:table-cell;vertical-align:middle}.mat-select-arrow{width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid;margin:0 4px}.mat-select-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;padding-top:0;padding-bottom:0;max-height:256px;min-width:100%}.mat-select-panel:not([class*=mat-elevation-z]){box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}@media screen and (-ms-high-contrast:active){.mat-select-panel{outline:solid 1px}}.mat-select-panel .mat-optgroup-label,.mat-select-panel .mat-option{font-size:inherit;line-height:3em;height:3em}.mat-form-field-type-mat-select .mat-form-field-flex{cursor:pointer}.mat-form-field-type-mat-select .mat-form-field-placeholder{width:calc(100% - 18px)}\"],\n inputs: ['disabled', 'tabIndex'],\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'role': 'listbox',\n '[attr.id]': 'id',\n '[attr.tabindex]': 'tabIndex',\n '[attr.aria-label]': '_ariaLabel',\n '[attr.aria-labelledby]': 'ariaLabelledby',\n '[attr.aria-required]': 'required.toString()',\n '[attr.aria-disabled]': 'disabled.toString()',\n '[attr.aria-invalid]': 'errorState',\n '[attr.aria-owns]': '_optionIds',\n '[attr.aria-multiselectable]': 'multiple',\n '[attr.aria-describedby]': '_ariaDescribedby || null',\n '[attr.aria-activedescendant]': '_getAriaActiveDescendant()',\n '[class.mat-select-disabled]': 'disabled',\n '[class.mat-select-invalid]': 'errorState',\n '[class.mat-select-required]': 'required',\n 'class': 'mat-select',\n '(keydown)': '_handleKeydown($event)',\n '(focus)': '_onFocus()',\n '(blur)': '_onBlur()',\n },\n animations: [\n transformPanel,\n fadeInContent\n ],\n providers: [{ provide: MatFormFieldControl, useExisting: MatSelect }],\n },] },\n ];\n /**\n * @nocollapse\n */\n MatSelect.ctorParameters = function () { return [\n { type: ViewportRuler, },\n { type: ChangeDetectorRef, },\n { type: NgZone, },\n { type: ErrorStateMatcher, },\n { type: Renderer2, },\n { type: ElementRef, },\n { type: Directionality, decorators: [{ type: Optional },] },\n { type: NgForm, decorators: [{ type: Optional },] },\n { type: FormGroupDirective, decorators: [{ type: Optional },] },\n { type: MatFormField, decorators: [{ type: Optional },] },\n { type: NgControl, decorators: [{ type: Self }, { type: Optional },] },\n { type: undefined, decorators: [{ type: Attribute, args: ['tabindex',] },] },\n { type: undefined, decorators: [{ type: Inject, args: [MAT_SELECT_SCROLL_STRATEGY,] },] },\n ]; };\n MatSelect.propDecorators = {\n 'trigger': [{ type: ViewChild, args: ['trigger',] },],\n 'panel': [{ type: ViewChild, args: ['panel',] },],\n 'overlayDir': [{ type: ViewChild, args: [ConnectedOverlayDirective,] },],\n 'options': [{ type: ContentChildren, args: [MatOption, { descendants: true },] },],\n 'optionGroups': [{ type: ContentChildren, args: [MatOptgroup,] },],\n 'panelClass': [{ type: Input },],\n 'customTrigger': [{ type: ContentChild, args: [MatSelectTrigger,] },],\n 'placeholder': [{ type: Input },],\n 'required': [{ type: Input },],\n 'multiple': [{ type: Input },],\n 'compareWith': [{ type: Input },],\n 'value': [{ type: Input },],\n 'disableRipple': [{ type: Input },],\n 'ariaLabel': [{ type: Input, args: ['aria-label',] },],\n 'ariaLabelledby': [{ type: Input, args: ['aria-labelledby',] },],\n 'errorStateMatcher': [{ type: Input },],\n 'id': [{ type: Input },],\n 'onOpen': [{ type: Output },],\n 'onClose': [{ type: Output },],\n 'change': [{ type: Output },],\n 'valueChange': [{ type: Output },],\n };\n return MatSelect;\n}(_MatSelectMixinBase));\n\nvar MatSelectModule = (function () {\n function MatSelectModule() {\n }\n MatSelectModule.decorators = [\n { type: NgModule, args: [{\n imports: [\n CommonModule,\n OverlayModule,\n MatOptionModule,\n MatCommonModule,\n ],\n exports: [MatFormFieldModule, MatSelect, MatSelectTrigger, MatOptionModule, MatCommonModule],\n declarations: [MatSelect, MatSelectTrigger],\n providers: [MAT_SELECT_SCROLL_STRATEGY_PROVIDER, ErrorStateMatcher]\n },] },\n ];\n /**\n * @nocollapse\n */\n MatSelectModule.ctorParameters = function () { return []; };\n return MatSelectModule;\n}());\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MatSelectModule, SELECT_PANEL_MAX_HEIGHT, SELECT_PANEL_PADDING_X, SELECT_PANEL_INDENT_PADDING_X, SELECT_ITEM_HEIGHT_EM, SELECT_MULTIPLE_PANEL_PADDING_X, SELECT_PANEL_VIEWPORT_PADDING, MAT_SELECT_SCROLL_STRATEGY, MAT_SELECT_SCROLL_STRATEGY_PROVIDER_FACTORY, MAT_SELECT_SCROLL_STRATEGY_PROVIDER, MatSelectChange, MatSelectBase, _MatSelectMixinBase, MatSelectTrigger, MatSelect, transformPanel, fadeInContent };\n//# sourceMappingURL=select.es5.js.map\n","/**\n * @license\n * Copyright Google Inc. 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 */\nimport { A11yModule, ARIA_DESCRIBER_PROVIDER, AriaDescriber } from '@angular/cdk/a11y';\nimport { Overlay, OverlayConfig, OverlayModule } from '@angular/cdk/overlay';\nimport { Platform, PlatformModule } from '@angular/cdk/platform';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Directive, ElementRef, Inject, InjectionToken, Input, NgModule, NgZone, Optional, Renderer2, ViewContainerRef, ViewEncapsulation } from '@angular/core';\nimport { MatCommonModule } from '@angular/material/core';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ESCAPE } from '@angular/cdk/keycodes';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { first } from '@angular/cdk/rxjs';\nimport { ScrollDispatcher } from '@angular/cdk/scrolling';\nimport { Subject } from 'rxjs/Subject';\n\n/**\n * Time in ms to delay before changing the tooltip visibility to hidden\n */\nvar TOUCHEND_HIDE_DELAY = 1500;\n/**\n * Time in ms to throttle repositioning after scroll events.\n */\nvar SCROLL_THROTTLE_MS = 20;\n/**\n * CSS class that will be attached to the overlay panel.\n */\nvar TOOLTIP_PANEL_CLASS = 'mat-tooltip-panel';\n/**\n * Creates an error to be thrown if the user supplied an invalid tooltip position.\n * @param {?} position\n * @return {?}\n */\nfunction getMatTooltipInvalidPositionError(position) {\n return Error(\"Tooltip position \\\"\" + position + \"\\\" is invalid.\");\n}\n/**\n * Injection token that determines the scroll handling while a tooltip is visible.\n */\nvar MAT_TOOLTIP_SCROLL_STRATEGY = new InjectionToken('mat-tooltip-scroll-strategy');\n/**\n * \\@docs-private\n * @param {?} overlay\n * @return {?}\n */\nfunction MAT_TOOLTIP_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay) {\n return function () { return overlay.scrollStrategies.reposition({ scrollThrottle: SCROLL_THROTTLE_MS }); };\n}\n/**\n * \\@docs-private\n */\nvar MAT_TOOLTIP_SCROLL_STRATEGY_PROVIDER = {\n provide: MAT_TOOLTIP_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: MAT_TOOLTIP_SCROLL_STRATEGY_PROVIDER_FACTORY\n};\n/**\n * Directive that attaches a material design tooltip to the host element. Animates the showing and\n * hiding of a tooltip provided position (defaults to below the element).\n *\n * https://material.google.com/components/tooltips.html\n */\nvar MatTooltip = (function () {\n /**\n * @param {?} renderer\n * @param {?} _overlay\n * @param {?} _elementRef\n * @param {?} _scrollDispatcher\n * @param {?} _viewContainerRef\n * @param {?} _ngZone\n * @param {?} _platform\n * @param {?} _ariaDescriber\n * @param {?} _scrollStrategy\n * @param {?} _dir\n */\n function MatTooltip(renderer, _overlay, _elementRef, _scrollDispatcher, _viewContainerRef, _ngZone, _platform, _ariaDescriber, _scrollStrategy, _dir) {\n var _this = this;\n this._overlay = _overlay;\n this._elementRef = _elementRef;\n this._scrollDispatcher = _scrollDispatcher;\n this._viewContainerRef = _viewContainerRef;\n this._ngZone = _ngZone;\n this._platform = _platform;\n this._ariaDescriber = _ariaDescriber;\n this._scrollStrategy = _scrollStrategy;\n this._dir = _dir;\n this._position = 'below';\n this._disabled = false;\n /**\n * The default delay in ms before showing the tooltip after show is called\n */\n this.showDelay = 0;\n /**\n * The default delay in ms before hiding the tooltip after hide is called\n */\n this.hideDelay = 0;\n this._message = '';\n // The mouse events shouldn't be bound on iOS devices, because\n // they can prevent the first tap from firing its click event.\n if (!_platform.IOS) {\n this._enterListener =\n renderer.listen(_elementRef.nativeElement, 'mouseenter', function () { return _this.show(); });\n this._leaveListener =\n renderer.listen(_elementRef.nativeElement, 'mouseleave', function () { return _this.hide(); });\n }\n }\n Object.defineProperty(MatTooltip.prototype, \"position\", {\n /**\n * Allows the user to define the position of the tooltip relative to the parent element\n * @return {?}\n */\n get: function () { return this._position; },\n /**\n * @param {?} value\n * @return {?}\n */\n set: function (value) {\n if (value !== this._position) {\n this._position = value;\n // TODO(andrewjs): When the overlay's position can be dynamically changed, do not destroy\n // the tooltip.\n if (this._tooltipInstance) {\n this._disposeTooltip();\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatTooltip.prototype, \"disabled\", {\n /**\n * Disables the display of the tooltip.\n * @return {?}\n */\n get: function () { return this._disabled; },\n /**\n * @param {?} value\n * @return {?}\n */\n set: function (value) {\n this._disabled = coerceBooleanProperty(value);\n // If tooltip is disabled, hide immediately.\n if (this._disabled) {\n this.hide(0);\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatTooltip.prototype, \"_positionDeprecated\", {\n /**\n * @deprecated\n * @return {?}\n */\n get: function () { return this._position; },\n /**\n * @param {?} value\n * @return {?}\n */\n set: function (value) { this._position = value; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatTooltip.prototype, \"message\", {\n /**\n * The message to be displayed in the tooltip\n * @return {?}\n */\n get: function () { return this._message; },\n /**\n * @param {?} value\n * @return {?}\n */\n set: function (value) {\n this._ariaDescriber.removeDescription(this._elementRef.nativeElement, this._message);\n // If the message is not a string (e.g. number), convert it to a string and trim it.\n this._message = value != null ? (\"\" + value).trim() : '';\n this._updateTooltipMessage();\n this._ariaDescriber.describe(this._elementRef.nativeElement, this.message);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatTooltip.prototype, \"tooltipClass\", {\n /**\n * Classes to be passed to the tooltip. Supports the same syntax as `ngClass`.\n * @return {?}\n */\n get: function () { return this._tooltipClass; },\n /**\n * @param {?} value\n * @return {?}\n */\n set: function (value) {\n this._tooltipClass = value;\n if (this._tooltipInstance) {\n this._setTooltipClass(this._tooltipClass);\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Dispose the tooltip when destroyed.\n * @return {?}\n */\n MatTooltip.prototype.ngOnDestroy = function () {\n if (this._tooltipInstance) {\n this._disposeTooltip();\n }\n // Clean up the event listeners set in the constructor\n if (!this._platform.IOS) {\n this._enterListener();\n this._leaveListener();\n }\n this._ariaDescriber.removeDescription(this._elementRef.nativeElement, this.message);\n };\n /**\n * Shows the tooltip after the delay in ms, defaults to tooltip-delay-show or 0ms if no input\n * @param {?=} delay\n * @return {?}\n */\n MatTooltip.prototype.show = function (delay) {\n if (delay === void 0) { delay = this.showDelay; }\n if (this.disabled || !this.message) {\n return;\n }\n if (!this._tooltipInstance) {\n this._createTooltip();\n }\n this._setTooltipClass(this._tooltipClass);\n this._updateTooltipMessage(); /** @type {?} */\n ((this._tooltipInstance)).show(this._position, delay);\n };\n /**\n * Hides the tooltip after the delay in ms, defaults to tooltip-delay-hide or 0ms if no input\n * @param {?=} delay\n * @return {?}\n */\n MatTooltip.prototype.hide = function (delay) {\n if (delay === void 0) { delay = this.hideDelay; }\n if (this._tooltipInstance) {\n this._tooltipInstance.hide(delay);\n }\n };\n /**\n * Shows/hides the tooltip\n * @return {?}\n */\n MatTooltip.prototype.toggle = function () {\n this._isTooltipVisible() ? this.hide() : this.show();\n };\n /**\n * Returns true if the tooltip is currently visible to the user\n * @return {?}\n */\n MatTooltip.prototype._isTooltipVisible = function () {\n return !!this._tooltipInstance && this._tooltipInstance.isVisible();\n };\n /**\n * Handles the keydown events on the host element.\n * @param {?} e\n * @return {?}\n */\n MatTooltip.prototype._handleKeydown = function (e) {\n if (this._isTooltipVisible() && e.keyCode === ESCAPE) {\n e.stopPropagation();\n this.hide(0);\n }\n };\n /**\n * Create the tooltip to display\n * @return {?}\n */\n MatTooltip.prototype._createTooltip = function () {\n var _this = this;\n var /** @type {?} */ overlayRef = this._createOverlay();\n var /** @type {?} */ portal = new ComponentPortal(TooltipComponent, this._viewContainerRef);\n this._tooltipInstance = overlayRef.attach(portal).instance; /** @type {?} */\n ((\n // Dispose the overlay when finished the shown tooltip.\n this._tooltipInstance)).afterHidden().subscribe(function () {\n // Check first if the tooltip has already been removed through this components destroy.\n if (_this._tooltipInstance) {\n _this._disposeTooltip();\n }\n });\n };\n /**\n * Create the overlay config and position strategy\n * @return {?}\n */\n MatTooltip.prototype._createOverlay = function () {\n var _this = this;\n var /** @type {?} */ origin = this._getOrigin();\n var /** @type {?} */ overlay = this._getOverlayPosition();\n // Create connected position strategy that listens for scroll events to reposition.\n var /** @type {?} */ strategy = this._overlay\n .position()\n .connectedTo(this._elementRef, origin.main, overlay.main)\n .withFallbackPosition(origin.fallback, overlay.fallback);\n strategy.withScrollableContainers(this._scrollDispatcher.getScrollContainers(this._elementRef));\n strategy.onPositionChange.subscribe(function (change) {\n if (_this._tooltipInstance) {\n if (change.scrollableViewProperties.isOverlayClipped && _this._tooltipInstance.isVisible()) {\n // After position changes occur and the overlay is clipped by\n // a parent scrollable then close the tooltip.\n _this.hide(0);\n }\n else {\n // Otherwise recalculate the origin based on the new position.\n _this._tooltipInstance._setTransformOrigin(change.connectionPair);\n }\n }\n });\n var /** @type {?} */ config = new OverlayConfig({\n direction: this._dir ? this._dir.value : 'ltr',\n positionStrategy: strategy,\n panelClass: TOOLTIP_PANEL_CLASS,\n scrollStrategy: this._scrollStrategy()\n });\n this._overlayRef = this._overlay.create(config);\n return this._overlayRef;\n };\n /**\n * Disposes the current tooltip and the overlay it is attached to\n * @return {?}\n */\n MatTooltip.prototype._disposeTooltip = function () {\n if (this._overlayRef) {\n this._overlayRef.dispose();\n this._overlayRef = null;\n }\n this._tooltipInstance = null;\n };\n /**\n * Returns the origin position and a fallback position based on the user's position preference.\n * The fallback position is the inverse of the origin (e.g. 'below' -> 'above').\n * @return {?}\n */\n MatTooltip.prototype._getOrigin = function () {\n var /** @type {?} */ isDirectionLtr = !this._dir || this._dir.value == 'ltr';\n var /** @type {?} */ position;\n if (this.position == 'above' || this.position == 'below') {\n position = { originX: 'center', originY: this.position == 'above' ? 'top' : 'bottom' };\n }\n else if (this.position == 'left' ||\n this.position == 'before' && isDirectionLtr ||\n this.position == 'after' && !isDirectionLtr) {\n position = { originX: 'start', originY: 'center' };\n }\n else if (this.position == 'right' ||\n this.position == 'after' && isDirectionLtr ||\n this.position == 'before' && !isDirectionLtr) {\n position = { originX: 'end', originY: 'center' };\n }\n else {\n throw getMatTooltipInvalidPositionError(this.position);\n }\n var _a = this._invertPosition(position.originX, position.originY), x = _a.x, y = _a.y;\n return {\n main: position,\n fallback: { originX: x, originY: y }\n };\n };\n /**\n * Returns the overlay position and a fallback position based on the user's preference\n * @return {?}\n */\n MatTooltip.prototype._getOverlayPosition = function () {\n var /** @type {?} */ isLtr = !this._dir || this._dir.value == 'ltr';\n var /** @type {?} */ position;\n if (this.position == 'above') {\n position = { overlayX: 'center', overlayY: 'bottom' };\n }\n else if (this.position == 'below') {\n position = { overlayX: 'center', overlayY: 'top' };\n }\n else if (this.position == 'left' ||\n this.position == 'before' && isLtr ||\n this.position == 'after' && !isLtr) {\n position = { overlayX: 'end', overlayY: 'center' };\n }\n else if (this.position == 'right' ||\n this.position == 'after' && isLtr ||\n this.position == 'before' && !isLtr) {\n position = { overlayX: 'start', overlayY: 'center' };\n }\n else {\n throw getMatTooltipInvalidPositionError(this.position);\n }\n var _a = this._invertPosition(position.overlayX, position.overlayY), x = _a.x, y = _a.y;\n return {\n main: position,\n fallback: { overlayX: x, overlayY: y }\n };\n };\n /**\n * Updates the tooltip message and repositions the overlay according to the new message length\n * @return {?}\n */\n MatTooltip.prototype._updateTooltipMessage = function () {\n var _this = this;\n // Must wait for the message to be painted to the tooltip so that the overlay can properly\n // calculate the correct positioning based on the size of the text.\n if (this._tooltipInstance) {\n this._tooltipInstance.message = this.message;\n this._tooltipInstance._markForCheck();\n first.call(this._ngZone.onMicrotaskEmpty.asObservable()).subscribe(function () {\n if (_this._tooltipInstance) {\n ((_this._overlayRef)).updatePosition();\n }\n });\n }\n };\n /**\n * Updates the tooltip class\n * @param {?} tooltipClass\n * @return {?}\n */\n MatTooltip.prototype._setTooltipClass = function (tooltipClass) {\n if (this._tooltipInstance) {\n this._tooltipInstance.tooltipClass = tooltipClass;\n this._tooltipInstance._markForCheck();\n }\n };\n /**\n * Inverts an overlay position.\n * @param {?} x\n * @param {?} y\n * @return {?}\n */\n MatTooltip.prototype._invertPosition = function (x, y) {\n if (this.position === 'above' || this.position === 'below') {\n if (y === 'top') {\n y = 'bottom';\n }\n else if (y === 'bottom') {\n y = 'top';\n }\n }\n else {\n if (x === 'end') {\n x = 'start';\n }\n else if (x === 'start') {\n x = 'end';\n }\n }\n return { x: x, y: y };\n };\n MatTooltip.decorators = [\n { type: Directive, args: [{\n selector: '[mat-tooltip], [matTooltip]',\n exportAs: 'matTooltip',\n host: {\n '(longpress)': 'show()',\n '(focus)': 'show()',\n '(blur)': 'hide(0)',\n '(keydown)': '_handleKeydown($event)',\n '(touchend)': 'hide(' + TOUCHEND_HIDE_DELAY + ')',\n },\n },] },\n ];\n /**\n * @nocollapse\n */\n MatTooltip.ctorParameters = function () { return [\n { type: Renderer2, },\n { type: Overlay, },\n { type: ElementRef, },\n { type: ScrollDispatcher, },\n { type: ViewContainerRef, },\n { type: NgZone, },\n { type: Platform, },\n { type: AriaDescriber, },\n { type: undefined, decorators: [{ type: Inject, args: [MAT_TOOLTIP_SCROLL_STRATEGY,] },] },\n { type: Directionality, decorators: [{ type: Optional },] },\n ]; };\n MatTooltip.propDecorators = {\n 'position': [{ type: Input, args: ['matTooltipPosition',] },],\n 'disabled': [{ type: Input, args: ['matTooltipDisabled',] },],\n '_positionDeprecated': [{ type: Input, args: ['tooltip-position',] },],\n 'showDelay': [{ type: Input, args: ['matTooltipShowDelay',] },],\n 'hideDelay': [{ type: Input, args: ['matTooltipHideDelay',] },],\n 'message': [{ type: Input, args: ['matTooltip',] },],\n 'tooltipClass': [{ type: Input, args: ['matTooltipClass',] },],\n };\n return MatTooltip;\n}());\n/**\n * Internal component that wraps the tooltip's content.\n * \\@docs-private\n */\nvar TooltipComponent = (function () {\n /**\n * @param {?} _changeDetectorRef\n */\n function TooltipComponent(_changeDetectorRef) {\n this._changeDetectorRef = _changeDetectorRef;\n /**\n * Property watched by the animation framework to show or hide the tooltip\n */\n this._visibility = 'initial';\n /**\n * Whether interactions on the page should close the tooltip\n */\n this._closeOnInteraction = false;\n /**\n * The transform origin used in the animation for showing and hiding the tooltip\n */\n this._transformOrigin = 'bottom';\n /**\n * Subject for notifying that the tooltip has been hidden from the view\n */\n this._onHide = new Subject();\n }\n /**\n * Shows the tooltip with an animation originating from the provided origin\n * @param {?} position Position of the tooltip.\n * @param {?} delay Amount of milliseconds to the delay showing the tooltip.\n * @return {?}\n */\n TooltipComponent.prototype.show = function (position, delay) {\n var _this = this;\n // Cancel the delayed hide if it is scheduled\n if (this._hideTimeoutId) {\n clearTimeout(this._hideTimeoutId);\n }\n // Body interactions should cancel the tooltip if there is a delay in showing.\n this._closeOnInteraction = true;\n this._position = position;\n this._showTimeoutId = setTimeout(function () {\n _this._visibility = 'visible';\n // Mark for check so if any parent component has set the\n // ChangeDetectionStrategy to OnPush it will be checked anyways\n _this._markForCheck();\n }, delay);\n };\n /**\n * Begins the animation to hide the tooltip after the provided delay in ms.\n * @param {?} delay Amount of milliseconds to delay showing the tooltip.\n * @return {?}\n */\n TooltipComponent.prototype.hide = function (delay) {\n var _this = this;\n // Cancel the delayed show if it is scheduled\n if (this._showTimeoutId) {\n clearTimeout(this._showTimeoutId);\n }\n this._hideTimeoutId = setTimeout(function () {\n _this._visibility = 'hidden';\n // Mark for check so if any parent component has set the\n // ChangeDetectionStrategy to OnPush it will be checked anyways\n _this._markForCheck();\n }, delay);\n };\n /**\n * Returns an observable that notifies when the tooltip has been hidden from view.\n * @return {?}\n */\n TooltipComponent.prototype.afterHidden = function () {\n return this._onHide.asObservable();\n };\n /**\n * Whether the tooltip is being displayed.\n * @return {?}\n */\n TooltipComponent.prototype.isVisible = function () {\n return this._visibility === 'visible';\n };\n /**\n * Sets the tooltip transform origin according to the position of the tooltip overlay.\n * @param {?} overlayPosition\n * @return {?}\n */\n TooltipComponent.prototype._setTransformOrigin = function (overlayPosition) {\n var /** @type {?} */ axis = (this._position === 'above' || this._position === 'below') ? 'Y' : 'X';\n var /** @type {?} */ position = axis == 'X' ? overlayPosition.overlayX : overlayPosition.overlayY;\n if (position === 'top' || position === 'bottom') {\n this._transformOrigin = position;\n }\n else if (position === 'start') {\n this._transformOrigin = 'left';\n }\n else if (position === 'end') {\n this._transformOrigin = 'right';\n }\n else {\n throw getMatTooltipInvalidPositionError(this._position);\n }\n };\n /**\n * @return {?}\n */\n TooltipComponent.prototype._animationStart = function () {\n this._closeOnInteraction = false;\n };\n /**\n * @param {?} event\n * @return {?}\n */\n TooltipComponent.prototype._animationDone = function (event) {\n var _this = this;\n var /** @type {?} */ toState = (event.toState);\n if (toState === 'hidden' && !this.isVisible()) {\n this._onHide.next();\n }\n if (toState === 'visible' || toState === 'hidden') {\n // Note: as of Angular 4.3, the animations module seems to fire the `start` callback before\n // the end if animations are disabled. Make this call async to ensure that it still fires\n // at the appropriate time.\n Promise.resolve().then(function () { return _this._closeOnInteraction = true; });\n }\n };\n /**\n * Interactions on the HTML body should close the tooltip immediately as defined in the\n * material design spec.\n * https://material.google.com/components/tooltips.html#tooltips-interaction\n * @return {?}\n */\n TooltipComponent.prototype._handleBodyInteraction = function () {\n if (this._closeOnInteraction) {\n this.hide(0);\n }\n };\n /**\n * Marks that the tooltip needs to be checked in the next change detection run.\n * Mainly used for rendering the initial text before positioning a tooltip, which\n * can be problematic in components with OnPush change detection.\n * @return {?}\n */\n TooltipComponent.prototype._markForCheck = function () {\n this._changeDetectorRef.markForCheck();\n };\n TooltipComponent.decorators = [\n { type: Component, args: [{selector: 'mat-tooltip-component',\n template: \"<div class=\\\"mat-tooltip\\\" [ngClass]=\\\"tooltipClass\\\" [style.transform-origin]=\\\"_transformOrigin\\\" [@state]=\\\"_visibility\\\" (@state.start)=\\\"_animationStart()\\\" (@state.done)=\\\"_animationDone($event)\\\">{{message}}</div>\",\n styles: [\".mat-tooltip-panel{pointer-events:none!important}.mat-tooltip{color:#fff;border-radius:2px;margin:14px;max-width:250px;padding-left:8px;padding-right:8px}@media screen and (-ms-high-contrast:active){.mat-tooltip{outline:solid 1px}}\"],\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('state', [\n state('initial, void, hidden', style({ transform: 'scale(0)' })),\n state('visible', style({ transform: 'scale(1)' })),\n transition('* => visible', animate('150ms cubic-bezier(0.0, 0.0, 0.2, 1)')),\n transition('* => hidden', animate('150ms cubic-bezier(0.4, 0.0, 1, 1)')),\n ])\n ],\n host: {\n // Forces the element to have a layout in IE and Edge. This fixes issues where the element\n // won't be rendered if the animations are disabled or there is no web animations polyfill.\n '[style.zoom]': '_visibility === \"visible\" ? 1 : null',\n '(body:click)': 'this._handleBodyInteraction()',\n 'aria-hidden': 'true',\n }\n },] },\n ];\n /**\n * @nocollapse\n */\n TooltipComponent.ctorParameters = function () { return [\n { type: ChangeDetectorRef, },\n ]; };\n return TooltipComponent;\n}());\n\nvar MatTooltipModule = (function () {\n function MatTooltipModule() {\n }\n MatTooltipModule.decorators = [\n { type: NgModule, args: [{\n imports: [\n CommonModule,\n OverlayModule,\n MatCommonModule,\n PlatformModule,\n A11yModule,\n ],\n exports: [MatTooltip, TooltipComponent, MatCommonModule],\n declarations: [MatTooltip, TooltipComponent],\n entryComponents: [TooltipComponent],\n providers: [MAT_TOOLTIP_SCROLL_STRATEGY_PROVIDER, ARIA_DESCRIBER_PROVIDER],\n },] },\n ];\n /**\n * @nocollapse\n */\n MatTooltipModule.ctorParameters = function () { return []; };\n return MatTooltipModule;\n}());\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MatTooltipModule, TOUCHEND_HIDE_DELAY, SCROLL_THROTTLE_MS, TOOLTIP_PANEL_CLASS, getMatTooltipInvalidPositionError, MAT_TOOLTIP_SCROLL_STRATEGY, MAT_TOOLTIP_SCROLL_STRATEGY_PROVIDER_FACTORY, MAT_TOOLTIP_SCROLL_STRATEGY_PROVIDER, MatTooltip, TooltipComponent };\n//# sourceMappingURL=tooltip.es5.js.map\n","/**\n * @license\n * Copyright Google Inc. 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 */\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Injectable, Input, NgModule, Output, ViewEncapsulation } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { Subject } from 'rxjs/Subject';\n\n/**\n * To modify the labels and text displayed, create a new instance of MatPaginatorIntl and\n * include it in a custom provider\n */\nvar MatPaginatorIntl = (function () {\n function MatPaginatorIntl() {\n /**\n * Stream that emits whenever the labels here are changed. Use this to notify\n * components if the labels have changed after initialization.\n */\n this.changes = new Subject();\n /**\n * A label for the page size selector.\n */\n this.itemsPerPageLabel = 'Items per page:';\n /**\n * A label for the button that increments the current page.\n */\n this.nextPageLabel = 'Next page';\n /**\n * A label for the button that decrements the current page.\n */\n this.previousPageLabel = 'Previous page';\n /**\n * A label for the range of items within the current page and the length of the whole list.\n */\n this.getRangeLabel = function (page, pageSize, length) {\n if (length == 0 || pageSize == 0) {\n return \"0 of \" + length;\n }\n length = Math.max(length, 0);\n var startIndex = page * pageSize;\n // If the start index exceeds the list length, do not try and fix the end index to the end.\n var endIndex = startIndex < length ?\n Math.min(startIndex + pageSize, length) :\n startIndex + pageSize;\n return startIndex + 1 + \" - \" + endIndex + \" of \" + length;\n };\n }\n MatPaginatorIntl.decorators = [\n { type: Injectable },\n ];\n /**\n * @nocollapse\n */\n MatPaginatorIntl.ctorParameters = function () { return []; };\n return MatPaginatorIntl;\n}());\n\n/**\n * The default page size if there is no page size and there are no provided page size options.\n */\nvar DEFAULT_PAGE_SIZE = 50;\n/**\n * Change event object that is emitted when the user selects a\n * different page size or navigates to another page.\n */\nvar PageEvent = (function () {\n function PageEvent() {\n }\n return PageEvent;\n}());\n/**\n * Component to provide navigation between paged information. Displays the size of the current\n * page, user-selectable options to change that size, what items are being shown, and\n * navigational button to go to the previous or next page.\n */\nvar MatPaginator = (function () {\n /**\n * @param {?} _intl\n * @param {?} _changeDetectorRef\n */\n function MatPaginator(_intl, _changeDetectorRef) {\n var _this = this;\n this._intl = _intl;\n this._changeDetectorRef = _changeDetectorRef;\n this._pageIndex = 0;\n this._length = 0;\n this._pageSizeOptions = [];\n /**\n * Event emitted when the paginator changes the page size or page index.\n */\n this.page = new EventEmitter();\n this._intlChanges = _intl.changes.subscribe(function () { return _this._changeDetectorRef.markForCheck(); });\n }\n Object.defineProperty(MatPaginator.prototype, \"pageIndex\", {\n /**\n * The zero-based page index of the displayed list of items. Defaulted to 0.\n * @return {?}\n */\n get: function () { return this._pageIndex; },\n /**\n * @param {?} pageIndex\n * @return {?}\n */\n set: function (pageIndex) {\n this._pageIndex = pageIndex;\n this._changeDetectorRef.markForCheck();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatPaginator.prototype, \"length\", {\n /**\n * The length of the total number of items that are being paginated. Defaulted to 0.\n * @return {?}\n */\n get: function () { return this._length; },\n /**\n * @param {?} length\n * @return {?}\n */\n set: function (length) {\n this._length = length;\n this._changeDetectorRef.markForCheck();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatPaginator.prototype, \"pageSize\", {\n /**\n * Number of items to display on a page. By default set to 50.\n * @return {?}\n */\n get: function () { return this._pageSize; },\n /**\n * @param {?} pageSize\n * @return {?}\n */\n set: function (pageSize) {\n this._pageSize = pageSize;\n this._updateDisplayedPageSizeOptions();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatPaginator.prototype, \"pageSizeOptions\", {\n /**\n * The set of provided page size options to display to the user.\n * @return {?}\n */\n get: function () { return this._pageSizeOptions; },\n /**\n * @param {?} pageSizeOptions\n * @return {?}\n */\n set: function (pageSizeOptions) {\n this._pageSizeOptions = pageSizeOptions;\n this._updateDisplayedPageSizeOptions();\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n MatPaginator.prototype.ngOnInit = function () {\n this._initialized = true;\n this._updateDisplayedPageSizeOptions();\n };\n /**\n * @return {?}\n */\n MatPaginator.prototype.ngOnDestroy = function () {\n this._intlChanges.unsubscribe();\n };\n /**\n * Advances to the next page if it exists.\n * @return {?}\n */\n MatPaginator.prototype.nextPage = function () {\n if (!this.hasNextPage()) {\n return;\n }\n this.pageIndex++;\n this._emitPageEvent();\n };\n /**\n * Move back to the previous page if it exists.\n * @return {?}\n */\n MatPaginator.prototype.previousPage = function () {\n if (!this.hasPreviousPage()) {\n return;\n }\n this.pageIndex--;\n this._emitPageEvent();\n };\n /**\n * Whether there is a previous page.\n * @return {?}\n */\n MatPaginator.prototype.hasPreviousPage = function () {\n return this.pageIndex >= 1 && this.pageSize != 0;\n };\n /**\n * Whether there is a next page.\n * @return {?}\n */\n MatPaginator.prototype.hasNextPage = function () {\n var /** @type {?} */ numberOfPages = Math.ceil(this.length / this.pageSize) - 1;\n return this.pageIndex < numberOfPages && this.pageSize != 0;\n };\n /**\n * Changes the page size so that the first item displayed on the page will still be\n * displayed using the new page size.\n *\n * For example, if the page size is 10 and on the second page (items indexed 10-19) then\n * switching so that the page size is 5 will set the third page as the current page so\n * that the 10th item will still be displayed.\n * @param {?} pageSize\n * @return {?}\n */\n MatPaginator.prototype._changePageSize = function (pageSize) {\n // Current page needs to be updated to reflect the new page size. Navigate to the page\n // containing the previous page's first item.\n var /** @type {?} */ startIndex = this.pageIndex * this.pageSize;\n this.pageIndex = Math.floor(startIndex / pageSize) || 0;\n this.pageSize = pageSize;\n this._emitPageEvent();\n };\n /**\n * Updates the list of page size options to display to the user. Includes making sure that\n * the page size is an option and that the list is sorted.\n * @return {?}\n */\n MatPaginator.prototype._updateDisplayedPageSizeOptions = function () {\n if (!this._initialized) {\n return;\n }\n // If no page size is provided, use the first page size option or the default page size.\n if (!this.pageSize) {\n this._pageSize = this.pageSizeOptions.length != 0 ?\n this.pageSizeOptions[0] :\n DEFAULT_PAGE_SIZE;\n }\n this._displayedPageSizeOptions = this.pageSizeOptions.slice();\n if (this._displayedPageSizeOptions.indexOf(this.pageSize) == -1) {\n this._displayedPageSizeOptions.push(this.pageSize);\n }\n // Sort the numbers using a number-specific sort function.\n this._displayedPageSizeOptions.sort(function (a, b) { return a - b; });\n this._changeDetectorRef.markForCheck();\n };\n /**\n * Emits an event notifying that a change of the paginator's properties has been triggered.\n * @return {?}\n */\n MatPaginator.prototype._emitPageEvent = function () {\n this.page.next({\n pageIndex: this.pageIndex,\n pageSize: this.pageSize,\n length: this.length\n });\n };\n MatPaginator.decorators = [\n { type: Component, args: [{selector: 'mat-paginator',\n exportAs: 'matPaginator',\n template: \"<div class=\\\"mat-paginator-page-size\\\"><div class=\\\"mat-paginator-page-size-label\\\">{{_intl.itemsPerPageLabel}}</div><mat-form-field *ngIf=\\\"_displayedPageSizeOptions.length > 1\\\" class=\\\"mat-paginator-page-size-select\\\"><mat-select [value]=\\\"pageSize\\\" [aria-label]=\\\"_intl.itemsPerPageLabel\\\" (change)=\\\"_changePageSize($event.value)\\\"><mat-option *ngFor=\\\"let pageSizeOption of _displayedPageSizeOptions\\\" [value]=\\\"pageSizeOption\\\">{{pageSizeOption}}</mat-option></mat-select></mat-form-field><div *ngIf=\\\"_displayedPageSizeOptions.length <= 1\\\">{{pageSize}}</div></div><div class=\\\"mat-paginator-range-label\\\">{{_intl.getRangeLabel(pageIndex, pageSize, length)}}</div><button mat-icon-button type=\\\"button\\\" class=\\\"mat-paginator-navigation-previous\\\" (click)=\\\"previousPage()\\\" [attr.aria-label]=\\\"_intl.previousPageLabel\\\" [matTooltip]=\\\"_intl.previousPageLabel\\\" [matTooltipPosition]=\\\"'above'\\\" [disabled]=\\\"!hasPreviousPage()\\\"><div class=\\\"mat-paginator-increment\\\"></div></button> <button mat-icon-button type=\\\"button\\\" class=\\\"mat-paginator-navigation-next\\\" (click)=\\\"nextPage()\\\" [attr.aria-label]=\\\"_intl.nextPageLabel\\\" [matTooltip]=\\\"_intl.nextPageLabel\\\" [matTooltipPosition]=\\\"'above'\\\" [disabled]=\\\"!hasNextPage()\\\"><div class=\\\"mat-paginator-decrement\\\"></div></button>\",\n styles: [\".mat-paginator{display:flex;align-items:center;justify-content:flex-end;min-height:56px;padding:0 8px}.mat-paginator-page-size{display:flex;align-items:center}.mat-paginator-page-size-label{margin:0 4px}.mat-paginator-page-size-select{margin:0 4px;width:56px}.mat-paginator-range-label{margin:0 32px}.mat-paginator-increment-button+.mat-paginator-increment-button{margin:0 0 0 8px}[dir=rtl] .mat-paginator-increment-button+.mat-paginator-increment-button{margin:0 8px 0 0}.mat-paginator-decrement,.mat-paginator-increment{width:8px;height:8px}.mat-paginator-decrement,[dir=rtl] .mat-paginator-increment{transform:rotate(45deg)}.mat-paginator-increment,[dir=rtl] .mat-paginator-decrement{transform:rotate(225deg)}.mat-paginator-decrement{margin-left:12px}[dir=rtl] .mat-paginator-decrement{margin-right:12px}.mat-paginator-increment{margin-left:16px}[dir=rtl] .mat-paginator-increment{margin-right:16px}\"],\n host: {\n 'class': 'mat-paginator',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n },] },\n ];\n /**\n * @nocollapse\n */\n MatPaginator.ctorParameters = function () { return [\n { type: MatPaginatorIntl, },\n { type: ChangeDetectorRef, },\n ]; };\n MatPaginator.propDecorators = {\n 'pageIndex': [{ type: Input },],\n 'length': [{ type: Input },],\n 'pageSize': [{ type: Input },],\n 'pageSizeOptions': [{ type: Input },],\n 'page': [{ type: Output },],\n };\n return MatPaginator;\n}());\n\nvar MatPaginatorModule = (function () {\n function MatPaginatorModule() {\n }\n MatPaginatorModule.decorators = [\n { type: NgModule, args: [{\n imports: [\n CommonModule,\n MatButtonModule,\n MatSelectModule,\n MatTooltipModule,\n ],\n exports: [MatPaginator],\n declarations: [MatPaginator],\n providers: [MatPaginatorIntl],\n },] },\n ];\n /**\n * @nocollapse\n */\n MatPaginatorModule.ctorParameters = function () { return []; };\n return MatPaginatorModule;\n}());\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MatPaginatorModule, PageEvent, MatPaginator, MatPaginatorIntl };\n//# sourceMappingURL=paginator.es5.js.map\n"],"names":["InjectionToken","Directive","NgModule","isDevMode","BidiModule","Optional","Inject","coerceBooleanProperty","Subject","style","first","Injectable","HammerGestureConfig","ElementRef","NgZone","Platform","Input","PlatformModule","Component","ViewEncapsulation","ChangeDetectionStrategy","EventEmitter","ENTER","SPACE","ChangeDetectorRef","Output","CommonModule","Self","forwardRef","Renderer2","FocusMonitor","A11yModule","nextUniqueId","nextUniqueId$1","startWith","fromEvent","trigger","state","transition","animate","ViewChild","ContentChild","ContentChildren","Overlay","Subscription","merge","SelectionModel","UP_ARROW","DOWN_ARROW","HOME","END","ActiveDescendantKeyManager","filter","ViewportRuler","Directionality","NgForm","FormGroupDirective","NgControl","Attribute","ConnectedOverlayDirective","OverlayModule","ESCAPE","ComponentPortal","OverlayConfig","ScrollDispatcher","ViewContainerRef","AriaDescriber","ARIA_DESCRIBER_PROVIDER"],"mappings":"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"}
|