@angular/material 2.0.0-alpha.9-3 → 2.0.0-beta.11
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 +21 -0
- package/README.md +4 -145
- package/_theming.scss +3872 -0
- package/autocomplete/index.d.ts +8 -0
- package/autocomplete/index.metadata.json +11 -0
- 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 +55 -0
- package/autocomplete/typings/index.d.ts +4 -0
- package/autocomplete/typings/index.metadata.json +1 -0
- package/autocomplete/typings/mat-exports.d.ts +17 -0
- package/autocomplete/typings/public_api.d.ts +11 -0
- package/autocomplete.d.ts +8 -0
- package/autocomplete.metadata.json +11 -0
- package/bundles/material-autocomplete.umd.js +3293 -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 +2689 -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 +2503 -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 +2438 -0
- package/bundles/material-card.umd.js.map +1 -0
- package/bundles/material-card.umd.min.js +10 -0
- package/bundles/material-card.umd.min.js.map +1 -0
- package/bundles/material-checkbox.umd.js +2692 -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 +4121 -0
- package/bundles/material-chips.umd.js.map +1 -0
- package/bundles/material-chips.umd.min.js +11 -0
- package/bundles/material-chips.umd.min.js.map +1 -0
- package/bundles/material-core.umd.js +2505 -0
- package/bundles/material-core.umd.js.map +1 -0
- package/bundles/material-core.umd.min.js +10 -0
- package/bundles/material-core.umd.min.js.map +1 -0
- package/bundles/material-datepicker.umd.js +6568 -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 +2980 -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-examples.umd.js +3627 -0
- package/bundles/material-examples.umd.js.map +1 -0
- package/bundles/material-examples.umd.min.js +12 -0
- package/bundles/material-examples.umd.min.js.map +1 -0
- package/bundles/material-expansion.umd.js +2678 -0
- package/bundles/material-expansion.umd.js.map +1 -0
- package/bundles/material-expansion.umd.min.js +10 -0
- package/bundles/material-expansion.umd.min.js.map +1 -0
- package/bundles/material-form-field.umd.js +2629 -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 +3000 -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 +2862 -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 +3214 -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 +2908 -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 +3016 -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 +4990 -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 +2204 -0
- package/bundles/material-progress-bar.umd.js.map +1 -0
- package/bundles/material-progress-bar.umd.min.js +10 -0
- package/bundles/material-progress-bar.umd.min.js.map +1 -0
- package/bundles/material-progress-spinner.umd.js +2594 -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 +2936 -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 +3611 -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 +2781 -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 +2657 -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 +3043 -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 +2717 -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 +2479 -0
- package/bundles/material-sort.umd.js.map +1 -0
- package/bundles/material-sort.umd.min.js +10 -0
- package/bundles/material-sort.umd.min.js.map +1 -0
- package/bundles/material-stepper.umd.js +3598 -0
- package/bundles/material-stepper.umd.js.map +1 -0
- package/bundles/material-stepper.umd.min.js +11 -0
- package/bundles/material-stepper.umd.min.js.map +1 -0
- package/bundles/material-table.umd.js +2458 -0
- package/bundles/material-table.umd.js.map +1 -0
- package/bundles/material-table.umd.min.js +10 -0
- package/bundles/material-table.umd.min.js.map +1 -0
- package/bundles/material-tabs.umd.js +3742 -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 +2211 -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 +2821 -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 +23785 -0
- package/bundles/material.umd.js.map +1 -0
- package/bundles/material.umd.min.js +23 -0
- package/bundles/material.umd.min.js.map +1 -0
- package/button/index.d.ts +8 -1
- package/button/index.metadata.json +11 -1
- package/button/package.json +7 -0
- package/button/typings/button-module.d.ts +2 -0
- package/button/typings/button.d.ts +80 -0
- package/button/typings/index.d.ts +4 -0
- package/button/typings/index.metadata.json +1 -0
- package/button/typings/mat-exports.d.ts +18 -0
- package/button/typings/public_api.d.ts +10 -0
- package/button-toggle/index.d.ts +8 -1
- package/button-toggle/index.metadata.json +11 -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 +156 -0
- package/button-toggle/typings/index.d.ts +4 -0
- package/button-toggle/typings/index.metadata.json +1 -0
- package/button-toggle/typings/mat-exports.d.ts +16 -0
- package/button-toggle/typings/public_api.d.ts +10 -0
- package/button-toggle.d.ts +8 -0
- package/button-toggle.metadata.json +11 -0
- package/button.d.ts +8 -0
- package/button.metadata.json +11 -0
- package/card/index.d.ts +8 -1
- package/card/index.metadata.json +11 -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/mat-exports.d.ts +24 -0
- package/card/typings/public_api.d.ts +10 -0
- package/card.d.ts +8 -0
- package/card.metadata.json +11 -0
- package/checkbox/index.d.ts +8 -1
- package/checkbox/index.metadata.json +11 -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 +159 -0
- package/checkbox/typings/index.d.ts +4 -0
- package/checkbox/typings/index.metadata.json +1 -0
- package/checkbox/typings/mat-exports.d.ts +17 -0
- package/checkbox/typings/public_api.d.ts +11 -0
- package/checkbox.d.ts +8 -0
- package/checkbox.metadata.json +11 -0
- package/chips/index.d.ts +8 -0
- package/chips/index.metadata.json +11 -0
- package/chips/package.json +7 -0
- package/chips/typings/chip-input.d.ts +54 -0
- package/chips/typings/chip-list.d.ts +219 -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/mat-exports.d.ts +21 -0
- package/chips/typings/public_api.d.ts +12 -0
- package/chips.d.ts +8 -0
- package/chips.metadata.json +11 -0
- package/core/index.d.ts +8 -1
- package/core/index.metadata.json +11 -1
- package/core/package.json +7 -0
- package/core/typings/a11y/index.d.ts +8 -0
- package/core/typings/animation/animation.d.ts +20 -0
- package/core/typings/bidi/index.d.ts +8 -0
- package/core/typings/common-behaviors/color.d.ts +22 -0
- package/core/typings/common-behaviors/common-module.d.ts +24 -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 +40 -0
- package/core/typings/coordination/unique-selection-dispatcher.d.ts +40 -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 +19 -0
- package/core/typings/gestures/gesture-annotations.d.ts +51 -0
- package/core/typings/gestures/gesture-config.d.ts +23 -0
- package/core/typings/index.d.ts +5 -0
- package/core/typings/index.metadata.json +1 -0
- package/core/typings/keyboard/keycodes.d.ts +8 -0
- package/core/typings/line/line.d.ts +30 -0
- package/core/typings/mat-exports.d.ts +36 -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 +97 -0
- package/core/typings/overlay/index.d.ts +8 -0
- package/core/typings/placeholder/placeholder-options.d.ts +15 -0
- package/core/typings/platform/features.d.ts +8 -0
- package/core/typings/platform/index.d.ts +10 -0
- package/core/typings/platform/platform.d.ts +8 -0
- package/core/typings/portal/dom-portal-host.d.ts +8 -0
- package/core/typings/portal/portal-directives.d.ts +8 -0
- package/core/typings/portal/portal-injector.d.ts +19 -0
- package/core/typings/portal/portal.d.ts +8 -0
- package/core/typings/public_api.d.ts +34 -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 +64 -0
- package/core/typings/ripple/ripple.d.ts +73 -0
- package/core/typings/rxjs/index.d.ts +9 -0
- package/core/typings/rxjs/rx-chain.d.ts +8 -0
- package/core/typings/rxjs/rx-operators.d.ts +8 -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 +5 -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 +11 -1
- package/datepicker/index.d.ts +8 -0
- package/datepicker/index.metadata.json +11 -0
- package/datepicker/package.json +7 -0
- package/datepicker/typings/calendar-body.d.ts +52 -0
- package/datepicker/typings/calendar.d.ts +90 -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 +94 -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/mat-exports.d.ts +33 -0
- package/datepicker/typings/month-view.d.ts +65 -0
- package/datepicker/typings/public_api.d.ts +18 -0
- package/datepicker/typings/year-view.d.ts +54 -0
- package/datepicker.d.ts +8 -0
- package/datepicker.metadata.json +11 -0
- package/dialog/index.d.ts +8 -4
- package/dialog/index.metadata.json +11 -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 +45 -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/mat-exports.d.ts +26 -0
- package/dialog/typings/public_api.d.ts +14 -0
- package/dialog.d.ts +8 -0
- package/dialog.metadata.json +11 -0
- package/esm2015/autocomplete.js +661 -0
- package/esm2015/autocomplete.js.map +1 -0
- package/esm2015/button-toggle.js +567 -0
- package/esm2015/button-toggle.js.map +1 -0
- package/esm2015/button.js +323 -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 +504 -0
- package/esm2015/checkbox.js.map +1 -0
- package/esm2015/chips.js +1332 -0
- package/esm2015/chips.js.map +1 -0
- package/esm2015/core.js +2316 -0
- package/esm2015/core.js.map +1 -0
- package/esm2015/datepicker.js +1808 -0
- package/esm2015/datepicker.js.map +1 -0
- package/esm2015/dialog.js +849 -0
- package/esm2015/dialog.js.map +1 -0
- package/esm2015/expansion.js +581 -0
- package/esm2015/expansion.js.map +1 -0
- package/esm2015/form-field.js +522 -0
- package/esm2015/form-field.js.map +1 -0
- package/esm2015/grid-list.js +825 -0
- package/esm2015/grid-list.js.map +1 -0
- package/esm2015/icon.js +733 -0
- package/esm2015/icon.js.map +1 -0
- package/esm2015/input.js +568 -0
- package/esm2015/input.js.map +1 -0
- package/esm2015/list.js +666 -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 +917 -0
- package/esm2015/menu.js.map +1 -0
- package/esm2015/paginator.js +304 -0
- package/esm2015/paginator.js.map +1 -0
- package/esm2015/progress-bar.js +132 -0
- package/esm2015/progress-bar.js.map +1 -0
- package/esm2015/progress-spinner.js +438 -0
- package/esm2015/progress-spinner.js.map +1 -0
- package/esm2015/radio.js +707 -0
- package/esm2015/radio.js.map +1 -0
- package/esm2015/select.js +1378 -0
- package/esm2015/select.js.map +1 -0
- package/esm2015/sidenav.js +666 -0
- package/esm2015/sidenav.js.map +1 -0
- package/esm2015/slide-toggle.js +429 -0
- package/esm2015/slide-toggle.js.map +1 -0
- package/esm2015/slider.js +833 -0
- package/esm2015/slider.js.map +1 -0
- package/esm2015/snack-bar.js +606 -0
- package/esm2015/snack-bar.js.map +1 -0
- package/esm2015/sort.js +387 -0
- package/esm2015/sort.js.map +1 -0
- package/esm2015/stepper.js +330 -0
- package/esm2015/stepper.js.map +1 -0
- package/esm2015/table.js +312 -0
- package/esm2015/table.js.map +1 -0
- package/esm2015/tabs.js +1477 -0
- package/esm2015/tabs.js.map +1 -0
- package/esm2015/toolbar.js +88 -0
- package/esm2015/toolbar.js.map +1 -0
- package/esm2015/tooltip.js +701 -0
- package/esm2015/tooltip.js.map +1 -0
- package/esm5/autocomplete.es5.js +691 -0
- package/esm5/autocomplete.es5.js.map +1 -0
- package/esm5/button-toggle.es5.js +619 -0
- package/esm5/button-toggle.es5.js.map +1 -0
- package/esm5/button.es5.js +341 -0
- package/esm5/button.es5.js.map +1 -0
- package/esm5/card.es5.js +349 -0
- package/esm5/card.es5.js.map +1 -0
- package/esm5/checkbox.es5.js +534 -0
- package/esm5/checkbox.es5.js.map +1 -0
- package/esm5/chips.es5.js +1466 -0
- package/esm5/chips.es5.js.map +1 -0
- package/esm5/core.es5.js +2316 -0
- package/esm5/core.es5.js.map +1 -0
- package/esm5/datepicker.es5.js +1936 -0
- package/esm5/datepicker.es5.js.map +1 -0
- package/esm5/dialog.es5.js +877 -0
- package/esm5/dialog.es5.js.map +1 -0
- package/esm5/expansion.es5.js +608 -0
- package/esm5/expansion.es5.js.map +1 -0
- package/esm5/form-field.es5.js +556 -0
- package/esm5/form-field.es5.js.map +1 -0
- package/esm5/grid-list.es5.js +877 -0
- package/esm5/grid-list.es5.js.map +1 -0
- package/esm5/icon.es5.js +746 -0
- package/esm5/icon.es5.js.map +1 -0
- package/esm5/input.es5.js +606 -0
- package/esm5/input.es5.js.map +1 -0
- package/esm5/list.es5.js +726 -0
- package/esm5/list.es5.js.map +1 -0
- package/esm5/material.es5.js +48 -0
- package/esm5/material.es5.js.map +1 -0
- package/esm5/menu.es5.js +953 -0
- package/esm5/menu.es5.js.map +1 -0
- package/esm5/paginator.es5.js +324 -0
- package/esm5/paginator.es5.js.map +1 -0
- package/esm5/progress-bar.es5.js +142 -0
- package/esm5/progress-bar.es5.js.map +1 -0
- package/esm5/progress-spinner.es5.js +474 -0
- package/esm5/progress-spinner.es5.js.map +1 -0
- package/esm5/radio.es5.js +779 -0
- package/esm5/radio.es5.js.map +1 -0
- package/esm5/select.es5.js +1444 -0
- package/esm5/select.es5.js.map +1 -0
- package/esm5/sidenav.es5.js +719 -0
- package/esm5/sidenav.es5.js.map +1 -0
- package/esm5/slide-toggle.es5.js +451 -0
- package/esm5/slide-toggle.es5.js.map +1 -0
- package/esm5/slider.es5.js +932 -0
- package/esm5/slider.es5.js.map +1 -0
- package/esm5/snack-bar.es5.js +623 -0
- package/esm5/snack-bar.es5.js.map +1 -0
- package/esm5/sort.es5.js +418 -0
- package/esm5/sort.es5.js.map +1 -0
- package/esm5/stepper.es5.js +376 -0
- package/esm5/stepper.es5.js.map +1 -0
- package/esm5/table.es5.js +370 -0
- package/esm5/table.es5.js.map +1 -0
- package/esm5/tabs.es5.js +1576 -0
- package/esm5/tabs.es5.js.map +1 -0
- package/esm5/toolbar.es5.js +94 -0
- package/esm5/toolbar.es5.js.map +1 -0
- package/esm5/tooltip.es5.js +759 -0
- package/esm5/tooltip.es5.js.map +1 -0
- package/expansion/index.d.ts +8 -0
- package/expansion/index.metadata.json +11 -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 +56 -0
- package/expansion/typings/expansion-panel.d.ts +39 -0
- package/expansion/typings/index.d.ts +5 -0
- package/expansion/typings/index.metadata.json +1 -0
- package/expansion/typings/mat-exports.d.ts +20 -0
- package/expansion/typings/public_api.d.ts +13 -0
- package/expansion.d.ts +8 -0
- package/expansion.metadata.json +11 -0
- package/form-field/index.d.ts +8 -0
- package/form-field/index.metadata.json +11 -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 +39 -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 +77 -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/mat-exports.d.ts +23 -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 +17 -0
- package/form-field/typings/suffix.d.ts +3 -0
- package/form-field.d.ts +8 -0
- package/form-field.metadata.json +11 -0
- package/grid-list/index.d.ts +8 -1
- package/grid-list/index.metadata.json +11 -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/mat-exports.d.ts +13 -0
- package/grid-list/typings/public_api.d.ts +11 -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 +11 -0
- package/icon/index.d.ts +8 -1
- package/icon/index.metadata.json +11 -1
- package/icon/package.json +7 -0
- package/icon/typings/icon-module.d.ts +2 -0
- package/icon/typings/icon-registry.d.ts +194 -0
- package/icon/typings/icon.d.ts +76 -0
- package/icon/typings/index.d.ts +4 -0
- package/icon/typings/index.metadata.json +1 -0
- package/icon/typings/mat-exports.d.ts +14 -0
- package/icon/typings/public_api.d.ts +11 -0
- package/icon.d.ts +8 -0
- package/icon.metadata.json +11 -0
- package/input/index.d.ts +8 -1
- package/input/index.metadata.json +11 -1
- package/input/package.json +7 -0
- package/input/typings/autosize.d.ts +45 -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 +78 -0
- package/input/typings/mat-exports.d.ts +13 -0
- package/input/typings/public_api.d.ts +12 -0
- package/input.d.ts +8 -0
- package/input.metadata.json +11 -0
- package/list/index.d.ts +8 -1
- package/list/index.metadata.json +11 -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 +78 -0
- package/list/typings/mat-exports.d.ts +27 -0
- package/list/typings/public_api.d.ts +11 -0
- package/list/typings/selection-list.d.ts +112 -0
- package/list.d.ts +8 -0
- package/list.metadata.json +11 -0
- package/material.d.ts +39 -0
- package/material.metadata.json +102 -0
- package/menu/index.d.ts +8 -1
- package/menu/index.metadata.json +11 -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/mat-exports.d.ts +16 -0
- package/menu/typings/menu-animations.d.ts +27 -0
- package/menu/typings/menu-directive.d.ts +86 -0
- package/menu/typings/menu-errors.d.ts +24 -0
- package/menu/typings/menu-item.d.ts +40 -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 +116 -0
- package/menu/typings/menu.d.ts +12 -0
- package/menu/typings/public_api.d.ts +12 -0
- package/menu.d.ts +8 -0
- package/menu.metadata.json +11 -0
- package/package.json +10 -8
- package/paginator/index.d.ts +8 -0
- package/paginator/index.metadata.json +11 -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/mat-exports.d.ts +13 -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 +11 -0
- package/paginator.d.ts +8 -0
- package/paginator.metadata.json +11 -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 +11 -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/mat-exports.d.ts +11 -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 +10 -0
- package/progress-bar.d.ts +8 -0
- package/progress-bar.metadata.json +11 -0
- package/progress-spinner/index.d.ts +8 -0
- package/progress-spinner/index.metadata.json +11 -0
- 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/mat-exports.d.ts +14 -0
- package/progress-spinner/typings/progress-spinner-module.d.ts +2 -0
- package/progress-spinner/typings/progress-spinner.d.ts +98 -0
- package/progress-spinner/typings/public_api.d.ts +10 -0
- package/progress-spinner.d.ts +8 -0
- package/progress-spinner.metadata.json +11 -0
- package/radio/index.d.ts +8 -1
- package/radio/index.metadata.json +11 -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/mat-exports.d.ts +16 -0
- package/radio/typings/public_api.d.ts +10 -0
- package/radio/typings/radio-module.d.ts +2 -0
- package/radio/typings/radio.d.ts +217 -0
- package/radio.d.ts +8 -0
- package/radio.metadata.json +11 -0
- package/select/index.d.ts +8 -5
- package/select/index.metadata.json +11 -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/mat-exports.d.ts +17 -0
- package/select/typings/public_api.d.ts +11 -0
- package/select/typings/select-animations.d.ts +36 -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 +412 -0
- package/select.d.ts +8 -0
- package/select.metadata.json +11 -0
- package/sidenav/index.d.ts +8 -1
- package/sidenav/index.metadata.json +11 -1
- package/sidenav/package.json +7 -0
- package/sidenav/typings/drawer.d.ts +178 -0
- package/sidenav/typings/index.d.ts +4 -0
- package/sidenav/typings/index.metadata.json +1 -0
- package/sidenav/typings/mat-exports.d.ts +16 -0
- package/sidenav/typings/public_api.d.ts +11 -0
- package/sidenav/typings/sidenav-module.d.ts +2 -0
- package/sidenav/typings/sidenav.d.ts +6 -0
- package/sidenav.d.ts +8 -0
- package/sidenav.metadata.json +11 -0
- package/slide-toggle/index.d.ts +8 -1
- package/slide-toggle/index.metadata.json +11 -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/mat-exports.d.ts +14 -0
- package/slide-toggle/typings/public_api.d.ts +10 -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 +11 -0
- package/slider/index.d.ts +8 -1
- package/slider/index.metadata.json +11 -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/mat-exports.d.ts +14 -0
- package/slider/typings/public_api.d.ts +10 -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 +11 -0
- package/snack-bar/index.d.ts +8 -4
- package/snack-bar/index.metadata.json +11 -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/mat-exports.d.ts +18 -0
- package/snack-bar/typings/public_api.d.ts +14 -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 +61 -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 +11 -0
- package/sort/index.d.ts +8 -0
- package/sort/index.metadata.json +11 -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/mat-exports.d.ts +16 -0
- package/sort/typings/public_api.d.ts +13 -0
- package/sort/typings/sort-direction.d.ts +8 -0
- package/sort/typings/sort-errors.d.ts +13 -0
- package/sort/typings/sort-header-intl.d.ts +17 -0
- package/sort/typings/sort-header.d.ts +44 -0
- package/sort/typings/sort-module.d.ts +2 -0
- package/sort/typings/sort.d.ts +59 -0
- package/sort.d.ts +8 -0
- package/sort.metadata.json +11 -0
- package/stepper/index.d.ts +8 -0
- package/stepper/index.metadata.json +11 -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/mat-exports.d.ts +21 -0
- package/stepper/typings/public_api.d.ts +13 -0
- package/stepper/typings/step-header.d.ts +23 -0
- package/stepper/typings/step-label.d.ts +14 -0
- package/stepper/typings/stepper-button.d.ts +10 -0
- package/stepper/typings/stepper-module.d.ts +2 -0
- package/stepper/typings/stepper.d.ts +27 -0
- package/stepper.d.ts +8 -0
- package/stepper.metadata.json +11 -0
- package/table/index.d.ts +8 -0
- package/table/index.metadata.json +11 -0
- package/table/package.json +7 -0
- package/table/typings/cell.d.ts +44 -0
- package/table/typings/index.d.ts +4 -0
- package/table/typings/index.metadata.json +1 -0
- package/table/typings/mat-exports.d.ts +20 -0
- package/table/typings/public_api.d.ts +12 -0
- package/table/typings/row.d.ts +30 -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 +11 -0
- package/tabs/index.d.ts +8 -1
- package/tabs/index.metadata.json +11 -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/mat-exports.d.ts +31 -0
- package/tabs/typings/public_api.d.ts +17 -0
- package/tabs/typings/tab-body.d.ts +69 -0
- package/tabs/typings/tab-group.d.ts +100 -0
- package/tabs/typings/tab-header.d.ts +156 -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 +77 -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 +11 -0
- package/toolbar/index.d.ts +8 -1
- package/toolbar/index.metadata.json +11 -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/mat-exports.d.ts +13 -0
- package/toolbar/typings/public_api.d.ts +10 -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 +11 -0
- package/tooltip/index.d.ts +8 -1
- package/tooltip/index.metadata.json +11 -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/mat-exports.d.ts +14 -0
- package/tooltip/typings/public_api.d.ts +10 -0
- package/tooltip/typings/tooltip-module.d.ts +2 -0
- package/tooltip/typings/tooltip.d.ts +177 -0
- package/tooltip.d.ts +8 -0
- package/tooltip.metadata.json +11 -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 +55 -0
- package/typings/autocomplete/index.d.ts +4 -0
- package/typings/autocomplete/index.metadata.json +1 -0
- package/typings/autocomplete/mat-exports.d.ts +17 -0
- package/typings/autocomplete/public_api.d.ts +11 -0
- package/typings/button/button-module.d.ts +2 -0
- package/typings/button/button.d.ts +80 -0
- package/typings/button/index.d.ts +4 -0
- package/typings/button/index.metadata.json +1 -0
- package/typings/button/mat-exports.d.ts +18 -0
- package/typings/button/public_api.d.ts +10 -0
- package/typings/button-toggle/button-toggle-module.d.ts +2 -0
- package/typings/button-toggle/button-toggle.d.ts +156 -0
- package/typings/button-toggle/index.d.ts +4 -0
- package/typings/button-toggle/index.metadata.json +1 -0
- package/typings/button-toggle/mat-exports.d.ts +16 -0
- package/typings/button-toggle/public_api.d.ts +10 -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/mat-exports.d.ts +24 -0
- package/typings/card/public_api.d.ts +10 -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 +159 -0
- package/typings/checkbox/index.d.ts +4 -0
- package/typings/checkbox/index.metadata.json +1 -0
- package/typings/checkbox/mat-exports.d.ts +17 -0
- package/typings/checkbox/public_api.d.ts +11 -0
- package/typings/chips/chip-input.d.ts +54 -0
- package/typings/chips/chip-list.d.ts +219 -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/mat-exports.d.ts +21 -0
- package/typings/chips/public_api.d.ts +12 -0
- package/typings/core/a11y/index.d.ts +8 -0
- package/typings/core/animation/animation.d.ts +20 -0
- package/typings/core/bidi/index.d.ts +8 -0
- package/typings/core/common-behaviors/color.d.ts +22 -0
- package/typings/core/common-behaviors/common-module.d.ts +24 -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 +40 -0
- package/typings/core/coordination/unique-selection-dispatcher.d.ts +40 -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 +19 -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/keyboard/keycodes.d.ts +8 -0
- package/typings/core/line/line.d.ts +30 -0
- package/typings/core/mat-exports.d.ts +36 -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 +97 -0
- package/typings/core/overlay/index.d.ts +8 -0
- package/typings/core/placeholder/placeholder-options.d.ts +15 -0
- package/typings/core/platform/features.d.ts +8 -0
- package/typings/core/platform/index.d.ts +10 -0
- package/typings/core/platform/platform.d.ts +8 -0
- package/typings/core/portal/dom-portal-host.d.ts +8 -0
- package/typings/core/portal/portal-directives.d.ts +8 -0
- package/typings/core/portal/portal-injector.d.ts +19 -0
- package/typings/core/portal/portal.d.ts +8 -0
- package/typings/core/public_api.d.ts +34 -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 +64 -0
- package/typings/core/ripple/ripple.d.ts +73 -0
- package/typings/core/rxjs/index.d.ts +9 -0
- package/typings/core/rxjs/rx-chain.d.ts +8 -0
- package/typings/core/rxjs/rx-operators.d.ts +8 -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 +5 -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 +90 -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 +94 -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/mat-exports.d.ts +33 -0
- package/typings/datepicker/month-view.d.ts +65 -0
- package/typings/datepicker/public_api.d.ts +18 -0
- package/typings/datepicker/year-view.d.ts +54 -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 +45 -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/mat-exports.d.ts +26 -0
- package/typings/dialog/public_api.d.ts +14 -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 +56 -0
- package/typings/expansion/expansion-panel.d.ts +39 -0
- package/typings/expansion/index.d.ts +5 -0
- package/typings/expansion/index.metadata.json +1 -0
- package/typings/expansion/mat-exports.d.ts +20 -0
- package/typings/expansion/public_api.d.ts +13 -0
- package/typings/form-field/error.d.ts +4 -0
- package/typings/form-field/form-field-control.d.ts +39 -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 +77 -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/mat-exports.d.ts +23 -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 +17 -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/mat-exports.d.ts +13 -0
- package/typings/grid-list/public_api.d.ts +11 -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 +194 -0
- package/typings/icon/icon.d.ts +76 -0
- package/typings/icon/index.d.ts +4 -0
- package/typings/icon/index.metadata.json +1 -0
- package/typings/icon/mat-exports.d.ts +14 -0
- package/typings/icon/public_api.d.ts +11 -0
- package/typings/index.d.ts +4 -0
- package/typings/index.metadata.json +26 -0
- package/typings/input/autosize.d.ts +45 -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 +78 -0
- package/typings/input/mat-exports.d.ts +13 -0
- package/typings/input/public_api.d.ts +12 -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 +78 -0
- package/typings/list/mat-exports.d.ts +27 -0
- package/typings/list/public_api.d.ts +11 -0
- package/typings/list/selection-list.d.ts +112 -0
- package/typings/menu/index.d.ts +6 -0
- package/typings/menu/index.metadata.json +1 -0
- package/typings/menu/mat-exports.d.ts +16 -0
- package/typings/menu/menu-animations.d.ts +27 -0
- package/typings/menu/menu-directive.d.ts +86 -0
- package/typings/menu/menu-errors.d.ts +24 -0
- package/typings/menu/menu-item.d.ts +40 -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 +116 -0
- package/typings/menu/menu.d.ts +12 -0
- package/typings/menu/public_api.d.ts +12 -0
- package/typings/paginator/index.d.ts +4 -0
- package/typings/paginator/index.metadata.json +1 -0
- package/typings/paginator/mat-exports.d.ts +13 -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 +11 -0
- package/typings/progress-bar/index.d.ts +4 -0
- package/typings/progress-bar/index.metadata.json +1 -0
- package/typings/progress-bar/mat-exports.d.ts +11 -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 +10 -0
- package/typings/progress-spinner/index.d.ts +4 -0
- package/typings/progress-spinner/index.metadata.json +1 -0
- package/typings/progress-spinner/mat-exports.d.ts +14 -0
- package/typings/progress-spinner/progress-spinner-module.d.ts +2 -0
- package/typings/progress-spinner/progress-spinner.d.ts +98 -0
- package/typings/progress-spinner/public_api.d.ts +10 -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/mat-exports.d.ts +16 -0
- package/typings/radio/public_api.d.ts +10 -0
- package/typings/radio/radio-module.d.ts +2 -0
- package/typings/radio/radio.d.ts +217 -0
- package/typings/select/index.d.ts +4 -0
- package/typings/select/index.metadata.json +1 -0
- package/typings/select/mat-exports.d.ts +17 -0
- package/typings/select/public_api.d.ts +11 -0
- package/typings/select/select-animations.d.ts +36 -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 +412 -0
- package/typings/sidenav/drawer.d.ts +178 -0
- package/typings/sidenav/index.d.ts +4 -0
- package/typings/sidenav/index.metadata.json +1 -0
- package/typings/sidenav/mat-exports.d.ts +16 -0
- package/typings/sidenav/public_api.d.ts +11 -0
- package/typings/sidenav/sidenav-module.d.ts +2 -0
- package/typings/sidenav/sidenav.d.ts +6 -0
- package/typings/slide-toggle/index.d.ts +4 -0
- package/typings/slide-toggle/index.metadata.json +1 -0
- package/typings/slide-toggle/mat-exports.d.ts +14 -0
- package/typings/slide-toggle/public_api.d.ts +10 -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/mat-exports.d.ts +14 -0
- package/typings/slider/public_api.d.ts +10 -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/mat-exports.d.ts +18 -0
- package/typings/snack-bar/public_api.d.ts +14 -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 +61 -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/mat-exports.d.ts +16 -0
- package/typings/sort/public_api.d.ts +13 -0
- package/typings/sort/sort-direction.d.ts +8 -0
- package/typings/sort/sort-errors.d.ts +13 -0
- package/typings/sort/sort-header-intl.d.ts +17 -0
- package/typings/sort/sort-header.d.ts +44 -0
- package/typings/sort/sort-module.d.ts +2 -0
- package/typings/sort/sort.d.ts +59 -0
- package/typings/stepper/index.d.ts +4 -0
- package/typings/stepper/index.metadata.json +1 -0
- package/typings/stepper/mat-exports.d.ts +21 -0
- package/typings/stepper/public_api.d.ts +13 -0
- package/typings/stepper/step-header.d.ts +23 -0
- package/typings/stepper/step-label.d.ts +14 -0
- package/typings/stepper/stepper-button.d.ts +10 -0
- package/typings/stepper/stepper-module.d.ts +2 -0
- package/typings/stepper/stepper.d.ts +27 -0
- package/typings/table/cell.d.ts +44 -0
- package/typings/table/index.d.ts +4 -0
- package/typings/table/index.metadata.json +1 -0
- package/typings/table/mat-exports.d.ts +20 -0
- package/typings/table/public_api.d.ts +12 -0
- package/typings/table/row.d.ts +30 -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/mat-exports.d.ts +31 -0
- package/typings/tabs/public_api.d.ts +17 -0
- package/typings/tabs/tab-body.d.ts +69 -0
- package/typings/tabs/tab-group.d.ts +100 -0
- package/typings/tabs/tab-header.d.ts +156 -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 +77 -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/mat-exports.d.ts +13 -0
- package/typings/toolbar/public_api.d.ts +10 -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/mat-exports.d.ts +14 -0
- package/typings/tooltip/public_api.d.ts +10 -0
- package/typings/tooltip/tooltip-module.d.ts +2 -0
- package/typings/tooltip/tooltip.d.ts +177 -0
- package/typings/version.d.ts +10 -0
- package/button/README.md +0 -115
- package/button/_button-base.scss +0 -116
- package/button/_button-theme.scss +0 -85
- package/button/button.css +0 -101
- package/button/button.css.map +0 -1
- package/button/button.d.ts +0 -35
- package/button/button.html +0 -6
- package/button/button.js +0 -196
- package/button/button.js.map +0 -1
- package/button/button.metadata.json +0 -1
- package/button/button.scss +0 -72
- package/button/index.js +0 -3
- package/button/index.js.map +0 -1
- package/button-toggle/README.md +0 -149
- package/button-toggle/_button-toggle-theme.scss +0 -14
- package/button-toggle/button-toggle.css +0 -24
- package/button-toggle/button-toggle.css.map +0 -1
- package/button-toggle/button-toggle.d.ts +0 -110
- package/button-toggle/button-toggle.html +0 -14
- package/button-toggle/button-toggle.js +0 -436
- 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 -34
- package/button-toggle/index.js +0 -3
- package/button-toggle/index.js.map +0 -1
- package/card/README.md +0 -116
- package/card/_card-theme.scss +0 -17
- package/card/card-header.html +0 -5
- package/card/card-title-group.html +0 -5
- package/card/card.css +0 -140
- package/card/card.css.map +0 -1
- package/card/card.d.ts +0 -35
- package/card/card.html +0 -1
- package/card/card.js +0 -187
- package/card/card.js.map +0 -1
- package/card/card.metadata.json +0 -1
- package/card/card.scss +0 -226
- package/card/index.js +0 -3
- package/card/index.js.map +0 -1
- package/checkbox/README.md +0 -79
- package/checkbox/_checkbox-theme.scss +0 -69
- package/checkbox/checkbox.css +0 -241
- package/checkbox/checkbox.css.map +0 -1
- package/checkbox/checkbox.d.ts +0 -127
- package/checkbox/checkbox.html +0 -37
- package/checkbox/checkbox.js +0 -344
- package/checkbox/checkbox.js.map +0 -1
- package/checkbox/checkbox.metadata.json +0 -1
- package/checkbox/checkbox.scss +0 -412
- package/checkbox/index.js +0 -3
- package/checkbox/index.js.map +0 -1
- package/core/README.md +0 -2
- package/core/_core.scss +0 -27
- package/core/a11y/README.md +0 -30
- package/core/a11y/_a11y.scss +0 -13
- package/core/a11y/focus-trap.d.ts +0 -23
- package/core/a11y/focus-trap.js +0 -82
- 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 -10
- package/core/a11y/index.js +0 -37
- package/core/a11y/index.js.map +0 -1
- package/core/a11y/index.metadata.json +0 -1
- package/core/a11y/interactivity-checker.d.ts +0 -31
- package/core/a11y/interactivity-checker.js +0 -122
- package/core/a11y/interactivity-checker.js.map +0 -1
- package/core/a11y/interactivity-checker.metadata.json +0 -1
- package/core/a11y/live-announcer.d.ts +0 -13
- package/core/a11y/live-announcer.js +0 -56
- package/core/a11y/live-announcer.js.map +0 -1
- package/core/a11y/live-announcer.metadata.json +0 -1
- package/core/annotations/field-value.d.ts +0 -16
- package/core/annotations/field-value.js +0 -30
- package/core/annotations/field-value.js.map +0 -1
- package/core/async/promise-completer.d.ts +0 -6
- package/core/async/promise-completer.js +0 -12
- package/core/async/promise-completer.js.map +0 -1
- package/core/coordination/unique-selection-dispatcher.d.ts +0 -17
- package/core/coordination/unique-selection-dispatcher.js +0 -42
- 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 -28
- package/core/core.js +0 -71
- package/core/core.js.map +0 -1
- package/core/core.metadata.json +0 -1
- package/core/errors/error.d.ts +0 -6
- package/core/errors/error.js +0 -19
- package/core/errors/error.js.map +0 -1
- package/core/gestures/MdGestureConfig.d.ts +0 -7
- package/core/gestures/MdGestureConfig.js +0 -84
- package/core/gestures/MdGestureConfig.js.map +0 -1
- package/core/gestures/MdGestureConfig.metadata.json +0 -1
- package/core/index.js +0 -3
- package/core/index.js.map +0 -1
- package/core/keyboard/keycodes.d.ts +0 -6
- package/core/keyboard/keycodes.js +0 -12
- package/core/keyboard/keycodes.js.map +0 -1
- package/core/keyboard/keycodes.metadata.json +0 -1
- package/core/line/line.d.ts +0 -19
- package/core/line/line.js +0 -65
- package/core/line/line.js.map +0 -1
- package/core/line/line.metadata.json +0 -1
- 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-directives.d.ts +0 -36
- package/core/overlay/overlay-directives.js +0 -120
- 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 -28
- package/core/overlay/overlay-ref.js +0 -82
- package/core/overlay/overlay-ref.js.map +0 -1
- package/core/overlay/overlay-state.d.ts +0 -11
- package/core/overlay/overlay-state.js +0 -13
- package/core/overlay/overlay-state.js.map +0 -1
- package/core/overlay/overlay.css +0 -2
- package/core/overlay/overlay.css.map +0 -1
- package/core/overlay/overlay.d.ts +0 -51
- package/core/overlay/overlay.js +0 -93
- package/core/overlay/overlay.js.map +0 -1
- package/core/overlay/overlay.metadata.json +0 -1
- package/core/overlay/overlay.scss +0 -55
- package/core/overlay/position/connected-position-strategy.d.ts +0 -69
- package/core/overlay/position/connected-position-strategy.js +0 -164
- package/core/overlay/position/connected-position-strategy.js.map +0 -1
- package/core/overlay/position/connected-position.d.ts +0 -22
- package/core/overlay/position/connected-position.js +0 -12
- package/core/overlay/position/connected-position.js.map +0 -1
- package/core/overlay/position/global-position-strategy.d.ts +0 -45
- package/core/overlay/position/global-position-strategy.js +0 -102
- package/core/overlay/position/global-position-strategy.js.map +0 -1
- package/core/overlay/position/overlay-position-builder.d.ts +0 -14
- package/core/overlay/position/overlay-position-builder.js +0 -34
- 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 -5
- 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 -7
- package/core/overlay/position/relative-position-strategy.js +0 -12
- package/core/overlay/position/relative-position-strategy.js.map +0 -1
- package/core/overlay/position/viewport-ruler.d.ts +0 -16
- package/core/overlay/position/viewport-ruler.js +0 -71
- package/core/overlay/position/viewport-ruler.js.map +0 -1
- package/core/overlay/position/viewport-ruler.metadata.json +0 -1
- package/core/portal/README.md +0 -72
- package/core/portal/dom-portal-host.d.ts +0 -17
- package/core/portal/dom-portal-host.js +0 -56
- package/core/portal/dom-portal-host.js.map +0 -1
- package/core/portal/portal-directives.d.ts +0 -38
- package/core/portal/portal-directives.js +0 -124
- 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 -29
- package/core/portal/portal-errors.js +0 -66
- package/core/portal/portal-errors.js.map +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/ripple/README.md +0 -27
- package/core/ripple/_ripple.scss +0 -106
- package/core/ripple/ripple-renderer.d.ts +0 -65
- package/core/ripple/ripple-renderer.js +0 -149
- 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 -75
- package/core/ripple/ripple.js +0 -179
- package/core/ripple/ripple.js.map +0 -1
- package/core/ripple/ripple.metadata.json +0 -1
- package/core/rtl/dir.d.ts +0 -17
- package/core/rtl/dir.js +0 -83
- 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/_list-common.scss +0 -49
- package/core/style/_sidenav-common.scss +0 -8
- package/core/style/_variables.scss +0 -55
- 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/theming/_all-theme.scss +0 -46
- package/core/theming/_palette.scss +0 -694
- package/core/theming/_theming.scss +0 -84
- package/core/theming/prebuilt/deeppurple-amber.css +0 -446
- 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 -446
- 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 -446
- 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 -446
- 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.js +0 -3
- package/core.js.map +0 -1
- package/dialog/README.md +0 -0
- package/dialog/_dialog-theme.scss +0 -11
- package/dialog/dialog-config.d.ts +0 -11
- package/dialog/dialog-config.js +0 -12
- package/dialog/dialog-config.js.map +0 -1
- package/dialog/dialog-container.css +0 -7
- package/dialog/dialog-container.css.map +0 -1
- package/dialog/dialog-container.d.ts +0 -29
- package/dialog/dialog-container.html +0 -3
- package/dialog/dialog-container.js +0 -88
- package/dialog/dialog-container.js.map +0 -1
- package/dialog/dialog-container.metadata.json +0 -1
- package/dialog/dialog-container.scss +0 -12
- package/dialog/dialog-errors.d.ts +0 -5
- package/dialog/dialog-errors.js +0 -16
- package/dialog/dialog-errors.js.map +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-ref.d.ts +0 -20
- package/dialog/dialog-ref.js +0 -29
- package/dialog/dialog-ref.js.map +0 -1
- package/dialog/dialog.d.ts +0 -51
- package/dialog/dialog.js +0 -128
- package/dialog/dialog.js.map +0 -1
- package/dialog/dialog.metadata.json +0 -1
- package/dialog/index.js +0 -6
- package/dialog/index.js.map +0 -1
- package/grid-list/README.md +0 -118
- package/grid-list/_grid-list-theme.scss +0 -6
- package/grid-list/grid-list-errors.d.ts +0 -19
- package/grid-list/grid-list-errors.js +0 -38
- package/grid-list/grid-list-errors.js.map +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 -78
- 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 -3
- package/grid-list/grid-list.js +0 -165
- 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 -3
- package/grid-list/grid-tile.d.ts +0 -28
- package/grid-list/grid-tile.html +0 -4
- package/grid-list/grid-tile.js +0 -87
- 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 -51
- package/grid-list/tile-coordinator.js +0 -124
- package/grid-list/tile-coordinator.js.map +0 -1
- package/grid-list/tile-styler.d.ts +0 -88
- package/grid-list/tile-styler.js +0 -190
- package/grid-list/tile-styler.js.map +0 -1
- package/icon/README.md +0 -116
- package/icon/_icon-theme.scss +0 -6
- package/icon/fake-svgs.d.ts +0 -5
- package/icon/fake-svgs.js +0 -29
- package/icon/fake-svgs.js.map +0 -1
- package/icon/icon-registry.d.ts +0 -148
- package/icon/icon-registry.js +0 -375
- package/icon/icon-registry.js.map +0 -1
- package/icon/icon-registry.metadata.json +0 -1
- package/icon/icon.css +0 -8
- package/icon/icon.css.map +0 -1
- package/icon/icon.d.ts +0 -85
- package/icon/icon.js +0 -252
- 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 -23
- package/index.js +0 -25
- package/index.js.map +0 -1
- package/index.metadata.json +0 -1
- package/input/README.md +0 -121
- package/input/_input-theme.scss +0 -64
- package/input/index.js +0 -3
- package/input/index.js.map +0 -1
- package/input/input.css +0 -109
- package/input/input.css.map +0 -1
- package/input/input.d.ts +0 -134
- package/input/input.html +0 -65
- package/input/input.js +0 -471
- package/input/input.js.map +0 -1
- package/input/input.metadata.json +0 -1
- package/input/input.scss +0 -198
- package/list/README.md +0 -167
- 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 -5
- package/list/list.css +0 -139
- package/list/list.css.map +0 -1
- package/list/list.d.ts +0 -24
- package/list/list.js +0 -113
- package/list/list.js.map +0 -1
- package/list/list.metadata.json +0 -1
- package/list/list.scss +0 -168
- package/material.umd.js +0 -9017
- package/material.umd.js.map +0 -1
- package/menu/README.md +0 -164
- package/menu/_menu-theme.scss +0 -25
- package/menu/index.js +0 -3
- package/menu/index.js.map +0 -1
- package/menu/menu-directive.d.ts +0 -54
- package/menu/menu-directive.js +0 -158
- package/menu/menu-directive.js.map +0 -1
- package/menu/menu-directive.metadata.json +0 -1
- package/menu/menu-errors.d.ts +0 -21
- package/menu/menu-errors.js +0 -40
- package/menu/menu-errors.js.map +0 -1
- package/menu/menu-item.d.ts +0 -18
- package/menu/menu-item.js +0 -74
- package/menu/menu-item.js.map +0 -1
- package/menu/menu-item.metadata.json +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 -62
- package/menu/menu-trigger.js +0 -169
- package/menu/menu-trigger.js.map +0 -1
- package/menu/menu-trigger.metadata.json +0 -1
- package/menu/menu.css +0 -41
- package/menu/menu.css.map +0 -1
- package/menu/menu.d.ts +0 -7
- package/menu/menu.html +0 -6
- package/menu/menu.js +0 -39
- package/menu/menu.js.map +0 -1
- package/menu/menu.metadata.json +0 -1
- package/menu/menu.scss +0 -59
- package/module.d.ts +0 -6
- package/module.js +0 -117
- package/module.js.map +0 -1
- package/module.metadata.json +0 -1
- package/progress-bar/README.md +0 -54
- package/progress-bar/_progress-bar-theme.scss +0 -78
- package/progress-bar/index.js +0 -3
- package/progress-bar/index.js.map +0 -1
- package/progress-bar/progress-bar.css +0 -114
- package/progress-bar/progress-bar.css.map +0 -1
- package/progress-bar/progress-bar.d.ts +0 -34
- package/progress-bar/progress-bar.html +0 -5
- package/progress-bar/progress-bar.js +0 -122
- 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 -229
- package/progress-circle/README.md +0 -51
- package/progress-circle/_progress-circle-theme.scss +0 -23
- package/progress-circle/index.d.ts +0 -1
- package/progress-circle/index.js +0 -3
- package/progress-circle/index.js.map +0 -1
- package/progress-circle/index.metadata.json +0 -1
- package/progress-circle/progress-circle.css +0 -43
- package/progress-circle/progress-circle.css.map +0 -1
- package/progress-circle/progress-circle.d.ts +0 -76
- package/progress-circle/progress-circle.html +0 -9
- package/progress-circle/progress-circle.js +0 -315
- package/progress-circle/progress-circle.js.map +0 -1
- package/progress-circle/progress-circle.metadata.json +0 -1
- package/progress-circle/progress-circle.scss +0 -67
- package/radio/README.md +0 -79
- package/radio/_radio-theme.scss +0 -36
- package/radio/index.js +0 -3
- package/radio/index.js.map +0 -1
- package/radio/radio.css +0 -82
- package/radio/radio.css.map +0 -1
- package/radio/radio.d.ts +0 -127
- package/radio/radio.html +0 -27
- package/radio/radio.js +0 -445
- package/radio/radio.js.map +0 -1
- package/radio/radio.metadata.json +0 -1
- package/radio/radio.scss +0 -92
- package/select/index.js +0 -33
- package/select/index.js.map +0 -1
- package/select/select.css +0 -2
- package/select/select.css.map +0 -1
- package/select/select.d.ts +0 -2
- package/select/select.html +0 -1
- package/select/select.js +0 -25
- package/select/select.js.map +0 -1
- package/select/select.metadata.json +0 -1
- package/select/select.scss +0 -0
- package/sidenav/README.md +0 -83
- package/sidenav/_sidenav-theme.scss +0 -37
- package/sidenav/index.js +0 -3
- package/sidenav/index.js.map +0 -1
- package/sidenav/sidenav-transitions.css +0 -10
- package/sidenav/sidenav-transitions.css.map +0 -1
- package/sidenav/sidenav-transitions.scss +0 -14
- package/sidenav/sidenav.css +0 -111
- package/sidenav/sidenav.css.map +0 -1
- package/sidenav/sidenav.d.ts +0 -141
- package/sidenav/sidenav.html +0 -8
- package/sidenav/sidenav.js +0 -479
- package/sidenav/sidenav.js.map +0 -1
- package/sidenav/sidenav.metadata.json +0 -1
- package/sidenav/sidenav.scss +0 -133
- package/slide-toggle/README.md +0 -66
- package/slide-toggle/_slide-toggle-theme.scss +0 -77
- package/slide-toggle/index.js +0 -3
- package/slide-toggle/index.js.map +0 -1
- package/slide-toggle/slide-toggle.css +0 -88
- package/slide-toggle/slide-toggle.css.map +0 -1
- package/slide-toggle/slide-toggle.d.ts +0 -74
- package/slide-toggle/slide-toggle.html +0 -33
- package/slide-toggle/slide-toggle.js +0 -317
- 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 -140
- package/slider/README.md +0 -97
- package/slider/_slider-theme.scss +0 -33
- package/slider/index.js +0 -3
- package/slider/index.js.map +0 -1
- package/slider/slider.css +0 -122
- package/slider/slider.css.map +0 -1
- package/slider/slider.d.ts +0 -155
- package/slider/slider.html +0 -21
- package/slider/slider.js +0 -433
- package/slider/slider.js.map +0 -1
- package/slider/slider.metadata.json +0 -1
- package/slider/slider.scss +0 -186
- package/slider/test-gesture-config.d.ts +0 -21
- package/slider/test-gesture-config.js +0 -59
- package/slider/test-gesture-config.js.map +0 -1
- package/slider/test-gesture-config.metadata.json +0 -1
- package/snack-bar/README.md +0 -38
- package/snack-bar/index.js +0 -6
- package/snack-bar/index.js.map +0 -1
- package/snack-bar/simple-snack-bar.css +0 -27
- 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 -3
- 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 -11
- package/snack-bar/snack-bar-config.js +0 -10
- package/snack-bar/snack-bar-config.js.map +0 -1
- package/snack-bar/snack-bar-container.css +0 -12
- package/snack-bar/snack-bar-container.css.map +0 -1
- package/snack-bar/snack-bar-container.d.ts +0 -15
- package/snack-bar/snack-bar-container.html +0 -1
- package/snack-bar/snack-bar-container.js +0 -53
- 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 -19
- package/snack-bar/snack-bar-errors.d.ts +0 -4
- package/snack-bar/snack-bar-errors.js +0 -15
- package/snack-bar/snack-bar-errors.js.map +0 -1
- package/snack-bar/snack-bar-ref.d.ts +0 -17
- package/snack-bar/snack-bar-ref.js +0 -28
- package/snack-bar/snack-bar-ref.js.map +0 -1
- package/snack-bar/snack-bar.d.ts +0 -41
- package/snack-bar/snack-bar.js +0 -110
- package/snack-bar/snack-bar.js.map +0 -1
- package/snack-bar/snack-bar.metadata.json +0 -1
- package/tabs/README.md +0 -47
- package/tabs/_tabs-theme.scss +0 -23
- package/tabs/index.js +0 -3
- package/tabs/index.js.map +0 -1
- package/tabs/ink-bar.d.ts +0 -24
- package/tabs/ink-bar.js +0 -50
- package/tabs/ink-bar.js.map +0 -1
- package/tabs/ink-bar.metadata.json +0 -1
- package/tabs/tab-content.d.ts +0 -6
- package/tabs/tab-content.js +0 -32
- package/tabs/tab-content.js.map +0 -1
- package/tabs/tab-content.metadata.json +0 -1
- package/tabs/tab-group.css +0 -55
- package/tabs/tab-group.css.map +0 -1
- package/tabs/tab-group.html +0 -27
- package/tabs/tab-group.scss +0 -72
- package/tabs/tab-label-wrapper.d.ts +0 -10
- package/tabs/tab-label-wrapper.js +0 -31
- 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/tabs.d.ts +0 -79
- package/tabs/tabs.js +0 -290
- package/tabs/tabs.js.map +0 -1
- package/tabs/tabs.metadata.json +0 -1
- 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 -19
- package/toolbar/toolbar.css.map +0 -1
- package/toolbar/toolbar.d.ts +0 -17
- package/toolbar/toolbar.html +0 -6
- package/toolbar/toolbar.js +0 -83
- package/toolbar/toolbar.js.map +0 -1
- package/toolbar/toolbar.metadata.json +0 -1
- package/toolbar/toolbar.scss +0 -36
- package/tooltip/README.md +0 -32
- package/tooltip/_tooltip-theme.scss +0 -9
- package/tooltip/index.js +0 -3
- package/tooltip/index.js.map +0 -1
- package/tooltip/tooltip.css +0 -14
- package/tooltip/tooltip.css.map +0 -1
- package/tooltip/tooltip.d.ts +0 -67
- package/tooltip/tooltip.html +0 -0
- package/tooltip/tooltip.js +0 -210
- package/tooltip/tooltip.js.map +0 -1
- package/tooltip/tooltip.metadata.json +0 -1
- package/tooltip/tooltip.scss +0 -21
- package/tsconfig-spec.json +0 -33
- package/tsconfig.json +0 -33
- package/typings.d.ts +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"material-datepicker.umd.js","sources":["../../src/lib/datepicker/datepicker-module.ts","../../src/lib/datepicker/year-view.ts","../../src/lib/datepicker/month-view.ts","../../src/lib/datepicker/datepicker-toggle.ts","../../src/lib/datepicker/datepicker-input.ts","../../src/lib/datepicker/datepicker.ts","../../src/lib/datepicker/calendar-body.ts","../../src/lib/datepicker/calendar.ts","../../src/lib/datepicker/datepicker-intl.ts","../../src/lib/datepicker/datepicker-errors.ts","../../src/lib/datepicker/coerce-date-property.ts","../../src/lib/form-field/index.ts","../../src/lib/form-field/form-field-module.ts","../../src/lib/form-field/form-field.ts","../../src/lib/form-field/suffix.ts","../../src/lib/form-field/prefix.ts","../../src/lib/form-field/placeholder.ts","../../src/lib/form-field/hint.ts","../../src/lib/form-field/form-field-errors.ts","../../src/lib/form-field/form-field-control.ts","../../src/lib/form-field/error.ts","../../src/lib/icon/index.ts","../../src/lib/icon/icon-module.ts","../../src/lib/icon/icon.ts","../../src/lib/icon/icon-registry.ts","../../src/lib/dialog/index.ts","../../src/lib/dialog/dialog-module.ts","../../src/lib/dialog/dialog-content-directives.ts","../../src/lib/dialog/dialog.ts","../../src/lib/dialog/dialog-ref.ts","../../src/lib/dialog/dialog-container.ts","../../src/lib/dialog/dialog-config.ts","../../src/lib/button/index.ts","../../src/lib/button/button-module.ts","../../src/lib/button/button.ts","../../src/lib/core/testing/month-constants.ts","../../src/lib/core/index.ts","../../src/lib/core/style/index.ts","../../src/lib/core/style/apply-transform.ts","../../src/lib/core/portal/portal-injector.ts","../../src/lib/core/option/index.ts","../../src/lib/core/option/option.ts","../../src/lib/core/option/optgroup.ts","../../src/lib/core/selection/index.ts","../../src/lib/core/selection/pseudo-checkbox/pseudo-checkbox.ts","../../src/lib/core/ripple/index.ts","../../src/lib/core/ripple/ripple.ts","../../src/lib/core/ripple/ripple-renderer.ts","../../src/lib/core/ripple/ripple-ref.ts","../../src/lib/core/line/line.ts","../../src/lib/core/gestures/gesture-config.ts","../../src/lib/core/error/error-options.ts","../../src/lib/core/datetime/index.ts","../../src/lib/core/datetime/native-date-formats.ts","../../src/lib/core/datetime/native-date-adapter.ts","../../src/lib/core/util/object-extend.ts","../../src/lib/core/datetime/date-adapter.ts","../../src/lib/core/coordination/unique-selection-dispatcher.ts","../../src/lib/core/common-behaviors/tabindex.ts","../../src/lib/core/common-behaviors/disable-ripple.ts","../../src/lib/core/common-behaviors/color.ts","../../src/lib/core/common-behaviors/common-module.ts","../../src/lib/core/compatibility/compatibility.ts","../../src/lib/core/animation/animation.ts","../../node_modules/tslib/tslib.es6.js"],"sourcesContent":["/**\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 */\n\n\nimport {A11yModule} from '@angular/cdk/a11y';\nimport {OverlayModule} from '@angular/cdk/overlay';\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {MdButtonModule} from '@angular/material/button';\nimport {MdDialogModule} from '@angular/material/dialog';\nimport {MdIconModule} from '@angular/material/icon';\nimport {MdCalendar} from './calendar';\nimport {MdCalendarBody} from './calendar-body';\nimport {\n MD_DATEPICKER_SCROLL_STRATEGY_PROVIDER,\n MdDatepicker,\n MdDatepickerContent,\n} from './datepicker';\nimport {MdDatepickerInput} from './datepicker-input';\nimport {MdDatepickerIntl} from './datepicker-intl';\nimport {MdDatepickerToggle} from './datepicker-toggle';\nimport {MdMonthView} from './month-view';\nimport {MdYearView} from './year-view';\nexport class MdDatepickerModule {static decorators: DecoratorInvocation[] = [\n{ type: NgModule, args: [{\n imports: [\n CommonModule,\n MdButtonModule,\n MdDialogModule,\n MdIconModule,\n OverlayModule,\n A11yModule,\n ],\n exports: [\n MdCalendar,\n MdCalendarBody,\n MdDatepicker,\n MdDatepickerContent,\n MdDatepickerInput,\n MdDatepickerToggle,\n MdMonthView,\n MdYearView,\n ],\n declarations: [\n MdCalendar,\n MdCalendarBody,\n MdDatepicker,\n MdDatepickerContent,\n MdDatepickerInput,\n MdDatepickerToggle,\n MdMonthView,\n MdYearView,\n ],\n providers: [\n MdDatepickerIntl,\n MD_DATEPICKER_SCROLL_STRATEGY_PROVIDER,\n ],\n entryComponents: [\n MdDatepickerContent,\n ]\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction MdDatepickerModule_tsickle_Closure_declarations() {\n/** @type {?} */\nMdDatepickerModule.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdDatepickerModule.ctorParameters;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\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 */\n\n\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Inject,\n Input,\n Optional,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport {DateAdapter, MD_DATE_FORMATS, MdDateFormats} from '@angular/material/core';\nimport {MdCalendarCell} from './calendar-body';\nimport {coerceDateProperty} from './coerce-date-property';\nimport {createMissingDateImplError} from './datepicker-errors';\n/**\n * An internal component used to display a single year in the datepicker.\n * \\@docs-private\n */\nexport class MdYearView<D> implements AfterContentInit {\n/**\n * The date to display in this year view (everything other than the year is ignored).\n * @return {?}\n */\nget activeDate(): D { return this._activeDate; }\n/**\n * @param {?} value\n * @return {?}\n */\nset activeDate(value: D) {\n let /** @type {?} */ oldActiveDate = this._activeDate;\n this._activeDate = coerceDateProperty(this._dateAdapter, value) || this._dateAdapter.today();\n if (this._dateAdapter.getYear(oldActiveDate) != this._dateAdapter.getYear(this._activeDate)) {\n this._init();\n }\n }\nprivate _activeDate: D;\n/**\n * The currently selected date.\n * @return {?}\n */\nget selected(): D | null { return this._selected; }\n/**\n * @param {?} value\n * @return {?}\n */\nset selected(value: D | null) {\n this._selected = coerceDateProperty(this._dateAdapter, value);\n this._selectedMonth = this._getMonthInCurrentYear(this._selected);\n }\nprivate _selected: D | null;\n/**\n * A function used to filter which dates are selectable.\n */\ndateFilter: (date: D) => boolean;\n/**\n * Emits when a new month is selected.\n */\nselectedChange = new EventEmitter<D>();\n/**\n * Grid of calendar cells representing the months of the year.\n */\n_months: MdCalendarCell[][];\n/**\n * The label for this year (e.g. \"2017\").\n */\n_yearLabel: string;\n/**\n * The month in this year that today falls on. Null if today is in a different year.\n */\n_todayMonth: number | null;\n/**\n * The month in this year that the selected Date falls on.\n * Null if the selected Date is in a different year.\n */\n_selectedMonth: number | null;\n/**\n * @param {?} _dateAdapter\n * @param {?} _dateFormats\n */\nconstructor(\npublic _dateAdapter: DateAdapter<D>,\nprivate _dateFormats: MdDateFormats) {\n if (!this._dateAdapter) {\n throw createMissingDateImplError('DateAdapter');\n }\n if (!this._dateFormats) {\n throw createMissingDateImplError('MD_DATE_FORMATS');\n }\n\n this._activeDate = this._dateAdapter.today();\n }\n/**\n * @return {?}\n */\nngAfterContentInit() {\n this._init();\n }\n/**\n * Handles when a new month is selected.\n * @param {?} month\n * @return {?}\n */\n_monthSelected(month: number) {\n let /** @type {?} */ daysInMonth = this._dateAdapter.getNumDaysInMonth(\n this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate), month, 1));\n this.selectedChange.emit(this._dateAdapter.createDate(\n this._dateAdapter.getYear(this.activeDate), month,\n Math.min(this._dateAdapter.getDate(this.activeDate), daysInMonth)));\n }\n/**\n * Initializes this month view.\n * @return {?}\n */\nprivate _init() {\n this._selectedMonth = this._getMonthInCurrentYear(this.selected);\n this._todayMonth = this._getMonthInCurrentYear(this._dateAdapter.today());\n this._yearLabel = this._dateAdapter.getYearName(this.activeDate);\n\n let /** @type {?} */ monthNames = this._dateAdapter.getMonthNames('short');\n // First row of months only contains 5 elements so we can fit the year label on the same row.\n this._months = [[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11]].map(row => row.map(\n month => this._createCellForMonth(month, monthNames[month])));\n }\n/**\n * Gets the month in this year that the given Date falls on.\n * Returns null if the given Date is in another year.\n * @param {?} date\n * @return {?}\n */\nprivate _getMonthInCurrentYear(date: D | null) {\n return date && this._dateAdapter.getYear(date) == this._dateAdapter.getYear(this.activeDate) ?\n this._dateAdapter.getMonth(date) : null;\n }\n/**\n * Creates an MdCalendarCell for the given month.\n * @param {?} month\n * @param {?} monthName\n * @return {?}\n */\nprivate _createCellForMonth(month: number, monthName: string) {\n let /** @type {?} */ ariaLabel = this._dateAdapter.format(\n this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate), month, 1),\n this._dateFormats.display.monthYearA11yLabel);\n return new MdCalendarCell(\n month, monthName.toLocaleUpperCase(), ariaLabel, this._isMonthEnabled(month));\n }\n/**\n * Whether the given month is enabled.\n * @param {?} month\n * @return {?}\n */\nprivate _isMonthEnabled(month: number) {\n if (!this.dateFilter) {\n return true;\n }\n\n let /** @type {?} */ firstOfMonth = this._dateAdapter.createDate(\n this._dateAdapter.getYear(this.activeDate), month, 1);\n\n // If any date in the month is enabled count the month as enabled.\n for (let /** @type {?} */ date = firstOfMonth; this._dateAdapter.getMonth(date) == month;\n date = this._dateAdapter.addCalendarDays(date, 1)) {\n if (this.dateFilter(date)) {\n return true;\n }\n }\n\n return false;\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Component, args: [{\n moduleId: module.id,\n selector: 'md-year-view, mat-year-view',\n templateUrl: 'year-view.html',\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: DateAdapter, decorators: [{ type: Optional }, ]},\n{type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MD_DATE_FORMATS, ] }, ]},\n];\nstatic propDecorators: {[key: string]: DecoratorInvocation[]} = {\n'activeDate': [{ type: Input },],\n'selected': [{ type: Input },],\n'dateFilter': [{ type: Input },],\n'selectedChange': [{ type: Output },],\n};\n}\n\nfunction MdYearView_tsickle_Closure_declarations() {\n/** @type {?} */\nMdYearView.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdYearView.ctorParameters;\n/** @type {?} */\nMdYearView.propDecorators;\n/** @type {?} */\nMdYearView.prototype._activeDate;\n/** @type {?} */\nMdYearView.prototype._selected;\n/**\n * A function used to filter which dates are selectable.\n * @type {?}\n */\nMdYearView.prototype.dateFilter;\n/**\n * Emits when a new month is selected.\n * @type {?}\n */\nMdYearView.prototype.selectedChange;\n/**\n * Grid of calendar cells representing the months of the year.\n * @type {?}\n */\nMdYearView.prototype._months;\n/**\n * The label for this year (e.g. \"2017\").\n * @type {?}\n */\nMdYearView.prototype._yearLabel;\n/**\n * The month in this year that today falls on. Null if today is in a different year.\n * @type {?}\n */\nMdYearView.prototype._todayMonth;\n/**\n * The month in this year that the selected Date falls on.\n * Null if the selected Date is in a different year.\n * @type {?}\n */\nMdYearView.prototype._selectedMonth;\n/** @type {?} */\nMdYearView.prototype._dateAdapter;\n/** @type {?} */\nMdYearView.prototype._dateFormats;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\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 */\n\n\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Inject,\n Input,\n Optional,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n DateAdapter, MATERIAL_COMPATIBILITY_MODE, MD_DATE_FORMATS,\n MdDateFormats\n} from '@angular/material/core';\nimport {MdCalendarCell} from './calendar-body';\nimport {coerceDateProperty} from './coerce-date-property';\nimport {createMissingDateImplError} from './datepicker-errors';\n\n\nconst /** @type {?} */ DAYS_PER_WEEK = 7;\n/**\n * An internal component used to display a single month in the datepicker.\n * \\@docs-private\n */\nexport class MdMonthView<D> implements AfterContentInit {\n/**\n * The date to display in this month view (everything other than the month and year is ignored).\n * @return {?}\n */\nget activeDate(): D { return this._activeDate; }\n/**\n * @param {?} value\n * @return {?}\n */\nset activeDate(value: D) {\n let /** @type {?} */ oldActiveDate = this._activeDate;\n this._activeDate = coerceDateProperty(this._dateAdapter, value) || this._dateAdapter.today();\n if (!this._hasSameMonthAndYear(oldActiveDate, this._activeDate)) {\n this._init();\n }\n }\nprivate _activeDate: D;\n/**\n * The currently selected date.\n * @return {?}\n */\nget selected(): D | null { return this._selected; }\n/**\n * @param {?} value\n * @return {?}\n */\nset selected(value: D | null) {\n this._selected = coerceDateProperty(this._dateAdapter, value);\n this._selectedDate = this._getDateInCurrentMonth(this._selected);\n }\nprivate _selected: D | null;\n/**\n * A function used to filter which dates are selectable.\n */\ndateFilter: (date: D) => boolean;\n/**\n * Emits when a new date is selected.\n */\nselectedChange = new EventEmitter<D | null>();\n/**\n * Emits when any date is selected.\n */\nuserSelection = new EventEmitter<void>();\n/**\n * The label for this month (e.g. \"January 2017\").\n */\n_monthLabel: string;\n/**\n * Grid of calendar cells representing the dates of the month.\n */\n_weeks: MdCalendarCell[][];\n/**\n * The number of blank cells in the first row before the 1st of the month.\n */\n_firstWeekOffset: number;\n/**\n * The date of the month that the currently selected Date falls on.\n * Null if the currently selected Date is in another month.\n */\n_selectedDate: number | null;\n/**\n * The date of the month that today falls on. Null if today is in another month.\n */\n_todayDate: number | null;\n/**\n * The names of the weekdays.\n */\n_weekdays: {long: string, narrow: string}[];\n/**\n * @param {?} _dateAdapter\n * @param {?} _dateFormats\n */\nconstructor(\npublic _dateAdapter: DateAdapter<D>,\nprivate _dateFormats: MdDateFormats) {\n if (!this._dateAdapter) {\n throw createMissingDateImplError('DateAdapter');\n }\n if (!this._dateFormats) {\n throw createMissingDateImplError('MD_DATE_FORMATS');\n }\n\n const firstDayOfWeek = this._dateAdapter.getFirstDayOfWeek();\n const narrowWeekdays = this._dateAdapter.getDayOfWeekNames('narrow');\n const longWeekdays = this._dateAdapter.getDayOfWeekNames('long');\n\n // Rotate the labels for days of the week based on the configured first day of the week.\n let weekdays = longWeekdays.map((long, i) => {\n return {long, narrow: narrowWeekdays[i]};\n });\n this._weekdays = weekdays.slice(firstDayOfWeek).concat(weekdays.slice(0, firstDayOfWeek));\n\n this._activeDate = this._dateAdapter.today();\n }\n/**\n * @return {?}\n */\nngAfterContentInit(): void {\n this._init();\n }\n/**\n * Handles when a new date is selected.\n * @param {?} date\n * @return {?}\n */\n_dateSelected(date: number) {\n if (this._selectedDate != date) {\n const /** @type {?} */ selectedYear = this._dateAdapter.getYear(this.activeDate);\n const /** @type {?} */ selectedMonth = this._dateAdapter.getMonth(this.activeDate);\n const /** @type {?} */ selectedDate = this._dateAdapter.createDate(selectedYear, selectedMonth, date);\n\n this.selectedChange.emit(selectedDate);\n }\n\n this.userSelection.emit();\n }\n/**\n * Initializes this month view.\n * @return {?}\n */\nprivate _init() {\n this._selectedDate = this._getDateInCurrentMonth(this.selected);\n this._todayDate = this._getDateInCurrentMonth(this._dateAdapter.today());\n this._monthLabel =\n this._dateAdapter.getMonthNames('short')[this._dateAdapter.getMonth(this.activeDate)]\n .toLocaleUpperCase();\n\n let /** @type {?} */ firstOfMonth = this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate),\n this._dateAdapter.getMonth(this.activeDate), 1);\n this._firstWeekOffset =\n (DAYS_PER_WEEK + this._dateAdapter.getDayOfWeek(firstOfMonth) -\n this._dateAdapter.getFirstDayOfWeek()) % DAYS_PER_WEEK;\n\n this._createWeekCells();\n }\n/**\n * Creates MdCalendarCells for the dates in this month.\n * @return {?}\n */\nprivate _createWeekCells() {\n let /** @type {?} */ daysInMonth = this._dateAdapter.getNumDaysInMonth(this.activeDate);\n let /** @type {?} */ dateNames = this._dateAdapter.getDateNames();\n this._weeks = [[]];\n for (let /** @type {?} */ i = 0, /** @type {?} */ cell = this._firstWeekOffset; i < daysInMonth; i++, cell++) {\n if (cell == DAYS_PER_WEEK) {\n this._weeks.push([]);\n cell = 0;\n }\n let /** @type {?} */ date = this._dateAdapter.createDate(\n this._dateAdapter.getYear(this.activeDate),\n this._dateAdapter.getMonth(this.activeDate), i + 1);\n let /** @type {?} */ enabled = !this.dateFilter ||\n this.dateFilter(date);\n let /** @type {?} */ ariaLabel = this._dateAdapter.format(date, this._dateFormats.display.dateA11yLabel);\n this._weeks[this._weeks.length - 1]\n .push(new MdCalendarCell(i + 1, dateNames[i], ariaLabel, enabled));\n }\n }\n/**\n * Gets the date in this month that the given Date falls on.\n * Returns null if the given Date is in another month.\n * @param {?} date\n * @return {?}\n */\nprivate _getDateInCurrentMonth(date: D | null): number | null {\n return date && this._hasSameMonthAndYear(date, this.activeDate) ?\n this._dateAdapter.getDate(date) : null;\n }\n/**\n * Checks whether the 2 dates are non-null and fall within the same month of the same year.\n * @param {?} d1\n * @param {?} d2\n * @return {?}\n */\nprivate _hasSameMonthAndYear(d1: D | null, d2: D | null): boolean {\n return !!(d1 && d2 && this._dateAdapter.getMonth(d1) == this._dateAdapter.getMonth(d2) &&\n this._dateAdapter.getYear(d1) == this._dateAdapter.getYear(d2));\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Component, args: [{\n moduleId: module.id,\n selector: 'md-month-view',\n templateUrl: 'month-view.html',\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n viewProviders: [{provide: MATERIAL_COMPATIBILITY_MODE, useValue: true}],\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: DateAdapter, decorators: [{ type: Optional }, ]},\n{type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MD_DATE_FORMATS, ] }, ]},\n];\nstatic propDecorators: {[key: string]: DecoratorInvocation[]} = {\n'activeDate': [{ type: Input },],\n'selected': [{ type: Input },],\n'dateFilter': [{ type: Input },],\n'selectedChange': [{ type: Output },],\n'userSelection': [{ type: Output },],\n};\n}\n\nfunction MdMonthView_tsickle_Closure_declarations() {\n/** @type {?} */\nMdMonthView.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdMonthView.ctorParameters;\n/** @type {?} */\nMdMonthView.propDecorators;\n/** @type {?} */\nMdMonthView.prototype._activeDate;\n/** @type {?} */\nMdMonthView.prototype._selected;\n/**\n * A function used to filter which dates are selectable.\n * @type {?}\n */\nMdMonthView.prototype.dateFilter;\n/**\n * Emits when a new date is selected.\n * @type {?}\n */\nMdMonthView.prototype.selectedChange;\n/**\n * Emits when any date is selected.\n * @type {?}\n */\nMdMonthView.prototype.userSelection;\n/**\n * The label for this month (e.g. \"January 2017\").\n * @type {?}\n */\nMdMonthView.prototype._monthLabel;\n/**\n * Grid of calendar cells representing the dates of the month.\n * @type {?}\n */\nMdMonthView.prototype._weeks;\n/**\n * The number of blank cells in the first row before the 1st of the month.\n * @type {?}\n */\nMdMonthView.prototype._firstWeekOffset;\n/**\n * The date of the month that the currently selected Date falls on.\n * Null if the currently selected Date is in another month.\n * @type {?}\n */\nMdMonthView.prototype._selectedDate;\n/**\n * The date of the month that today falls on. Null if today is in another month.\n * @type {?}\n */\nMdMonthView.prototype._todayDate;\n/**\n * The names of the weekdays.\n * @type {?}\n */\nMdMonthView.prototype._weekdays;\n/** @type {?} */\nMdMonthView.prototype._dateAdapter;\n/** @type {?} */\nMdMonthView.prototype._dateFormats;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\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 */\n\n\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n ViewEncapsulation,\n OnDestroy,\n OnChanges,\n SimpleChanges,\n ChangeDetectorRef,\n} from '@angular/core';\nimport {MdDatepicker} from './datepicker';\nimport {MdDatepickerIntl} from './datepicker-intl';\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {Subscription} from 'rxjs/Subscription';\nimport {merge} from 'rxjs/observable/merge';\nimport {of as observableOf} from 'rxjs/observable/of';\nimport {MATERIAL_COMPATIBILITY_MODE} from '@angular/material/core';\nexport class MdDatepickerToggle<D> implements OnChanges, OnDestroy {\nprivate _stateChanges = Subscription.EMPTY;\n/**\n * Datepicker instance that the button will toggle.\n */\ndatepicker: MdDatepicker<D>;\n/**\n * Whether the toggle button is disabled.\n * @return {?}\n */\nget disabled() {\n return this._disabled === undefined ? this.datepicker.disabled : this._disabled;\n }\n/**\n * @param {?} value\n * @return {?}\n */\nset disabled(value) {\n this._disabled = coerceBooleanProperty(value);\n }\nprivate _disabled: boolean;\n/**\n * @param {?} _intl\n * @param {?} _changeDetectorRef\n */\nconstructor(\npublic _intl: MdDatepickerIntl,\nprivate _changeDetectorRef: ChangeDetectorRef) {}\n/**\n * @param {?} changes\n * @return {?}\n */\nngOnChanges(changes: SimpleChanges) {\n if (changes.datepicker) {\n const /** @type {?} */ datepicker: MdDatepicker<D> = changes.datepicker.currentValue;\n const /** @type {?} */ datepickerDisabled = datepicker ? datepicker._disabledChange : observableOf();\n const /** @type {?} */ inputDisabled = datepicker && datepicker._datepickerInput ?\n datepicker._datepickerInput._disabledChange :\n observableOf();\n\n this._stateChanges.unsubscribe();\n this._stateChanges = merge(this._intl.changes, datepickerDisabled, inputDisabled)\n .subscribe(() => this._changeDetectorRef.markForCheck());\n }\n }\n/**\n * @return {?}\n */\nngOnDestroy() {\n this._stateChanges.unsubscribe();\n }\n/**\n * @param {?} event\n * @return {?}\n */\n_open(event: Event): void {\n if (this.datepicker && !this.disabled) {\n this.datepicker.open();\n event.stopPropagation();\n }\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Component, args: [{\n moduleId: module.id,\n selector: 'md-datepicker-toggle, mat-datepicker-toggle',\n templateUrl: 'datepicker-toggle.html',\n host: {\n 'class': 'mat-datepicker-toggle',\n },\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n viewProviders: [{provide: MATERIAL_COMPATIBILITY_MODE, useValue: true}],\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: MdDatepickerIntl, },\n{type: ChangeDetectorRef, },\n];\nstatic propDecorators: {[key: string]: DecoratorInvocation[]} = {\n'datepicker': [{ type: Input, args: ['for', ] },],\n'disabled': [{ type: Input },],\n};\n}\n\nfunction MdDatepickerToggle_tsickle_Closure_declarations() {\n/** @type {?} */\nMdDatepickerToggle.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdDatepickerToggle.ctorParameters;\n/** @type {?} */\nMdDatepickerToggle.propDecorators;\n/** @type {?} */\nMdDatepickerToggle.prototype._stateChanges;\n/**\n * Datepicker instance that the button will toggle.\n * @type {?}\n */\nMdDatepickerToggle.prototype.datepicker;\n/** @type {?} */\nMdDatepickerToggle.prototype._disabled;\n/** @type {?} */\nMdDatepickerToggle.prototype._intl;\n/** @type {?} */\nMdDatepickerToggle.prototype._changeDetectorRef;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\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 */\n\n\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {DOWN_ARROW} from '@angular/cdk/keycodes';\nimport {\n AfterContentInit,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n OnDestroy,\n Optional,\n Output,\n Renderer2,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n ValidatorFn,\n Validators,\n} from '@angular/forms';\nimport {DateAdapter, MD_DATE_FORMATS, MdDateFormats} from '@angular/material/core';\nimport {MdFormField} from '@angular/material/form-field';\nimport {Subscription} from 'rxjs/Subscription';\nimport {coerceDateProperty} from './coerce-date-property';\nimport {MdDatepicker} from './datepicker';\nimport {createMissingDateImplError} from './datepicker-errors';\n\n\nexport const /** @type {?} */ MD_DATEPICKER_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MdDatepickerInput),\n multi: true\n};\n\n\nexport const /** @type {?} */ MD_DATEPICKER_VALIDATORS: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => MdDatepickerInput),\n multi: true\n};\n/**\n * An event used for datepicker input and change events. We don't always have access to a native\n * input or change event because the event may have been triggered by the user clicking on the\n * calendar popup. For consistency, we always use MdDatepickerInputEvent instead.\n */\nexport class MdDatepickerInputEvent<D> {\n/**\n * The new value for the target datepicker input.\n */\nvalue: D | null;\n/**\n * @param {?} target\n * @param {?} targetElement\n */\nconstructor(public target: MdDatepickerInput<D>,\npublic targetElement: HTMLElement) {\n this.value = this.target.value;\n }\n}\n\nfunction MdDatepickerInputEvent_tsickle_Closure_declarations() {\n/**\n * The new value for the target datepicker input.\n * @type {?}\n */\nMdDatepickerInputEvent.prototype.value;\n/** @type {?} */\nMdDatepickerInputEvent.prototype.target;\n/** @type {?} */\nMdDatepickerInputEvent.prototype.targetElement;\n}\n\n/**\n * Directive used to connect an input to a MdDatepicker.\n */\nexport class MdDatepickerInput<D> implements AfterContentInit, ControlValueAccessor, OnDestroy,\n Validator {\n/**\n * The datepicker that this input is associated with.\n * @param {?} value\n * @return {?}\n */\nset mdDatepicker(value: MdDatepicker<D>) {\n this.registerDatepicker(value);\n }\n _datepicker: MdDatepicker<D>;\n/**\n * @param {?} value\n * @return {?}\n */\nprivate registerDatepicker(value: MdDatepicker<D>) {\n if (value) {\n this._datepicker = value;\n this._datepicker._registerInput(this);\n }\n }\n/**\n * @param {?} value\n * @return {?}\n */\nset matDatepicker(value: MdDatepicker<D>) {\n // Note that we don't set `this.mdDatepicker = value` here,\n // because that line gets stripped by the JS compiler.\n this.registerDatepicker(value);\n }\n/**\n * @param {?} filter\n * @return {?}\n */\nset mdDatepickerFilter(filter: (date: D | null) => boolean) {\n this._dateFilter = filter;\n this._validatorOnChange();\n }\n _dateFilter: (date: D | null) => boolean;\n/**\n * @param {?} filter\n * @return {?}\n */\nset matDatepickerFilter(filter: (date: D | null) => boolean) {\n this.mdDatepickerFilter = filter;\n }\n/**\n * The value of the input.\n * @return {?}\n */\nget value(): D | null {\n return this._value;\n }\n/**\n * @param {?} value\n * @return {?}\n */\nset value(value: D | null) {\n value = coerceDateProperty(this._dateAdapter, value);\n this._lastValueValid = !value || this._dateAdapter.isValid(value);\n value = this._getValidDateOrNull(value);\n\n let /** @type {?} */ oldDate = this.value;\n this._value = value;\n this._renderer.setProperty(this._elementRef.nativeElement, 'value',\n value ? this._dateAdapter.format(value, this._dateFormats.display.dateInput) : '');\n if (!this._dateAdapter.sameDate(oldDate, value)) {\n this._valueChange.emit(value);\n }\n }\nprivate _value: D | null;\n/**\n * The minimum valid date.\n * @return {?}\n */\nget min(): D | null { return this._min; }\n/**\n * @param {?} value\n * @return {?}\n */\nset min(value: D | null) {\n this._min = coerceDateProperty(this._dateAdapter, value);\n this._validatorOnChange();\n }\nprivate _min: D | null;\n/**\n * The maximum valid date.\n * @return {?}\n */\nget max(): D | null { return this._max; }\n/**\n * @param {?} value\n * @return {?}\n */\nset max(value: D | null) {\n this._max = coerceDateProperty(this._dateAdapter, value);\n this._validatorOnChange();\n }\nprivate _max: D | null;\n/**\n * Whether the datepicker-input is disabled.\n * @return {?}\n */\nget disabled() { return this._disabled; }\n/**\n * @param {?} value\n * @return {?}\n */\nset disabled(value: any) {\n const /** @type {?} */ newValue = coerceBooleanProperty(value);\n\n if (this._disabled !== newValue) {\n this._disabled = newValue;\n this._disabledChange.emit(newValue);\n }\n }\nprivate _disabled: boolean;\n/**\n * Emits when a `change` event is fired on this `<input>`.\n */\ndateChange = new EventEmitter<MdDatepickerInputEvent<D>>();\n/**\n * Emits when an `input` event is fired on this `<input>`.\n */\ndateInput = new EventEmitter<MdDatepickerInputEvent<D>>();\n/**\n * Emits when the value changes (either due to user input or programmatic change).\n */\n_valueChange = new EventEmitter<D|null>();\n/**\n * Emits when the disabled state has changed\n */\n_disabledChange = new EventEmitter<boolean>();\n\n _onTouched = () => {};\nprivate _cvaOnChange: (value: any) => void = () => {};\nprivate _validatorOnChange = () => {};\nprivate _datepickerSubscription = Subscription.EMPTY;\nprivate _localeSubscription = Subscription.EMPTY;\n/**\n * The form control validator for whether the input parses.\n */\nprivate _parseValidator: ValidatorFn = (): ValidationErrors | null => {\n return this._lastValueValid ?\n null : {'mdDatepickerParse': {'text': this._elementRef.nativeElement.value}};\n }\n/**\n * The form control validator for the min date.\n */\nprivate _minValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n const controlValue = coerceDateProperty(this._dateAdapter, control.value);\n return (!this.min || !controlValue ||\n this._dateAdapter.compareDate(this.min, controlValue) <= 0) ?\n null : {'mdDatepickerMin': {'min': this.min, 'actual': controlValue}};\n }\n/**\n * The form control validator for the max date.\n */\nprivate _maxValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n const controlValue = coerceDateProperty(this._dateAdapter, control.value);\n return (!this.max || !controlValue ||\n this._dateAdapter.compareDate(this.max, controlValue) >= 0) ?\n null : {'mdDatepickerMax': {'max': this.max, 'actual': controlValue}};\n }\n/**\n * The form control validator for the date filter.\n */\nprivate _filterValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n const controlValue = coerceDateProperty(this._dateAdapter, control.value);\n return !this._dateFilter || !controlValue || this._dateFilter(controlValue) ?\n null : {'mdDatepickerFilter': true};\n }\n/**\n * The combined form control validator for this input.\n */\nprivate _validator: ValidatorFn | null =\n Validators.compose(\n [this._parseValidator, this._minValidator, this._maxValidator, this._filterValidator]);\n/**\n * Whether the last value set on the input was valid.\n */\nprivate _lastValueValid = false;\n/**\n * @param {?} _elementRef\n * @param {?} _renderer\n * @param {?} _dateAdapter\n * @param {?} _dateFormats\n * @param {?} _mdFormField\n */\nconstructor(\nprivate _elementRef: ElementRef,\nprivate _renderer: Renderer2,\nprivate _dateAdapter: DateAdapter<D>,\nprivate _dateFormats: MdDateFormats,\nprivate _mdFormField: MdFormField) {\n if (!this._dateAdapter) {\n throw createMissingDateImplError('DateAdapter');\n }\n if (!this._dateFormats) {\n throw createMissingDateImplError('MD_DATE_FORMATS');\n }\n\n // Update the displayed date when the locale changes.\n this._localeSubscription = _dateAdapter.localeChanges.subscribe(() => {\n this.value = this.value;\n });\n }\n/**\n * @return {?}\n */\nngAfterContentInit() {\n if (this._datepicker) {\n this._datepickerSubscription =\n this._datepicker.selectedChanged.subscribe((selected: D) => {\n this.value = selected;\n this._cvaOnChange(selected);\n this._onTouched();\n this.dateInput.emit(new MdDatepickerInputEvent(this, this._elementRef.nativeElement));\n this.dateChange.emit(new MdDatepickerInputEvent(this, this._elementRef.nativeElement));\n });\n }\n }\n/**\n * @return {?}\n */\nngOnDestroy() {\n this._datepickerSubscription.unsubscribe();\n this._localeSubscription.unsubscribe();\n this._valueChange.complete();\n this._disabledChange.complete();\n }\n/**\n * @param {?} fn\n * @return {?}\n */\nregisterOnValidatorChange(fn: () => void): void {\n this._validatorOnChange = fn;\n }\n/**\n * @param {?} c\n * @return {?}\n */\nvalidate(c: AbstractControl): ValidationErrors | null {\n return this._validator ? this._validator(c) : null;\n }\n/**\n * Gets the element that the datepicker popup should be connected to.\n * @return {?} The element to connect the popup to.\n */\ngetPopupConnectionElementRef(): ElementRef {\n return this._mdFormField ? this._mdFormField.underlineRef : this._elementRef;\n }\n/**\n * @param {?} value\n * @return {?}\n */\nwriteValue(value: D): void {\n this.value = value;\n }\n/**\n * @param {?} fn\n * @return {?}\n */\nregisterOnChange(fn: (value: any) => void): void {\n this._cvaOnChange = fn;\n }\n/**\n * @param {?} fn\n * @return {?}\n */\nregisterOnTouched(fn: () => void): void {\n this._onTouched = fn;\n }\n/**\n * @param {?} disabled\n * @return {?}\n */\nsetDisabledState(disabled: boolean): void {\n this._renderer.setProperty(this._elementRef.nativeElement, 'disabled', disabled);\n }\n/**\n * @param {?} event\n * @return {?}\n */\n_onKeydown(event: KeyboardEvent) {\n if (event.altKey && event.keyCode === DOWN_ARROW) {\n this._datepicker.open();\n event.preventDefault();\n }\n }\n/**\n * @param {?} value\n * @return {?}\n */\n_onInput(value: string) {\n let /** @type {?} */ date = this._dateAdapter.parse(value, this._dateFormats.parse.dateInput);\n this._lastValueValid = !date || this._dateAdapter.isValid(date);\n date = this._getValidDateOrNull(date);\n this._value = date;\n this._cvaOnChange(date);\n this._valueChange.emit(date);\n this.dateInput.emit(new MdDatepickerInputEvent(this, this._elementRef.nativeElement));\n }\n/**\n * @return {?}\n */\n_onChange() {\n this.dateChange.emit(new MdDatepickerInputEvent(this, this._elementRef.nativeElement));\n }\n/**\n * @param {?} obj The object to check.\n * @return {?} The given object if it is both a date instance and valid, otherwise null.\n */\nprivate _getValidDateOrNull(obj: any): D | null {\n return (this._dateAdapter.isDateInstance(obj) && this._dateAdapter.isValid(obj)) ? obj : null;\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Directive, args: [{\n selector: 'input[mdDatepicker], input[matDatepicker]',\n providers: [MD_DATEPICKER_VALUE_ACCESSOR, MD_DATEPICKER_VALIDATORS],\n host: {\n '[attr.aria-haspopup]': 'true',\n '[attr.aria-owns]': '(_datepicker?.opened && _datepicker.id) || null',\n '[attr.min]': 'min ? _dateAdapter.toIso8601(min) : null',\n '[attr.max]': 'max ? _dateAdapter.toIso8601(max) : null',\n '[disabled]': 'disabled',\n '(input)': '_onInput($event.target.value)',\n '(change)': '_onChange()',\n '(blur)': '_onTouched()',\n '(keydown)': '_onKeydown($event)',\n },\n exportAs: 'mdDatepickerInput, matDatepickerInput',\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: ElementRef, },\n{type: Renderer2, },\n{type: DateAdapter, decorators: [{ type: Optional }, ]},\n{type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MD_DATE_FORMATS, ] }, ]},\n{type: MdFormField, decorators: [{ type: Optional }, ]},\n];\nstatic propDecorators: {[key: string]: DecoratorInvocation[]} = {\n'mdDatepicker': [{ type: Input },],\n'matDatepicker': [{ type: Input },],\n'mdDatepickerFilter': [{ type: Input },],\n'matDatepickerFilter': [{ type: Input },],\n'value': [{ type: Input },],\n'min': [{ type: Input },],\n'max': [{ type: Input },],\n'disabled': [{ type: Input },],\n'dateChange': [{ type: Output },],\n'dateInput': [{ type: Output },],\n};\n}\n\nfunction MdDatepickerInput_tsickle_Closure_declarations() {\n/** @type {?} */\nMdDatepickerInput.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdDatepickerInput.ctorParameters;\n/** @type {?} */\nMdDatepickerInput.propDecorators;\n/** @type {?} */\nMdDatepickerInput.prototype._datepicker;\n/** @type {?} */\nMdDatepickerInput.prototype._dateFilter;\n/** @type {?} */\nMdDatepickerInput.prototype._value;\n/** @type {?} */\nMdDatepickerInput.prototype._min;\n/** @type {?} */\nMdDatepickerInput.prototype._max;\n/** @type {?} */\nMdDatepickerInput.prototype._disabled;\n/**\n * Emits when a `change` event is fired on this `<input>`.\n * @type {?}\n */\nMdDatepickerInput.prototype.dateChange;\n/**\n * Emits when an `input` event is fired on this `<input>`.\n * @type {?}\n */\nMdDatepickerInput.prototype.dateInput;\n/**\n * Emits when the value changes (either due to user input or programmatic change).\n * @type {?}\n */\nMdDatepickerInput.prototype._valueChange;\n/**\n * Emits when the disabled state has changed\n * @type {?}\n */\nMdDatepickerInput.prototype._disabledChange;\n/** @type {?} */\nMdDatepickerInput.prototype._onTouched;\n/** @type {?} */\nMdDatepickerInput.prototype._cvaOnChange;\n/** @type {?} */\nMdDatepickerInput.prototype._validatorOnChange;\n/** @type {?} */\nMdDatepickerInput.prototype._datepickerSubscription;\n/** @type {?} */\nMdDatepickerInput.prototype._localeSubscription;\n/**\n * The form control validator for whether the input parses.\n * @type {?}\n */\nMdDatepickerInput.prototype._parseValidator;\n/**\n * The form control validator for the min date.\n * @type {?}\n */\nMdDatepickerInput.prototype._minValidator;\n/**\n * The form control validator for the max date.\n * @type {?}\n */\nMdDatepickerInput.prototype._maxValidator;\n/**\n * The form control validator for the date filter.\n * @type {?}\n */\nMdDatepickerInput.prototype._filterValidator;\n/**\n * The combined form control validator for this input.\n * @type {?}\n */\nMdDatepickerInput.prototype._validator;\n/**\n * Whether the last value set on the input was valid.\n * @type {?}\n */\nMdDatepickerInput.prototype._lastValueValid;\n/** @type {?} */\nMdDatepickerInput.prototype._elementRef;\n/** @type {?} */\nMdDatepickerInput.prototype._renderer;\n/** @type {?} */\nMdDatepickerInput.prototype._dateAdapter;\n/** @type {?} */\nMdDatepickerInput.prototype._dateFormats;\n/** @type {?} */\nMdDatepickerInput.prototype._mdFormField;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\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 */\n\n\nimport {Directionality} from '@angular/cdk/bidi';\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {ESCAPE} from '@angular/cdk/keycodes';\nimport {\n Overlay,\n OverlayRef,\n OverlayConfig,\n PositionStrategy,\n RepositionScrollStrategy,\n ScrollStrategy,\n} from '@angular/cdk/overlay';\nimport {ComponentPortal} from '@angular/cdk/portal';\nimport {first} from '@angular/cdk/rxjs';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n EventEmitter,\n Inject,\n InjectionToken,\n Input,\n NgZone,\n OnDestroy,\n Optional,\n Output,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport {DateAdapter, MATERIAL_COMPATIBILITY_MODE} from '@angular/material/core';\nimport {MdDialog, MdDialogRef} from '@angular/material/dialog';\nimport {DOCUMENT} from '@angular/platform-browser';\nimport {Subject} from 'rxjs/Subject';\nimport {Subscription} from 'rxjs/Subscription';\nimport {MdCalendar} from './calendar';\nimport {coerceDateProperty} from './coerce-date-property';\nimport {createMissingDateImplError} from './datepicker-errors';\nimport {MdDatepickerInput} from './datepicker-input';\n/**\n * Used to generate a unique ID for each datepicker instance.\n */\nlet datepickerUid = 0;\n/**\n * Injection token that determines the scroll handling while the calendar is open.\n */\nexport const MD_DATEPICKER_SCROLL_STRATEGY =\n new InjectionToken<() => ScrollStrategy>('md-datepicker-scroll-strategy');\n/**\n * \\@docs-private\n * @param {?} overlay\n * @return {?}\n */\nexport function MD_DATEPICKER_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay: Overlay):\n () => RepositionScrollStrategy {\n return () => overlay.scrollStrategies.reposition();\n}\n/**\n * \\@docs-private\n */\nexport const MD_DATEPICKER_SCROLL_STRATEGY_PROVIDER = {\n provide: MD_DATEPICKER_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: MD_DATEPICKER_SCROLL_STRATEGY_PROVIDER_FACTORY,\n};\n/**\n * Component used as the content for the datepicker dialog and popup. We use this instead of using\n * MdCalendar directly as the content so we can control the initial focus. This also gives us a\n * place to put additional features of the popup that are not part of the calendar itself in the\n * future. (e.g. confirmation buttons).\n * \\@docs-private\n */\nexport class MdDatepickerContent<D> implements AfterContentInit {\n datepicker: MdDatepicker<D>;\n\n _calendar: MdCalendar<D>;\n/**\n * @return {?}\n */\nngAfterContentInit() {\n this._calendar._focusActiveCell();\n }\n/**\n * Handles keydown event on datepicker content.\n * @param {?} event The event.\n * @return {?}\n */\n_handleKeydown(event: KeyboardEvent): void {\n if (event.keyCode === ESCAPE) {\n this.datepicker.close();\n event.preventDefault();\n event.stopPropagation();\n }\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Component, args: [{\n moduleId: module.id,\n selector: 'md-datepicker-content, mat-datepicker-content',\n templateUrl: 'datepicker-content.html',\n styleUrls: ['datepicker-content.css'],\n host: {\n 'class': 'mat-datepicker-content',\n '[class.mat-datepicker-content-touch]': 'datepicker.touchUi',\n '(keydown)': '_handleKeydown($event)',\n },\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n viewProviders: [{provide: MATERIAL_COMPATIBILITY_MODE, useValue: true}],\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\nstatic propDecorators: {[key: string]: DecoratorInvocation[]} = {\n'_calendar': [{ type: ViewChild, args: [MdCalendar, ] },],\n};\n}\n\nfunction MdDatepickerContent_tsickle_Closure_declarations() {\n/** @type {?} */\nMdDatepickerContent.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdDatepickerContent.ctorParameters;\n/** @type {?} */\nMdDatepickerContent.propDecorators;\n/** @type {?} */\nMdDatepickerContent.prototype.datepicker;\n/** @type {?} */\nMdDatepickerContent.prototype._calendar;\n}\n\n/**\n * Component responsible for managing the datepicker popup/dialog.\n */\nexport class MdDatepicker<D> implements OnDestroy {\n/**\n * The date to open the calendar to initially.\n * @return {?}\n */\nget startAt(): D | null {\n // If an explicit startAt is set we start there, otherwise we start at whatever the currently\n // selected value is.\n return this._startAt || (this._datepickerInput ? this._datepickerInput.value : null);\n }\n/**\n * @param {?} date\n * @return {?}\n */\nset startAt(date: D | null) { this._startAt = coerceDateProperty(this._dateAdapter, date); }\nprivate _startAt: D | null;\n/**\n * The view that the calendar should start in.\n */\nstartView: 'month' | 'year' = 'month';\n/**\n * Whether the calendar UI is in touch mode. In touch mode the calendar opens in a dialog rather\n * than a popup and elements have more padding to allow for bigger touch targets.\n */\ntouchUi = false;\n/**\n * Whether the datepicker pop-up should be disabled.\n * @return {?}\n */\nget disabled() {\n return this._disabled === undefined ? this._datepickerInput.disabled : this._disabled;\n }\n/**\n * @param {?} value\n * @return {?}\n */\nset disabled(value: any) {\n const /** @type {?} */ newValue = coerceBooleanProperty(value);\n\n if (newValue !== this._disabled) {\n this._disabled = newValue;\n this._disabledChange.next(newValue);\n }\n }\nprivate _disabled: boolean;\n/**\n * Emits new selected date when selected date changes.\n * @deprecated Switch to the `dateChange` and `dateInput` binding on the input element.\n */\nselectedChanged = new EventEmitter<D>();\n/**\n * Whether the calendar is open.\n */\nopened = false;\n/**\n * The id for the datepicker calendar.\n */\nid = `md-datepicker-${datepickerUid++}`;\n/**\n * The currently selected date.\n * @return {?}\n */\nget _selected(): D | null { return this._validSelected; }\n/**\n * @param {?} value\n * @return {?}\n */\nset _selected(value: D | null) { this._validSelected = value; }\nprivate _validSelected: D | null = null;\n/**\n * The minimum selectable date.\n * @return {?}\n */\nget _minDate(): D | null {\n return this._datepickerInput && this._datepickerInput.min;\n }\n/**\n * The maximum selectable date.\n * @return {?}\n */\nget _maxDate(): D | null {\n return this._datepickerInput && this._datepickerInput.max;\n }\n/**\n * @return {?}\n */\nget _dateFilter(): (date: D | null) => boolean {\n return this._datepickerInput && this._datepickerInput._dateFilter;\n }\n/**\n * A reference to the overlay when the calendar is opened as a popup.\n */\nprivate _popupRef: OverlayRef;\n/**\n * A reference to the dialog when the calendar is opened as a dialog.\n */\nprivate _dialogRef: MdDialogRef<any> | null;\n/**\n * A portal containing the calendar for this datepicker.\n */\nprivate _calendarPortal: ComponentPortal<MdDatepickerContent<D>>;\n/**\n * The element that was focused before the datepicker was opened.\n */\nprivate _focusedElementBeforeOpen: HTMLElement | null = null;\nprivate _inputSubscription = Subscription.EMPTY;\n/**\n * The input element this datepicker is associated with.\n */\n_datepickerInput: MdDatepickerInput<D>;\n/**\n * Emits when the datepicker is disabled.\n */\n_disabledChange = new Subject<boolean>();\n/**\n * @param {?} _dialog\n * @param {?} _overlay\n * @param {?} _ngZone\n * @param {?} _viewContainerRef\n * @param {?} _scrollStrategy\n * @param {?} _dateAdapter\n * @param {?} _dir\n * @param {?} _document\n */\nconstructor(private _dialog: MdDialog,\nprivate _overlay: Overlay,\nprivate _ngZone: NgZone,\nprivate _viewContainerRef: ViewContainerRef,\nprivate _scrollStrategy,\nprivate _dateAdapter: DateAdapter<D>,\nprivate _dir: Directionality,\nprivate _document: any) {\n if (!this._dateAdapter) {\n throw createMissingDateImplError('DateAdapter');\n }\n }\n/**\n * @return {?}\n */\nngOnDestroy() {\n this.close();\n this._inputSubscription.unsubscribe();\n this._disabledChange.complete();\n\n if (this._popupRef) {\n this._popupRef.dispose();\n }\n }\n/**\n * Selects the given date\n * @param {?} date\n * @return {?}\n */\n_select(date: D): void {\n let /** @type {?} */ oldValue = this._selected;\n this._selected = date;\n if (!this._dateAdapter.sameDate(oldValue, this._selected)) {\n this.selectedChanged.emit(date);\n }\n }\n/**\n * Register an input with this datepicker.\n * @param {?} input The datepicker input to register with this datepicker.\n * @return {?}\n */\n_registerInput(input: MdDatepickerInput<D>): void {\n if (this._datepickerInput) {\n throw Error('An MdDatepicker can only be associated with a single input.');\n }\n this._datepickerInput = input;\n this._inputSubscription =\n this._datepickerInput._valueChange.subscribe((value: D | null) => this._selected = value);\n }\n/**\n * Open the calendar.\n * @return {?}\n */\nopen(): void {\n if (this.opened || this.disabled) {\n return;\n }\n if (!this._datepickerInput) {\n throw Error('Attempted to open an MdDatepicker with no associated input.');\n }\n if (this._document) {\n this._focusedElementBeforeOpen = this._document.activeElement;\n }\n\n this.touchUi ? this._openAsDialog() : this._openAsPopup();\n this.opened = true;\n }\n/**\n * Close the calendar.\n * @return {?}\n */\nclose(): void {\n if (!this.opened) {\n return;\n }\n if (this._popupRef && this._popupRef.hasAttached()) {\n this._popupRef.detach();\n }\n if (this._dialogRef) {\n this._dialogRef.close();\n this._dialogRef = null;\n }\n if (this._calendarPortal && this._calendarPortal.isAttached) {\n this._calendarPortal.detach();\n }\n if (this._focusedElementBeforeOpen &&\n typeof this._focusedElementBeforeOpen.focus === 'function') {\n\n this._focusedElementBeforeOpen.focus();\n this._focusedElementBeforeOpen = null;\n }\n\n this.opened = false;\n }\n/**\n * Open the calendar as a dialog.\n * @return {?}\n */\nprivate _openAsDialog(): void {\n this._dialogRef = this._dialog.open(MdDatepickerContent, {\n direction: this._dir ? this._dir.value : 'ltr',\n viewContainerRef: this._viewContainerRef,\n });\n this._dialogRef.afterClosed().subscribe(() => this.close());\n this._dialogRef.componentInstance.datepicker = this;\n }\n/**\n * Open the calendar as a popup.\n * @return {?}\n */\nprivate _openAsPopup(): void {\n if (!this._calendarPortal) {\n this._calendarPortal = new ComponentPortal(MdDatepickerContent, this._viewContainerRef);\n }\n\n if (!this._popupRef) {\n this._createPopup();\n }\n\n if (!this._popupRef.hasAttached()) {\n let /** @type {?} */ componentRef: ComponentRef<MdDatepickerContent<D>> =\n this._popupRef.attach(this._calendarPortal);\n componentRef.instance.datepicker = this;\n\n // Update the position once the calendar has rendered.\n first.call(this._ngZone.onStable.asObservable()).subscribe(() => {\n this._popupRef.updatePosition();\n });\n }\n\n this._popupRef.backdropClick().subscribe(() => this.close());\n }\n/**\n * Create the popup.\n * @return {?}\n */\nprivate _createPopup(): void {\n const /** @type {?} */ overlayState = new OverlayConfig({\n positionStrategy: this._createPopupPositionStrategy(),\n hasBackdrop: true,\n backdropClass: 'mat-overlay-transparent-backdrop',\n direction: this._dir ? this._dir.value : 'ltr',\n scrollStrategy: this._scrollStrategy()\n });\n\n this._popupRef = this._overlay.create(overlayState);\n }\n/**\n * Create the popup PositionStrategy.\n * @return {?}\n */\nprivate _createPopupPositionStrategy(): PositionStrategy {\n return this._overlay.position()\n .connectedTo(this._datepickerInput.getPopupConnectionElementRef(),\n {originX: 'start', originY: 'bottom'},\n {overlayX: 'start', overlayY: 'top'}\n )\n .withFallbackPosition(\n { originX: 'start', originY: 'top' },\n { overlayX: 'start', overlayY: 'bottom' }\n )\n .withFallbackPosition(\n {originX: 'end', originY: 'bottom'},\n {overlayX: 'end', overlayY: 'top'}\n )\n .withFallbackPosition(\n { originX: 'end', originY: 'top' },\n { overlayX: 'end', overlayY: 'bottom' }\n );\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Component, args: [{\n moduleId: module.id,\n selector: 'md-datepicker, mat-datepicker',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: MdDialog, },\n{type: Overlay, },\n{type: NgZone, },\n{type: ViewContainerRef, },\n{type: undefined, decorators: [{ type: Inject, args: [MD_DATEPICKER_SCROLL_STRATEGY, ] }, ]},\n{type: DateAdapter, decorators: [{ type: Optional }, ]},\n{type: Directionality, decorators: [{ type: Optional }, ]},\n{type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DOCUMENT, ] }, ]},\n];\nstatic propDecorators: {[key: string]: DecoratorInvocation[]} = {\n'startAt': [{ type: Input },],\n'startView': [{ type: Input },],\n'touchUi': [{ type: Input },],\n'disabled': [{ type: Input },],\n'selectedChanged': [{ type: Output },],\n};\n}\n\nfunction MdDatepicker_tsickle_Closure_declarations() {\n/** @type {?} */\nMdDatepicker.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdDatepicker.ctorParameters;\n/** @type {?} */\nMdDatepicker.propDecorators;\n/** @type {?} */\nMdDatepicker.prototype._startAt;\n/**\n * The view that the calendar should start in.\n * @type {?}\n */\nMdDatepicker.prototype.startView;\n/**\n * Whether the calendar UI is in touch mode. In touch mode the calendar opens in a dialog rather\n * than a popup and elements have more padding to allow for bigger touch targets.\n * @type {?}\n */\nMdDatepicker.prototype.touchUi;\n/** @type {?} */\nMdDatepicker.prototype._disabled;\n/**\n * Emits new selected date when selected date changes.\n * @deprecated Switch to the `dateChange` and `dateInput` binding on the input element.\n * @type {?}\n */\nMdDatepicker.prototype.selectedChanged;\n/**\n * Whether the calendar is open.\n * @type {?}\n */\nMdDatepicker.prototype.opened;\n/**\n * The id for the datepicker calendar.\n * @type {?}\n */\nMdDatepicker.prototype.id;\n/** @type {?} */\nMdDatepicker.prototype._validSelected;\n/**\n * A reference to the overlay when the calendar is opened as a popup.\n * @type {?}\n */\nMdDatepicker.prototype._popupRef;\n/**\n * A reference to the dialog when the calendar is opened as a dialog.\n * @type {?}\n */\nMdDatepicker.prototype._dialogRef;\n/**\n * A portal containing the calendar for this datepicker.\n * @type {?}\n */\nMdDatepicker.prototype._calendarPortal;\n/**\n * The element that was focused before the datepicker was opened.\n * @type {?}\n */\nMdDatepicker.prototype._focusedElementBeforeOpen;\n/** @type {?} */\nMdDatepicker.prototype._inputSubscription;\n/**\n * The input element this datepicker is associated with.\n * @type {?}\n */\nMdDatepicker.prototype._datepickerInput;\n/**\n * Emits when the datepicker is disabled.\n * @type {?}\n */\nMdDatepicker.prototype._disabledChange;\n/** @type {?} */\nMdDatepicker.prototype._dialog;\n/** @type {?} */\nMdDatepicker.prototype._overlay;\n/** @type {?} */\nMdDatepicker.prototype._ngZone;\n/** @type {?} */\nMdDatepicker.prototype._viewContainerRef;\n/** @type {?} */\nMdDatepicker.prototype._scrollStrategy;\n/** @type {?} */\nMdDatepicker.prototype._dateAdapter;\n/** @type {?} */\nMdDatepicker.prototype._dir;\n/** @type {?} */\nMdDatepicker.prototype._document;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\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 */\n\n\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation\n} from '@angular/core';\n/**\n * An internal class that represents the data corresponding to a single calendar cell.\n * \\@docs-private\n */\nexport class MdCalendarCell {\n/**\n * @param {?} value\n * @param {?} displayValue\n * @param {?} ariaLabel\n * @param {?} enabled\n */\nconstructor(public value: number,\npublic displayValue: string,\npublic ariaLabel: string,\npublic enabled: boolean) {}\n}\n\nfunction MdCalendarCell_tsickle_Closure_declarations() {\n/** @type {?} */\nMdCalendarCell.prototype.value;\n/** @type {?} */\nMdCalendarCell.prototype.displayValue;\n/** @type {?} */\nMdCalendarCell.prototype.ariaLabel;\n/** @type {?} */\nMdCalendarCell.prototype.enabled;\n}\n\n/**\n * An internal component used to display calendar data in a table.\n * \\@docs-private\n */\nexport class MdCalendarBody {\n/**\n * The label for the table. (e.g. \"Jan 2017\").\n */\nlabel: string;\n/**\n * The cells to display in the table.\n */\nrows: MdCalendarCell[][];\n/**\n * The value in the table that corresponds to today.\n */\ntodayValue: number;\n/**\n * The value in the table that is currently selected.\n */\nselectedValue: number;\n/**\n * The minimum number of free cells needed to fit the label in the first row.\n */\nlabelMinRequiredCells: number;\n/**\n * The number of columns in the table.\n */\nnumCols = 7;\n/**\n * Whether to allow selection of disabled cells.\n */\nallowDisabledSelection = false;\n/**\n * The cell number of the active cell in the table.\n */\nactiveCell = 0;\n/**\n * The aspect ratio (width / height) to use for the cells in the table. This aspect ratio will be\n * maintained even as the table resizes.\n */\ncellAspectRatio = 1;\n/**\n * Emits when a new value is selected.\n */\nselectedValueChange = new EventEmitter<number>();\n/**\n * @param {?} cell\n * @return {?}\n */\n_cellClicked(cell: MdCalendarCell): void {\n if (!this.allowDisabledSelection && !cell.enabled) {\n return;\n }\n this.selectedValueChange.emit(cell.value);\n }\n/**\n * The number of blank cells to put at the beginning for the first row.\n * @return {?}\n */\nget _firstRowOffset(): number {\n return this.rows && this.rows.length && this.rows[0].length ?\n this.numCols - this.rows[0].length : 0;\n }\n/**\n * @param {?} rowIndex\n * @param {?} colIndex\n * @return {?}\n */\n_isActiveCell(rowIndex: number, colIndex: number): boolean {\n let /** @type {?} */ cellNumber = rowIndex * this.numCols + colIndex;\n\n // Account for the fact that the first row may not have as many cells.\n if (rowIndex) {\n cellNumber -= this._firstRowOffset;\n }\n\n return cellNumber == this.activeCell;\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Component, args: [{\n moduleId: module.id,\n selector: '[md-calendar-body], [mat-calendar-body]',\n templateUrl: 'calendar-body.html',\n styleUrls: ['calendar-body.css'],\n host: {\n 'class': 'mat-calendar-body',\n },\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\nstatic propDecorators: {[key: string]: DecoratorInvocation[]} = {\n'label': [{ type: Input },],\n'rows': [{ type: Input },],\n'todayValue': [{ type: Input },],\n'selectedValue': [{ type: Input },],\n'labelMinRequiredCells': [{ type: Input },],\n'numCols': [{ type: Input },],\n'allowDisabledSelection': [{ type: Input },],\n'activeCell': [{ type: Input },],\n'cellAspectRatio': [{ type: Input },],\n'selectedValueChange': [{ type: Output },],\n};\n}\n\nfunction MdCalendarBody_tsickle_Closure_declarations() {\n/** @type {?} */\nMdCalendarBody.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdCalendarBody.ctorParameters;\n/** @type {?} */\nMdCalendarBody.propDecorators;\n/**\n * The label for the table. (e.g. \"Jan 2017\").\n * @type {?}\n */\nMdCalendarBody.prototype.label;\n/**\n * The cells to display in the table.\n * @type {?}\n */\nMdCalendarBody.prototype.rows;\n/**\n * The value in the table that corresponds to today.\n * @type {?}\n */\nMdCalendarBody.prototype.todayValue;\n/**\n * The value in the table that is currently selected.\n * @type {?}\n */\nMdCalendarBody.prototype.selectedValue;\n/**\n * The minimum number of free cells needed to fit the label in the first row.\n * @type {?}\n */\nMdCalendarBody.prototype.labelMinRequiredCells;\n/**\n * The number of columns in the table.\n * @type {?}\n */\nMdCalendarBody.prototype.numCols;\n/**\n * Whether to allow selection of disabled cells.\n * @type {?}\n */\nMdCalendarBody.prototype.allowDisabledSelection;\n/**\n * The cell number of the active cell in the table.\n * @type {?}\n */\nMdCalendarBody.prototype.activeCell;\n/**\n * The aspect ratio (width / height) to use for the cells in the table. This aspect ratio will be\n * maintained even as the table resizes.\n * @type {?}\n */\nMdCalendarBody.prototype.cellAspectRatio;\n/**\n * Emits when a new value is selected.\n * @type {?}\n */\nMdCalendarBody.prototype.selectedValueChange;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\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 */\n\n\nimport {\n DOWN_ARROW,\n END,\n ENTER,\n HOME,\n LEFT_ARROW,\n PAGE_DOWN,\n PAGE_UP,\n RIGHT_ARROW,\n UP_ARROW,\n} from '@angular/cdk/keycodes';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n Optional,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n DateAdapter,\n MATERIAL_COMPATIBILITY_MODE,\n MD_DATE_FORMATS,\n MdDateFormats,\n} from '@angular/material/core';\nimport {first} from 'rxjs/operator/first';\nimport {Subscription} from 'rxjs/Subscription';\nimport {coerceDateProperty} from './coerce-date-property';\nimport {createMissingDateImplError} from './datepicker-errors';\nimport {MdDatepickerIntl} from './datepicker-intl';\n/**\n * A calendar that is used as part of the datepicker.\n * \\@docs-private\n */\nexport class MdCalendar<D> implements AfterContentInit, OnDestroy {\nprivate _intlChanges: Subscription;\n/**\n * A date representing the period (month or year) to start the calendar in.\n * @return {?}\n */\nget startAt(): D | null { return this._startAt; }\n/**\n * @param {?} value\n * @return {?}\n */\nset startAt(value: D | null) { this._startAt = coerceDateProperty(this._dateAdapter, value); }\nprivate _startAt: D | null;\n/**\n * Whether the calendar should be started in month or year view.\n */\nstartView: 'month' | 'year' = 'month';\n/**\n * The currently selected date.\n * @return {?}\n */\nget selected(): D | null { return this._selected; }\n/**\n * @param {?} value\n * @return {?}\n */\nset selected(value: D | null) { this._selected = coerceDateProperty(this._dateAdapter, value); }\nprivate _selected: D | null;\n/**\n * The minimum selectable date.\n * @return {?}\n */\nget minDate(): D | null { return this._minDate; }\n/**\n * @param {?} value\n * @return {?}\n */\nset minDate(value: D | null) { this._minDate = coerceDateProperty(this._dateAdapter, value); }\nprivate _minDate: D | null;\n/**\n * The maximum selectable date.\n * @return {?}\n */\nget maxDate(): D | null { return this._maxDate; }\n/**\n * @param {?} value\n * @return {?}\n */\nset maxDate(value: D | null) { this._maxDate = coerceDateProperty(this._dateAdapter, value); }\nprivate _maxDate: D | null;\n/**\n * A function used to filter which dates are selectable.\n */\ndateFilter: (date: D) => boolean;\n/**\n * Emits when the currently selected date changes.\n */\nselectedChange = new EventEmitter<D>();\n/**\n * Emits when any date is selected.\n */\nuserSelection = new EventEmitter<void>();\n/**\n * Date filter for the month and year views.\n */\n_dateFilterForViews = (date: D) => {\n return !!date &&\n (!this.dateFilter || this.dateFilter(date)) &&\n (!this.minDate || this._dateAdapter.compareDate(date, this.minDate) >= 0) &&\n (!this.maxDate || this._dateAdapter.compareDate(date, this.maxDate) <= 0);\n }\n/**\n * The current active date. This determines which time period is shown and which date is\n * highlighted when using keyboard navigation.\n * @return {?}\n */\nget _activeDate(): D { return this._clampedActiveDate; }\n/**\n * @param {?} value\n * @return {?}\n */\nset _activeDate(value: D) {\n this._clampedActiveDate = this._dateAdapter.clampDate(value, this.minDate, this.maxDate);\n }\nprivate _clampedActiveDate: D;\n/**\n * Whether the calendar is in month view.\n */\n_monthView: boolean;\n/**\n * The label for the current calendar view.\n * @return {?}\n */\nget _periodButtonText(): string {\n return this._monthView ?\n this._dateAdapter.format(this._activeDate, this._dateFormats.display.monthYearLabel)\n .toLocaleUpperCase() :\n this._dateAdapter.getYearName(this._activeDate);\n }\n/**\n * @return {?}\n */\nget _periodButtonLabel(): string {\n return this._monthView ? this._intl.switchToYearViewLabel : this._intl.switchToMonthViewLabel;\n }\n/**\n * The label for the the previous button.\n * @return {?}\n */\nget _prevButtonLabel(): string {\n return this._monthView ? this._intl.prevMonthLabel : this._intl.prevYearLabel;\n }\n/**\n * The label for the the next button.\n * @return {?}\n */\nget _nextButtonLabel(): string {\n return this._monthView ? this._intl.nextMonthLabel : this._intl.nextYearLabel;\n }\n/**\n * @param {?} _elementRef\n * @param {?} _intl\n * @param {?} _ngZone\n * @param {?} _dateAdapter\n * @param {?} _dateFormats\n * @param {?} changeDetectorRef\n */\nconstructor(private _elementRef: ElementRef,\nprivate _intl: MdDatepickerIntl,\nprivate _ngZone: NgZone,\nprivate _dateAdapter: DateAdapter<D>,\nprivate _dateFormats: MdDateFormats,\n changeDetectorRef: ChangeDetectorRef) {\n\n if (!this._dateAdapter) {\n throw createMissingDateImplError('DateAdapter');\n }\n\n if (!this._dateFormats) {\n throw createMissingDateImplError('MD_DATE_FORMATS');\n }\n\n this._intlChanges = _intl.changes.subscribe(() => changeDetectorRef.markForCheck());\n }\n/**\n * @return {?}\n */\nngAfterContentInit() {\n this._activeDate = this.startAt || this._dateAdapter.today();\n this._focusActiveCell();\n this._monthView = this.startView != 'year';\n }\n/**\n * @return {?}\n */\nngOnDestroy() {\n this._intlChanges.unsubscribe();\n }\n/**\n * Handles date selection in the month view.\n * @param {?} date\n * @return {?}\n */\n_dateSelected(date: D): void {\n if (!this._dateAdapter.sameDate(date, this.selected)) {\n this.selectedChange.emit(date);\n }\n }\n/**\n * @return {?}\n */\n_userSelected(): void {\n this.userSelection.emit();\n }\n/**\n * Handles month selection in the year view.\n * @param {?} month\n * @return {?}\n */\n_monthSelected(month: D): void {\n this._activeDate = month;\n this._monthView = true;\n }\n/**\n * Handles user clicks on the period label.\n * @return {?}\n */\n_currentPeriodClicked(): void {\n this._monthView = !this._monthView;\n }\n/**\n * Handles user clicks on the previous button.\n * @return {?}\n */\n_previousClicked(): void {\n this._activeDate = this._monthView ?\n this._dateAdapter.addCalendarMonths(this._activeDate, -1) :\n this._dateAdapter.addCalendarYears(this._activeDate, -1);\n }\n/**\n * Handles user clicks on the next button.\n * @return {?}\n */\n_nextClicked(): void {\n this._activeDate = this._monthView ?\n this._dateAdapter.addCalendarMonths(this._activeDate, 1) :\n this._dateAdapter.addCalendarYears(this._activeDate, 1);\n }\n/**\n * Whether the previous period button is enabled.\n * @return {?}\n */\n_previousEnabled(): boolean {\n if (!this.minDate) {\n return true;\n }\n return !this.minDate || !this._isSameView(this._activeDate, this.minDate);\n }\n/**\n * Whether the next period button is enabled.\n * @return {?}\n */\n_nextEnabled(): boolean {\n return !this.maxDate || !this._isSameView(this._activeDate, this.maxDate);\n }\n/**\n * Handles keydown events on the calendar body.\n * @param {?} event\n * @return {?}\n */\n_handleCalendarBodyKeydown(event: KeyboardEvent): void {\n // TODO(mmalerba): We currently allow keyboard navigation to disabled dates, but just prevent\n // disabled ones from being selected. This may not be ideal, we should look into whether\n // navigation should skip over disabled dates, and if so, how to implement that efficiently.\n if (this._monthView) {\n this._handleCalendarBodyKeydownInMonthView(event);\n } else {\n this._handleCalendarBodyKeydownInYearView(event);\n }\n }\n/**\n * Focuses the active cell after the microtask queue is empty.\n * @return {?}\n */\n_focusActiveCell() {\n this._ngZone.runOutsideAngular(() => {\n first.call(this._ngZone.onStable.asObservable()).subscribe(() => {\n this._elementRef.nativeElement.querySelector('.mat-calendar-body-active').focus();\n });\n });\n }\n/**\n * Whether the two dates represent the same view in the current view mode (month or year).\n * @param {?} date1\n * @param {?} date2\n * @return {?}\n */\nprivate _isSameView(date1: D, date2: D): boolean {\n return this._monthView ?\n this._dateAdapter.getYear(date1) == this._dateAdapter.getYear(date2) &&\n this._dateAdapter.getMonth(date1) == this._dateAdapter.getMonth(date2) :\n this._dateAdapter.getYear(date1) == this._dateAdapter.getYear(date2);\n }\n/**\n * Handles keydown events on the calendar body when calendar is in month view.\n * @param {?} event\n * @return {?}\n */\nprivate _handleCalendarBodyKeydownInMonthView(event: KeyboardEvent): void {\n switch (event.keyCode) {\n case LEFT_ARROW:\n this._activeDate = this._dateAdapter.addCalendarDays(this._activeDate, -1);\n break;\n case RIGHT_ARROW:\n this._activeDate = this._dateAdapter.addCalendarDays(this._activeDate, 1);\n break;\n case UP_ARROW:\n this._activeDate = this._dateAdapter.addCalendarDays(this._activeDate, -7);\n break;\n case DOWN_ARROW:\n this._activeDate = this._dateAdapter.addCalendarDays(this._activeDate, 7);\n break;\n case HOME:\n this._activeDate = this._dateAdapter.addCalendarDays(this._activeDate,\n 1 - this._dateAdapter.getDate(this._activeDate));\n break;\n case END:\n this._activeDate = this._dateAdapter.addCalendarDays(this._activeDate,\n (this._dateAdapter.getNumDaysInMonth(this._activeDate) -\n this._dateAdapter.getDate(this._activeDate)));\n break;\n case PAGE_UP:\n this._activeDate = event.altKey ?\n this._dateAdapter.addCalendarYears(this._activeDate, -1) :\n this._dateAdapter.addCalendarMonths(this._activeDate, -1);\n break;\n case PAGE_DOWN:\n this._activeDate = event.altKey ?\n this._dateAdapter.addCalendarYears(this._activeDate, 1) :\n this._dateAdapter.addCalendarMonths(this._activeDate, 1);\n break;\n case ENTER:\n if (this._dateFilterForViews(this._activeDate)) {\n this._dateSelected(this._activeDate);\n // Prevent unexpected default actions such as form submission.\n event.preventDefault();\n }\n return;\n default:\n // Don't prevent default or focus active cell on keys that we don't explicitly handle.\n return;\n }\n\n this._focusActiveCell();\n // Prevent unexpected default actions such as form submission.\n event.preventDefault();\n }\n/**\n * Handles keydown events on the calendar body when calendar is in year view.\n * @param {?} event\n * @return {?}\n */\nprivate _handleCalendarBodyKeydownInYearView(event: KeyboardEvent): void {\n switch (event.keyCode) {\n case LEFT_ARROW:\n this._activeDate = this._dateAdapter.addCalendarMonths(this._activeDate, -1);\n break;\n case RIGHT_ARROW:\n this._activeDate = this._dateAdapter.addCalendarMonths(this._activeDate, 1);\n break;\n case UP_ARROW:\n this._activeDate = this._prevMonthInSameCol(this._activeDate);\n break;\n case DOWN_ARROW:\n this._activeDate = this._nextMonthInSameCol(this._activeDate);\n break;\n case HOME:\n this._activeDate = this._dateAdapter.addCalendarMonths(this._activeDate,\n -this._dateAdapter.getMonth(this._activeDate));\n break;\n case END:\n this._activeDate = this._dateAdapter.addCalendarMonths(this._activeDate,\n 11 - this._dateAdapter.getMonth(this._activeDate));\n break;\n case PAGE_UP:\n this._activeDate =\n this._dateAdapter.addCalendarYears(this._activeDate, event.altKey ? -10 : -1);\n break;\n case PAGE_DOWN:\n this._activeDate =\n this._dateAdapter.addCalendarYears(this._activeDate, event.altKey ? 10 : 1);\n break;\n case ENTER:\n this._monthSelected(this._activeDate);\n break;\n default:\n // Don't prevent default or focus active cell on keys that we don't explicitly handle.\n return;\n }\n\n this._focusActiveCell();\n // Prevent unexpected default actions such as form submission.\n event.preventDefault();\n }\n/**\n * Determine the date for the month that comes before the given month in the same column in the\n * calendar table.\n * @param {?} date\n * @return {?}\n */\nprivate _prevMonthInSameCol(date: D): D {\n // Determine how many months to jump forward given that there are 2 empty slots at the beginning\n // of each year.\n let /** @type {?} */ increment = this._dateAdapter.getMonth(date) <= 4 ? -5 :\n (this._dateAdapter.getMonth(date) >= 7 ? -7 : -12);\n return this._dateAdapter.addCalendarMonths(date, increment);\n }\n/**\n * Determine the date for the month that comes after the given month in the same column in the\n * calendar table.\n * @param {?} date\n * @return {?}\n */\nprivate _nextMonthInSameCol(date: D): D {\n // Determine how many months to jump forward given that there are 2 empty slots at the beginning\n // of each year.\n let /** @type {?} */ increment = this._dateAdapter.getMonth(date) <= 4 ? 7 :\n (this._dateAdapter.getMonth(date) >= 7 ? 5 : 12);\n return this._dateAdapter.addCalendarMonths(date, increment);\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Component, args: [{\n moduleId: module.id,\n selector: 'md-calendar, mat-calendar',\n templateUrl: 'calendar.html',\n styleUrls: ['calendar.css'],\n host: {\n 'class': 'mat-calendar',\n },\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n viewProviders: [{provide: MATERIAL_COMPATIBILITY_MODE, useValue: true}],\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: ElementRef, },\n{type: MdDatepickerIntl, },\n{type: NgZone, },\n{type: DateAdapter, decorators: [{ type: Optional }, ]},\n{type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MD_DATE_FORMATS, ] }, ]},\n{type: ChangeDetectorRef, },\n];\nstatic propDecorators: {[key: string]: DecoratorInvocation[]} = {\n'startAt': [{ type: Input },],\n'startView': [{ type: Input },],\n'selected': [{ type: Input },],\n'minDate': [{ type: Input },],\n'maxDate': [{ type: Input },],\n'dateFilter': [{ type: Input },],\n'selectedChange': [{ type: Output },],\n'userSelection': [{ type: Output },],\n};\n}\n\nfunction MdCalendar_tsickle_Closure_declarations() {\n/** @type {?} */\nMdCalendar.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdCalendar.ctorParameters;\n/** @type {?} */\nMdCalendar.propDecorators;\n/** @type {?} */\nMdCalendar.prototype._intlChanges;\n/** @type {?} */\nMdCalendar.prototype._startAt;\n/**\n * Whether the calendar should be started in month or year view.\n * @type {?}\n */\nMdCalendar.prototype.startView;\n/** @type {?} */\nMdCalendar.prototype._selected;\n/** @type {?} */\nMdCalendar.prototype._minDate;\n/** @type {?} */\nMdCalendar.prototype._maxDate;\n/**\n * A function used to filter which dates are selectable.\n * @type {?}\n */\nMdCalendar.prototype.dateFilter;\n/**\n * Emits when the currently selected date changes.\n * @type {?}\n */\nMdCalendar.prototype.selectedChange;\n/**\n * Emits when any date is selected.\n * @type {?}\n */\nMdCalendar.prototype.userSelection;\n/**\n * Date filter for the month and year views.\n * @type {?}\n */\nMdCalendar.prototype._dateFilterForViews;\n/** @type {?} */\nMdCalendar.prototype._clampedActiveDate;\n/**\n * Whether the calendar is in month view.\n * @type {?}\n */\nMdCalendar.prototype._monthView;\n/** @type {?} */\nMdCalendar.prototype._elementRef;\n/** @type {?} */\nMdCalendar.prototype._intl;\n/** @type {?} */\nMdCalendar.prototype._ngZone;\n/** @type {?} */\nMdCalendar.prototype._dateAdapter;\n/** @type {?} */\nMdCalendar.prototype._dateFormats;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\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 */\n\n\nimport {Injectable} from '@angular/core';\nimport {Subject} from 'rxjs/Subject';\n/**\n * Datepicker data that requires internationalization.\n */\nexport class MdDatepickerIntl {\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 */\nchanges: Subject<void> = new Subject<void>();\n/**\n * A label for the calendar popup (used by screen readers).\n */\ncalendarLabel = 'Calendar';\n/**\n * A label for the button used to open the calendar popup (used by screen readers).\n */\nopenCalendarLabel = 'Open calendar';\n/**\n * A label for the previous month button (used by screen readers).\n */\nprevMonthLabel = 'Previous month';\n/**\n * A label for the next month button (used by screen readers).\n */\nnextMonthLabel = 'Next month';\n/**\n * A label for the previous year button (used by screen readers).\n */\nprevYearLabel = 'Previous year';\n/**\n * A label for the next year button (used by screen readers).\n */\nnextYearLabel = 'Next year';\n/**\n * A label for the 'switch to month view' button (used by screen readers).\n */\nswitchToMonthViewLabel = 'Change to month view';\n/**\n * A label for the 'switch to year view' button (used by screen readers).\n */\nswitchToYearViewLabel = 'Change to year view';\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction MdDatepickerIntl_tsickle_Closure_declarations() {\n/** @type {?} */\nMdDatepickerIntl.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdDatepickerIntl.ctorParameters;\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 * @type {?}\n */\nMdDatepickerIntl.prototype.changes;\n/**\n * A label for the calendar popup (used by screen readers).\n * @type {?}\n */\nMdDatepickerIntl.prototype.calendarLabel;\n/**\n * A label for the button used to open the calendar popup (used by screen readers).\n * @type {?}\n */\nMdDatepickerIntl.prototype.openCalendarLabel;\n/**\n * A label for the previous month button (used by screen readers).\n * @type {?}\n */\nMdDatepickerIntl.prototype.prevMonthLabel;\n/**\n * A label for the next month button (used by screen readers).\n * @type {?}\n */\nMdDatepickerIntl.prototype.nextMonthLabel;\n/**\n * A label for the previous year button (used by screen readers).\n * @type {?}\n */\nMdDatepickerIntl.prototype.prevYearLabel;\n/**\n * A label for the next year button (used by screen readers).\n * @type {?}\n */\nMdDatepickerIntl.prototype.nextYearLabel;\n/**\n * A label for the 'switch to month view' button (used by screen readers).\n * @type {?}\n */\nMdDatepickerIntl.prototype.switchToMonthViewLabel;\n/**\n * A label for the 'switch to year view' button (used by screen readers).\n * @type {?}\n */\nMdDatepickerIntl.prototype.switchToYearViewLabel;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","\n/**\n * \\@docs-private\n * @param {?} provider\n * @return {?}\n */\nexport function createMissingDateImplError(provider: string) {\n return Error(\n `MdDatepicker: No provider found for ${provider}. You must import one of the following ` +\n `modules at your application root: MdNativeDateModule, or provide a custom implementation.`);\n}\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 */\n\n\nimport {DateAdapter} from '@angular/material/core';\n/**\n * Function that attempts to coerce a value to a date using a DateAdapter. Date instances, null,\n * and undefined will be passed through. Empty strings will be coerced to null. Valid ISO 8601\n * strings (https://www.ietf.org/rfc/rfc3339.txt) will be coerced to dates. All other values will\n * result in an error being thrown.\n * @throws Throws when the value cannot be coerced.\n * @template D\n * @param {?} adapter The date adapter to use for coercion\n * @param {?} value The value to coerce.\n * @return {?} A date object coerced from the value.\n */\nexport function coerceDateProperty<D>(adapter: DateAdapter<D>, value: any): D | null {\n if (typeof value === 'string') {\n if (value == '') {\n value = null;\n } else {\n value = adapter.fromIso8601(value) || value;\n }\n }\n if (value == null || adapter.isDateInstance(value)) {\n return value;\n }\n throw Error(`Datepicker: Value must be either a date object recognized by the DateAdapter or ` +\n `an ISO 8601 string. Instead got: ${value}`);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport {MdFormFieldModule,MdError,MdFormField,MdFormFieldControl,getMdFormFieldPlaceholderConflictError,getMdFormFieldDuplicatedHintError,getMdFormFieldMissingControlError,MdHint,MdPlaceholder,MdPrefix,MdSuffix,MatFormFieldModule,MatError,MatFormField,MatFormFieldControl,MatHint,MatPlaceholder,MatPrefix,MatSuffix} from './public_api';\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 */\n\n\nimport {NgModule} from '@angular/core';\nimport {MdError} from './error';\nimport {MdFormField} from './form-field';\nimport {MdHint} from './hint';\nimport {MdPlaceholder} from './placeholder';\nimport {MdPrefix} from './prefix';\nimport {MdSuffix} from './suffix';\nimport {CommonModule} from '@angular/common';\nimport {PlatformModule} from '@angular/material/core';\nexport class MdFormFieldModule {static decorators: DecoratorInvocation[] = [\n{ type: NgModule, args: [{\n declarations: [\n MdError,\n MdHint,\n MdFormField,\n MdPlaceholder,\n MdPrefix,\n MdSuffix,\n ],\n imports: [\n CommonModule,\n PlatformModule,\n ],\n exports: [\n MdError,\n MdHint,\n MdFormField,\n MdPlaceholder,\n MdPrefix,\n MdSuffix,\n ],\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction MdFormFieldModule_tsickle_Closure_declarations() {\n/** @type {?} */\nMdFormFieldModule.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdFormFieldModule.ctorParameters;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\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 */\n\n\nimport {animate, state, style, transition, trigger} from '@angular/animations';\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {first, startWith} from '@angular/cdk/rxjs';\nimport {\n AfterContentChecked,\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n Inject,\n Input,\n Optional,\n QueryList,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n FloatPlaceholderType,\n MD_PLACEHOLDER_GLOBAL_OPTIONS,\n PlaceholderOptions,\n} from '@angular/material/core';\nimport {fromEvent} from 'rxjs/observable/fromEvent';\nimport {MdError} from './error';\nimport {MdFormFieldControl} from './form-field-control';\nimport {\n getMdFormFieldDuplicatedHintError,\n getMdFormFieldMissingControlError,\n getMdFormFieldPlaceholderConflictError,\n} from './form-field-errors';\nimport {MdHint} from './hint';\nimport {MdPlaceholder} from './placeholder';\nimport {MdPrefix} from './prefix';\nimport {MdSuffix} from './suffix';\n\n\nlet /** @type {?} */ nextUniqueId = 0;\n/**\n * Container for form controls that applies Material Design styling and behavior.\n */\nexport class MdFormField implements AfterViewInit, AfterContentInit, AfterContentChecked {\nprivate _placeholderOptions: PlaceholderOptions;\n/**\n * Color of the form field underline, based on the theme.\n */\ncolor: 'primary' | 'accent' | 'warn' = 'primary';\n/**\n * @deprecated Use `color` instead.\n * @return {?}\n */\nget dividerColor() { return this.color; }\n/**\n * @param {?} value\n * @return {?}\n */\nset dividerColor(value) { this.color = value; }\n/**\n * Whether the required marker should be hidden.\n * @return {?}\n */\nget hideRequiredMarker() { return this._hideRequiredMarker; }\n/**\n * @param {?} value\n * @return {?}\n */\nset hideRequiredMarker(value: any) {\n this._hideRequiredMarker = coerceBooleanProperty(value);\n }\nprivate _hideRequiredMarker: boolean;\n/**\n * Override for the logic that disables the placeholder animation in certain cases.\n */\nprivate _showAlwaysAnimate = false;\n/**\n * Whether the floating label should always float or not.\n * @return {?}\n */\nget _shouldAlwaysFloat() {\n return this._floatPlaceholder === 'always' && !this._showAlwaysAnimate;\n }\n/**\n * Whether the placeholder can float or not.\n * @return {?}\n */\nget _canPlaceholderFloat() { return this._floatPlaceholder !== 'never'; }\n/**\n * State of the md-hint and md-error animations.\n */\n_subscriptAnimationState: string = '';\n/**\n * Text for the form field hint.\n * @return {?}\n */\nget hintLabel() { return this._hintLabel; }\n/**\n * @param {?} value\n * @return {?}\n */\nset hintLabel(value: string) {\n this._hintLabel = value;\n this._processHints();\n }\nprivate _hintLabel = '';\n\n // Unique id for the hint label.\n _hintLabelId: string = `md-hint-${nextUniqueId++}`;\n/**\n * Whether the placeholder should always float, never float or float as the user types.\n * @return {?}\n */\nget floatPlaceholder() { return this._floatPlaceholder; }\n/**\n * @param {?} value\n * @return {?}\n */\nset floatPlaceholder(value: FloatPlaceholderType) {\n if (value !== this._floatPlaceholder) {\n this._floatPlaceholder = value || this._placeholderOptions.float || 'auto';\n this._changeDetectorRef.markForCheck();\n }\n }\nprivate _floatPlaceholder: FloatPlaceholderType;\n/**\n * Reference to the form field's underline element.\n */\nunderlineRef: ElementRef;\n _connectionContainerRef: ElementRef;\nprivate _placeholder: ElementRef;\n _control: MdFormFieldControl<any>;\n _placeholderChild: MdPlaceholder;\n _errorChildren: QueryList<MdError>;\n _hintChildren: QueryList<MdHint>;\n _prefixChildren: QueryList<MdPrefix>;\n _suffixChildren: QueryList<MdSuffix>;\n/**\n * @param {?} _elementRef\n * @param {?} _changeDetectorRef\n * @param {?} placeholderOptions\n */\nconstructor(\npublic _elementRef: ElementRef,\nprivate _changeDetectorRef: ChangeDetectorRef,\n placeholderOptions: PlaceholderOptions) {\n this._placeholderOptions = placeholderOptions ? placeholderOptions : {};\n this.floatPlaceholder = this._placeholderOptions.float || 'auto';\n }\n/**\n * @return {?}\n */\nngAfterContentInit() {\n this._validateControlChild();\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(() => {\n this._validatePlaceholders();\n this._syncDescribedByIds();\n this._changeDetectorRef.markForCheck();\n });\n\n let /** @type {?} */ ngControl = this._control.ngControl;\n if (ngControl && ngControl.valueChanges) {\n ngControl.valueChanges.subscribe(() => {\n this._changeDetectorRef.markForCheck();\n });\n }\n\n // Re-validate when the number of hints changes.\n startWith.call(this._hintChildren.changes, null).subscribe(() => {\n this._processHints();\n this._changeDetectorRef.markForCheck();\n });\n\n // Update the aria-described by when the number of errors changes.\n startWith.call(this._errorChildren.changes, null).subscribe(() => {\n this._syncDescribedByIds();\n this._changeDetectorRef.markForCheck();\n });\n }\n/**\n * @return {?}\n */\nngAfterContentChecked() {\n this._validateControlChild();\n }\n/**\n * @return {?}\n */\nngAfterViewInit() {\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_shouldForward(prop: string): boolean {\n let /** @type {?} */ ngControl = this._control ? this._control.ngControl : null;\n return ngControl && ( /** @type {?} */((ngControl as any)))[prop];\n }\n/**\n * Whether the form field has a placeholder.\n * @return {?}\n */\n_hasPlaceholder() {\n return !!(this._control.placeholder || this._placeholderChild);\n }\n/**\n * Determines whether to display hints or errors.\n * @return {?}\n */\n_getDisplayedMessages(): 'error' | 'hint' {\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_animateAndLockPlaceholder(): void {\n if (this._placeholder && this._canPlaceholderFloat) {\n this._showAlwaysAnimate = true;\n this._floatPlaceholder = 'always';\n\n first.call(fromEvent(this._placeholder.nativeElement, 'transitionend')).subscribe(() => {\n this._showAlwaysAnimate = false;\n });\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 `md-placeholder` directive).\n * @return {?}\n */\nprivate _validatePlaceholders() {\n if (this._control.placeholder && this._placeholderChild) {\n throw getMdFormFieldPlaceholderConflictError();\n }\n }\n/**\n * Does any extra processing that is required when handling the hints.\n * @return {?}\n */\nprivate _processHints() {\n this._validateHints();\n this._syncDescribedByIds();\n }\n/**\n * Ensure that there is a maximum of one of each `<md-hint>` alignment specified, with the\n * attribute being considered as `align=\"start\"`.\n * @return {?}\n */\nprivate _validateHints() {\n if (this._hintChildren) {\n let /** @type {?} */ startHint: MdHint;\n let /** @type {?} */ endHint: MdHint;\n this._hintChildren.forEach((hint: MdHint) => {\n if (hint.align == 'start') {\n if (startHint || this.hintLabel) {\n throw getMdFormFieldDuplicatedHintError('start');\n }\n startHint = hint;\n } else if (hint.align == 'end') {\n if (endHint) {\n throw getMdFormFieldDuplicatedHintError('end');\n }\n endHint = 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 */\nprivate _syncDescribedByIds() {\n if (this._control) {\n let /** @type {?} */ ids: string[] = [];\n\n if (this._getDisplayedMessages() === 'hint') {\n let /** @type {?} */ startHint = this._hintChildren ?\n this._hintChildren.find(hint => hint.align === 'start') : null;\n let /** @type {?} */ endHint = this._hintChildren ?\n this._hintChildren.find(hint => hint.align === 'end') : null;\n\n if (startHint) {\n ids.push(startHint.id);\n } else if (this._hintLabel) {\n ids.push(this._hintLabelId);\n }\n\n if (endHint) {\n ids.push(endHint.id);\n }\n } else if (this._errorChildren) {\n ids = this._errorChildren.map(mdError => mdError.id);\n }\n\n this._control.setDescribedByIds(ids);\n }\n }\n/**\n * Throws an error if the form field's control is missing.\n * @return {?}\n */\nprotected _validateControlChild() {\n if (!this._control) {\n throw getMdFormFieldMissingControlError();\n }\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Component, args: [{\n moduleId: module.id,\n // TODO(mmalerba): the input-container selectors and classes are deprecated and will be removed.\n selector: 'md-input-container, mat-input-container, md-form-field, mat-form-field',\n templateUrl: 'form-field.html',\n // MdInput is a directive and can't have styles, so we need to include its styles here.\n // The MdInput styles are fairly minimal so it shouldn't be a big deal for people who aren't using\n // MdInput.\n styleUrls: ['form-field.css', '../input/input.css'],\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-focused]': '_control.focused',\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 '(click)': '_control.focus()',\n },\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: ElementRef, },\n{type: ChangeDetectorRef, },\n{type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MD_PLACEHOLDER_GLOBAL_OPTIONS, ] }, ]},\n];\nstatic propDecorators: {[key: string]: DecoratorInvocation[]} = {\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: [MdFormFieldControl, ] },],\n'_placeholderChild': [{ type: ContentChild, args: [MdPlaceholder, ] },],\n'_errorChildren': [{ type: ContentChildren, args: [MdError, ] },],\n'_hintChildren': [{ type: ContentChildren, args: [MdHint, ] },],\n'_prefixChildren': [{ type: ContentChildren, args: [MdPrefix, ] },],\n'_suffixChildren': [{ type: ContentChildren, args: [MdSuffix, ] },],\n};\n}\n\nfunction MdFormField_tsickle_Closure_declarations() {\n/** @type {?} */\nMdFormField.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdFormField.ctorParameters;\n/** @type {?} */\nMdFormField.propDecorators;\n/** @type {?} */\nMdFormField.prototype._placeholderOptions;\n/**\n * Color of the form field underline, based on the theme.\n * @type {?}\n */\nMdFormField.prototype.color;\n/** @type {?} */\nMdFormField.prototype._hideRequiredMarker;\n/**\n * Override for the logic that disables the placeholder animation in certain cases.\n * @type {?}\n */\nMdFormField.prototype._showAlwaysAnimate;\n/**\n * State of the md-hint and md-error animations.\n * @type {?}\n */\nMdFormField.prototype._subscriptAnimationState;\n/** @type {?} */\nMdFormField.prototype._hintLabel;\n/** @type {?} */\nMdFormField.prototype._hintLabelId;\n/** @type {?} */\nMdFormField.prototype._floatPlaceholder;\n/**\n * Reference to the form field's underline element.\n * @type {?}\n */\nMdFormField.prototype.underlineRef;\n/** @type {?} */\nMdFormField.prototype._connectionContainerRef;\n/** @type {?} */\nMdFormField.prototype._placeholder;\n/** @type {?} */\nMdFormField.prototype._control;\n/** @type {?} */\nMdFormField.prototype._placeholderChild;\n/** @type {?} */\nMdFormField.prototype._errorChildren;\n/** @type {?} */\nMdFormField.prototype._hintChildren;\n/** @type {?} */\nMdFormField.prototype._prefixChildren;\n/** @type {?} */\nMdFormField.prototype._suffixChildren;\n/** @type {?} */\nMdFormField.prototype._elementRef;\n/** @type {?} */\nMdFormField.prototype._changeDetectorRef;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\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 */\n\n\nimport {Directive} from '@angular/core';\n/**\n * Suffix to be placed at the end of the form field.\n */\nexport class MdSuffix {static decorators: DecoratorInvocation[] = [\n{ type: Directive, args: [{\n selector: '[mdSuffix], [matSuffix]',\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction MdSuffix_tsickle_Closure_declarations() {\n/** @type {?} */\nMdSuffix.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdSuffix.ctorParameters;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\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 */\n\n\nimport {Directive} from '@angular/core';\n/**\n * Prefix to be placed the the front of the form field.\n */\nexport class MdPrefix {static decorators: DecoratorInvocation[] = [\n{ type: Directive, args: [{\n selector: '[mdPrefix], [matPrefix]',\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction MdPrefix_tsickle_Closure_declarations() {\n/** @type {?} */\nMdPrefix.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdPrefix.ctorParameters;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\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 */\n\n\nimport {Directive} from '@angular/core';\n/**\n * The floating placeholder for an `MdFormField`.\n */\nexport class MdPlaceholder {static decorators: DecoratorInvocation[] = [\n{ type: Directive, args: [{\n selector: 'md-placeholder, mat-placeholder'\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction MdPlaceholder_tsickle_Closure_declarations() {\n/** @type {?} */\nMdPlaceholder.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdPlaceholder.ctorParameters;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\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 */\n\n\nimport {Directive, Input} from '@angular/core';\n\n\nlet /** @type {?} */ nextUniqueId = 0;\n/**\n * Hint text to be shown underneath the form field control.\n */\nexport class MdHint {\n/**\n * Whether to align the hint label at the start or end of the line.\n */\nalign: 'start' | 'end' = 'start';\n/**\n * Unique ID for the hint. Used for the aria-describedby on the form field control.\n */\nid: string = `mat-hint-${nextUniqueId++}`;\nstatic decorators: DecoratorInvocation[] = [\n{ type: Directive, args: [{\n selector: 'md-hint, 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 */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\nstatic propDecorators: {[key: string]: DecoratorInvocation[]} = {\n'align': [{ type: Input },],\n'id': [{ type: Input },],\n};\n}\n\nfunction MdHint_tsickle_Closure_declarations() {\n/** @type {?} */\nMdHint.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdHint.ctorParameters;\n/** @type {?} */\nMdHint.propDecorators;\n/**\n * Whether to align the hint label at the start or end of the line.\n * @type {?}\n */\nMdHint.prototype.align;\n/**\n * Unique ID for the hint. Used for the aria-describedby on the form field control.\n * @type {?}\n */\nMdHint.prototype.id;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","\n/**\n * \\@docs-private\n * @return {?}\n */\nexport function getMdFormFieldPlaceholderConflictError(): Error {\n return Error('Placeholder attribute and child element were both specified.');\n}\n/**\n * \\@docs-private\n * @param {?} align\n * @return {?}\n */\nexport function getMdFormFieldDuplicatedHintError(align: string): Error {\n return Error(`A hint was already declared for 'align=\"${align}\"'.`);\n}\n/**\n * \\@docs-private\n * @return {?}\n */\nexport function getMdFormFieldMissingControlError(): Error {\n return Error('md-form-field must contain a MdFormFieldControl. ' +\n 'Did you forget to add mdInput to the native input or textarea element?');\n}\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 */\n\n\nimport {Observable} from 'rxjs/Observable';\nimport {NgControl} from '@angular/forms';\n/**\n * An interface which allows a control to work inside of a `MdFormField`.\n * @abstract\n */\nexport abstract class MdFormFieldControl<T> {\n/**\n * The value of the control.\n */\nvalue: T;\n/**\n * Stream that emits whenever the state of the control changes such that the parent `MdFormField`\n * needs to run change detection.\n */\nreadonly stateChanges: Observable<void>;\n/**\n * The element ID for this control.\n */\nreadonly id: string;\n/**\n * The placeholder for this control.\n */\nreadonly placeholder: string;\n/**\n * Gets the NgControl for this control.\n */\nreadonly ngControl: NgControl | null;\n/**\n * Whether the control is focused.\n */\nreadonly focused: boolean;\n/**\n * Whether the control is empty.\n */\nreadonly empty: boolean;\n/**\n * Whether the control is required.\n */\nreadonly required: boolean;\n/**\n * Whether the control is disabled.\n */\nreadonly disabled: boolean;\n/**\n * Whether the control is in an error state.\n */\nreadonly errorState: boolean;\n/**\n * Sets the list of element IDs that currently describe this control.\n * @abstract\n * @param {?} ids\n * @return {?}\n */\nsetDescribedByIds(ids: string[]) {}\n/**\n * Focuses this control.\n * @abstract\n * @return {?}\n */\nfocus() {}\n}\n\nfunction MdFormFieldControl_tsickle_Closure_declarations() {\n/**\n * The value of the control.\n * @type {?}\n */\nMdFormFieldControl.prototype.value;\n/**\n * Stream that emits whenever the state of the control changes such that the parent `MdFormField`\n * needs to run change detection.\n * @type {?}\n */\nMdFormFieldControl.prototype.stateChanges;\n/**\n * The element ID for this control.\n * @type {?}\n */\nMdFormFieldControl.prototype.id;\n/**\n * The placeholder for this control.\n * @type {?}\n */\nMdFormFieldControl.prototype.placeholder;\n/**\n * Gets the NgControl for this control.\n * @type {?}\n */\nMdFormFieldControl.prototype.ngControl;\n/**\n * Whether the control is focused.\n * @type {?}\n */\nMdFormFieldControl.prototype.focused;\n/**\n * Whether the control is empty.\n * @type {?}\n */\nMdFormFieldControl.prototype.empty;\n/**\n * Whether the control is required.\n * @type {?}\n */\nMdFormFieldControl.prototype.required;\n/**\n * Whether the control is disabled.\n * @type {?}\n */\nMdFormFieldControl.prototype.disabled;\n/**\n * Whether the control is in an error state.\n * @type {?}\n */\nMdFormFieldControl.prototype.errorState;\n}\n\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 */\n\n\nimport {Directive, Input} from '@angular/core';\n\n\nlet /** @type {?} */ nextUniqueId = 0;\n/**\n * Single error message to be shown underneath the form field.\n */\nexport class MdError {\n id: string = `mat-error-${nextUniqueId++}`;\nstatic decorators: DecoratorInvocation[] = [\n{ type: Directive, args: [{\n selector: 'md-error, mat-error',\n host: {\n 'class': 'mat-error',\n 'role': 'alert',\n '[attr.id]': 'id',\n }\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\nstatic propDecorators: {[key: string]: DecoratorInvocation[]} = {\n'id': [{ type: Input },],\n};\n}\n\nfunction MdError_tsickle_Closure_declarations() {\n/** @type {?} */\nMdError.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdError.ctorParameters;\n/** @type {?} */\nMdError.propDecorators;\n/** @type {?} */\nMdError.prototype.id;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport {MdIconModule,MdIconBase,_MdIconMixinBase,MdIcon,getMdIconNameNotFoundError,getMdIconNoHttpProviderError,getMdIconFailedToSanitizeError,MdIconRegistry,ICON_REGISTRY_PROVIDER_FACTORY,ICON_REGISTRY_PROVIDER,MatIcon,MatIconBase,MatIconModule,MatIconRegistry} from './public_api';\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 */\n\n\nimport {NgModule} from '@angular/core';\nimport {MdCommonModule} from '@angular/material/core';\nimport {MdIcon} from './icon';\nimport {ICON_REGISTRY_PROVIDER} from './icon-registry';\nexport class MdIconModule {static decorators: DecoratorInvocation[] = [\n{ type: NgModule, args: [{\n imports: [MdCommonModule],\n exports: [MdIcon, MdCommonModule],\n declarations: [MdIcon],\n providers: [ICON_REGISTRY_PROVIDER],\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction MdIconModule_tsickle_Closure_declarations() {\n/** @type {?} */\nMdIconModule.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdIconModule.ctorParameters;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\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 */\n\n\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnInit,\n Renderer2,\n SimpleChanges,\n ViewEncapsulation,\n Attribute,\n} from '@angular/core';\nimport {MdIconRegistry} from './icon-registry';\nimport {CanColor, mixinColor} from '@angular/material/core';\nimport {first} from '@angular/material/core';\n/**\n * \\@docs-private\n */\nexport class MdIconBase {\n/**\n * @param {?} _renderer\n * @param {?} _elementRef\n */\nconstructor(public _renderer: Renderer2,\npublic _elementRef: ElementRef) {}\n}\n\nfunction MdIconBase_tsickle_Closure_declarations() {\n/** @type {?} */\nMdIconBase.prototype._renderer;\n/** @type {?} */\nMdIconBase.prototype._elementRef;\n}\n\nexport const /** @type {?} */ _MdIconMixinBase = mixinColor(MdIconBase);\n/**\n * Component to display an icon. It can be used in the following ways:\n * \n * - Specify the svgIcon input to load an SVG icon from a URL previously registered with the\n * addSvgIcon, addSvgIconInNamespace, addSvgIconSet, or addSvgIconSetInNamespace methods of\n * MdIconRegistry. If the svgIcon value contains a colon it is assumed to be in the format\n * \"[namespace]:[name]\", if not the value will be the name of an icon in the default namespace.\n * Examples:\n * <md-icon svgIcon=\"left-arrow\"></md-icon>\n * <md-icon svgIcon=\"animals:cat\"></md-icon>\n * \n * - Use a font ligature as an icon by putting the ligature text in the content of the <md-icon>\n * component. By default the Material icons font is used as described at\n * http://google.github.io/material-design-icons/#icon-font-for-the-web. You can specify an\n * alternate font by setting the fontSet input to either the CSS class to apply to use the\n * desired font, or to an alias previously registered with MdIconRegistry.registerFontClassAlias.\n * Examples:\n * <md-icon>home</md-icon>\n * <md-icon fontSet=\"myfont\">sun</md-icon>\n * \n * - Specify a font glyph to be included via CSS rules by setting the fontSet input to specify the\n * font, and the fontIcon input to specify the icon. Typically the fontIcon will specify a\n * CSS class which causes the glyph to be displayed via a :before selector, as in\n * https://fortawesome.github.io/Font-Awesome/examples/\n * Example:\n * <md-icon fontSet=\"fa\" fontIcon=\"alarm\"></md-icon>\n */\nexport class MdIcon extends _MdIconMixinBase implements OnChanges, OnInit, CanColor {\n/**\n * Name of the icon in the SVG icon set.\n */\nsvgIcon: string;\n/**\n * Font set that the icon is a part of.\n */\nfontSet: string;\n/**\n * Name of an icon within a font set.\n */\nfontIcon: string;\nprivate _previousFontSetClass: string;\nprivate _previousFontIconClass: string;\n/**\n * @param {?} renderer\n * @param {?} elementRef\n * @param {?} _mdIconRegistry\n * @param {?} ariaHidden\n */\nconstructor(\n renderer: Renderer2,\n elementRef: ElementRef,\nprivate _mdIconRegistry: MdIconRegistry,\n ariaHidden: string) {\n super(renderer, elementRef);\n\n // If the user has not explicitly set aria-hidden, mark the icon as hidden, as this is\n // the right thing to do for the majority of icon use-cases.\n if (!ariaHidden) {\n renderer.setAttribute(elementRef.nativeElement, 'aria-hidden', 'true');\n }\n }\n/**\n * Splits an svgIcon binding value into its icon set and icon name components.\n * Returns a 2-element array of [(icon set), (icon name)].\n * The separator for the two fields is ':'. If there is no separator, an empty\n * string is returned for the icon set and the entire value is returned for\n * the icon name. If the argument is falsy, returns an array of two empty strings.\n * Throws an error if the name contains two or more ':' separators.\n * Examples:\n * 'social:cake' -> ['social', 'cake']\n * 'penguin' -> ['', 'penguin']\n * null -> ['', '']\n * 'a:b:c' -> (throws Error)\n * @param {?} iconName\n * @return {?}\n */\nprivate _splitIconName(iconName: string): [string, string] {\n if (!iconName) {\n return ['', ''];\n }\n const /** @type {?} */ parts = iconName.split(':');\n switch (parts.length) {\n case 1: return ['', parts[0]]; // Use default namespace.\n case 2: return /** @type {?} */(( <[string, string]>parts));\n default: throw Error(`Invalid icon name: \"${iconName}\"`);\n }\n }\n/**\n * @param {?} changes\n * @return {?}\n */\nngOnChanges(changes: SimpleChanges) {\n // Only update the inline SVG icon if the inputs changed, to avoid unnecessary DOM operations.\n if (changes.svgIcon) {\n if (this.svgIcon) {\n const [namespace, iconName] = this._splitIconName(this.svgIcon);\n\n first.call(this._mdIconRegistry.getNamedSvgIcon(iconName, namespace)).subscribe(\n svg => this._setSvgElement(svg),\n (err: Error) => console.log(`Error retrieving icon: ${err.message}`));\n } else {\n this._clearSvgElement();\n }\n }\n\n if (this._usingFontIcon()) {\n this._updateFontIconClasses();\n }\n }\n/**\n * @return {?}\n */\nngOnInit() {\n // Update font classes because ngOnChanges won't be called if none of the inputs are present,\n // e.g. <md-icon>arrow</md-icon>. In this case we need to add a CSS class for the default font.\n if (this._usingFontIcon()) {\n this._updateFontIconClasses();\n }\n }\n/**\n * @return {?}\n */\nprivate _usingFontIcon(): boolean {\n return !this.svgIcon;\n }\n/**\n * @param {?} svg\n * @return {?}\n */\nprivate _setSvgElement(svg: SVGElement) {\n this._clearSvgElement();\n this._renderer.appendChild(this._elementRef.nativeElement, svg);\n }\n/**\n * @return {?}\n */\nprivate _clearSvgElement() {\n const /** @type {?} */ layoutElement = this._elementRef.nativeElement;\n const /** @type {?} */ childCount = layoutElement.childNodes.length;\n\n // Remove existing child nodes and add the new SVG element. Note that we can't\n // use innerHTML, because IE will throw if the element has a data binding.\n for (let /** @type {?} */ i = 0; i < childCount; i++) {\n this._renderer.removeChild(layoutElement, layoutElement.childNodes[i]);\n }\n }\n/**\n * @return {?}\n */\nprivate _updateFontIconClasses() {\n if (!this._usingFontIcon()) {\n return;\n }\n\n const /** @type {?} */ elem = this._elementRef.nativeElement;\n const /** @type {?} */ fontSetClass = this.fontSet ?\n this._mdIconRegistry.classNameForFontAlias(this.fontSet) :\n this._mdIconRegistry.getDefaultFontSetClass();\n\n if (fontSetClass != this._previousFontSetClass) {\n if (this._previousFontSetClass) {\n this._renderer.removeClass(elem, this._previousFontSetClass);\n }\n if (fontSetClass) {\n this._renderer.addClass(elem, fontSetClass);\n }\n this._previousFontSetClass = fontSetClass;\n }\n\n if (this.fontIcon != this._previousFontIconClass) {\n if (this._previousFontIconClass) {\n this._renderer.removeClass(elem, this._previousFontIconClass);\n }\n if (this.fontIcon) {\n this._renderer.addClass(elem, this.fontIcon);\n }\n this._previousFontIconClass = this.fontIcon;\n }\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Component, args: [{\n moduleId: module.id,\n template: '<ng-content></ng-content>',\n selector: 'md-icon, mat-icon',\n styleUrls: ['icon.css'],\n inputs: ['color'],\n host: {\n 'role': 'img',\n 'class': 'mat-icon',\n },\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: Renderer2, },\n{type: ElementRef, },\n{type: MdIconRegistry, },\n{type: undefined, decorators: [{ type: Attribute, args: ['aria-hidden', ] }, ]},\n];\nstatic propDecorators: {[key: string]: DecoratorInvocation[]} = {\n'svgIcon': [{ type: Input },],\n'fontSet': [{ type: Input },],\n'fontIcon': [{ type: Input },],\n};\n}\n\nfunction MdIcon_tsickle_Closure_declarations() {\n/** @type {?} */\nMdIcon.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdIcon.ctorParameters;\n/** @type {?} */\nMdIcon.propDecorators;\n/**\n * Name of the icon in the SVG icon set.\n * @type {?}\n */\nMdIcon.prototype.svgIcon;\n/**\n * Font set that the icon is a part of.\n * @type {?}\n */\nMdIcon.prototype.fontSet;\n/**\n * Name of an icon within a font set.\n * @type {?}\n */\nMdIcon.prototype.fontIcon;\n/** @type {?} */\nMdIcon.prototype._previousFontSetClass;\n/** @type {?} */\nMdIcon.prototype._previousFontIconClass;\n/** @type {?} */\nMdIcon.prototype._mdIconRegistry;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\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 */\n\n\nimport {Injectable, Optional, SecurityContext, SkipSelf} from '@angular/core';\nimport {Http} from '@angular/http';\nimport {\n catchOperator,\n doOperator,\n finallyOperator,\n map,\n RxChain,\n share,\n} from '@angular/material/core';\nimport {DomSanitizer, SafeResourceUrl} from '@angular/platform-browser';\nimport {Observable} from 'rxjs/Observable';\nimport {forkJoin} from 'rxjs/observable/forkJoin';\nimport {of as observableOf} from 'rxjs/observable/of';\nimport {_throw as observableThrow} from 'rxjs/observable/throw';\n/**\n * Returns an exception to be thrown in the case when attempting to\n * load an icon with a name that cannot be found.\n * \\@docs-private\n * @param {?} iconName\n * @return {?}\n */\nexport function getMdIconNameNotFoundError(iconName: string): Error {\n return Error(`Unable to find icon with the name \"${iconName}\"`);\n}\n/**\n * Returns an exception to be thrown when the consumer attempts to use\n * `<md-icon>` without including \\@angular/http.\n * \\@docs-private\n * @return {?}\n */\nexport function getMdIconNoHttpProviderError(): Error {\n return Error('Could not find Http provider for use with Angular Material icons. ' +\n 'Please include the HttpModule from @angular/http in your app imports.');\n}\n/**\n * Returns an exception to be thrown when a URL couldn't be sanitized.\n * \\@docs-private\n * @param {?} url URL that was attempted to be sanitized.\n * @return {?}\n */\nexport function getMdIconFailedToSanitizeError(url: SafeResourceUrl): Error {\n return Error(`The URL provided to MdIconRegistry was not trusted as a resource URL ` +\n `via Angular's DomSanitizer. Attempted URL was \"${url}\".`);\n}\n/**\n * Configuration for an icon, including the URL and possibly the cached SVG element.\n * \\@docs-private\n */\nclass SvgIconConfig {\n svgElement: SVGElement | null = null;\n/**\n * @param {?} url\n */\nconstructor(public url: SafeResourceUrl) { }\n}\n\nfunction SvgIconConfig_tsickle_Closure_declarations() {\n/** @type {?} */\nSvgIconConfig.prototype.svgElement;\n/** @type {?} */\nSvgIconConfig.prototype.url;\n}\n\n/**\n * Service to register and display icons used by the <md-icon> component.\n * - Registers icon URLs by namespace and name.\n * - Registers icon set URLs by namespace.\n * - Registers aliases for CSS classes, for use with icon fonts.\n * - Loads icons from URLs and extracts individual icons from icon sets.\n */\nexport class MdIconRegistry {\n/**\n * URLs and cached SVG elements for individual icons. Keys are of the format \"[namespace]:[icon]\".\n */\nprivate _svgIconConfigs = new Map<string, SvgIconConfig>();\n/**\n * SvgIconConfig objects and cached SVG elements for icon sets, keyed by namespace.\n * Multiple icon sets can be registered under the same namespace.\n */\nprivate _iconSetConfigs = new Map<string, SvgIconConfig[]>();\n/**\n * Cache for icons loaded by direct URLs.\n */\nprivate _cachedIconsByUrl = new Map<string, SVGElement>();\n/**\n * In-progress icon fetches. Used to coalesce multiple requests to the same URL.\n */\nprivate _inProgressUrlFetches = new Map<string, Observable<string>>();\n/**\n * Map from font identifiers to their CSS class names. Used for icon fonts.\n */\nprivate _fontCssClassesByAlias = new Map<string, string>();\n/**\n * The CSS class to apply when an <md-icon> component has no icon name, url, or font specified.\n * The default 'material-icons' value assumes that the material icon font has been loaded as\n * described at http://google.github.io/material-design-icons/#icon-font-for-the-web\n */\nprivate _defaultFontSetClass = 'material-icons';\n/**\n * @param {?} _http\n * @param {?} _sanitizer\n */\nconstructor(\nprivate _http: Http,\nprivate _sanitizer: DomSanitizer) {}\n/**\n * Registers an icon by URL in the default namespace.\n * @param {?} iconName Name under which the icon should be registered.\n * @param {?} url\n * @return {?}\n */\naddSvgIcon(iconName: string, url: SafeResourceUrl): this {\n return this.addSvgIconInNamespace('', iconName, url);\n }\n/**\n * Registers an icon by URL in the specified namespace.\n * @param {?} namespace Namespace in which the icon should be registered.\n * @param {?} iconName Name under which the icon should be registered.\n * @param {?} url\n * @return {?}\n */\naddSvgIconInNamespace(namespace: string, iconName: string, url: SafeResourceUrl): this {\n const /** @type {?} */ key = iconKey(namespace, iconName);\n this._svgIconConfigs.set(key, new SvgIconConfig(url));\n return this;\n }\n/**\n * Registers an icon set by URL in the default namespace.\n * @param {?} url\n * @return {?}\n */\naddSvgIconSet(url: SafeResourceUrl): this {\n return this.addSvgIconSetInNamespace('', url);\n }\n/**\n * Registers an icon set by URL in the specified namespace.\n * @param {?} namespace Namespace in which to register the icon set.\n * @param {?} url\n * @return {?}\n */\naddSvgIconSetInNamespace(namespace: string, url: SafeResourceUrl): this {\n const /** @type {?} */ config = new SvgIconConfig(url);\n const /** @type {?} */ configNamespace = this._iconSetConfigs.get(namespace);\n\n if (configNamespace) {\n configNamespace.push(config);\n } else {\n this._iconSetConfigs.set(namespace, [config]);\n }\n return this;\n }\n/**\n * Defines an alias for a CSS class name to be used for icon fonts. Creating an mdIcon\n * component with the alias as the fontSet input will cause the class name to be applied\n * to the <md-icon> element.\n * \n * @param {?} alias Alias for the font.\n * @param {?=} className Class name override to be used instead of the alias.\n * @return {?}\n */\nregisterFontClassAlias(alias: string, className = alias): this {\n this._fontCssClassesByAlias.set(alias, className);\n return this;\n }\n/**\n * Returns the CSS class name associated with the alias by a previous call to\n * registerFontClassAlias. If no CSS class has been associated, returns the alias unmodified.\n * @param {?} alias\n * @return {?}\n */\nclassNameForFontAlias(alias: string): string {\n return this._fontCssClassesByAlias.get(alias) || alias;\n }\n/**\n * Sets the CSS class name to be used for icon fonts when an <md-icon> component does not\n * have a fontSet input value, and is not loading an icon by name or URL.\n * \n * @param {?} className\n * @return {?}\n */\nsetDefaultFontSetClass(className: string): this {\n this._defaultFontSetClass = className;\n return this;\n }\n/**\n * Returns the CSS class name to be used for icon fonts when an <md-icon> component does not\n * have a fontSet input value, and is not loading an icon by name or URL.\n * @return {?}\n */\ngetDefaultFontSetClass(): string {\n return this._defaultFontSetClass;\n }\n/**\n * Returns an Observable that produces the icon (as an <svg> DOM element) from the given URL.\n * The response from the URL may be cached so this will not always cause an HTTP request, but\n * the produced element will always be a new copy of the originally fetched icon. (That is,\n * it will not contain any modifications made to elements previously returned).\n * \n * @param {?} safeUrl URL from which to fetch the SVG icon.\n * @return {?}\n */\ngetSvgIconFromUrl(safeUrl: SafeResourceUrl): Observable<SVGElement> {\n let /** @type {?} */ url = this._sanitizer.sanitize(SecurityContext.RESOURCE_URL, safeUrl);\n\n if (!url) {\n throw getMdIconFailedToSanitizeError(safeUrl);\n }\n\n let /** @type {?} */ cachedIcon = this._cachedIconsByUrl.get(url);\n\n if (cachedIcon) {\n return observableOf(cloneSvg(cachedIcon));\n }\n\n return RxChain.from(this._loadSvgIconFromConfig(new SvgIconConfig(url)))\n .call(doOperator, svg => this._cachedIconsByUrl.set( /** @type {?} */((url)), svg))\n .call(map, svg => cloneSvg(svg))\n .result();\n }\n/**\n * Returns an Observable that produces the icon (as an <svg> DOM element) with the given name\n * and namespace. The icon must have been previously registered with addIcon or addIconSet;\n * if not, the Observable will throw an error.\n * \n * @param {?} name Name of the icon to be retrieved.\n * @param {?=} namespace Namespace in which to look for the icon.\n * @return {?}\n */\ngetNamedSvgIcon(name: string, namespace = ''): Observable<SVGElement> {\n // Return (copy of) cached icon if possible.\n const /** @type {?} */ key = iconKey(namespace, name);\n const /** @type {?} */ config = this._svgIconConfigs.get(key);\n\n if (config) {\n return this._getSvgFromConfig(config);\n }\n\n // See if we have any icon sets registered for the namespace.\n const /** @type {?} */ iconSetConfigs = this._iconSetConfigs.get(namespace);\n\n if (iconSetConfigs) {\n return this._getSvgFromIconSetConfigs(name, iconSetConfigs);\n }\n\n return observableThrow(getMdIconNameNotFoundError(key));\n }\n/**\n * Returns the cached icon for a SvgIconConfig if available, or fetches it from its URL if not.\n * @param {?} config\n * @return {?}\n */\nprivate _getSvgFromConfig(config: SvgIconConfig): Observable<SVGElement> {\n if (config.svgElement) {\n // We already have the SVG element for this icon, return a copy.\n return observableOf(cloneSvg(config.svgElement));\n } else {\n // Fetch the icon from the config's URL, cache it, and return a copy.\n return RxChain.from(this._loadSvgIconFromConfig(config))\n .call(doOperator, svg => config.svgElement = svg)\n .call(map, svg => cloneSvg(svg))\n .result();\n }\n }\n/**\n * Attempts to find an icon with the specified name in any of the SVG icon sets.\n * First searches the available cached icons for a nested element with a matching name, and\n * if found copies the element to a new <svg> element. If not found, fetches all icon sets\n * that have not been cached, and searches again after all fetches are completed.\n * The returned Observable produces the SVG element if possible, and throws\n * an error if no icon with the specified name can be found.\n * @param {?} name\n * @param {?} iconSetConfigs\n * @return {?}\n */\nprivate _getSvgFromIconSetConfigs(name: string, iconSetConfigs: SvgIconConfig[]):\n Observable<SVGElement> {\n // For all the icon set SVG elements we've fetched, see if any contain an icon with the\n // requested name.\n const /** @type {?} */ namedIcon = this._extractIconWithNameFromAnySet(name, iconSetConfigs);\n\n if (namedIcon) {\n // We could cache namedIcon in _svgIconConfigs, but since we have to make a copy every\n // time anyway, there's probably not much advantage compared to just always extracting\n // it from the icon set.\n return observableOf(namedIcon);\n }\n\n // Not found in any cached icon sets. If there are icon sets with URLs that we haven't\n // fetched, fetch them now and look for iconName in the results.\n const /** @type {?} */ iconSetFetchRequests: Observable<SVGElement | null>[] = iconSetConfigs\n .filter(iconSetConfig => !iconSetConfig.svgElement)\n .map(iconSetConfig => {\n return RxChain.from(this._loadSvgIconSetFromConfig(iconSetConfig))\n .call(catchOperator, (err: any): Observable<SVGElement | null> => {\n let /** @type {?} */ url = this._sanitizer.sanitize(SecurityContext.RESOURCE_URL, iconSetConfig.url);\n\n // Swallow errors fetching individual URLs so the combined Observable won't\n // necessarily fail.\n console.log(`Loading icon set URL: ${url} failed: ${err}`);\n return observableOf(null);\n })\n .call(doOperator, svg => {\n // Cache the SVG element.\n if (svg) {\n iconSetConfig.svgElement = svg;\n }\n })\n .result();\n });\n\n // Fetch all the icon set URLs. When the requests complete, every IconSet should have a\n // cached SVG element (unless the request failed), and we can check again for the icon.\n return map.call(forkJoin.call(Observable, iconSetFetchRequests), () => {\n const /** @type {?} */ foundIcon = this._extractIconWithNameFromAnySet(name, iconSetConfigs);\n\n if (!foundIcon) {\n throw getMdIconNameNotFoundError(name);\n }\n\n return foundIcon;\n });\n }\n/**\n * Searches the cached SVG elements for the given icon sets for a nested icon element whose \"id\"\n * tag matches the specified name. If found, copies the nested element to a new SVG element and\n * returns it. Returns null if no matching element is found.\n * @param {?} iconName\n * @param {?} iconSetConfigs\n * @return {?}\n */\nprivate _extractIconWithNameFromAnySet(iconName: string, iconSetConfigs: SvgIconConfig[]):\n SVGElement | null {\n // Iterate backwards, so icon sets added later have precedence.\n for (let /** @type {?} */ i = iconSetConfigs.length - 1; i >= 0; i--) {\n const /** @type {?} */ config = iconSetConfigs[i];\n if (config.svgElement) {\n const /** @type {?} */ foundIcon = this._extractSvgIconFromSet(config.svgElement, iconName);\n if (foundIcon) {\n return foundIcon;\n }\n }\n }\n return null;\n }\n/**\n * Loads the content of the icon URL specified in the SvgIconConfig and creates an SVG element\n * from it.\n * @param {?} config\n * @return {?}\n */\nprivate _loadSvgIconFromConfig(config: SvgIconConfig): Observable<SVGElement> {\n return map.call(this._fetchUrl(config.url),\n svgText => this._createSvgElementForSingleIcon(svgText));\n }\n/**\n * Loads the content of the icon set URL specified in the SvgIconConfig and creates an SVG element\n * from it.\n * @param {?} config\n * @return {?}\n */\nprivate _loadSvgIconSetFromConfig(config: SvgIconConfig): Observable<SVGElement> {\n // TODO: Document that icons should only be loaded from trusted sources.\n return map.call(this._fetchUrl(config.url),\n svgText => this._svgElementFromString(svgText));\n }\n/**\n * Creates a DOM element from the given SVG string, and adds default attributes.\n * @param {?} responseText\n * @return {?}\n */\nprivate _createSvgElementForSingleIcon(responseText: string): SVGElement {\n const /** @type {?} */ svg = this._svgElementFromString(responseText);\n this._setSvgAttributes(svg);\n return svg;\n }\n/**\n * Searches the cached element of the given SvgIconConfig for a nested icon element whose \"id\"\n * tag matches the specified name. If found, copies the nested element to a new SVG element and\n * returns it. Returns null if no matching element is found.\n * @param {?} iconSet\n * @param {?} iconName\n * @return {?}\n */\nprivate _extractSvgIconFromSet(iconSet: SVGElement, iconName: string): SVGElement | null {\n const /** @type {?} */ iconNode = iconSet.querySelector('#' + iconName);\n\n if (!iconNode) {\n return null;\n }\n\n // If the icon node is itself an <svg> node, clone and return it directly. If not, set it as\n // the content of a new <svg> node.\n if (iconNode.tagName.toLowerCase() === 'svg') {\n return this._setSvgAttributes( /** @type {?} */((iconNode.cloneNode(true) as SVGElement)));\n }\n\n // If the node is a <symbol>, it won't be rendered so we have to convert it into <svg>. Note\n // that the same could be achieved by referring to it via <use href=\"#id\">, however the <use>\n // tag is problematic on Firefox, because it needs to include the current page path.\n if (iconNode.nodeName.toLowerCase() === 'symbol') {\n return this._setSvgAttributes(this._toSvgElement(iconNode));\n }\n\n // createElement('SVG') doesn't work as expected; the DOM ends up with\n // the correct nodes, but the SVG content doesn't render. Instead we\n // have to create an empty SVG node using innerHTML and append its content.\n // Elements created using DOMParser.parseFromString have the same problem.\n // http://stackoverflow.com/questions/23003278/svg-innerhtml-in-firefox-can-not-display\n const /** @type {?} */ svg = this._svgElementFromString('<svg></svg>');\n // Clone the node so we don't remove it from the parent icon set element.\n svg.appendChild(iconNode.cloneNode(true));\n\n return this._setSvgAttributes(svg);\n }\n/**\n * Creates a DOM element from the given SVG string.\n * @param {?} str\n * @return {?}\n */\nprivate _svgElementFromString(str: string): SVGElement {\n // TODO: Is there a better way than innerHTML? Renderer doesn't appear to have a method for\n // creating an element from an HTML string.\n const /** @type {?} */ div = document.createElement('DIV');\n div.innerHTML = str;\n const /** @type {?} */ svg = /** @type {?} */(( div.querySelector('svg') as SVGElement));\n if (!svg) {\n throw Error('<svg> tag not found');\n }\n return svg;\n }\n/**\n * Converts an element into an SVG node by cloning all of its children.\n * @param {?} element\n * @return {?}\n */\nprivate _toSvgElement(element: Element): SVGElement {\n let /** @type {?} */ svg = this._svgElementFromString('<svg></svg>');\n\n for (let /** @type {?} */ i = 0; i < element.childNodes.length; i++) {\n if (element.childNodes[i].nodeType === Node.ELEMENT_NODE) {\n svg.appendChild(element.childNodes[i].cloneNode(true));\n }\n }\n\n return svg;\n }\n/**\n * Sets the default attributes for an SVG element to be used as an icon.\n * @param {?} svg\n * @return {?}\n */\nprivate _setSvgAttributes(svg: SVGElement): SVGElement {\n if (!svg.getAttribute('xmlns')) {\n svg.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n }\n svg.setAttribute('fit', '');\n svg.setAttribute('height', '100%');\n svg.setAttribute('width', '100%');\n svg.setAttribute('preserveAspectRatio', 'xMidYMid meet');\n svg.setAttribute('focusable', 'false'); // Disable IE11 default behavior to make SVGs focusable.\n return svg;\n }\n/**\n * Returns an Observable which produces the string contents of the given URL. Results may be\n * cached, so future calls with the same URL may not cause another HTTP request.\n * @param {?} safeUrl\n * @return {?}\n */\nprivate _fetchUrl(safeUrl: SafeResourceUrl): Observable<string> {\n if (!this._http) {\n throw getMdIconNoHttpProviderError();\n }\n\n const /** @type {?} */ url = this._sanitizer.sanitize(SecurityContext.RESOURCE_URL, safeUrl);\n\n if (!url) {\n throw getMdIconFailedToSanitizeError(safeUrl);\n }\n\n // Store in-progress fetches to avoid sending a duplicate request for a URL when there is\n // already a request in progress for that URL. It's necessary to call share() on the\n // Observable returned by http.get() so that multiple subscribers don't cause multiple XHRs.\n const /** @type {?} */ inProgressFetch = this._inProgressUrlFetches.get(url);\n\n if (inProgressFetch) {\n return inProgressFetch;\n }\n\n // TODO(jelbourn): for some reason, the `finally` operator \"loses\" the generic type on the\n // Observable. Figure out why and fix it.\n const /** @type {?} */ req = RxChain.from(this._http.get(url))\n .call(map, response => response.text())\n .call(finallyOperator, () => this._inProgressUrlFetches.delete(url))\n .call(share)\n .result();\n\n this._inProgressUrlFetches.set(url, req);\n return req;\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: Http, decorators: [{ type: Optional }, ]},\n{type: DomSanitizer, },\n];\n}\n\nfunction MdIconRegistry_tsickle_Closure_declarations() {\n/** @type {?} */\nMdIconRegistry.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdIconRegistry.ctorParameters;\n/**\n * URLs and cached SVG elements for individual icons. Keys are of the format \"[namespace]:[icon]\".\n * @type {?}\n */\nMdIconRegistry.prototype._svgIconConfigs;\n/**\n * SvgIconConfig objects and cached SVG elements for icon sets, keyed by namespace.\n * Multiple icon sets can be registered under the same namespace.\n * @type {?}\n */\nMdIconRegistry.prototype._iconSetConfigs;\n/**\n * Cache for icons loaded by direct URLs.\n * @type {?}\n */\nMdIconRegistry.prototype._cachedIconsByUrl;\n/**\n * In-progress icon fetches. Used to coalesce multiple requests to the same URL.\n * @type {?}\n */\nMdIconRegistry.prototype._inProgressUrlFetches;\n/**\n * Map from font identifiers to their CSS class names. Used for icon fonts.\n * @type {?}\n */\nMdIconRegistry.prototype._fontCssClassesByAlias;\n/**\n * The CSS class to apply when an <md-icon> component has no icon name, url, or font specified.\n * The default 'material-icons' value assumes that the material icon font has been loaded as\n * described at http://google.github.io/material-design-icons/#icon-font-for-the-web\n * @type {?}\n */\nMdIconRegistry.prototype._defaultFontSetClass;\n/** @type {?} */\nMdIconRegistry.prototype._http;\n/** @type {?} */\nMdIconRegistry.prototype._sanitizer;\n}\n\n/**\n * \\@docs-private\n * @param {?} parentRegistry\n * @param {?} http\n * @param {?} sanitizer\n * @return {?}\n */\nexport function ICON_REGISTRY_PROVIDER_FACTORY(\n parentRegistry: MdIconRegistry, http: Http, sanitizer: DomSanitizer) {\n return parentRegistry || new MdIconRegistry(http, sanitizer);\n}\n/**\n * \\@docs-private\n */\nexport const ICON_REGISTRY_PROVIDER = {\n // If there is already an MdIconRegistry available, use that. Otherwise, provide a new one.\n provide: MdIconRegistry,\n deps: [[new Optional(), new SkipSelf(), MdIconRegistry], [new Optional(), Http], DomSanitizer],\n useFactory: ICON_REGISTRY_PROVIDER_FACTORY\n};\n/**\n * Clones an SVGElement while preserving type information.\n * @param {?} svg\n * @return {?}\n */\nfunction cloneSvg(svg: SVGElement): SVGElement {\n return /** @type {?} */(( svg.cloneNode(true) as SVGElement));\n}\n/**\n * Returns the cache key to use for an icon namespace and name.\n * @param {?} namespace\n * @param {?} name\n * @return {?}\n */\nfunction iconKey(namespace: string, name: string) {\n return namespace + ':' + name;\n}\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport {MdDialogModule,MD_DIALOG_DATA,MD_DIALOG_SCROLL_STRATEGY,MD_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY,MD_DIALOG_SCROLL_STRATEGY_PROVIDER,MdDialog,throwMdDialogContentAlreadyAttachedError,MdDialogContainer,MdDialogClose,MdDialogTitle,MdDialogContent,MdDialogActions,DialogRole,DialogPosition,MdDialogConfig,MdDialogRef,MAT_DIALOG_DATA,MAT_DIALOG_SCROLL_STRATEGY,MAT_DIALOG_SCROLL_STRATEGY_PROVIDER,MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY,MatDialog,MatDialogActions,MatDialogClose,MatDialogConfig,MatDialogContainer,MatDialogContent,MatDialogModule,MatDialogRef,MatDialogTitle} from './public_api';\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 */\n\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {OverlayModule} from '@angular/cdk/overlay';\nimport {PortalModule} from '@angular/cdk/portal';\nimport {A11yModule} from '@angular/cdk/a11y';\nimport {MdCommonModule} from '@angular/material/core';\nimport {MdDialog, MD_DIALOG_SCROLL_STRATEGY_PROVIDER} from './dialog';\nimport {MdDialogContainer} from './dialog-container';\nimport {\n MdDialogClose,\n MdDialogContent,\n MdDialogTitle,\n MdDialogActions\n} from './dialog-content-directives';\nexport class MdDialogModule {static decorators: DecoratorInvocation[] = [\n{ type: NgModule, args: [{\n imports: [\n CommonModule,\n OverlayModule,\n PortalModule,\n A11yModule,\n MdCommonModule,\n ],\n exports: [\n MdDialogContainer,\n MdDialogClose,\n MdDialogTitle,\n MdDialogContent,\n MdDialogActions,\n MdCommonModule,\n ],\n declarations: [\n MdDialogContainer,\n MdDialogClose,\n MdDialogTitle,\n MdDialogActions,\n MdDialogContent,\n ],\n providers: [\n MdDialog,\n MD_DIALOG_SCROLL_STRATEGY_PROVIDER,\n ],\n entryComponents: [MdDialogContainer],\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction MdDialogModule_tsickle_Closure_declarations() {\n/** @type {?} */\nMdDialogModule.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdDialogModule.ctorParameters;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\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 */\n\n\nimport {Directive, Input, OnChanges, OnInit, Optional, SimpleChanges} from '@angular/core';\nimport {MdDialogRef} from './dialog-ref';\nimport {MdDialogContainer} from './dialog-container';\n/**\n * Counter used to generate unique IDs for dialog elements.\n */\nlet dialogElementUid = 0;\n/**\n * Button that will close the current dialog.\n */\nexport class MdDialogClose implements OnChanges {\n/**\n * Screenreader label for the button.\n */\nariaLabel: string = 'Close dialog';\n/**\n * Dialog close input.\n */\ndialogResult: any;\n\n _matDialogClose: any;\n _mdDialogClose: any;\n _matDialogCloseResult: any;\n/**\n * @param {?} dialogRef\n */\nconstructor(public dialogRef: MdDialogRef<any>) { }\n/**\n * @param {?} changes\n * @return {?}\n */\nngOnChanges(changes: SimpleChanges) {\n const /** @type {?} */ proxiedChange = changes._matDialogClose || changes._mdDialogClose ||\n changes._matDialogCloseResult;\n\n if (proxiedChange) {\n this.dialogResult = proxiedChange.currentValue;\n }\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Directive, args: [{\n selector: `button[md-dialog-close], button[mat-dialog-close],\n button[mdDialogClose], button[matDialogClose]`,\n host: {\n '(click)': 'dialogRef.close(dialogResult)',\n '[attr.aria-label]': 'ariaLabel',\n 'type': 'button', // Prevents accidental form submits.\n }\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: MdDialogRef, },\n];\nstatic propDecorators: {[key: string]: DecoratorInvocation[]} = {\n'ariaLabel': [{ type: Input, args: ['aria-label', ] },],\n'dialogResult': [{ type: Input, args: ['md-dialog-close', ] },],\n'_matDialogClose': [{ type: Input, args: ['matDialogClose', ] },],\n'_mdDialogClose': [{ type: Input, args: ['mdDialogClose', ] },],\n'_matDialogCloseResult': [{ type: Input, args: ['mat-dialog-close', ] },],\n};\n}\n\nfunction MdDialogClose_tsickle_Closure_declarations() {\n/** @type {?} */\nMdDialogClose.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdDialogClose.ctorParameters;\n/** @type {?} */\nMdDialogClose.propDecorators;\n/**\n * Screenreader label for the button.\n * @type {?}\n */\nMdDialogClose.prototype.ariaLabel;\n/**\n * Dialog close input.\n * @type {?}\n */\nMdDialogClose.prototype.dialogResult;\n/** @type {?} */\nMdDialogClose.prototype._matDialogClose;\n/** @type {?} */\nMdDialogClose.prototype._mdDialogClose;\n/** @type {?} */\nMdDialogClose.prototype._matDialogCloseResult;\n/** @type {?} */\nMdDialogClose.prototype.dialogRef;\n}\n\n/**\n * Title of a dialog element. Stays fixed to the top of the dialog when scrolling.\n */\nexport class MdDialogTitle implements OnInit {\n id = `md-dialog-title-${dialogElementUid++}`;\n/**\n * @param {?} _container\n */\nconstructor(\nprivate _container: MdDialogContainer) { }\n/**\n * @return {?}\n */\nngOnInit() {\n if (this._container && !this._container._ariaLabelledBy) {\n Promise.resolve().then(() => this._container._ariaLabelledBy = this.id);\n }\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Directive, args: [{\n selector: '[md-dialog-title], [mat-dialog-title], [mdDialogTitle], [matDialogTitle]',\n host: {\n 'class': 'mat-dialog-title',\n '[id]': 'id',\n },\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: MdDialogContainer, decorators: [{ type: Optional }, ]},\n];\nstatic propDecorators: {[key: string]: DecoratorInvocation[]} = {\n'id': [{ type: Input },],\n};\n}\n\nfunction MdDialogTitle_tsickle_Closure_declarations() {\n/** @type {?} */\nMdDialogTitle.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdDialogTitle.ctorParameters;\n/** @type {?} */\nMdDialogTitle.propDecorators;\n/** @type {?} */\nMdDialogTitle.prototype.id;\n/** @type {?} */\nMdDialogTitle.prototype._container;\n}\n\n/**\n * Scrollable content container of a dialog.\n */\nexport class MdDialogContent { static decorators: DecoratorInvocation[] = [\n{ type: Directive, args: [{\n selector: `[md-dialog-content], md-dialog-content, [mat-dialog-content], mat-dialog-content,\n [mdDialogContent], [matDialogContent]`,\n host: {'class': 'mat-dialog-content'}\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction MdDialogContent_tsickle_Closure_declarations() {\n/** @type {?} */\nMdDialogContent.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdDialogContent.ctorParameters;\n}\n\n/**\n * Container for the bottom action buttons in a dialog.\n * Stays fixed to the bottom when scrolling.\n */\nexport class MdDialogActions { static decorators: DecoratorInvocation[] = [\n{ type: Directive, args: [{\n selector: `[md-dialog-actions], md-dialog-actions, [mat-dialog-actions], mat-dialog-actions,\n [mdDialogActions], [matDialogActions]`,\n host: {'class': 'mat-dialog-actions'}\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction MdDialogActions_tsickle_Closure_declarations() {\n/** @type {?} */\nMdDialogActions.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdDialogActions.ctorParameters;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\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 */\n\n\nimport {ESCAPE} from '@angular/cdk/keycodes';\nimport {\n BlockScrollStrategy,\n Overlay,\n OverlayRef,\n OverlayConfig,\n ScrollStrategy,\n} from '@angular/cdk/overlay';\nimport {ComponentPortal, ComponentType, TemplatePortal} from '@angular/cdk/portal';\nimport {startWith} from '@angular/cdk/rxjs';\nimport {Location} from '@angular/common';\nimport {\n ComponentRef,\n Inject,\n Injectable,\n InjectionToken,\n Injector,\n Optional,\n SkipSelf,\n TemplateRef,\n} from '@angular/core';\nimport {extendObject, PortalInjector} from '@angular/material/core';\nimport {Observable} from 'rxjs/Observable';\nimport {defer} from 'rxjs/observable/defer';\nimport {Subject} from 'rxjs/Subject';\nimport {MdDialogConfig} from './dialog-config';\nimport {MdDialogContainer} from './dialog-container';\nimport {MdDialogRef} from './dialog-ref';\n\nexport const /** @type {?} */ MD_DIALOG_DATA = new InjectionToken<any>('MdDialogData');\n/**\n * Injection token that determines the scroll handling while the dialog is open.\n */\nexport const MD_DIALOG_SCROLL_STRATEGY =\n new InjectionToken<() => ScrollStrategy>('md-dialog-scroll-strategy');\n/**\n * \\@docs-private\n * @param {?} overlay\n * @return {?}\n */\nexport function MD_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay: Overlay):\n () => BlockScrollStrategy {\n return () => overlay.scrollStrategies.block();\n}\n/**\n * \\@docs-private\n */\nexport const MD_DIALOG_SCROLL_STRATEGY_PROVIDER = {\n provide: MD_DIALOG_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: MD_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY,\n};\n/**\n * Service to open Material Design modal dialogs.\n */\nexport class MdDialog {\nprivate _openDialogsAtThisLevel: MdDialogRef<any>[] = [];\nprivate _afterAllClosedAtThisLevel = new Subject<void>();\nprivate _afterOpenAtThisLevel = new Subject<MdDialogRef<any>>();\nprivate _boundKeydown = this._handleKeydown.bind(this);\n/**\n * Keeps track of the currently-open dialogs.\n * @return {?}\n */\nget openDialogs(): MdDialogRef<any>[] {\n return this._parentDialog ? this._parentDialog.openDialogs : this._openDialogsAtThisLevel;\n }\n/**\n * Stream that emits when a dialog has been opened.\n * @return {?}\n */\nget afterOpen(): Subject<MdDialogRef<any>> {\n return this._parentDialog ? this._parentDialog.afterOpen : this._afterOpenAtThisLevel;\n }\n/**\n * @return {?}\n */\nget _afterAllClosed() {\n const /** @type {?} */ parent = this._parentDialog;\n return parent ? parent._afterAllClosed : this._afterAllClosedAtThisLevel;\n }\n/**\n * Stream that emits when all open dialog have finished closing.\n * Will emit on subscribe if there are no open dialogs to begin with.\n */\nafterAllClosed: Observable<void> = defer<void>(() => this.openDialogs.length ?\n this._afterAllClosed :\n startWith.call(this._afterAllClosed, undefined));\n/**\n * @param {?} _overlay\n * @param {?} _injector\n * @param {?} location\n * @param {?} _scrollStrategy\n * @param {?} _parentDialog\n */\nconstructor(\nprivate _overlay: Overlay,\nprivate _injector: Injector,\n location: Location,\nprivate _scrollStrategy,\nprivate _parentDialog: MdDialog) {\n\n // Close all of the dialogs when the user goes forwards/backwards in history or when the\n // location hash changes. Note that this usually doesn't include clicking on links (unless\n // the user is using the `HashLocationStrategy`).\n if (!_parentDialog && location) {\n location.subscribe(() => this.closeAll());\n }\n }\n/**\n * Opens a modal dialog containing the given component.\n * @template T\n * @param {?} componentOrTemplateRef Type of the component to load into the dialog,\n * or a TemplateRef to instantiate as the dialog content.\n * @param {?=} config Extra configuration options.\n * @return {?} Reference to the newly-opened dialog.\n */\nopen<T>(componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n config?: MdDialogConfig): MdDialogRef<T> {\n\n const /** @type {?} */ inProgressDialog = this.openDialogs.find(dialog => dialog._isAnimating());\n\n // If there's a dialog that is in the process of being opened, return it instead.\n if (inProgressDialog) {\n return inProgressDialog;\n }\n\n config = _applyConfigDefaults(config);\n\n if (config.id && this.getDialogById(config.id)) {\n throw Error(`Dialog with id \"${config.id}\" exists already. The dialog id must be unique.`);\n }\n\n const /** @type {?} */ overlayRef = this._createOverlay(config);\n const /** @type {?} */ dialogContainer = this._attachDialogContainer(overlayRef, config);\n const /** @type {?} */ dialogRef =\n this._attachDialogContent(componentOrTemplateRef, dialogContainer, overlayRef, config);\n\n if (!this.openDialogs.length) {\n document.addEventListener('keydown', this._boundKeydown);\n }\n\n this.openDialogs.push(dialogRef);\n dialogRef.afterClosed().subscribe(() => this._removeOpenDialog(dialogRef));\n this.afterOpen.next(dialogRef);\n\n return dialogRef;\n }\n/**\n * Closes all of the currently-open dialogs.\n * @return {?}\n */\ncloseAll(): void {\n let /** @type {?} */ i = this.openDialogs.length;\n\n while (i--) {\n // The `_openDialogs` property isn't updated after close until the rxjs subscription\n // runs on the next microtask, in addition to modifying the array as we're going\n // through it. We loop through all of them and call close without assuming that\n // they'll be removed from the list instantaneously.\n this.openDialogs[i].close();\n }\n }\n/**\n * Finds an open dialog by its id.\n * @param {?} id ID to use when looking up the dialog.\n * @return {?}\n */\ngetDialogById(id: string): MdDialogRef<any> | undefined {\n return this.openDialogs.find(dialog => dialog.id === id);\n }\n/**\n * Creates the overlay into which the dialog will be loaded.\n * @param {?} config The dialog configuration.\n * @return {?} A promise resolving to the OverlayRef for the created overlay.\n */\nprivate _createOverlay(config: MdDialogConfig): OverlayRef {\n const /** @type {?} */ overlayState = this._getOverlayState(config);\n return this._overlay.create(overlayState);\n }\n/**\n * Creates an overlay state from a dialog config.\n * @param {?} dialogConfig The dialog configuration.\n * @return {?} The overlay configuration.\n */\nprivate _getOverlayState(dialogConfig: MdDialogConfig): OverlayConfig {\n const /** @type {?} */ state = new OverlayConfig({\n positionStrategy: this._overlay.position().global(),\n scrollStrategy: this._scrollStrategy(),\n panelClass: dialogConfig.panelClass,\n hasBackdrop: dialogConfig.hasBackdrop,\n direction: dialogConfig.direction\n });\n\n if (dialogConfig.backdropClass) {\n state.backdropClass = dialogConfig.backdropClass;\n }\n\n return state;\n }\n/**\n * Attaches an MdDialogContainer to a dialog's already-created overlay.\n * @param {?} overlay Reference to the dialog's underlying overlay.\n * @param {?} config The dialog configuration.\n * @return {?} A promise resolving to a ComponentRef for the attached container.\n */\nprivate _attachDialogContainer(overlay: OverlayRef, config: MdDialogConfig): MdDialogContainer {\n let /** @type {?} */ containerPortal = new ComponentPortal(MdDialogContainer, config.viewContainerRef);\n let /** @type {?} */ containerRef: ComponentRef<MdDialogContainer> = overlay.attach(containerPortal);\n containerRef.instance._config = config;\n\n return containerRef.instance;\n }\n/**\n * Attaches the user-provided component to the already-created MdDialogContainer.\n * @template T\n * @param {?} componentOrTemplateRef The type of component being loaded into the dialog,\n * or a TemplateRef to instantiate as the content.\n * @param {?} dialogContainer Reference to the wrapping MdDialogContainer.\n * @param {?} overlayRef Reference to the overlay in which the dialog resides.\n * @param {?} config The dialog configuration.\n * @return {?} A promise resolving to the MdDialogRef that should be returned to the user.\n */\nprivate _attachDialogContent<T>(\n componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n dialogContainer: MdDialogContainer,\n overlayRef: OverlayRef,\n config: MdDialogConfig): MdDialogRef<T> {\n\n // Create a reference to the dialog we're creating in order to give the user a handle\n // to modify and close it.\n const /** @type {?} */ dialogRef = new MdDialogRef<T>(overlayRef, dialogContainer, config.id);\n\n // When the dialog backdrop is clicked, we want to close it.\n if (config.hasBackdrop) {\n overlayRef.backdropClick().subscribe(() => {\n if (!dialogRef.disableClose) {\n dialogRef.close();\n }\n });\n }\n\n if (componentOrTemplateRef instanceof TemplateRef) {\n dialogContainer.attachTemplatePortal(\n new TemplatePortal<T>(componentOrTemplateRef, /** @type {?} */(( null)), /** @type {?} */((\n <any>{ $implicit: config.data, dialogRef }))));\n } else {\n const /** @type {?} */ injector = this._createInjector<T>(config, dialogRef, dialogContainer);\n const /** @type {?} */ contentRef = dialogContainer.attachComponentPortal(\n new ComponentPortal(componentOrTemplateRef, undefined, injector));\n dialogRef.componentInstance = contentRef.instance;\n }\n\n dialogRef\n .updateSize(config.width, config.height)\n .updatePosition(config.position);\n\n return dialogRef;\n }\n/**\n * Creates a custom injector to be used inside the dialog. This allows a component loaded inside\n * of a dialog to close itself and, optionally, to return a value.\n * @template T\n * @param {?} config Config object that is used to construct the dialog.\n * @param {?} dialogRef Reference to the dialog.\n * @param {?} dialogContainer\n * @return {?} The custom injector that can be used inside the dialog.\n */\nprivate _createInjector<T>(\n config: MdDialogConfig,\n dialogRef: MdDialogRef<T>,\n dialogContainer: MdDialogContainer): PortalInjector {\n\n const /** @type {?} */ userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n const /** @type {?} */ injectionTokens = new WeakMap();\n\n injectionTokens.set(MdDialogRef, dialogRef);\n injectionTokens.set(MdDialogContainer, dialogContainer);\n injectionTokens.set(MD_DIALOG_DATA, config.data);\n\n return new PortalInjector(userInjector || this._injector, injectionTokens);\n }\n/**\n * Removes a dialog from the array of open dialogs.\n * @param {?} dialogRef Dialog to be removed.\n * @return {?}\n */\nprivate _removeOpenDialog(dialogRef: MdDialogRef<any>) {\n const /** @type {?} */ index = this.openDialogs.indexOf(dialogRef);\n\n if (index > -1) {\n this.openDialogs.splice(index, 1);\n\n // no open dialogs are left, call next on afterAllClosed Subject\n if (!this.openDialogs.length) {\n this._afterAllClosed.next();\n document.removeEventListener('keydown', this._boundKeydown);\n }\n }\n }\n/**\n * Handles global key presses while there are open dialogs. Closes the\n * top dialog when the user presses escape.\n * @param {?} event\n * @return {?}\n */\nprivate _handleKeydown(event: KeyboardEvent): void {\n const /** @type {?} */ topDialog = this.openDialogs[this.openDialogs.length - 1];\n const /** @type {?} */ canClose = topDialog ? !topDialog.disableClose : false;\n\n if (event.keyCode === ESCAPE && canClose) {\n topDialog.close();\n }\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: Overlay, },\n{type: Injector, },\n{type: Location, decorators: [{ type: Optional }, ]},\n{type: undefined, decorators: [{ type: Inject, args: [MD_DIALOG_SCROLL_STRATEGY, ] }, ]},\n{type: MdDialog, decorators: [{ type: Optional }, { type: SkipSelf }, ]},\n];\n}\n\nfunction MdDialog_tsickle_Closure_declarations() {\n/** @type {?} */\nMdDialog.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdDialog.ctorParameters;\n/** @type {?} */\nMdDialog.prototype._openDialogsAtThisLevel;\n/** @type {?} */\nMdDialog.prototype._afterAllClosedAtThisLevel;\n/** @type {?} */\nMdDialog.prototype._afterOpenAtThisLevel;\n/** @type {?} */\nMdDialog.prototype._boundKeydown;\n/**\n * Stream that emits when all open dialog have finished closing.\n * Will emit on subscribe if there are no open dialogs to begin with.\n * @type {?}\n */\nMdDialog.prototype.afterAllClosed;\n/** @type {?} */\nMdDialog.prototype._overlay;\n/** @type {?} */\nMdDialog.prototype._injector;\n/** @type {?} */\nMdDialog.prototype._scrollStrategy;\n/** @type {?} */\nMdDialog.prototype._parentDialog;\n}\n\n/**\n * Applies default options to the dialog config.\n * @param {?=} config Config to be modified.\n * @return {?} The new configuration object.\n */\nfunction _applyConfigDefaults(config?: MdDialogConfig): MdDialogConfig {\n return extendObject(new MdDialogConfig(), config);\n}\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\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 */\n\n\nimport {OverlayRef, GlobalPositionStrategy} from '@angular/cdk/overlay';\nimport {filter, first, RxChain} from '@angular/cdk/rxjs';\nimport {DialogPosition} from './dialog-config';\nimport {Observable} from 'rxjs/Observable';\nimport {Subject} from 'rxjs/Subject';\nimport {MdDialogContainer} from './dialog-container';\n\n\n// TODO(jelbourn): resizing\n\n// Counter for unique dialog ids.\nlet /** @type {?} */ uniqueId = 0;\n/**\n * Reference to a dialog opened via the MdDialog service.\n */\nexport class MdDialogRef<T> {\n/**\n * The instance of component opened into the dialog.\n */\ncomponentInstance: T;\n/**\n * Whether the user is allowed to close the dialog.\n */\ndisableClose = this._containerInstance._config.disableClose;\n/**\n * Subject for notifying the user that the dialog has finished opening.\n */\nprivate _afterOpen = new Subject<void>();\n/**\n * Subject for notifying the user that the dialog has finished closing.\n */\nprivate _afterClosed = new Subject<any>();\n/**\n * Subject for notifying the user that the dialog has started closing.\n */\nprivate _beforeClose = new Subject<any>();\n/**\n * Result to be passed to afterClosed.\n */\nprivate _result: any;\n/**\n * @param {?} _overlayRef\n * @param {?} _containerInstance\n * @param {?=} id\n */\nconstructor(\nprivate _overlayRef: OverlayRef,\nprivate _containerInstance: MdDialogContainer,\npublic readonly id: string = `md-dialog-${uniqueId++}`) {\n\n // Emit when opening animation completes\n RxChain.from(_containerInstance._animationStateChanged)\n .call(filter, event => event.phaseName === 'done' && event.toState === 'enter')\n .call(first)\n .subscribe(() => {\n this._afterOpen.next();\n this._afterOpen.complete();\n });\n\n // Dispose overlay when closing animation is complete\n RxChain.from(_containerInstance._animationStateChanged)\n .call(filter, event => event.phaseName === 'done' && event.toState === 'exit')\n .call(first)\n .subscribe(() => {\n this._overlayRef.dispose();\n this._afterClosed.next(this._result);\n this._afterClosed.complete();\n this.componentInstance = null!;\n });\n }\n/**\n * Close the dialog.\n * @param {?=} dialogResult Optional result to return to the dialog opener.\n * @return {?}\n */\nclose(dialogResult?: any): void {\n this._result = dialogResult;\n\n // Transition the backdrop in parallel to the dialog.\n RxChain.from(this._containerInstance._animationStateChanged)\n .call(filter, event => event.phaseName === 'start')\n .call(first)\n .subscribe(() => {\n this._beforeClose.next(dialogResult);\n this._beforeClose.complete();\n this._overlayRef.detachBackdrop();\n });\n\n this._containerInstance._startExitAnimation();\n }\n/**\n * Gets an observable that is notified when the dialog is finished opening.\n * @return {?}\n */\nafterOpen(): Observable<void> {\n return this._afterOpen.asObservable();\n }\n/**\n * Gets an observable that is notified when the dialog is finished closing.\n * @return {?}\n */\nafterClosed(): Observable<any> {\n return this._afterClosed.asObservable();\n }\n/**\n * Gets an observable that is notified when the dialog has started closing.\n * @return {?}\n */\nbeforeClose(): Observable<any> {\n return this._beforeClose.asObservable();\n }\n/**\n * Gets an observable that emits when the overlay's backdrop has been clicked.\n * @return {?}\n */\nbackdropClick(): Observable<void> {\n return this._overlayRef.backdropClick();\n }\n/**\n * Updates the dialog's position.\n * @param {?=} position New dialog position.\n * @return {?}\n */\nupdatePosition(position?: DialogPosition): this {\n let /** @type {?} */ strategy = this._getPositionStrategy();\n\n if (position && (position.left || position.right)) {\n position.left ? strategy.left(position.left) : strategy.right(position.right);\n } else {\n strategy.centerHorizontally();\n }\n\n if (position && (position.top || position.bottom)) {\n position.top ? strategy.top(position.top) : strategy.bottom(position.bottom);\n } else {\n strategy.centerVertically();\n }\n\n this._overlayRef.updatePosition();\n\n return this;\n }\n/**\n * Updates the dialog's width and height.\n * @param {?=} width New width of the dialog.\n * @param {?=} height New height of the dialog.\n * @return {?}\n */\nupdateSize(width = 'auto', height = 'auto'): this {\n this._getPositionStrategy().width(width).height(height);\n this._overlayRef.updatePosition();\n return this;\n }\n/**\n * Returns whether the dialog is animating.\n * @return {?}\n */\n_isAnimating(): boolean {\n return this._containerInstance._isAnimating;\n }\n/**\n * Fetches the position strategy object from the overlay ref.\n * @return {?}\n */\nprivate _getPositionStrategy(): GlobalPositionStrategy {\n return /** @type {?} */(( this._overlayRef.getState().positionStrategy as GlobalPositionStrategy));\n }\n}\n\nfunction MdDialogRef_tsickle_Closure_declarations() {\n/**\n * The instance of component opened into the dialog.\n * @type {?}\n */\nMdDialogRef.prototype.componentInstance;\n/**\n * Whether the user is allowed to close the dialog.\n * @type {?}\n */\nMdDialogRef.prototype.disableClose;\n/**\n * Subject for notifying the user that the dialog has finished opening.\n * @type {?}\n */\nMdDialogRef.prototype._afterOpen;\n/**\n * Subject for notifying the user that the dialog has finished closing.\n * @type {?}\n */\nMdDialogRef.prototype._afterClosed;\n/**\n * Subject for notifying the user that the dialog has started closing.\n * @type {?}\n */\nMdDialogRef.prototype._beforeClose;\n/**\n * Result to be passed to afterClosed.\n * @type {?}\n */\nMdDialogRef.prototype._result;\n/** @type {?} */\nMdDialogRef.prototype._overlayRef;\n/** @type {?} */\nMdDialogRef.prototype._containerInstance;\n/** @type {?} */\nMdDialogRef.prototype.id;\n}\n\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 */\n\n\nimport {\n Component,\n ComponentRef,\n ElementRef,\n EmbeddedViewRef,\n EventEmitter,\n Inject,\n Optional,\n ChangeDetectorRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {animate, AnimationEvent, state, style, transition, trigger} from '@angular/animations';\nimport {DOCUMENT} from '@angular/platform-browser';\nimport {\n BasePortalHost,\n ComponentPortal,\n PortalHostDirective,\n TemplatePortal\n} from '@angular/cdk/portal';\nimport {FocusTrap, FocusTrapFactory} from '@angular/cdk/a11y';\nimport {MdDialogConfig} from './dialog-config';\n/**\n * Throws an exception for the case when a ComponentPortal is\n * attached to a DomPortalHost without an origin.\n * \\@docs-private\n * @return {?}\n */\nexport function throwMdDialogContentAlreadyAttachedError() {\n throw Error('Attempting to attach dialog content after content is already attached');\n}\n/**\n * Internal component that wraps user-provided dialog content.\n * Animation is based on https://material.io/guidelines/motion/choreography.html.\n * \\@docs-private\n */\nexport class MdDialogContainer extends BasePortalHost {\n/**\n * The portal host inside of this container into which the dialog content will be loaded.\n */\n_portalHost: PortalHostDirective;\n/**\n * The class that traps and manages focus within the dialog.\n */\nprivate _focusTrap: FocusTrap;\n/**\n * Element that was focused before the dialog was opened. Save this to restore upon close.\n */\nprivate _elementFocusedBeforeDialogWasOpened: HTMLElement | null = null;\n/**\n * The dialog configuration.\n */\n_config: MdDialogConfig;\n/**\n * State of the dialog animation.\n */\n_state: 'void' | 'enter' | 'exit' = 'enter';\n/**\n * Emits when an animation state changes.\n */\n_animationStateChanged = new EventEmitter<AnimationEvent>();\n/**\n * ID of the element that should be considered as the dialog's label.\n */\n_ariaLabelledBy: string | null = null;\n/**\n * Whether the container is currently mid-animation.\n */\n_isAnimating = false;\n/**\n * @param {?} _elementRef\n * @param {?} _focusTrapFactory\n * @param {?} _changeDetectorRef\n * @param {?} _document\n */\nconstructor(\nprivate _elementRef: ElementRef,\nprivate _focusTrapFactory: FocusTrapFactory,\nprivate _changeDetectorRef: ChangeDetectorRef,\nprivate _document: any) {\n\n super();\n }\n/**\n * Attach a ComponentPortal as content to this dialog container.\n * @template T\n * @param {?} portal Portal to be attached as the dialog content.\n * @return {?}\n */\nattachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n if (this._portalHost.hasAttached()) {\n throwMdDialogContentAlreadyAttachedError();\n }\n\n this._savePreviouslyFocusedElement();\n return this._portalHost.attachComponentPortal(portal);\n }\n/**\n * Attach a TemplatePortal as content to this dialog container.\n * @template C\n * @param {?} portal Portal to be attached as the dialog content.\n * @return {?}\n */\nattachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n if (this._portalHost.hasAttached()) {\n throwMdDialogContentAlreadyAttachedError();\n }\n\n this._savePreviouslyFocusedElement();\n return this._portalHost.attachTemplatePortal(portal);\n }\n/**\n * Moves the focus inside the focus trap.\n * @return {?}\n */\nprivate _trapFocus() {\n if (!this._focusTrap) {\n this._focusTrap = this._focusTrapFactory.create(this._elementRef.nativeElement);\n }\n\n // If were to attempt to focus immediately, then the content of the dialog would not yet be\n // ready in instances where change detection has to run first. To deal with this, we simply\n // wait for the microtask queue to be empty.\n this._focusTrap.focusInitialElementWhenReady().then(hasMovedFocus => {\n // If we didn't find any focusable elements inside the dialog, focus the\n // container so the user can't tab into other elements behind it.\n if (!hasMovedFocus) {\n this._elementRef.nativeElement.focus();\n }\n });\n }\n/**\n * Restores focus to the element that was focused before the dialog opened.\n * @return {?}\n */\nprivate _restoreFocus() {\n const /** @type {?} */ toFocus = this._elementFocusedBeforeDialogWasOpened;\n\n // We need the extra check, because IE can set the `activeElement` to null in some cases.\n if (toFocus && typeof toFocus.focus === 'function') {\n toFocus.focus();\n }\n\n if (this._focusTrap) {\n this._focusTrap.destroy();\n }\n }\n/**\n * Saves a reference to the element that was focused before the dialog was opened.\n * @return {?}\n */\nprivate _savePreviouslyFocusedElement() {\n if (this._document) {\n this._elementFocusedBeforeDialogWasOpened = /** @type {?} */(( this._document.activeElement as HTMLElement));\n }\n }\n/**\n * Callback, invoked whenever an animation on the host completes.\n * @param {?} event\n * @return {?}\n */\n_onAnimationDone(event: AnimationEvent) {\n if (event.toState === 'enter') {\n this._trapFocus();\n } else if (event.toState === 'exit') {\n this._restoreFocus();\n }\n\n this._animationStateChanged.emit(event);\n this._isAnimating = false;\n }\n/**\n * Callback, invoked when an animation on the host starts.\n * @param {?} event\n * @return {?}\n */\n_onAnimationStart(event: AnimationEvent) {\n this._isAnimating = true;\n this._animationStateChanged.emit(event);\n }\n/**\n * Starts the dialog exit animation.\n * @return {?}\n */\n_startExitAnimation(): void {\n this._state = 'exit';\n\n // Mark the container for check so it can react if the\n // view container is using OnPush change detection.\n this._changeDetectorRef.markForCheck();\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Component, args: [{\n moduleId: module.id,\n selector: 'md-dialog-container, mat-dialog-container',\n templateUrl: 'dialog-container.html',\n styleUrls: ['dialog.css'],\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n animations: [\n trigger('slideDialog', [\n // Note: The `enter` animation doesn't transition to something like `translate3d(0, 0, 0)\n // scale(1)`, because for some reason specifying the transform explicitly, causes IE both\n // to blur the dialog content and decimate the animation performance. Leaving it as `none`\n // solves both issues.\n state('enter', style({ transform: 'none', opacity: 1 })),\n state('void', style({ transform: 'translate3d(0, 25%, 0) scale(0.9)', opacity: 0 })),\n state('exit', style({ transform: 'translate3d(0, 25%, 0)', opacity: 0 })),\n transition('* => *', animate('400ms cubic-bezier(0.25, 0.8, 0.25, 1)')),\n ])\n ],\n host: {\n 'class': 'mat-dialog-container',\n 'tabindex': '-1',\n '[attr.role]': '_config?.role',\n '[attr.aria-labelledby]': '_ariaLabelledBy',\n '[attr.aria-describedby]': '_config?.ariaDescribedBy || null',\n '[@slideDialog]': '_state',\n '(@slideDialog.start)': '_onAnimationStart($event)',\n '(@slideDialog.done)': '_onAnimationDone($event)',\n },\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: ElementRef, },\n{type: FocusTrapFactory, },\n{type: ChangeDetectorRef, },\n{type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DOCUMENT, ] }, ]},\n];\nstatic propDecorators: {[key: string]: DecoratorInvocation[]} = {\n'_portalHost': [{ type: ViewChild, args: [PortalHostDirective, ] },],\n};\n}\n\nfunction MdDialogContainer_tsickle_Closure_declarations() {\n/** @type {?} */\nMdDialogContainer.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdDialogContainer.ctorParameters;\n/** @type {?} */\nMdDialogContainer.propDecorators;\n/**\n * The portal host inside of this container into which the dialog content will be loaded.\n * @type {?}\n */\nMdDialogContainer.prototype._portalHost;\n/**\n * The class that traps and manages focus within the dialog.\n * @type {?}\n */\nMdDialogContainer.prototype._focusTrap;\n/**\n * Element that was focused before the dialog was opened. Save this to restore upon close.\n * @type {?}\n */\nMdDialogContainer.prototype._elementFocusedBeforeDialogWasOpened;\n/**\n * The dialog configuration.\n * @type {?}\n */\nMdDialogContainer.prototype._config;\n/**\n * State of the dialog animation.\n * @type {?}\n */\nMdDialogContainer.prototype._state;\n/**\n * Emits when an animation state changes.\n * @type {?}\n */\nMdDialogContainer.prototype._animationStateChanged;\n/**\n * ID of the element that should be considered as the dialog's label.\n * @type {?}\n */\nMdDialogContainer.prototype._ariaLabelledBy;\n/**\n * Whether the container is currently mid-animation.\n * @type {?}\n */\nMdDialogContainer.prototype._isAnimating;\n/** @type {?} */\nMdDialogContainer.prototype._elementRef;\n/** @type {?} */\nMdDialogContainer.prototype._focusTrapFactory;\n/** @type {?} */\nMdDialogContainer.prototype._changeDetectorRef;\n/** @type {?} */\nMdDialogContainer.prototype._document;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\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 */\n\n\nimport {ViewContainerRef} from '@angular/core';\nimport {Direction} from '@angular/cdk/bidi';\n\n/** Valid ARIA roles for a dialog element. */\nexport type DialogRole = 'dialog' | 'alertdialog';\n\n/** Possible overrides for a dialog's position. */\nexport interface DialogPosition {\n top?: string;\n bottom?: string;\n left?: string;\n right?: string;\n}\n/**\n * Configuration for opening a modal dialog with the MdDialog service.\n */\nexport class MdDialogConfig {\n/**\n * Where the attached component should live in Angular's *logical* component tree.\n * This affects what is available for injection and the change detection order for the\n * component instantiated inside of the dialog. This does not affect where the dialog\n * content will be rendered.\n */\nviewContainerRef?: ViewContainerRef;\n/**\n * ID for the dialog. If omitted, a unique one will be generated.\n */\nid?: string;\n/**\n * The ARIA role of the dialog element.\n */\nrole?: DialogRole = 'dialog';\n/**\n * Custom class for the overlay pane.\n */\npanelClass?: string | string[] = '';\n/**\n * Whether the dialog has a backdrop.\n */\nhasBackdrop?: boolean = true;\n/**\n * Custom class for the backdrop,\n */\nbackdropClass?: string = '';\n/**\n * Whether the user can use escape or clicking outside to close a modal.\n */\ndisableClose?: boolean = false;\n/**\n * Width of the dialog.\n */\nwidth?: string = '';\n/**\n * Height of the dialog.\n */\nheight?: string = '';\n/**\n * Position overrides.\n */\nposition?: DialogPosition;\n/**\n * Data being injected into the child component.\n */\ndata?: any = null;\n/**\n * Layout direction for the dialog's content.\n */\ndirection?: Direction = 'ltr';\n/**\n * ID of the element that describes the dialog.\n */\nariaDescribedBy?: string | null = null;\n\n\n // TODO(jelbourn): add configuration for lifecycle hooks, ARIA labelling.\n}\n\nfunction MdDialogConfig_tsickle_Closure_declarations() {\n/**\n * Where the attached component should live in Angular's *logical* component tree.\n * This affects what is available for injection and the change detection order for the\n * component instantiated inside of the dialog. This does not affect where the dialog\n * content will be rendered.\n * @type {?}\n */\nMdDialogConfig.prototype.viewContainerRef;\n/**\n * ID for the dialog. If omitted, a unique one will be generated.\n * @type {?}\n */\nMdDialogConfig.prototype.id;\n/**\n * The ARIA role of the dialog element.\n * @type {?}\n */\nMdDialogConfig.prototype.role;\n/**\n * Custom class for the overlay pane.\n * @type {?}\n */\nMdDialogConfig.prototype.panelClass;\n/**\n * Whether the dialog has a backdrop.\n * @type {?}\n */\nMdDialogConfig.prototype.hasBackdrop;\n/**\n * Custom class for the backdrop,\n * @type {?}\n */\nMdDialogConfig.prototype.backdropClass;\n/**\n * Whether the user can use escape or clicking outside to close a modal.\n * @type {?}\n */\nMdDialogConfig.prototype.disableClose;\n/**\n * Width of the dialog.\n * @type {?}\n */\nMdDialogConfig.prototype.width;\n/**\n * Height of the dialog.\n * @type {?}\n */\nMdDialogConfig.prototype.height;\n/**\n * Position overrides.\n * @type {?}\n */\nMdDialogConfig.prototype.position;\n/**\n * Data being injected into the child component.\n * @type {?}\n */\nMdDialogConfig.prototype.data;\n/**\n * Layout direction for the dialog's content.\n * @type {?}\n */\nMdDialogConfig.prototype.direction;\n/**\n * ID of the element that describes the dialog.\n * @type {?}\n */\nMdDialogConfig.prototype.ariaDescribedBy;\n}\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport {MdButtonModule,MdButtonCssMatStyler,MdRaisedButtonCssMatStyler,MdIconButtonCssMatStyler,MdFab,MdMiniFab,MdButtonBase,_MdButtonMixinBase,MdButton,MdAnchor,MatButton,MatButtonBase,MatButtonCssMatStyler,MatButtonModule,MatAnchor,MatIconButtonCssMatStyler,MatFab,MatMiniFab,MatRaisedButtonCssMatStyler} from './public_api';\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 */\n\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {MdCommonModule, MdRippleModule} from '@angular/material/core';\nimport {A11yModule} from '@angular/cdk/a11y';\nimport {\n MdAnchor,\n MdButton,\n MdMiniFab,\n MdButtonCssMatStyler,\n MdFab,\n MdIconButtonCssMatStyler,\n MdRaisedButtonCssMatStyler\n} from './button';\nexport class MdButtonModule {static decorators: DecoratorInvocation[] = [\n{ type: NgModule, args: [{\n imports: [\n CommonModule,\n MdRippleModule,\n MdCommonModule,\n A11yModule,\n ],\n exports: [\n MdButton,\n MdAnchor,\n MdMiniFab,\n MdFab,\n MdCommonModule,\n MdButtonCssMatStyler,\n MdRaisedButtonCssMatStyler,\n MdIconButtonCssMatStyler,\n ],\n declarations: [\n MdButton,\n MdAnchor,\n MdMiniFab,\n MdFab,\n MdButtonCssMatStyler,\n MdRaisedButtonCssMatStyler,\n MdIconButtonCssMatStyler,\n ],\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction MdButtonModule_tsickle_Closure_declarations() {\n/** @type {?} */\nMdButtonModule.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdButtonModule.ctorParameters;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\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 */\n\n\nimport {\n ChangeDetectionStrategy,\n Component,\n Directive,\n ElementRef,\n forwardRef,\n Inject,\n OnDestroy,\n Optional,\n Renderer2,\n Self,\n ViewEncapsulation,\n} from '@angular/core';\nimport {Platform} from '@angular/cdk/platform';\nimport {\n CanColor,\n CanDisable,\n CanDisableRipple,\n MATERIAL_COMPATIBILITY_MODE,\n mixinColor,\n mixinDisabled,\n mixinDisableRipple\n} from '@angular/material/core';\nimport {FocusMonitor} from '@angular/cdk/a11y';\n/**\n * Default color palette for round buttons (md-fab and md-mini-fab)\n */\nconst DEFAULT_ROUND_BUTTON_COLOR = 'accent';\n/**\n * Directive whose purpose is to add the mat- CSS styling to this selector.\n * \\@docs-private\n */\nexport class MdButtonCssMatStyler {static decorators: DecoratorInvocation[] = [\n{ type: Directive, args: [{\n selector: 'button[md-button], button[mat-button], a[md-button], a[mat-button]',\n host: {'class': 'mat-button'}\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction MdButtonCssMatStyler_tsickle_Closure_declarations() {\n/** @type {?} */\nMdButtonCssMatStyler.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdButtonCssMatStyler.ctorParameters;\n}\n\n/**\n * Directive whose purpose is to add the mat- CSS styling to this selector.\n * \\@docs-private\n */\nexport class MdRaisedButtonCssMatStyler {static decorators: DecoratorInvocation[] = [\n{ type: Directive, args: [{\n selector:\n 'button[md-raised-button], button[mat-raised-button], ' +\n 'a[md-raised-button], a[mat-raised-button]',\n host: {'class': 'mat-raised-button'}\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction MdRaisedButtonCssMatStyler_tsickle_Closure_declarations() {\n/** @type {?} */\nMdRaisedButtonCssMatStyler.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdRaisedButtonCssMatStyler.ctorParameters;\n}\n\n/**\n * Directive whose purpose is to add the mat- CSS styling to this selector.\n * \\@docs-private\n */\nexport class MdIconButtonCssMatStyler {static decorators: DecoratorInvocation[] = [\n{ type: Directive, args: [{\n selector:\n 'button[md-icon-button], button[mat-icon-button], a[md-icon-button], a[mat-icon-button]',\n host: {'class': 'mat-icon-button'}\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction MdIconButtonCssMatStyler_tsickle_Closure_declarations() {\n/** @type {?} */\nMdIconButtonCssMatStyler.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdIconButtonCssMatStyler.ctorParameters;\n}\n\n/**\n * Directive whose purpose is to add the mat- CSS styling to this selector.\n * \\@docs-private\n */\nexport class MdFab {\n/**\n * @param {?} button\n * @param {?} anchor\n */\nconstructor( button: MdButton,\n anchor: MdAnchor) {\n // Set the default color palette for the md-fab components.\n (button || anchor).color = DEFAULT_ROUND_BUTTON_COLOR;\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Directive, args: [{\n selector: 'button[md-fab], button[mat-fab], a[md-fab], a[mat-fab]',\n host: {'class': 'mat-fab'}\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: MdButton, decorators: [{ type: Self }, { type: Optional }, { type: Inject, args: [forwardRef(() => MdButton), ] }, ]},\n{type: MdAnchor, decorators: [{ type: Self }, { type: Optional }, { type: Inject, args: [forwardRef(() => MdAnchor), ] }, ]},\n];\n}\n\nfunction MdFab_tsickle_Closure_declarations() {\n/** @type {?} */\nMdFab.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdFab.ctorParameters;\n}\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 */\nexport class MdMiniFab {\n/**\n * @param {?} button\n * @param {?} anchor\n */\nconstructor( button: MdButton,\n anchor: MdAnchor) {\n // Set the default color palette for the md-mini-fab components.\n (button || anchor).color = DEFAULT_ROUND_BUTTON_COLOR;\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Directive, args: [{\n selector: 'button[md-mini-fab], button[mat-mini-fab], a[md-mini-fab], a[mat-mini-fab]',\n host: {'class': 'mat-mini-fab'}\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: MdButton, decorators: [{ type: Self }, { type: Optional }, { type: Inject, args: [forwardRef(() => MdButton), ] }, ]},\n{type: MdAnchor, decorators: [{ type: Self }, { type: Optional }, { type: Inject, args: [forwardRef(() => MdAnchor), ] }, ]},\n];\n}\n\nfunction MdMiniFab_tsickle_Closure_declarations() {\n/** @type {?} */\nMdMiniFab.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdMiniFab.ctorParameters;\n}\n\n/**\n * \\@docs-private\n */\nexport class MdButtonBase {\n/**\n * @param {?} _renderer\n * @param {?} _elementRef\n */\nconstructor(public _renderer: Renderer2,\npublic _elementRef: ElementRef) {}\n}\n\nfunction MdButtonBase_tsickle_Closure_declarations() {\n/** @type {?} */\nMdButtonBase.prototype._renderer;\n/** @type {?} */\nMdButtonBase.prototype._elementRef;\n}\n\nexport const /** @type {?} */ _MdButtonMixinBase = mixinColor(mixinDisabled(mixinDisableRipple(MdButtonBase)));\n/**\n * Material design button.\n */\nexport class MdButton extends _MdButtonMixinBase\n implements OnDestroy, CanDisable, CanColor, CanDisableRipple {\n/**\n * Whether the button is round.\n */\n_isRoundButton: boolean = this._hasAttributeWithPrefix('fab', 'mini-fab');\n/**\n * Whether the button is icon button.\n */\n_isIconButton: boolean = this._hasAttributeWithPrefix('icon-button');\n/**\n * @param {?} renderer\n * @param {?} elementRef\n * @param {?} _platform\n * @param {?} _focusMonitor\n */\nconstructor(renderer: Renderer2,\n elementRef: ElementRef,\nprivate _platform: Platform,\nprivate _focusMonitor: FocusMonitor) {\n super(renderer, elementRef);\n this._focusMonitor.monitor(this._elementRef.nativeElement, this._renderer, true);\n }\n/**\n * @return {?}\n */\nngOnDestroy() {\n this._focusMonitor.stopMonitoring(this._elementRef.nativeElement);\n }\n/**\n * Focuses the button.\n * @return {?}\n */\nfocus(): void {\n this._getHostElement().focus();\n }\n/**\n * @return {?}\n */\n_getHostElement() {\n return this._elementRef.nativeElement;\n }\n/**\n * @return {?}\n */\n_isRippleDisabled() {\n return this.disableRipple || this.disabled;\n }\n/**\n * Gets whether the button has one of the given attributes\n * with either an 'md-' or 'mat-' prefix.\n * @param {...?} unprefixedAttributeNames\n * @return {?}\n */\n_hasAttributeWithPrefix(...unprefixedAttributeNames: string[]) {\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\n return unprefixedAttributeNames.some(suffix => {\n const /** @type {?} */ el = this._getHostElement();\n\n return el.hasAttribute('md-' + suffix) || el.hasAttribute('mat-' + suffix);\n });\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Component, args: [{\n moduleId: module.id,\n selector: `button[md-button], button[md-raised-button], button[md-icon-button],\n button[md-fab], button[md-mini-fab],\n button[mat-button], button[mat-raised-button], button[mat-icon-button],\n button[mat-fab], button[mat-mini-fab]`,\n host: {\n '[disabled]': 'disabled || null',\n },\n templateUrl: 'button.html',\n styleUrls: ['button.css'],\n inputs: ['disabled', 'disableRipple', 'color'],\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n viewProviders: [{provide: MATERIAL_COMPATIBILITY_MODE, useValue: true}],\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: Renderer2, },\n{type: ElementRef, },\n{type: Platform, },\n{type: FocusMonitor, },\n];\n}\n\nfunction MdButton_tsickle_Closure_declarations() {\n/** @type {?} */\nMdButton.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdButton.ctorParameters;\n/**\n * Whether the button is round.\n * @type {?}\n */\nMdButton.prototype._isRoundButton;\n/**\n * Whether the button is icon button.\n * @type {?}\n */\nMdButton.prototype._isIconButton;\n/** @type {?} */\nMdButton.prototype._platform;\n/** @type {?} */\nMdButton.prototype._focusMonitor;\n}\n\n/**\n * Raised Material design button.\n */\nexport class MdAnchor extends MdButton {\n/**\n * @param {?} platform\n * @param {?} focusMonitor\n * @param {?} elementRef\n * @param {?} renderer\n */\nconstructor(\n platform: Platform,\n focusMonitor: FocusMonitor,\n elementRef: ElementRef,\n renderer: Renderer2) {\n super(renderer, elementRef, platform, focusMonitor);\n }\n/**\n * @param {?} event\n * @return {?}\n */\n_haltDisabledEvents(event: Event) {\n // A disabled button shouldn't apply any actions\n if (this.disabled) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Component, args: [{\n moduleId: module.id,\n selector: `a[md-button], a[md-raised-button], a[md-icon-button], a[md-fab], a[md-mini-fab],\n a[mat-button], a[mat-raised-button], a[mat-icon-button], a[mat-fab], a[mat-mini-fab]`,\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 templateUrl: 'button.html',\n styleUrls: ['button.css'],\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: Platform, },\n{type: FocusMonitor, },\n{type: ElementRef, },\n{type: Renderer2, },\n];\n}\n\nfunction MdAnchor_tsickle_Closure_declarations() {\n/** @type {?} */\nMdAnchor.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdAnchor.ctorParameters;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\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 */\nexport const JAN = 0, FEB = 1, MAR = 2, APR = 3, MAY = 4, JUN = 5, JUL = 6, AUG = 7, SEP = 8,\n OCT = 9, NOV = 10, DEC = 11;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport {A11yModule,AnimationCurves,AnimationDurations,Directionality,DIRECTIONALITY_PROVIDER,DIR_DOCUMENT,Direction,Dir,BidiModule,MdCommonModule,MATERIAL_SANITY_CHECKS,CanDisable,mixinDisabled,CanColor,mixinColor,ThemePalette,CanDisableRipple,mixinDisableRipple,HasTabIndex,mixinTabIndex,MATERIAL_COMPATIBILITY_MODE,getMdCompatibilityInvalidPrefixError,MAT_ELEMENTS_SELECTOR,MD_ELEMENTS_SELECTOR,MatPrefixRejector,MdPrefixRejector,CompatibilityModule,NoConflictStyleCompatibilityMode,UniqueSelectionDispatcherListener,UniqueSelectionDispatcher,UNIQUE_SELECTION_DISPATCHER_PROVIDER_FACTORY,UNIQUE_SELECTION_DISPATCHER_PROVIDER,NativeDateModule,MdNativeDateModule,MAT_DATE_LOCALE,MAT_DATE_LOCALE_PROVIDER,DateAdapter,MdDateFormats,MD_DATE_FORMATS,NativeDateAdapter,MD_NATIVE_DATE_FORMATS,MD_ERROR_GLOBAL_OPTIONS,ErrorStateMatcher,ErrorOptions,defaultErrorStateMatcher,showOnDirtyErrorStateMatcher,HammerInput,HammerStatic,Recognizer,RecognizerStatic,HammerInstance,HammerManager,GestureConfig,UP_ARROW,DOWN_ARROW,RIGHT_ARROW,LEFT_ARROW,PAGE_UP,PAGE_DOWN,HOME,END,ENTER,SPACE,TAB,ESCAPE,BACKSPACE,DELETE,A,Z,MdLine,MdLineSetter,MdLineModule,MdOptionModule,MdOptionSelectionChange,MdOption,MdOptgroupBase,_MdOptgroupMixinBase,MdOptgroup,OVERLAY_PROVIDERS,OverlayModule,Overlay,OverlayContainer,FullscreenOverlayContainer,OverlayRef,ConnectedOverlayDirective,OverlayOrigin,ViewportRuler,ComponentType,PositionStrategy,GlobalPositionStrategy,ConnectedPositionStrategy,VIEWPORT_RULER_PROVIDER,OverlayConfig,HorizontalConnectionPos,VerticalConnectionPos,OriginConnectionPosition,OverlayConnectionPosition,ConnectionPositionPair,ScrollingVisibility,ConnectedOverlayPositionChange,Scrollable,ScrollDispatcher,ScrollStrategy,ScrollStrategyOptions,RepositionScrollStrategy,CloseScrollStrategy,NoopScrollStrategy,BlockScrollStrategy,MD_PLACEHOLDER_GLOBAL_OPTIONS,FloatPlaceholderType,PlaceholderOptions,PlatformModule,Platform,getSupportedInputTypes,Portal,PortalHost,BasePortalHost,ComponentPortal,TemplatePortal,DomPortalHost,TemplatePortalDirective,PortalHostDirective,PortalModule,PortalInjector,MdRipple,RippleGlobalOptions,MD_RIPPLE_GLOBAL_OPTIONS,RippleRef,RippleState,RippleConfig,RIPPLE_FADE_IN_DURATION,RIPPLE_FADE_OUT_DURATION,MdRippleModule,RxChain,StrictRxChain,FinallyBrand,CatchBrand,DoBrand,MapBrand,FilterBrand,ShareBrand,FirstBrand,SwitchMapBrand,StartWithBrand,DebounceTimeBrand,AuditTimeBrand,TakeUntilBrand,finallyOperatorType,catchOperatorType,doOperatorType,mapOperatorType,filterOperatorType,shareOperatorType,firstOperatorType,switchMapOperatorType,startWithOperatorType,debounceTimeOperatorType,auditTimeOperatorType,takeUntilOperatorType,finallyOperator,catchOperator,doOperator,map,filter,share,first,switchMap,startWith,debounceTime,auditTime,takeUntil,MdPseudoCheckboxModule,MdPseudoCheckboxState,MdPseudoCheckbox,StyleModule,CdkMonitorFocus,FocusMonitor,FOCUS_MONITOR_PROVIDER,FocusOrigin,applyCssTransform,extendObject,MAT_DATE_FORMATS,MAT_RIPPLE_GLOBAL_OPTIONS,MAT_NATIVE_DATE_FORMATS,MAT_PLACEHOLDER_GLOBAL_OPTIONS,MAT_ERROR_GLOBAL_OPTIONS,MatCommonModule,MatDateFormats,MatLine,MatLineModule,MatLineSetter,MatOptgroup,MatOptgroupBase,MatOption,MatOptionModule,MatOptionSelectionChange,MatNativeDateModule,MatPseudoCheckbox,MatPseudoCheckboxModule,MatPseudoCheckboxState,MatRipple,MatRippleModule,JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC} from './public_api';\n\nexport {RippleRenderer as ɵa} from './ripple/ripple-renderer';","/**\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 */\n\n\nimport {NgModule} from '@angular/core';\nimport {A11yModule} from '@angular/cdk/a11y';\n/**\n * @deprecated\n */\nexport class StyleModule {static decorators: DecoratorInvocation[] = [\n{ type: NgModule, args: [{\n imports: [A11yModule],\n exports: [A11yModule],\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction StyleModule_tsickle_Closure_declarations() {\n/** @type {?} */\nStyleModule.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nStyleModule.ctorParameters;\n}\n\n\nexport {\n CdkMonitorFocus,\n FocusMonitor,\n FOCUS_MONITOR_PROVIDER,\n FocusOrigin,\n} from '@angular/cdk/a11y';\nexport {applyCssTransform} from './apply-transform';\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","\n/**\n * Applies a CSS transform to an element, including browser-prefixed properties.\n * @param {?} element\n * @param {?} transformValue\n * @return {?}\n */\nexport function applyCssTransform(element: HTMLElement, transformValue: string) {\n // It's important to trim the result, because the browser will ignore the set operation\n // if the string contains only whitespace.\n let /** @type {?} */ value = transformValue.trim();\n\n element.style.transform = value;\n element.style.webkitTransform = value;\n}\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 */\n\n\nimport {Injector} from '@angular/core';\n/**\n * Custom injector to be used when providing custom\n * injection tokens to components inside a portal.\n * \\@docs-private\n */\nexport class PortalInjector implements Injector {\n/**\n * @param {?} _parentInjector\n * @param {?} _customTokens\n */\nconstructor(\nprivate _parentInjector: Injector,\nprivate _customTokens: WeakMap<any, any>) { }\n/**\n * @param {?} token\n * @param {?=} notFoundValue\n * @return {?}\n */\nget(token: any, notFoundValue?: any): any {\n const /** @type {?} */ value = this._customTokens.get(token);\n\n if (typeof value !== 'undefined') {\n return value;\n }\n\n return this._parentInjector.get<any>(token, notFoundValue);\n }\n}\n\nfunction PortalInjector_tsickle_Closure_declarations() {\n/** @type {?} */\nPortalInjector.prototype._parentInjector;\n/** @type {?} */\nPortalInjector.prototype._customTokens;\n}\n\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 */\n\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {MdRippleModule} from '../ripple/index';\nimport {MdPseudoCheckboxModule} from '../selection/index';\nimport {MdOption} from './option';\nimport {MdOptgroup} from './optgroup';\nexport class MdOptionModule {static decorators: DecoratorInvocation[] = [\n{ type: NgModule, args: [{\n imports: [MdRippleModule, CommonModule, MdPseudoCheckboxModule],\n exports: [MdOption, MdOptgroup],\n declarations: [MdOption, MdOptgroup]\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction MdOptionModule_tsickle_Closure_declarations() {\n/** @type {?} */\nMdOptionModule.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdOptionModule.ctorParameters;\n}\n\n\n\nexport {MdOptionSelectionChange,MdOption} from './option';\nexport {MdOptgroupBase,_MdOptgroupMixinBase,MdOptgroup} from './optgroup';\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\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 */\n\n\nimport {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n Optional,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n QueryList,\n} from '@angular/core';\nimport {ENTER, SPACE} from '../keyboard/keycodes';\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {MATERIAL_COMPATIBILITY_MODE} from '../compatibility/compatibility';\nimport {MdOptgroup} from './optgroup';\n/**\n * Option IDs need to be unique across components, so this counter exists outside of\n * the component definition.\n */\nlet _uniqueIdCounter = 0;\n/**\n * Event object emitted by MdOption when selected or deselected.\n */\nexport class MdOptionSelectionChange {\n/**\n * @param {?} source\n * @param {?=} isUserInput\n */\nconstructor(public source: MdOption,\npublic isUserInput = false) { }\n}\n\nfunction MdOptionSelectionChange_tsickle_Closure_declarations() {\n/** @type {?} */\nMdOptionSelectionChange.prototype.source;\n/** @type {?} */\nMdOptionSelectionChange.prototype.isUserInput;\n}\n\n/**\n * Single option inside of a `<md-select>` element.\n */\nexport class MdOption {\nprivate _selected: boolean = false;\nprivate _active: boolean = false;\nprivate _multiple: boolean = false;\nprivate _disableRipple: boolean = false;\n/**\n * Whether the option is disabled.\n */\nprivate _disabled: boolean = false;\nprivate _id: string = `md-option-${_uniqueIdCounter++}`;\n/**\n * Whether the wrapping component is in multiple selection mode.\n * @return {?}\n */\nget multiple() { return this._multiple; }\n/**\n * @param {?} value\n * @return {?}\n */\nset multiple(value: boolean) {\n if (value !== this._multiple) {\n this._multiple = value;\n this._changeDetectorRef.markForCheck();\n }\n }\n/**\n * The unique ID of the option.\n * @return {?}\n */\nget id() { return this._id; }\n/**\n * Whether or not the option is currently selected.\n * @return {?}\n */\nget selected(): boolean { return this._selected; }\n/**\n * The form value of the option.\n */\nvalue: any;\n/**\n * Whether the option is disabled.\n * @return {?}\n */\nget disabled() { return (this.group && this.group.disabled) || this._disabled; }\n/**\n * @param {?} value\n * @return {?}\n */\nset disabled(value: any) { this._disabled = coerceBooleanProperty(value); }\n/**\n * Whether ripples for the option are disabled.\n * @return {?}\n */\nget disableRipple() { return this._disableRipple; }\n/**\n * @param {?} value\n * @return {?}\n */\nset disableRipple(value: boolean) {\n this._disableRipple = value;\n this._changeDetectorRef.markForCheck();\n }\n/**\n * Event emitted when the option is selected or deselected.\n */\nonSelectionChange = new EventEmitter<MdOptionSelectionChange>();\n/**\n * @param {?} _element\n * @param {?} _changeDetectorRef\n * @param {?} group\n */\nconstructor(\nprivate _element: ElementRef,\nprivate _changeDetectorRef: ChangeDetectorRef,\npublic readonly group: MdOptgroup) {}\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 */\nget active(): boolean {\n return this._active;\n }\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 */\nget viewValue(): string {\n // TODO(kara): Add input property alternative for node envs.\n return (this._getHostElement().textContent || '').trim();\n }\n/**\n * Selects the option.\n * @return {?}\n */\nselect(): void {\n this._selected = true;\n this._changeDetectorRef.markForCheck();\n this._emitSelectionChangeEvent();\n }\n/**\n * Deselects the option.\n * @return {?}\n */\ndeselect(): void {\n this._selected = false;\n this._changeDetectorRef.markForCheck();\n this._emitSelectionChangeEvent();\n }\n/**\n * Sets focus onto this option.\n * @return {?}\n */\nfocus(): void {\n const /** @type {?} */ element = this._getHostElement();\n\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 */\nsetActiveStyles(): void {\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 */\nsetInactiveStyles(): void {\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 */\ngetLabel(): string {\n return this.viewValue;\n }\n/**\n * Ensures the option is selected when activated from the keyboard.\n * @param {?} event\n * @return {?}\n */\n_handleKeydown(event: KeyboardEvent): void {\n if (event.keyCode === ENTER || event.keyCode === SPACE) {\n this._selectViaInteraction();\n\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_selectViaInteraction(): void {\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_getTabIndex(): string {\n return this.disabled ? '-1' : '0';\n }\n/**\n * Gets the host DOM element.\n * @return {?}\n */\n_getHostElement(): HTMLElement {\n return this._element.nativeElement;\n }\n/**\n * Emits the selection change event.\n * @param {?=} isUserInput\n * @return {?}\n */\nprivate _emitSelectionChangeEvent(isUserInput = false): void {\n this.onSelectionChange.emit(new MdOptionSelectionChange(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 */\nstatic countGroupLabelsBeforeOption(optionIndex: number, options: QueryList<MdOption>,\n optionGroups: QueryList<MdOptgroup>): number {\n\n if (optionGroups.length) {\n let /** @type {?} */ optionsArray = options.toArray();\n let /** @type {?} */ groups = optionGroups.toArray();\n let /** @type {?} */ groupCounter = 0;\n\n for (let /** @type {?} */ i = 0; i < optionIndex + 1; i++) {\n if (optionsArray[i].group && optionsArray[i].group === groups[groupCounter]) {\n groupCounter++;\n }\n }\n\n return groupCounter;\n }\n\n return 0;\n }\n\nstatic decorators: DecoratorInvocation[] = [\n{ type: Component, args: [{\n moduleId: module.id,\n selector: 'md-option, mat-option',\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 templateUrl: 'option.html',\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n viewProviders: [{provide: MATERIAL_COMPATIBILITY_MODE, useValue: true}],\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: ElementRef, },\n{type: ChangeDetectorRef, },\n{type: MdOptgroup, decorators: [{ type: Optional }, ]},\n];\nstatic propDecorators: {[key: string]: DecoratorInvocation[]} = {\n'value': [{ type: Input },],\n'disabled': [{ type: Input },],\n'onSelectionChange': [{ type: Output },],\n};\n}\n\nfunction MdOption_tsickle_Closure_declarations() {\n/** @type {?} */\nMdOption.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdOption.ctorParameters;\n/** @type {?} */\nMdOption.propDecorators;\n/** @type {?} */\nMdOption.prototype._selected;\n/** @type {?} */\nMdOption.prototype._active;\n/** @type {?} */\nMdOption.prototype._multiple;\n/** @type {?} */\nMdOption.prototype._disableRipple;\n/**\n * Whether the option is disabled.\n * @type {?}\n */\nMdOption.prototype._disabled;\n/** @type {?} */\nMdOption.prototype._id;\n/**\n * The form value of the option.\n * @type {?}\n */\nMdOption.prototype.value;\n/**\n * Event emitted when the option is selected or deselected.\n * @type {?}\n */\nMdOption.prototype.onSelectionChange;\n/** @type {?} */\nMdOption.prototype._element;\n/** @type {?} */\nMdOption.prototype._changeDetectorRef;\n/** @type {?} */\nMdOption.prototype.group;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\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 */\n\n\nimport {Component, ViewEncapsulation, Input, ChangeDetectionStrategy} from '@angular/core';\nimport {mixinDisabled, CanDisable} from '../common-behaviors/disabled';\n/**\n * \\@docs-private\n */\nexport class MdOptgroupBase { }\nexport const /** @type {?} */ _MdOptgroupMixinBase = mixinDisabled(MdOptgroupBase);\n\n// Counter for unique group ids.\nlet /** @type {?} */ _uniqueOptgroupIdCounter = 0;\n/**\n * Component that is used to group instances of `md-option`.\n */\nexport class MdOptgroup extends _MdOptgroupMixinBase implements CanDisable {\n/**\n * Label for the option group.\n */\nlabel: string;\n/**\n * Unique id for the underlying label.\n */\n_labelId: string = `mat-optgroup-label-${_uniqueOptgroupIdCounter++}`;\nstatic decorators: DecoratorInvocation[] = [\n{ type: Component, args: [{\n moduleId: module.id,\n selector: 'md-optgroup, mat-optgroup',\n templateUrl: 'optgroup.html',\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 */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\nstatic propDecorators: {[key: string]: DecoratorInvocation[]} = {\n'label': [{ type: Input },],\n};\n}\n\nfunction MdOptgroup_tsickle_Closure_declarations() {\n/** @type {?} */\nMdOptgroup.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdOptgroup.ctorParameters;\n/** @type {?} */\nMdOptgroup.propDecorators;\n/**\n * Label for the option group.\n * @type {?}\n */\nMdOptgroup.prototype.label;\n/**\n * Unique id for the underlying label.\n * @type {?}\n */\nMdOptgroup.prototype._labelId;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\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 */\n\n\nimport {NgModule} from '@angular/core';\nimport {MdPseudoCheckbox} from './pseudo-checkbox/pseudo-checkbox';\nexport class MdPseudoCheckboxModule { static decorators: DecoratorInvocation[] = [\n{ type: NgModule, args: [{\n exports: [MdPseudoCheckbox],\n declarations: [MdPseudoCheckbox]\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction MdPseudoCheckboxModule_tsickle_Closure_declarations() {\n/** @type {?} */\nMdPseudoCheckboxModule.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdPseudoCheckboxModule.ctorParameters;\n}\n\n\n\nexport {MdPseudoCheckboxState,MdPseudoCheckbox} from './pseudo-checkbox/pseudo-checkbox';\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\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 */\n\n\nimport {Component, ViewEncapsulation, Input, ChangeDetectionStrategy} from '@angular/core';\n\nexport type MdPseudoCheckboxState = 'unchecked' | 'checked' | 'indeterminate';\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 <md-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 */\nexport class MdPseudoCheckbox {\n/**\n * Display state of the checkbox.\n */\nstate: MdPseudoCheckboxState = 'unchecked';\n/**\n * Whether the checkbox is disabled.\n */\ndisabled: boolean = false;\nstatic decorators: DecoratorInvocation[] = [\n{ type: Component, args: [{\n moduleId: module.id,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'md-pseudo-checkbox, mat-pseudo-checkbox',\n styleUrls: ['pseudo-checkbox.css'],\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 */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\nstatic propDecorators: {[key: string]: DecoratorInvocation[]} = {\n'state': [{ type: Input },],\n'disabled': [{ type: Input },],\n};\n}\n\nfunction MdPseudoCheckbox_tsickle_Closure_declarations() {\n/** @type {?} */\nMdPseudoCheckbox.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdPseudoCheckbox.ctorParameters;\n/** @type {?} */\nMdPseudoCheckbox.propDecorators;\n/**\n * Display state of the checkbox.\n * @type {?}\n */\nMdPseudoCheckbox.prototype.state;\n/**\n * Whether the checkbox is disabled.\n * @type {?}\n */\nMdPseudoCheckbox.prototype.disabled;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\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 */\n\n\nimport {NgModule} from '@angular/core';\nimport {ScrollDispatchModule, VIEWPORT_RULER_PROVIDER} from '@angular/cdk/scrolling';\nimport {PlatformModule} from '@angular/cdk/platform';\nimport {MdCommonModule} from '../common-behaviors/common-module';\nimport {MdRipple} from './ripple';\n\nexport {MdRipple, RippleGlobalOptions, MD_RIPPLE_GLOBAL_OPTIONS} from './ripple';\nexport {RippleRef, RippleState} from './ripple-ref';\nexport {RippleConfig, RIPPLE_FADE_IN_DURATION, RIPPLE_FADE_OUT_DURATION} from './ripple-renderer';\nexport class MdRippleModule {static decorators: DecoratorInvocation[] = [\n{ type: NgModule, args: [{\n imports: [MdCommonModule, PlatformModule, ScrollDispatchModule],\n exports: [MdRipple, MdCommonModule],\n declarations: [MdRipple],\n providers: [VIEWPORT_RULER_PROVIDER],\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction MdRippleModule_tsickle_Closure_declarations() {\n/** @type {?} */\nMdRippleModule.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdRippleModule.ctorParameters;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\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 */\n\n\nimport {\n Directive,\n ElementRef,\n Input,\n Inject,\n NgZone,\n OnChanges,\n SimpleChanges,\n OnDestroy,\n InjectionToken,\n Optional,\n} from '@angular/core';\nimport {ViewportRuler} from '@angular/cdk/scrolling';\nimport {Platform} from '@angular/cdk/platform';\nimport {RippleConfig, RippleRenderer} from './ripple-renderer';\nimport {RippleRef} from './ripple-ref';\n\nexport interface RippleGlobalOptions {\n disabled?: boolean;\n baseSpeedFactor?: number;\n}\n/**\n * Injection token that can be used to specify the global ripple options.\n */\nexport const MD_RIPPLE_GLOBAL_OPTIONS =\n new InjectionToken<RippleGlobalOptions>('md-ripple-global-options');\nexport class MdRipple implements OnChanges, OnDestroy {\n\n /**\n * The element that triggers the ripple when click events are received. Defaults to the\n * directive's host element.\n */\n // Prevent TS metadata emit from referencing HTMLElement in ripple.js\n // Otherwise running this code in a Node environment (e.g Universal) will not work.\n trigger: HTMLElement|HTMLElement;\n/**\n * Whether the ripple always originates from the center of the host element's bounds, rather\n * than originating from the location of the click event.\n */\ncentered: boolean;\n/**\n * Whether click events will not trigger the ripple. Ripples can be still launched manually\n * by using the `launch()` method.\n */\ndisabled: boolean;\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 */\nradius: number = 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 */\nspeedFactor: number = 1;\n/**\n * Custom color for ripples.\n */\ncolor: string;\n/**\n * Whether foreground ripples should be visible outside the component's bounds.\n */\nunbounded: boolean;\n/**\n * @return {?}\n */\nget _matRippleTrigger() { return this.trigger; }\n/**\n * @param {?} v\n * @return {?}\n */\nset _matRippleTrigger(v) { this.trigger = v; }\n/**\n * @return {?}\n */\nget _matRippleCentered() { return this.centered; }\n/**\n * @param {?} v\n * @return {?}\n */\nset _matRippleCentered(v) { this.centered = v; }\n/**\n * @return {?}\n */\nget _matRippleDisabled() { return this.disabled; }\n/**\n * @param {?} v\n * @return {?}\n */\nset _matRippleDisabled(v) { this.disabled = v; }\n/**\n * @return {?}\n */\nget _matRippleRadius() { return this.radius; }\n/**\n * @param {?} v\n * @return {?}\n */\nset _matRippleRadius(v) { this.radius = v; }\n/**\n * @return {?}\n */\nget _matRippleSpeedFactor() { return this.speedFactor; }\n/**\n * @param {?} v\n * @return {?}\n */\nset _matRippleSpeedFactor(v) { this.speedFactor = v; }\n/**\n * @return {?}\n */\nget _matRippleColor() { return this.color; }\n/**\n * @param {?} v\n * @return {?}\n */\nset _matRippleColor(v) { this.color = v; }\n/**\n * @return {?}\n */\nget _matRippleUnbounded() { return this.unbounded; }\n/**\n * @param {?} v\n * @return {?}\n */\nset _matRippleUnbounded(v) { this.unbounded = v; }\n/**\n * Renderer for the ripple DOM manipulations.\n */\nprivate _rippleRenderer: RippleRenderer;\n/**\n * Options that are set globally for all ripples.\n */\nprivate _globalOptions: RippleGlobalOptions;\n/**\n * @param {?} elementRef\n * @param {?} ngZone\n * @param {?} ruler\n * @param {?} platform\n * @param {?} globalOptions\n */\nconstructor(\n elementRef: ElementRef,\n ngZone: NgZone,\n ruler: ViewportRuler,\n platform: Platform,\n globalOptions: RippleGlobalOptions\n ) {\n this._rippleRenderer = new RippleRenderer(elementRef, ngZone, ruler, platform);\n this._globalOptions = globalOptions ? globalOptions : {};\n\n this._updateRippleRenderer();\n }\n/**\n * @param {?} changes\n * @return {?}\n */\nngOnChanges(changes: SimpleChanges) {\n if ((changes['trigger'] || changes['_matRippleTrigger']) && this.trigger) {\n this._rippleRenderer.setTriggerElement(this.trigger);\n }\n\n this._updateRippleRenderer();\n }\n/**\n * @return {?}\n */\nngOnDestroy() {\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 {?} pageX\n * @param {?} pageY\n * @param {?=} config\n * @return {?}\n */\nlaunch(pageX: number, pageY: number, config = this.rippleConfig): RippleRef {\n return this._rippleRenderer.fadeInRipple(pageX, pageY, config);\n }\n/**\n * Fades out all currently showing ripple elements.\n * @return {?}\n */\nfadeOutAll() {\n this._rippleRenderer.fadeOutAll();\n }\n/**\n * Ripple configuration from the directive's input values.\n * @return {?}\n */\nget rippleConfig(): RippleConfig {\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/**\n * Updates the ripple renderer with the latest ripple configuration.\n * @return {?}\n */\n_updateRippleRenderer() {\n this._rippleRenderer.rippleDisabled = this._globalOptions.disabled || this.disabled;\n this._rippleRenderer.rippleConfig = this.rippleConfig;\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Directive, args: [{\n selector: '[md-ripple], [mat-ripple], [mdRipple], [matRipple]',\n exportAs: 'mdRipple, matRipple',\n host: {\n 'class': 'mat-ripple',\n '[class.mat-ripple-unbounded]': 'unbounded'\n }\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: ElementRef, },\n{type: NgZone, },\n{type: ViewportRuler, },\n{type: Platform, },\n{type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MD_RIPPLE_GLOBAL_OPTIONS, ] }, ]},\n];\nstatic propDecorators: {[key: string]: DecoratorInvocation[]} = {\n'trigger': [{ type: Input, args: ['mdRippleTrigger', ] },],\n'centered': [{ type: Input, args: ['mdRippleCentered', ] },],\n'disabled': [{ type: Input, args: ['mdRippleDisabled', ] },],\n'radius': [{ type: Input, args: ['mdRippleRadius', ] },],\n'speedFactor': [{ type: Input, args: ['mdRippleSpeedFactor', ] },],\n'color': [{ type: Input, args: ['mdRippleColor', ] },],\n'unbounded': [{ type: Input, args: ['mdRippleUnbounded', ] },],\n'_matRippleTrigger': [{ type: Input, args: ['matRippleTrigger', ] },],\n'_matRippleCentered': [{ type: Input, args: ['matRippleCentered', ] },],\n'_matRippleDisabled': [{ type: Input, args: ['matRippleDisabled', ] },],\n'_matRippleRadius': [{ type: Input, args: ['matRippleRadius', ] },],\n'_matRippleSpeedFactor': [{ type: Input, args: ['matRippleSpeedFactor', ] },],\n'_matRippleColor': [{ type: Input, args: ['matRippleColor', ] },],\n'_matRippleUnbounded': [{ type: Input, args: ['matRippleUnbounded', ] },],\n};\n}\n\nfunction MdRipple_tsickle_Closure_declarations() {\n/** @type {?} */\nMdRipple.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdRipple.ctorParameters;\n/** @type {?} */\nMdRipple.propDecorators;\n/** @type {?} */\nMdRipple.prototype.trigger;\n/**\n * Whether the ripple always originates from the center of the host element's bounds, rather\n * than originating from the location of the click event.\n * @type {?}\n */\nMdRipple.prototype.centered;\n/**\n * Whether click events will not trigger the ripple. Ripples can be still launched manually\n * by using the `launch()` method.\n * @type {?}\n */\nMdRipple.prototype.disabled;\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 * @type {?}\n */\nMdRipple.prototype.radius;\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 * @type {?}\n */\nMdRipple.prototype.speedFactor;\n/**\n * Custom color for ripples.\n * @type {?}\n */\nMdRipple.prototype.color;\n/**\n * Whether foreground ripples should be visible outside the component's bounds.\n * @type {?}\n */\nMdRipple.prototype.unbounded;\n/**\n * Renderer for the ripple DOM manipulations.\n * @type {?}\n */\nMdRipple.prototype._rippleRenderer;\n/**\n * Options that are set globally for all ripples.\n * @type {?}\n */\nMdRipple.prototype._globalOptions;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\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 */\n\n\nimport {ElementRef, NgZone} from '@angular/core';\nimport {Platform} from '@angular/cdk/platform';\nimport {ViewportRuler} from '@angular/cdk/scrolling';\nimport {RippleRef, RippleState} from './ripple-ref';\n/**\n * Fade-in duration for the ripples. Can be modified with the speedFactor option.\n */\nexport const RIPPLE_FADE_IN_DURATION = 450;\n/**\n * Fade-out duration for the ripples in milliseconds. This can't be modified by the speedFactor.\n */\nexport const RIPPLE_FADE_OUT_DURATION = 400;\n\nexport type RippleConfig = {\n color?: string;\n centered?: boolean;\n radius?: number;\n speedFactor?: number;\n persistent?: boolean;\n};\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 */\nexport class RippleRenderer {\n/**\n * Element where the ripples are being added to.\n */\nprivate _containerElement: HTMLElement;\n/**\n * Element which triggers the ripple elements on mouse events.\n */\nprivate _triggerElement: HTMLElement | null;\n/**\n * Whether the mouse is currently down or not.\n */\nprivate _isMousedown: boolean = false;\n/**\n * Events to be registered on the trigger element.\n */\nprivate _triggerEvents = new Map<string, any>();\n/**\n * Set of currently active ripple references.\n */\nprivate _activeRipples = new Set<RippleRef>();\n/**\n * Ripple config for all ripples created by events.\n */\nrippleConfig: RippleConfig = {};\n/**\n * Whether mouse ripples should be created or not.\n */\nrippleDisabled: boolean = false;\n/**\n * @param {?} elementRef\n * @param {?} _ngZone\n * @param {?} _ruler\n * @param {?} platform\n */\nconstructor(\n elementRef: ElementRef,\nprivate _ngZone: NgZone,\nprivate _ruler: ViewportRuler,\n platform: Platform) {\n // Only do anything if we're on the browser.\n if (platform.isBrowser) {\n this._containerElement = elementRef.nativeElement;\n\n // Specify events which need to be registered on the trigger.\n this._triggerEvents.set('mousedown', this.onMousedown.bind(this));\n this._triggerEvents.set('mouseup', this.onMouseup.bind(this));\n this._triggerEvents.set('mouseleave', this.onMouseLeave.bind(this));\n\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 {?} pageX\n * @param {?} pageY\n * @param {?=} config\n * @return {?}\n */\nfadeInRipple(pageX: number, pageY: number, config: RippleConfig = {}): RippleRef {\n let /** @type {?} */ containerRect = this._containerElement.getBoundingClientRect();\n\n if (config.centered) {\n pageX = containerRect.left + containerRect.width / 2;\n pageY = containerRect.top + containerRect.height / 2;\n } else {\n // Subtract scroll values from the coordinates because calculations below\n // are always relative to the viewport rectangle.\n let /** @type {?} */ scrollPosition = this._ruler.getViewportScrollPosition();\n pageX -= scrollPosition.left;\n pageY -= scrollPosition.top;\n }\n\n let /** @type {?} */ radius = config.radius || distanceToFurthestCorner(pageX, pageY, containerRect);\n let /** @type {?} */ duration = RIPPLE_FADE_IN_DURATION * (1 / (config.speedFactor || 1));\n let /** @type {?} */ offsetX = pageX - containerRect.left;\n let /** @type {?} */ offsetY = pageY - containerRect.top;\n\n let /** @type {?} */ ripple = document.createElement('div');\n ripple.classList.add('mat-ripple-element');\n\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\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\n this._containerElement.appendChild(ripple);\n\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\n ripple.style.transform = 'scale(1)';\n\n // Exposed reference to the ripple that will be returned.\n let /** @type {?} */ rippleRef = new RippleRef(this, ripple, config);\n\n rippleRef.state = RippleState.FADING_IN;\n\n // Add the ripple reference to the list of all active ripples.\n this._activeRipples.add(rippleRef);\n\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(() => {\n rippleRef.state = RippleState.VISIBLE;\n\n if (!config.persistent && !this._isMousedown) {\n rippleRef.fadeOut();\n }\n }, duration);\n\n return rippleRef;\n }\n/**\n * Fades out a ripple reference.\n * @param {?} rippleRef\n * @return {?}\n */\nfadeOutRipple(rippleRef: 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\n let /** @type {?} */ rippleEl = rippleRef.element;\n\n rippleEl.style.transitionDuration = `${RIPPLE_FADE_OUT_DURATION}ms`;\n rippleEl.style.opacity = '0';\n\n rippleRef.state = RippleState.FADING_OUT;\n\n // Once the ripple faded out, the ripple can be safely removed from the DOM.\n this.runTimeoutOutsideZone(() => {\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 */\nfadeOutAll() {\n this._activeRipples.forEach(ripple => ripple.fadeOut());\n }\n/**\n * Sets the trigger element and registers the mouse events.\n * @param {?} element\n * @return {?}\n */\nsetTriggerElement(element: HTMLElement | null) {\n // Remove all previously register event listeners from the trigger element.\n if (this._triggerElement) {\n this._triggerEvents.forEach((fn, type) => { /** @type {?} */((\n this._triggerElement)).removeEventListener(type, fn);\n });\n }\n\n if (element) {\n // If the element is not null, register all event listeners on the trigger element.\n this._ngZone.runOutsideAngular(() => {\n this._triggerEvents.forEach((fn, type) => element.addEventListener(type, fn));\n });\n }\n\n this._triggerElement = element;\n }\n/**\n * Listener being called on mousedown event.\n * @param {?} event\n * @return {?}\n */\nprivate onMousedown(event: MouseEvent) {\n if (!this.rippleDisabled) {\n this._isMousedown = true;\n this.fadeInRipple(event.pageX, event.pageY, this.rippleConfig);\n }\n }\n/**\n * Listener being called on mouseup event.\n * @return {?}\n */\nprivate onMouseup() {\n this._isMousedown = false;\n\n // Fade-out all ripples that are completely visible and not persistent.\n this._activeRipples.forEach(ripple => {\n if (!ripple.config.persistent && ripple.state === RippleState.VISIBLE) {\n ripple.fadeOut();\n }\n });\n }\n/**\n * Listener being called on mouseleave event.\n * @return {?}\n */\nprivate onMouseLeave() {\n if (this._isMousedown) {\n this.onMouseup();\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 */\nprivate runTimeoutOutsideZone(fn: Function, delay = 0) {\n this._ngZone.runOutsideAngular(() => setTimeout(fn, delay));\n }\n\n}\n\nfunction RippleRenderer_tsickle_Closure_declarations() {\n/**\n * Element where the ripples are being added to.\n * @type {?}\n */\nRippleRenderer.prototype._containerElement;\n/**\n * Element which triggers the ripple elements on mouse events.\n * @type {?}\n */\nRippleRenderer.prototype._triggerElement;\n/**\n * Whether the mouse is currently down or not.\n * @type {?}\n */\nRippleRenderer.prototype._isMousedown;\n/**\n * Events to be registered on the trigger element.\n * @type {?}\n */\nRippleRenderer.prototype._triggerEvents;\n/**\n * Set of currently active ripple references.\n * @type {?}\n */\nRippleRenderer.prototype._activeRipples;\n/**\n * Ripple config for all ripples created by events.\n * @type {?}\n */\nRippleRenderer.prototype.rippleConfig;\n/**\n * Whether mouse ripples should be created or not.\n * @type {?}\n */\nRippleRenderer.prototype.rippleDisabled;\n/** @type {?} */\nRippleRenderer.prototype._ngZone;\n/** @type {?} */\nRippleRenderer.prototype._ruler;\n}\n\n/**\n * @param {?} element\n * @return {?}\n */\nfunction enforceStyleRecalculation(element: HTMLElement) {\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: number, y: number, rect: ClientRect) {\n const /** @type {?} */ distX = Math.max(Math.abs(x - rect.left), Math.abs(x - rect.right));\n const /** @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 * @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 */\n\n\nimport {RippleConfig, RippleRenderer} from './ripple-renderer';\nexport type RippleState = number;\nexport let RippleState: any = {};\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/**\n * Reference to a previously launched ripple element.\n */\nexport class RippleRef {\n/**\n * Current state of the ripple reference.\n */\nstate: RippleState = RippleState.HIDDEN;\n/**\n * @param {?} _renderer\n * @param {?} element\n * @param {?} config\n */\nconstructor(\nprivate _renderer: RippleRenderer,\npublic element: HTMLElement,\npublic config: RippleConfig) {\n }\n/**\n * Fades out the ripple element.\n * @return {?}\n */\nfadeOut() {\n this._renderer.fadeOutRipple(this);\n }\n}\n\nfunction RippleRef_tsickle_Closure_declarations() {\n/**\n * Current state of the ripple reference.\n * @type {?}\n */\nRippleRef.prototype.state;\n/** @type {?} */\nRippleRef.prototype._renderer;\n/** @type {?} */\nRippleRef.prototype.element;\n/** @type {?} */\nRippleRef.prototype.config;\n}\n\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 */\n\n\nimport {\n NgModule,\n Directive,\n Renderer2,\n ElementRef,\n QueryList,\n} from '@angular/core';\nimport {MdCommonModule} from '../common-behaviors/common-module';\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(MdLine) query, then\n * counted by checking the query list's length.\n */\nexport class MdLine {static decorators: DecoratorInvocation[] = [\n{ type: Directive, args: [{\n selector: '[md-line], [mat-line], [mdLine], [matLine]',\n host: {'class': 'mat-line'}\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction MdLine_tsickle_Closure_declarations() {\n/** @type {?} */\nMdLine.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdLine.ctorParameters;\n}\n\n/**\n * Helper that takes a query list of lines and sets the correct class on the host.\n * \\@docs-private\n */\nexport class MdLineSetter {\n/**\n * @param {?} _lines\n * @param {?} _renderer\n * @param {?} _element\n */\nconstructor(private _lines: QueryList<MdLine>,\nprivate _renderer: Renderer2,\nprivate _element: ElementRef) {\n this._setLineClass(this._lines.length);\n\n this._lines.changes.subscribe(() => {\n this._setLineClass(this._lines.length);\n });\n }\n/**\n * @param {?} count\n * @return {?}\n */\nprivate _setLineClass(count: number): void {\n this._resetClasses();\n if (count === 2 || count === 3) {\n this._setClass(`mat-${count}-line`, true);\n } else if (count > 3) {\n this._setClass(`mat-multi-line`, true);\n }\n }\n/**\n * @return {?}\n */\nprivate _resetClasses(): void {\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 */\nprivate _setClass(className: string, isAdd: boolean): void {\n if (isAdd) {\n this._renderer.addClass(this._element.nativeElement, className);\n } else {\n this._renderer.removeClass(this._element.nativeElement, className);\n }\n }\n\n}\n\nfunction MdLineSetter_tsickle_Closure_declarations() {\n/** @type {?} */\nMdLineSetter.prototype._lines;\n/** @type {?} */\nMdLineSetter.prototype._renderer;\n/** @type {?} */\nMdLineSetter.prototype._element;\n}\n\nexport class MdLineModule { static decorators: DecoratorInvocation[] = [\n{ type: NgModule, args: [{\n imports: [MdCommonModule],\n exports: [MdLine, MdCommonModule],\n declarations: [MdLine],\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction MdLineModule_tsickle_Closure_declarations() {\n/** @type {?} */\nMdLineModule.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdLineModule.ctorParameters;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\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 */\n\n\nimport {Injectable, isDevMode} from '@angular/core';\nimport {HammerGestureConfig} from '@angular/platform-browser';\nimport {HammerStatic, HammerInstance, Recognizer, RecognizerStatic} from './gesture-annotations';\nexport class GestureConfig extends HammerGestureConfig {\nprivate _hammer: HammerStatic = typeof window !== 'undefined' ? ( /** @type {?} */((window as any))).Hammer : null;\n\n /* List of new event names to add to the gesture support list */\n events: string[] = this._hammer ? [\n 'longpress',\n 'slide',\n 'slidestart',\n 'slideend',\n 'slideright',\n 'slideleft'\n ] : [];\nconstructor() {\n super();\n\n if (!this._hammer && isDevMode()) {\n console.warn(\n 'Could not find HammerJS. Certain Angular Material ' +\n 'components may not work correctly.'\n );\n }\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 */\nbuildHammer(element: HTMLElement): HammerInstance {\n const /** @type {?} */ mc = new this._hammer(element);\n\n // Default Hammer Recognizers.\n let /** @type {?} */ pan = new this._hammer.Pan();\n let /** @type {?} */ swipe = new this._hammer.Swipe();\n let /** @type {?} */ press = new this._hammer.Press();\n\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 let /** @type {?} */ slide = this._createRecognizer(pan, {event: 'slide', threshold: 0}, swipe);\n let /** @type {?} */ longpress = this._createRecognizer(press, {event: 'longpress', time: 500});\n\n // Overwrite the default `pan` event to use the swipe event.\n pan.recognizeWith(swipe);\n\n // Add customized gestures to Hammer manager\n mc.add([swipe, press, pan, slide, longpress]);\n\n return /** @type {?} */(( mc as HammerInstance));\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 */\nprivate _createRecognizer(base: Recognizer, options: any, ...inheritances: Recognizer[]) {\n let /** @type {?} */ recognizer = new ( /** @type {?} */((base.constructor as RecognizerStatic)))(options);\n\n inheritances.push(base);\n inheritances.forEach(item => recognizer.recognizeWith(item));\n\n return recognizer;\n }\n\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction GestureConfig_tsickle_Closure_declarations() {\n/** @type {?} */\nGestureConfig.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nGestureConfig.ctorParameters;\n/** @type {?} */\nGestureConfig.prototype._hammer;\n/** @type {?} */\nGestureConfig.prototype.events;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\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 */\n\n\nimport {InjectionToken} from '@angular/core';\nimport {FormControl, FormGroupDirective, NgForm} from '@angular/forms';\n/**\n * Injection token that can be used to specify the global error options.\n */\nexport const MD_ERROR_GLOBAL_OPTIONS = new InjectionToken<ErrorOptions>('md-error-global-options');\n\nexport type ErrorStateMatcher =\n (control: FormControl, form: FormGroupDirective | NgForm) => boolean;\n\nexport interface ErrorOptions {\n errorStateMatcher?: ErrorStateMatcher;\n}\n/**\n * Returns whether control is invalid and is either touched or is a part of a submitted form.\n * @param {?} control\n * @param {?} form\n * @return {?}\n */\nexport function defaultErrorStateMatcher(control: FormControl, form: FormGroupDirective | NgForm) {\n const /** @type {?} */ isSubmitted = form && form.submitted;\n return !!(control.invalid && (control.touched || isSubmitted));\n}\n/**\n * Returns whether control is invalid and is either dirty or is a part of a submitted form.\n * @param {?} control\n * @param {?} form\n * @return {?}\n */\nexport function showOnDirtyErrorStateMatcher(control: FormControl,\n form: FormGroupDirective | NgForm) {\n const /** @type {?} */ isSubmitted = form && form.submitted;\n return !!(control.invalid && (control.dirty || isSubmitted));\n}\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 */\n\n\nimport {NgModule} from '@angular/core';\nimport {DateAdapter, MAT_DATE_LOCALE_PROVIDER} from './date-adapter';\nimport {NativeDateAdapter} from './native-date-adapter';\nimport {MD_DATE_FORMATS} from './date-formats';\nimport {MD_NATIVE_DATE_FORMATS} from './native-date-formats';\n\nexport {MAT_DATE_LOCALE,MAT_DATE_LOCALE_PROVIDER,DateAdapter} from './date-adapter';\nexport {MdDateFormats,MD_DATE_FORMATS} from './date-formats';\nexport {NativeDateAdapter} from './native-date-adapter';\nexport {MD_NATIVE_DATE_FORMATS} from './native-date-formats';\nexport class NativeDateModule {static decorators: DecoratorInvocation[] = [\n{ type: NgModule, args: [{\n providers: [\n {provide: DateAdapter, useClass: NativeDateAdapter},\n MAT_DATE_LOCALE_PROVIDER\n ],\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction NativeDateModule_tsickle_Closure_declarations() {\n/** @type {?} */\nNativeDateModule.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nNativeDateModule.ctorParameters;\n}\n\nexport class MdNativeDateModule {static decorators: DecoratorInvocation[] = [\n{ type: NgModule, args: [{\n imports: [NativeDateModule],\n providers: [{provide: MD_DATE_FORMATS, useValue: MD_NATIVE_DATE_FORMATS}],\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction MdNativeDateModule_tsickle_Closure_declarations() {\n/** @type {?} */\nMdNativeDateModule.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdNativeDateModule.ctorParameters;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\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 */\n\n\nimport {MdDateFormats} from './date-formats';\n\n\nexport const /** @type {?} */ MD_NATIVE_DATE_FORMATS: MdDateFormats = {\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","/**\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 */\n\n\nimport {Inject, Injectable, Optional} from '@angular/core';\nimport {DateAdapter, MAT_DATE_LOCALE} from './date-adapter';\nimport {extendObject} from '../util/object-extend';\n/**\n * Whether the browser supports the Intl API.\n */\nconst SUPPORTS_INTL_API = typeof Intl != 'undefined';\n/**\n * The default month names to use if Intl API is not available.\n */\nconst 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 */\nconst DEFAULT_DATE_NAMES = range(31, i => String(i + 1));\n/**\n * The default day of the week names to use if Intl API is not available.\n */\nconst 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 */\nconst ISO_8601_REGEX =\n /^\\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<T>(length: number, valueFunction: (index: number) => T): T[] {\n const /** @type {?} */ valuesArray = Array(length);\n for (let /** @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 */\nexport class NativeDateAdapter extends DateAdapter<Date> {\n/**\n * @param {?} matDateLocale\n */\nconstructor( matDateLocale: string) {\n super();\n super.setLocale(matDateLocale);\n }\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 */\nuseUtcForDisplay = true;\n/**\n * @param {?} date\n * @return {?}\n */\ngetYear(date: Date): number {\n return date.getFullYear();\n }\n/**\n * @param {?} date\n * @return {?}\n */\ngetMonth(date: Date): number {\n return date.getMonth();\n }\n/**\n * @param {?} date\n * @return {?}\n */\ngetDate(date: Date): number {\n return date.getDate();\n }\n/**\n * @param {?} date\n * @return {?}\n */\ngetDayOfWeek(date: Date): number {\n return date.getDay();\n }\n/**\n * @param {?} style\n * @return {?}\n */\ngetMonthNames(style: 'long' | 'short' | 'narrow'): string[] {\n if (SUPPORTS_INTL_API) {\n let /** @type {?} */ dtf = new Intl.DateTimeFormat(this.locale, {month: style});\n return range(12, i => this._stripDirectionalityCharacters(dtf.format(new Date(2017, i, 1))));\n }\n return DEFAULT_MONTH_NAMES[style];\n }\n/**\n * @return {?}\n */\ngetDateNames(): string[] {\n if (SUPPORTS_INTL_API) {\n let /** @type {?} */ dtf = new Intl.DateTimeFormat(this.locale, {day: 'numeric'});\n return range(31, i => this._stripDirectionalityCharacters(\n dtf.format(new Date(2017, 0, i + 1))));\n }\n return DEFAULT_DATE_NAMES;\n }\n/**\n * @param {?} style\n * @return {?}\n */\ngetDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[] {\n if (SUPPORTS_INTL_API) {\n let /** @type {?} */ dtf = new Intl.DateTimeFormat(this.locale, {weekday: style});\n return range(7, i => this._stripDirectionalityCharacters(\n dtf.format(new Date(2017, 0, i + 1))));\n }\n return DEFAULT_DAY_OF_WEEK_NAMES[style];\n }\n/**\n * @param {?} date\n * @return {?}\n */\ngetYearName(date: Date): string {\n if (SUPPORTS_INTL_API) {\n let /** @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 */\ngetFirstDayOfWeek(): number {\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 */\ngetNumDaysInMonth(date: Date): number {\n return this.getDate(this._createDateWithOverflow(\n this.getYear(date), this.getMonth(date) + 1, 0));\n }\n/**\n * @param {?} date\n * @return {?}\n */\nclone(date: Date): 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 */\ncreateDate(year: number, month: number, date: number): 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\n if (date < 1) {\n throw Error(`Invalid date \"${date}\". Date has to be greater than 0.`);\n }\n\n let /** @type {?} */ result = this._createDateWithOverflow(year, month, date);\n\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\n return result;\n }\n/**\n * @return {?}\n */\ntoday(): Date {\n return new Date();\n }\n/**\n * @param {?} value\n * @return {?}\n */\nparse(value: any): Date | null {\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 */\nformat(date: Date, displayFormat: Object): string {\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(\n date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(),\n date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n displayFormat = extendObject({}, displayFormat, {timeZone: 'utc'});\n }\n let /** @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 */\naddCalendarYears(date: Date, years: number): Date {\n return this.addCalendarMonths(date, years * 12);\n }\n/**\n * @param {?} date\n * @param {?} months\n * @return {?}\n */\naddCalendarMonths(date: Date, months: number): Date {\n let /** @type {?} */ newDate = this._createDateWithOverflow(\n this.getYear(date), this.getMonth(date) + months, this.getDate(date));\n\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\n return newDate;\n }\n/**\n * @param {?} date\n * @param {?} days\n * @return {?}\n */\naddCalendarDays(date: Date, days: number): Date {\n return this._createDateWithOverflow(\n this.getYear(date), this.getMonth(date), this.getDate(date) + days);\n }\n/**\n * @param {?} date\n * @return {?}\n */\ntoIso8601(date: Date): string {\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 */\nfromIso8601(iso8601String: string): Date | null {\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 let /** @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 */\nisDateInstance(obj: any) {\n return obj instanceof Date;\n }\n/**\n * @param {?} date\n * @return {?}\n */\nisValid(date: 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 */\nprivate _createDateWithOverflow(year: number, month: number, date: number) {\n let /** @type {?} */ result = new Date(year, month, date);\n\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 */\nprivate _2digit(n: number) {\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 */\nprivate _stripDirectionalityCharacters(str: string) {\n return str.replace(/[\\u200e\\u200f]/g, '');\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MAT_DATE_LOCALE, ] }, ]},\n];\n}\n\nfunction NativeDateAdapter_tsickle_Closure_declarations() {\n/** @type {?} */\nNativeDateAdapter.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nNativeDateAdapter.ctorParameters;\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 * @type {?}\n */\nNativeDateAdapter.prototype.useUtcForDisplay;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\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 */\nexport function extendObject(dest: any, ...sources: any[]): any {\n if (dest == null) {\n throw TypeError('Cannot convert undefined or null to object');\n }\n\n for (let /** @type {?} */ source of sources) {\n if (source != null) {\n for (let /** @type {?} */ key in source) {\n if (source.hasOwnProperty(key)) {\n dest[key] = source[key];\n }\n }\n }\n }\n\n return dest;\n}\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 */\n\n\nimport {InjectionToken, LOCALE_ID} from '@angular/core';\nimport {Observable} from 'rxjs/Observable';\nimport {Subject} from 'rxjs/Subject';\n/**\n * InjectionToken for datepicker that can be used to override default locale code.\n */\nexport const MAT_DATE_LOCALE = new InjectionToken<string>('MAT_DATE_LOCALE');\n/**\n * Provider for MAT_DATE_LOCALE injection token.\n */\nexport const 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 */\nexport abstract class DateAdapter<D> {\n/**\n * The locale to use for all dates.\n */\nprotected locale: any;\n/**\n * A stream that emits when the locale changes.\n * @return {?}\n */\nget localeChanges(): Observable<void> { return this._localeChanges; }\n protected _localeChanges= new Subject<void>();\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 */\ngetYear(date: D) {}\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 */\ngetMonth(date: D) {}\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 */\ngetDate(date: D) {}\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 */\ngetDayOfWeek(date: D) {}\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 */\ngetMonthNames(style: 'long' | 'short' | 'narrow') {}\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 */\ngetDateNames() {}\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 */\ngetDayOfWeekNames(style: 'long' | 'short' | 'narrow') {}\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 */\ngetYearName(date: D) {}\n/**\n * Gets the first day of the week.\n * @abstract\n * @return {?} The first day of the week (0-indexed, 0 = Sunday).\n */\ngetFirstDayOfWeek() {}\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 */\ngetNumDaysInMonth(date: D) {}\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 */\nclone(date: D) {}\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 */\ncreateDate(year: number, month: number, date: number) {}\n/**\n * Gets today's date.\n * @abstract\n * @return {?} Today's date.\n */\ntoday() {}\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 */\nparse(value: any, parseFormat: any) {}\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 */\nformat(date: D, displayFormat: any) {}\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 */\naddCalendarYears(date: D, years: number) {}\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 */\naddCalendarMonths(date: D, months: number) {}\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 */\naddCalendarDays(date: D, days: number) {}\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 */\ntoIso8601(date: D) {}\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 */\nfromIso8601(iso8601String: string) {}\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 */\nisDateInstance(obj: any) {}\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 */\nisValid(date: D) {}\n/**\n * Sets the locale used for all dates.\n * @param {?} locale The new locale.\n * @return {?}\n */\nsetLocale(locale: any) {\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 */\ncompareDate(first: D, second: D): number {\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 */\nsameDate(first: D | null, second: D | null): boolean {\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 */\nclampDate(date: D, min?: D | null, max?: D | null): D {\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}\n\nfunction DateAdapter_tsickle_Closure_declarations() {\n/**\n * The locale to use for all dates.\n * @type {?}\n */\nDateAdapter.prototype.locale;\n/** @type {?} */\nDateAdapter.prototype._localeChanges;\n}\n\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 */\n\n\nimport {Injectable, Optional, SkipSelf} from '@angular/core';\n\n\n// Users of the Dispatcher never need to see this type, but TypeScript requires it to be exported.\nexport type UniqueSelectionDispatcherListener = (id: string, name: string) => void;\n/**\n * Class to coordinate unique selection based on name.\n * Intended to be consumed as an Angular service.\n * This service is needed because native radio change events are only fired on the item currently\n * being selected, and we still need to uncheck the previous selection.\n * \n * This service does not *store* any IDs and names because they may change at any time, so it is\n * less error-prone if they are simply passed through when the events occur.\n */\nexport class UniqueSelectionDispatcher {\nprivate _listeners: UniqueSelectionDispatcherListener[] = [];\n/**\n * Notify other items that selection for the given name has been set.\n * @param {?} id ID of the item.\n * @param {?} name Name of the item.\n * @return {?}\n */\nnotify(id: string, name: string) {\n for (let /** @type {?} */ listener of this._listeners) {\n listener(id, name);\n }\n }\n/**\n * Listen for future changes to item selection.\n * @param {?} listener\n * @return {?} Function used to deregister listener\n * \n */\nlisten(listener: UniqueSelectionDispatcherListener): () => void {\n this._listeners.push(listener);\n return () => {\n this._listeners = this._listeners.filter((registered: UniqueSelectionDispatcherListener) => {\n return listener !== registered;\n });\n };\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction UniqueSelectionDispatcher_tsickle_Closure_declarations() {\n/** @type {?} */\nUniqueSelectionDispatcher.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nUniqueSelectionDispatcher.ctorParameters;\n/** @type {?} */\nUniqueSelectionDispatcher.prototype._listeners;\n}\n\n/**\n * \\@docs-private\n * @param {?} parentDispatcher\n * @return {?}\n */\nexport function UNIQUE_SELECTION_DISPATCHER_PROVIDER_FACTORY(\n parentDispatcher: UniqueSelectionDispatcher) {\n return parentDispatcher || new UniqueSelectionDispatcher();\n}\n/**\n * \\@docs-private\n */\nexport const UNIQUE_SELECTION_DISPATCHER_PROVIDER = {\n // If there is already a dispatcher available, use that. Otherwise, provide a new one.\n provide: UniqueSelectionDispatcher,\n deps: [[new Optional(), new SkipSelf(), UniqueSelectionDispatcher]],\n useFactory: UNIQUE_SELECTION_DISPATCHER_PROVIDER_FACTORY\n};\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\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 */\n\n\nimport {Constructor} from './constructor';\nimport {CanDisable} from './disabled';\n\n/** @docs-private */\nexport interface HasTabIndex {\n tabIndex: number;\n}\n/**\n * Mixin to augment a directive with a `tabIndex` property.\n * @template T\n * @param {?} base\n * @param {?=} defaultTabIndex\n * @return {?}\n */\nexport function mixinTabIndex<T extends Constructor<CanDisable>>(base: T, defaultTabIndex = 0)\n : Constructor<HasTabIndex> & T {\n return class extends base {\nprivate _tabIndex: number = defaultTabIndex;\n/**\n * @return {?}\n */\nget tabIndex(): number { return this.disabled ? -1 : this._tabIndex; }\n/**\n * @param {?} value\n * @return {?}\n */\nset tabIndex(value: number) {\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/**\n * @param {...?} args\n */\nconstructor(...args: any[]) {\n super(...args);\n }\n };\n}\n\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 */\n\n\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {Constructor} from './constructor';\n\n/** @docs-private */\nexport interface CanDisableRipple {\n disableRipple: boolean;\n}\n/**\n * Mixin to augment a directive with a `disableRipple` property.\n * @template T\n * @param {?} base\n * @return {?}\n */\nexport function mixinDisableRipple<T extends Constructor<{}>>(base: T)\n : Constructor<CanDisableRipple> & T {\n return class extends base {\nprivate _disableRipple: boolean = false;\n/**\n * Whether the ripple effect is disabled or not.\n * @return {?}\n */\nget disableRipple() { return this._disableRipple; }\n/**\n * @param {?} value\n * @return {?}\n */\nset disableRipple(value: any) { this._disableRipple = coerceBooleanProperty(value); }\n/**\n * @param {...?} args\n */\nconstructor(...args: any[]) { super(...args); }\n };\n}\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 */\n\n\nimport {Constructor} from './constructor';\nimport {ElementRef, Renderer2} from '@angular/core';\n\n/** @docs-private */\nexport interface CanColor {\n color: ThemePalette;\n}\n\n/** @docs-private */\nexport interface HasRenderer {\n _renderer: Renderer2;\n _elementRef: ElementRef;\n}\n\n/** Possible color palette values. */\nexport type ThemePalette = 'primary' | 'accent' | 'warn' | undefined;\n/**\n * Mixin to augment a directive with a `color` property.\n * @template T\n * @param {?} base\n * @param {?=} defaultColor\n * @return {?}\n */\nexport function mixinColor<T extends Constructor<HasRenderer>>(base: T, defaultColor?: ThemePalette)\n : Constructor<CanColor> & T {\n return class extends base {\nprivate _color: ThemePalette;\n/**\n * @return {?}\n */\nget color(): ThemePalette { return this._color; }\n/**\n * @param {?} value\n * @return {?}\n */\nset color(value: ThemePalette) {\n const /** @type {?} */ colorPalette = value || defaultColor;\n\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\n this._color = colorPalette;\n }\n }\n/**\n * @param {...?} args\n */\nconstructor(...args: any[]) {\n super(...args);\n\n // Set the default color that can be specified from the mixin.\n this.color = defaultColor;\n }\n };\n}\n\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 */\n\n\nimport {NgModule, InjectionToken, Optional, Inject, isDevMode} from '@angular/core';\nimport {DOCUMENT} from '@angular/platform-browser';\nimport {BidiModule} from '@angular/cdk/bidi';\nimport {CompatibilityModule} from '../compatibility/compatibility';\n/**\n * Injection token that configures whether the Material sanity checks are enabled.\n */\nexport const MATERIAL_SANITY_CHECKS = new InjectionToken<boolean>('md-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., MdTabsModule).\n */\nexport class MdCommonModule {\n/**\n * Whether we've done the global sanity checks (e.g. a theme is loaded, there is a doctype).\n */\nprivate _hasDoneGlobalChecks = false;\n/**\n * @param {?} _document\n * @param {?} _sanityChecksEnabled\n */\nconstructor(\nprivate _document: any,\n _sanityChecksEnabled: boolean) {\n\n if (_sanityChecksEnabled && !this._hasDoneGlobalChecks && _document && isDevMode()) {\n this._checkDoctype();\n this._checkTheme();\n this._hasDoneGlobalChecks = true;\n }\n }\n/**\n * @return {?}\n */\nprivate _checkDoctype(): void {\n if (!this._document.doctype) {\n console.warn(\n 'Current document does not have a doctype. This may cause ' +\n 'some Angular Material components not to behave as expected.'\n );\n }\n }\n/**\n * @return {?}\n */\nprivate _checkTheme(): void {\n if (typeof getComputedStyle === 'function') {\n const /** @type {?} */ testElement = this._document.createElement('div');\n\n testElement.classList.add('mat-theme-loaded-marker');\n this._document.body.appendChild(testElement);\n\n if (getComputedStyle(testElement).display !== 'none') {\n console.warn(\n '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 }\n\n this._document.body.removeChild(testElement);\n }\n }\nstatic decorators: DecoratorInvocation[] = [\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 */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DOCUMENT, ] }, ]},\n{type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MATERIAL_SANITY_CHECKS, ] }, ]},\n];\n}\n\nfunction MdCommonModule_tsickle_Closure_declarations() {\n/** @type {?} */\nMdCommonModule.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdCommonModule.ctorParameters;\n/**\n * Whether we've done the global sanity checks (e.g. a theme is loaded, there is a doctype).\n * @type {?}\n */\nMdCommonModule.prototype._hasDoneGlobalChecks;\n/** @type {?} */\nMdCommonModule.prototype._document;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\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 */\n\n\nimport {NgModule, Directive, Inject, Optional, ElementRef, InjectionToken} from '@angular/core';\n\nexport const /** @type {?} */ MATERIAL_COMPATIBILITY_MODE = new InjectionToken<boolean>('md-compatibility-mode');\n/**\n * Returns an exception to be thrown if the consumer has used\n * an invalid Material prefix on a component.\n * \\@docs-private\n * @param {?} prefix\n * @param {?} nodeName\n * @return {?}\n */\nexport function getMdCompatibilityInvalidPrefixError(prefix: string, nodeName: string) {\n return Error(`The \"${prefix}-\" prefix cannot be used in ng-material v1 compatibility mode. ` +\n `It was used on an \"${nodeName.toLowerCase()}\" element.`);\n}\n/**\n * Selector that matches all elements that may have style collisions with AngularJS Material.\n */\nexport const 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 */\nexport const 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 */\nexport class MatPrefixRejector {\n/**\n * @param {?} isCompatibilityMode\n * @param {?} elementRef\n */\nconstructor(\n isCompatibilityMode: boolean,\n elementRef: ElementRef) {\n\n if (!isCompatibilityMode) {\n throw getMdCompatibilityInvalidPrefixError('mat', elementRef.nativeElement.nodeName);\n }\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Directive, args: [{selector: MAT_ELEMENTS_SELECTOR}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MATERIAL_COMPATIBILITY_MODE, ] }, ]},\n{type: ElementRef, },\n];\n}\n\nfunction MatPrefixRejector_tsickle_Closure_declarations() {\n/** @type {?} */\nMatPrefixRejector.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMatPrefixRejector.ctorParameters;\n}\n\n/**\n * Directive that enforces that the `md-` prefix cannot be used.\n */\nexport class MdPrefixRejector {\n/**\n * @param {?} isCompatibilityMode\n * @param {?} elementRef\n */\nconstructor(\n isCompatibilityMode: boolean,\n elementRef: ElementRef) {\n\n if (isCompatibilityMode) {\n throw getMdCompatibilityInvalidPrefixError('md', elementRef.nativeElement.nodeName);\n }\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Directive, args: [{selector: MD_ELEMENTS_SELECTOR}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MATERIAL_COMPATIBILITY_MODE, ] }, ]},\n{type: ElementRef, },\n];\n}\n\nfunction MdPrefixRejector_tsickle_Closure_declarations() {\n/** @type {?} */\nMdPrefixRejector.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdPrefixRejector.ctorParameters;\n}\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 */\nexport class CompatibilityModule {static decorators: DecoratorInvocation[] = [\n{ type: NgModule, args: [{\n declarations: [MatPrefixRejector, MdPrefixRejector],\n exports: [MatPrefixRejector, MdPrefixRejector],\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction CompatibilityModule_tsickle_Closure_declarations() {\n/** @type {?} */\nCompatibilityModule.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nCompatibilityModule.ctorParameters;\n}\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 */\nexport class NoConflictStyleCompatibilityMode {static decorators: DecoratorInvocation[] = [\n{ type: NgModule, args: [{\n providers: [{\n provide: MATERIAL_COMPATIBILITY_MODE, useValue: true,\n }],\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction NoConflictStyleCompatibilityMode_tsickle_Closure_declarations() {\n/** @type {?} */\nNoConflictStyleCompatibilityMode.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nNoConflictStyleCompatibilityMode.ctorParameters;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","\n/**\n * \\@docs-private\n */\nexport class AnimationCurves {\n static STANDARD_CURVE = 'cubic-bezier(0.4,0.0,0.2,1)';\n static DECELERATION_CURVE = 'cubic-bezier(0.0,0.0,0.2,1)';\n static ACCELERATION_CURVE = 'cubic-bezier(0.4,0.0,1,1)';\n static SHARP_CURVE = 'cubic-bezier(0.4,0.0,0.6,1)';\n}\n\nfunction AnimationCurves_tsickle_Closure_declarations() {\n/** @type {?} */\nAnimationCurves.STANDARD_CURVE;\n/** @type {?} */\nAnimationCurves.DECELERATION_CURVE;\n/** @type {?} */\nAnimationCurves.ACCELERATION_CURVE;\n/** @type {?} */\nAnimationCurves.SHARP_CURVE;\n}\n\n/**\n * \\@docs-private\n */\nexport class AnimationDurations {\n static COMPLEX = '375ms';\n static ENTERING = '225ms';\n static EXITING = '195ms';\n}\n\nfunction AnimationDurations_tsickle_Closure_declarations() {\n/** @type {?} */\nAnimationDurations.COMPLEX;\n/** @type {?} */\nAnimationDurations.ENTERING;\n/** @type {?} */\nAnimationDurations.EXITING;\n}\n\n","/*! *****************************************************************************\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}"],"names":["EventEmitter","Output","Input","Optional","Inject","ViewEncapsulation","Component","ChangeDetectionStrategy","merge","of","coerceBooleanProperty","Subscription","Directive","observableOf","DOWN_ARROW","filter","Validators","forwardRef","NG_VALIDATORS","DOCUMENT","Directionality","OverlayConfig","first$1","ComponentPortal","Overlay","InjectionToken","ChangeDetectorRef","ElementRef","ENTER","HOME","LEFT_ARROW","PAGE_DOWN","PAGE_UP","END","RIGHT_ARROW","first","ContentChildren","ViewChild","animate","style","transition","state","trigger","fromEvent","startWith","nextUniqueId","Attribute","Renderer2","SkipSelf","Http","DomSanitizer","Injectable","share","finallyOperator","map","SecurityContext","forkJoin","Observable","doOperator","catchOperator","RxChain","A11yModule","OverlayModule","TemplatePortal","TemplateRef","defer","Subject","FocusTrapFactory","BasePortalHost","CommonModule","NgModule","FocusMonitor","Platform","tslib_1.__extends","Self","SPACE","VIEWPORT_RULER_PROVIDER","PlatformModule","ScrollDispatchModule","ViewportRuler","NgZone","HammerGestureConfig","isDevMode","LOCALE_ID"],"mappings":"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"}
|