Full Code of angular/material for AI

master 952c06705a7e cached
727 files
4.1 MB
1.1M tokens
644 symbols
1 requests
Download .txt
Showing preview only (4,478K chars total). Download the full file or copy to clipboard to get everything.
Repository: angular/material
Branch: master
Commit: 952c06705a7e
Files: 727
Total size: 4.1 MB

Directory structure:
gitextract_pok300ue/

├── .circleci/
│   └── config.yml
├── .clang-format
├── .editorconfig
├── .eslintignore
├── .eslintrc.json
├── .github/
│   ├── CONTRIBUTING.md
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug.md
│   │   ├── config.yml
│   │   └── docs.md
│   ├── PULL_REQUEST_TEMPLATE.md
│   └── workflows/
│       └── codeql-analysis.yml
├── .gitignore
├── .jshintrc
├── .mailmap
├── .nvmrc
├── .vscode/
│   ├── README.md
│   ├── extensions.json
│   └── settings.json
├── CHANGELOG.md
├── LICENSE
├── README.md
├── SECURITY.md
├── config/
│   ├── .jshintrc
│   ├── build.config.js
│   ├── karma-circleci.conf.js
│   ├── karma-docs.conf.js
│   ├── karma-jenkins.conf.js
│   ├── karma-sauce.conf.js
│   ├── karma-travis.conf.js
│   ├── karma.conf.js
│   ├── ngModuleData.js
│   └── sauce-browsers.json
├── docs/
│   ├── README.md
│   ├── app/
│   │   ├── css/
│   │   │   ├── highlightjs-material.css
│   │   │   ├── layout-demo.css
│   │   │   └── style.css
│   │   ├── js/
│   │   │   ├── anchor.js
│   │   │   ├── app.js
│   │   │   ├── codepen.js
│   │   │   ├── css-api-table.js
│   │   │   ├── demo.js
│   │   │   ├── demoInclude.js
│   │   │   ├── highlight-angular.js
│   │   │   ├── highlight.pack.js
│   │   │   ├── ngPanel.js
│   │   │   ├── preload.js
│   │   │   └── scripts.js
│   │   ├── partials/
│   │   │   ├── contributors.tmpl.html
│   │   │   ├── demo.tmpl.html
│   │   │   ├── docs-demo.tmpl.html
│   │   │   ├── getting-started.tmpl.html
│   │   │   ├── home.tmpl.html
│   │   │   ├── layout-alignment.tmpl.html
│   │   │   ├── layout-children.tmpl.html
│   │   │   ├── layout-container.tmpl.html
│   │   │   ├── layout-introduction.tmpl.html
│   │   │   ├── layout-options.tmpl.html
│   │   │   ├── layout-tips.tmpl.html
│   │   │   ├── license.tmpl.html
│   │   │   ├── menu-link.tmpl.html
│   │   │   ├── menu-toggle.tmpl.html
│   │   │   └── view-source.tmpl.html
│   │   └── svg-assets-cache.js
│   ├── config/
│   │   ├── index.js
│   │   ├── processors/
│   │   │   ├── buildConfig.js
│   │   │   ├── componentsData.js
│   │   │   ├── content.js
│   │   │   └── indexPage.js
│   │   └── template/
│   │       ├── build-config.js
│   │       ├── constant-data.template.js
│   │       ├── demo-index.template.html
│   │       ├── index.template.html
│   │       ├── ngdoc/
│   │       │   ├── api/
│   │       │   │   ├── api.template.html
│   │       │   │   ├── componentGroup.template.html
│   │       │   │   ├── directive.template.html
│   │       │   │   ├── filter.template.html
│   │       │   │   ├── function.template.html
│   │       │   │   ├── input.template.html
│   │       │   │   ├── module.template.html
│   │       │   │   ├── object.template.html
│   │       │   │   ├── provider.template.html
│   │       │   │   ├── service.template.html
│   │       │   │   └── type.template.html
│   │       │   ├── base.template.html
│   │       │   ├── content.template.html
│   │       │   └── lib/
│   │       │       ├── events.template.html
│   │       │       ├── macros.html
│   │       │       ├── methods.template.html
│   │       │       ├── params.template.html
│   │       │       ├── properties.template.html
│   │       │       ├── returns.template.html
│   │       │       └── this.template.html
│   │       ├── readme.template.html
│   │       └── template.json
│   ├── content/
│   │   ├── CSS/
│   │   │   ├── button.md
│   │   │   ├── checkbox.md
│   │   │   └── typography.md
│   │   ├── Theming/
│   │   │   ├── 01_introduction.md
│   │   │   ├── 02_declarative_syntax.md
│   │   │   ├── 03_configuring_a_theme.md
│   │   │   ├── 04_multiple_themes.md
│   │   │   ├── 05_under_the_hood.md
│   │   │   └── 06_browser_color.md
│   │   ├── migration.md
│   │   └── performance/
│   │       └── internet-explorer.md
│   ├── guides/
│   │   ├── BUILD.md
│   │   ├── CODEPEN.md
│   │   ├── CODING.md
│   │   ├── COMMIT_LEVELS.md
│   │   ├── MERGE_REQUESTS.md
│   │   ├── PULL_REQUESTS.md
│   │   └── THEMES_IMPL_NOTES.md
│   ├── gulpfile.js
│   └── spec/
│       ├── codepen.spec.js
│       └── demo.spec.js
├── gulp/
│   ├── .jshintrc
│   ├── config.js
│   ├── const.js
│   ├── tasks/
│   │   ├── build-all-modules.js
│   │   ├── build-contributors.js
│   │   ├── build-demo.js
│   │   ├── build-js.js
│   │   ├── build-module-demo.js
│   │   ├── build-scss.js
│   │   ├── build.js
│   │   ├── changelog.js
│   │   ├── ddescribe-iit.js
│   │   ├── default.js
│   │   ├── docs.js
│   │   ├── jshint.js
│   │   ├── karma-fast.js
│   │   ├── karma-sauce.js
│   │   ├── karma-watch.js
│   │   ├── karma.js
│   │   ├── server.js
│   │   ├── site.js
│   │   ├── validate.js
│   │   ├── watch-demo.js
│   │   └── watch.js
│   └── util.js
├── gulpfile.js
├── package.json
├── release
├── release.js
├── scripts/
│   ├── bower-material-release.sh
│   ├── build-asset-cache.sh
│   ├── circleci/
│   │   ├── run-tests.sh
│   │   └── update-snapshot-and-docs.sh
│   ├── fetch-angular-version.sh
│   ├── find-max-version.js
│   ├── gulp-utils.js
│   ├── sauce/
│   │   ├── setup-tunnel.sh
│   │   ├── stop-tunnel.sh
│   │   └── wait-tunnel.sh
│   ├── snapshot-docs-site.sh
│   ├── test-versions.sh
│   ├── utils.inc
│   └── write-presubmit-scheduler.js
├── src/
│   ├── components/
│   │   ├── autocomplete/
│   │   │   ├── autocomplete-theme.scss
│   │   │   ├── autocomplete.js
│   │   │   ├── autocomplete.scss
│   │   │   ├── autocomplete.spec.js
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   └── script.js
│   │   │   ├── demoCustomTemplate/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.global.css
│   │   │   ├── demoFloatingLabel/
│   │   │   │   ├── index.html
│   │   │   │   └── script.js
│   │   │   ├── demoInsideDialog/
│   │   │   │   ├── dialog.tmpl.html
│   │   │   │   ├── index.html
│   │   │   │   └── script.js
│   │   │   ├── demoRepeatMode/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.global.css
│   │   │   └── js/
│   │   │       ├── autocompleteController.js
│   │   │       ├── autocompleteDirective.js
│   │   │       ├── autocompleteParentScopeDirective.js
│   │   │       ├── highlightController.js
│   │   │       └── highlightDirective.js
│   │   ├── backdrop/
│   │   │   ├── backdrop-theme.scss
│   │   │   ├── backdrop.js
│   │   │   └── backdrop.scss
│   │   ├── bottomSheet/
│   │   │   ├── bottom-sheet-theme.scss
│   │   │   ├── bottom-sheet.js
│   │   │   ├── bottom-sheet.scss
│   │   │   ├── bottom-sheet.spec.js
│   │   │   └── demoBasicUsage/
│   │   │       ├── bottom-sheet-grid-template.html
│   │   │       ├── bottom-sheet-list-template.html
│   │   │       ├── index.html
│   │   │       ├── readme.html
│   │   │       ├── script.js
│   │   │       └── style.css
│   │   ├── button/
│   │   │   ├── button-theme.scss
│   │   │   ├── button.js
│   │   │   ├── button.scss
│   │   │   ├── button.spec.js
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   └── demoDense/
│   │   │       ├── index.html
│   │   │       ├── script.js
│   │   │       └── style.css
│   │   ├── card/
│   │   │   ├── card-theme.scss
│   │   │   ├── card.js
│   │   │   ├── card.scss
│   │   │   ├── card.spec.js
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── demoCardActionButtons/
│   │   │   │   ├── index.html
│   │   │   │   └── script.js
│   │   │   └── demoInCardActions/
│   │   │       ├── index.html
│   │   │       └── script.js
│   │   ├── checkbox/
│   │   │   ├── checkbox-theme.scss
│   │   │   ├── checkbox.js
│   │   │   ├── checkbox.scss
│   │   │   ├── checkbox.spec.js
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── demoLabels/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── demoSelectAll/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   └── demoSyncing/
│   │   │       ├── index.html
│   │   │       ├── script.js
│   │   │       └── style.css
│   │   ├── chips/
│   │   │   ├── chips-theme.scss
│   │   │   ├── chips.js
│   │   │   ├── chips.scss
│   │   │   ├── chips.spec.js
│   │   │   ├── contact-chips.spec.js
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   ├── readme.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.scss
│   │   │   ├── demoContactChips/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.scss
│   │   │   ├── demoCustomInputs/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── demoCustomSeparatorKeys/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.scss
│   │   │   ├── demoStaticChips/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── demoValidation/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.scss
│   │   │   └── js/
│   │   │       ├── chipController.js
│   │   │       ├── chipDirective.js
│   │   │       ├── chipRemoveDirective.js
│   │   │       ├── chipTranscludeDirective.js
│   │   │       ├── chipsController.js
│   │   │       ├── chipsDirective.js
│   │   │       ├── contactChipsController.js
│   │   │       └── contactChipsDirective.js
│   │   ├── colors/
│   │   │   ├── colors.js
│   │   │   ├── colors.spec.js
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   ├── regularCard.tmpl.html
│   │   │   │   ├── script.js
│   │   │   │   ├── style.css
│   │   │   │   └── userCard.tmpl.html
│   │   │   └── demoThemePicker/
│   │   │       ├── index.html
│   │   │       ├── script.js
│   │   │       ├── style.css
│   │   │       └── themePreview.tmpl.html
│   │   ├── content/
│   │   │   ├── content-theme.scss
│   │   │   ├── content.js
│   │   │   ├── content.scss
│   │   │   ├── content.spec.js
│   │   │   └── demoBasicUsage/
│   │   │       ├── index.html
│   │   │       ├── script.js
│   │   │       └── style.css
│   │   ├── datepicker/
│   │   │   ├── calendar-theme.scss
│   │   │   ├── calendar.scss
│   │   │   ├── datePicker-theme.scss
│   │   │   ├── datePicker.js
│   │   │   ├── datePicker.scss
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   └── script.js
│   │   │   ├── demoCalendar/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.scss
│   │   │   ├── demoMoment/
│   │   │   │   ├── index.html
│   │   │   │   └── script.js
│   │   │   ├── demoMomentCustomFormat/
│   │   │   │   ├── index.html
│   │   │   │   └── script.js
│   │   │   ├── demoNgModelOptionsTimezone/
│   │   │   │   ├── index.html
│   │   │   │   └── script.js
│   │   │   ├── demoValidations/
│   │   │   │   ├── index.html
│   │   │   │   └── script.js
│   │   │   └── js/
│   │   │       ├── calendar.js
│   │   │       ├── calendar.spec.js
│   │   │       ├── calendarMonth.js
│   │   │       ├── calendarMonthBody.js
│   │   │       ├── calendarYear.js
│   │   │       ├── calendarYearBody.js
│   │   │       ├── dateLocale.spec.js
│   │   │       ├── dateLocaleProvider.js
│   │   │       ├── dateUtil.js
│   │   │       ├── dateUtil.spec.js
│   │   │       ├── datepickerDirective.js
│   │   │       └── datepickerDirective.spec.js
│   │   ├── dialog/
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── dialog1.tmpl.html
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   ├── style.css
│   │   │   │   └── tabDialog.tmpl.html
│   │   │   ├── demoOpenFromCloseTo/
│   │   │   │   ├── index.html
│   │   │   │   └── script.js
│   │   │   ├── demoThemeInheritance/
│   │   │   │   ├── dialog1.tmpl.html
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── dialog-theme.scss
│   │   │   ├── dialog.js
│   │   │   ├── dialog.scss
│   │   │   └── dialog.spec.js
│   │   ├── divider/
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   └── script.js
│   │   │   ├── divider-theme.scss
│   │   │   ├── divider.js
│   │   │   └── divider.scss
│   │   ├── fabActions/
│   │   │   ├── fabActions.js
│   │   │   └── fabActions.spec.js
│   │   ├── fabSpeedDial/
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.scss
│   │   │   ├── demoMoreOptions/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.scss
│   │   │   ├── fabController.js
│   │   │   ├── fabSpeedDial-theme.scss
│   │   │   ├── fabSpeedDial.js
│   │   │   ├── fabSpeedDial.scss
│   │   │   └── fabSpeedDial.spec.js
│   │   ├── fabToolbar/
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.scss
│   │   │   ├── fabToolbar.js
│   │   │   ├── fabToolbar.scss
│   │   │   └── fabToolbar.spec.js
│   │   ├── gridList/
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── styles.css
│   │   │   ├── demoDynamicTiles/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.scss
│   │   │   ├── demoResponsiveUsage/
│   │   │   │   ├── index.html
│   │   │   │   └── script.js
│   │   │   ├── grid-list.js
│   │   │   ├── grid-list.scss
│   │   │   └── grid-list.spec.js
│   │   ├── icon/
│   │   │   ├── demoFontIconsWithClassnames/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── demoFontIconsWithLigatures/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── demoLoadSvgIconsFromUrl/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── demoSvgIconSets/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── demoUsingTemplateRequest/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── icon-theme.scss
│   │   │   ├── icon.js
│   │   │   ├── icon.scss
│   │   │   ├── icon.spec.js
│   │   │   └── js/
│   │   │       ├── iconDirective.js
│   │   │       └── iconService.js
│   │   ├── input/
│   │   │   ├── _input-variables.scss
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   └── script.js
│   │   │   ├── demoErrors/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── demoErrorsAdvanced/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── demoIcons/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.scss
│   │   │   ├── demoInlineForm/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.scss
│   │   │   ├── input-animations.spec.js
│   │   │   ├── input-theme.scss
│   │   │   ├── input.js
│   │   │   ├── input.scss
│   │   │   └── input.spec.js
│   │   ├── list/
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── demoListControls/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── list-theme.scss
│   │   │   ├── list.js
│   │   │   ├── list.scss
│   │   │   └── list.spec.js
│   │   ├── menu/
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── demoCustomTrigger/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── demoMenuDensity/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── demoMenuPositionModes/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── demoMenuWidth/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── js/
│   │   │   │   ├── menuController.js
│   │   │   │   ├── menuDirective.js
│   │   │   │   └── menuServiceProvider.js
│   │   │   ├── menu-theme.scss
│   │   │   ├── menu.js
│   │   │   ├── menu.scss
│   │   │   └── menu.spec.js
│   │   ├── menuBar/
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.scss
│   │   │   ├── demoDynamicNestedMenus/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.scss
│   │   │   ├── js/
│   │   │   │   ├── menuBarController.js
│   │   │   │   ├── menuBarDirective.js
│   │   │   │   ├── menuDividerDirective.js
│   │   │   │   ├── menuItemController.js
│   │   │   │   └── menuItemDirective.js
│   │   │   ├── menu-bar-theme.scss
│   │   │   ├── menu-bar.js
│   │   │   ├── menu-bar.scss
│   │   │   └── menu-bar.spec.js
│   │   ├── navBar/
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.scss
│   │   │   ├── navBar-theme.scss
│   │   │   ├── navBar.js
│   │   │   ├── navBar.scss
│   │   │   └── navBar.spec.js
│   │   ├── panel/
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   ├── panel.tmpl.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.global.css
│   │   │   ├── demoGroups/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.global.css
│   │   │   ├── demoPanelAnimations/
│   │   │   │   ├── index.html
│   │   │   │   ├── panel.tmpl.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.global.css
│   │   │   ├── demoPanelProvider/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.global.css
│   │   │   ├── demoReuse/
│   │   │   │   ├── index.html
│   │   │   │   ├── panel.tmpl.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.global.css
│   │   │   ├── panel-theme.scss
│   │   │   ├── panel.js
│   │   │   ├── panel.scss
│   │   │   └── panel.spec.js
│   │   ├── progressCircular/
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── js/
│   │   │   │   ├── progressCircularDirective.js
│   │   │   │   └── progressCircularProvider.js
│   │   │   ├── progress-circular-theme.scss
│   │   │   ├── progress-circular.js
│   │   │   ├── progress-circular.scss
│   │   │   └── progress-circular.spec.js
│   │   ├── progressLinear/
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── progress-linear-theme.scss
│   │   │   ├── progress-linear.js
│   │   │   ├── progress-linear.scss
│   │   │   └── progress-linear.spec.js
│   │   ├── radioButton/
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── demoMultiColumn/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── radio-button-theme.scss
│   │   │   ├── radio-button.js
│   │   │   ├── radio-button.scss
│   │   │   └── radio-button.spec.js
│   │   ├── select/
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── demoOptionGroups/
│   │   │   │   ├── index.html
│   │   │   │   └── script.js
│   │   │   ├── demoOptionsWithAsyncSearch/
│   │   │   │   ├── index.html
│   │   │   │   └── script.js
│   │   │   ├── demoSelectHeader/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── demoSelectedText/
│   │   │   │   ├── index.html
│   │   │   │   └── script.js
│   │   │   ├── demoTrackBy/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── demoValidations/
│   │   │   │   ├── index.html
│   │   │   │   └── script.js
│   │   │   ├── select-theme.scss
│   │   │   ├── select.js
│   │   │   ├── select.scss
│   │   │   └── select.spec.js
│   │   ├── showHide/
│   │   │   ├── showHide.js
│   │   │   └── showHide.spec.js
│   │   ├── sidenav/
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   └── script.js
│   │   │   ├── demoCustomSidenav/
│   │   │   │   ├── index.html
│   │   │   │   └── script.js
│   │   │   ├── demoDisableCloseEvents/
│   │   │   │   ├── index.html
│   │   │   │   └── script.js
│   │   │   ├── sidenav-theme.scss
│   │   │   ├── sidenav.js
│   │   │   ├── sidenav.scss
│   │   │   └── sidenav.spec.js
│   │   ├── slider/
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   └── script.js
│   │   │   ├── demoVertical/
│   │   │   │   ├── index.html
│   │   │   │   └── script.js
│   │   │   ├── slider-theme.scss
│   │   │   ├── slider.js
│   │   │   ├── slider.scss
│   │   │   └── slider.spec.js
│   │   ├── sticky/
│   │   │   ├── sticky.js
│   │   │   ├── sticky.scss
│   │   │   └── sticky.spec.js
│   │   ├── subheader/
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── subheader-theme.scss
│   │   │   ├── subheader.js
│   │   │   ├── subheader.scss
│   │   │   └── subheader.spec.js
│   │   ├── swipe/
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   ├── readme.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── swipe.js
│   │   │   └── swipe.scss
│   │   ├── switch/
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── switch-theme.scss
│   │   │   ├── switch.js
│   │   │   ├── switch.scss
│   │   │   └── switch.spec.js
│   │   ├── tabs/
│   │   │   ├── demoCenterTabs/
│   │   │   │   ├── index.html
│   │   │   │   ├── readme.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.scss
│   │   │   ├── demoDynamicHeight/
│   │   │   │   ├── index.html
│   │   │   │   ├── readme.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.scss
│   │   │   ├── demoDynamicTabs/
│   │   │   │   ├── index.html
│   │   │   │   ├── readme.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.scss
│   │   │   ├── demoStaticTabs/
│   │   │   │   ├── index.html
│   │   │   │   ├── readme.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.scss
│   │   │   ├── js/
│   │   │   │   ├── tabDirective.js
│   │   │   │   ├── tabItemDirective.js
│   │   │   │   ├── tabLabelDirective.js
│   │   │   │   ├── tabScroll.js
│   │   │   │   ├── tabsController.js
│   │   │   │   ├── tabsDirective.js
│   │   │   │   ├── tabsDummyWrapperDirective.js
│   │   │   │   └── tabsTemplateDirective.js
│   │   │   ├── tabs-theme.scss
│   │   │   ├── tabs.js
│   │   │   ├── tabs.scss
│   │   │   ├── tabs.spec.js
│   │   │   ├── tabsPaginationService.js
│   │   │   └── tabsPaginationService.spec.js
│   │   ├── toast/
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.scss
│   │   │   ├── demoCustomUsage/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   ├── style.scss
│   │   │   │   └── toast-template.html
│   │   │   ├── toast-theme.scss
│   │   │   ├── toast.js
│   │   │   ├── toast.scss
│   │   │   └── toast.spec.js
│   │   ├── toolbar/
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.scss
│   │   │   ├── demoInputsInToolbar/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.scss
│   │   │   ├── demoScrollShrink/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── toolbar-theme.scss
│   │   │   ├── toolbar.js
│   │   │   ├── toolbar.scss
│   │   │   └── toolbar.spec.js
│   │   ├── tooltip/
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   └── script.js
│   │   │   ├── tooltip-theme.scss
│   │   │   ├── tooltip.js
│   │   │   ├── tooltip.scss
│   │   │   └── tooltip.spec.js
│   │   ├── truncate/
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   └── style.scss
│   │   │   ├── truncate.js
│   │   │   ├── truncate.scss
│   │   │   └── truncate.spec.js
│   │   ├── virtualRepeat/
│   │   │   ├── demoDeferredLoading/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── demoHorizontalUsage/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── demoInfiniteScroll/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── demoScrollTo/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── demoVerticalUsage/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── virtual-repeater.js
│   │   │   ├── virtual-repeater.scss
│   │   │   └── virtual-repeater.spec.js
│   │   └── whiteframe/
│   │       ├── demoBasicClassUsage/
│   │       │   ├── index.html
│   │       │   ├── script.js
│   │       │   └── style.css
│   │       ├── demoDirectiveAttributeUsage/
│   │       │   ├── index.html
│   │       │   ├── script.js
│   │       │   └── style.css
│   │       ├── demoDirectiveInterpolation/
│   │       │   ├── index.html
│   │       │   ├── script.js
│   │       │   └── style.css
│   │       ├── whiteframe.js
│   │       ├── whiteframe.scss
│   │       └── whiteframe.spec.js
│   └── core/
│       ├── core.js
│       ├── core.spec.js
│       ├── services/
│       │   ├── aria/
│       │   │   ├── aria.js
│       │   │   └── aria.spec.js
│       │   ├── compiler/
│       │   │   ├── compiler.js
│       │   │   └── compiler.spec.js
│       │   ├── gesture/
│       │   │   ├── gesture.js
│       │   │   └── gesture.spec.js
│       │   ├── interaction/
│       │   │   ├── interaction.js
│       │   │   └── interaction.spec.js
│       │   ├── interimElement/
│       │   │   ├── interimElement.js
│       │   │   └── interimElement.spec.js
│       │   ├── layout/
│       │   │   ├── ie_fixes.css
│       │   │   ├── layout-attributes.scss
│       │   │   ├── layout.js
│       │   │   ├── layout.scss
│       │   │   └── layout.spec.js
│       │   ├── liveAnnouncer/
│       │   │   ├── live-announcer.js
│       │   │   └── live-announcer.spec.js
│       │   ├── meta/
│       │   │   ├── meta.js
│       │   │   └── meta.spec.js
│       │   ├── registry/
│       │   │   ├── componentRegistry.js
│       │   │   └── componentRegistry.spec.js
│       │   ├── ripple/
│       │   │   ├── button_ripple.js
│       │   │   ├── button_ripple.spec.js
│       │   │   ├── checkbox_ripple.js
│       │   │   ├── checkbox_ripple.spec.js
│       │   │   ├── list_ripple.js
│       │   │   ├── list_ripple.spec.js
│       │   │   ├── ripple.js
│       │   │   ├── ripple.spec.js
│       │   │   ├── tab_ripple.js
│       │   │   └── tab_ripple.spec.js
│       │   └── theming/
│       │       ├── theme.palette.js
│       │       ├── theming.js
│       │       └── theming.spec.js
│       ├── style/
│       │   ├── _mixins.scss
│       │   ├── _modules.scss
│       │   ├── _variables.scss
│       │   ├── core-theme.scss
│       │   ├── layout.scss
│       │   ├── structure.scss
│       │   └── typography.scss
│       └── util/
│           ├── animation/
│           │   ├── animate.js
│           │   ├── animate.spec.js
│           │   ├── animateCss.js
│           │   └── animateCss.spec.js
│           ├── autofocus.js
│           ├── autofocus.spec.js
│           ├── color.js
│           ├── constant.js
│           ├── iterator.js
│           ├── iterator.spec.js
│           ├── media.js
│           ├── media.spec.js
│           ├── prefixer.js
│           ├── prefixer.spec.js
│           ├── util.js
│           └── util.spec.js
├── start-hook.sh
├── test/
│   ├── .jshintrc
│   ├── angular-material-mocks.js
│   └── angular-material-spec.js
├── updateVersionPicker.js
└── watch-hook.sh

================================================
FILE CONTENTS
================================================

================================================
FILE: .circleci/config.yml
================================================
# Configuration file for https://circleci.com/gh/angular/material

# Note: YAML anchors allow an object to be re-used, reducing duplication.
# The ampersand declares an alias for an object, then later the `<<: *name`
# syntax dereferences it.
# See http://blog.daemonl.com/2016/02/yaml.html
# To validate changes, use an online parser, eg. http://yaml-online-parser.appspot.com/

# Find the latest version and SHA here: https://hub.docker.com/r/circleci/node/tags
var_1: &docker_image circleci/node:14.16.1-browsers
var_2: &cache_key angularjs-material-{{ checksum "package-lock.json" }}

# Settings common to each job
var_3: &job_defaults
  working_directory: ~/ng
  docker:
    - image: *docker_image

# Restores the cache that could be available for the current lock file. The cache
# includes the node modules.
var_4: &restore_cache
  restore_cache:
    key: *cache_key

# Saves the cache for the current lock file. We store the node modules cache in order to make
#  subsequent builds faster.
var_5: &save_cache
  save_cache:
    key: *cache_key
    paths:
      - "node_modules"
      - "$HOME/.npm"
      - "tmp/angular.js"

# Job step that ensures that the node module dependencies are installed and up-to-date. We use
# NPM with the frozen lockfile option in order to make sure that lock file and package.json are
# in sync. Unlike in Travis, we don't need to manually purge the node modules if stale because
# CircleCI automatically discards the cache if the checksum of the lock file has changed.
var_6: &npm_install
  run: npm ci

var_7: &store_junit_test_results
  store_test_results:
    path: ./artifacts/junit

# Branch filter that we can specify for jobs that should only run on publish branches. This filter
# is used to ensure that not all upstream branches will be published as GitHub builds
# (e.g. revert branches, feature branches)
var_8: &publish_branches_filter
  branches:
    only:
      - master

# -----------------------------
# Container version of CircleCI
# -----------------------------
version: 2.1

orbs:
  build-tools: circleci/build-tools@2.9.0

commands:
  # Command for checking out the source code from GitHub. This also ensures that the source code
  # can be merged to the master branch without conflicts.
  checkout_and_rebase:
    description: Checkout and verify clean merge with master
    steps:
      - checkout
      - run:
          name: Set git user.name and user.email for rebase.
          # User is required for rebase.
          command: |
            git config user.name "angular-ci"
            git config user.email "angular-ci"
      - build-tools/merge-with-parent:
          parent: master

# -----------------------------------------------------------------------------------------
# Job definitions. Jobs which are defined just here, will not run automatically. Each job
# must be part of a workflow definition in order to run for PRs and push builds.
# -----------------------------------------------------------------------------------------
jobs:

  # ----------------------------------
  # Lint job. Runs the lint task.
  # ----------------------------------
  lint:
    <<: *job_defaults
    steps:
      - checkout_and_rebase
      - *restore_cache
      - *npm_install
      - run: npm run lint

  # -----------------------------------
  # Build and test job.
  # -----------------------------------
  build:
    <<: *job_defaults
    steps:
      - checkout_and_rebase
      - *restore_cache
      - *npm_install
      - run: npm run build
      - *save_cache

  build_js_modules:
    <<: *job_defaults
    steps:
      - checkout_and_rebase
      - *restore_cache
      - *npm_install
      - run: npm run build:modules
      - *save_cache

  build_closure_modules:
    <<: *job_defaults
    steps:
      - checkout_and_rebase
      - *restore_cache
      - *npm_install
      - run: npm run build:closure
      - *save_cache

  # ------------------------------------------------------------------------------------------
  # Jobs that run the unit tests on locally installed browsers (Chrome and Firefox headless).
  # The available browsers are included in the Docker image.
  # ------------------------------------------------------------------------------------------
  test_angularjs_1_7:
    <<: *job_defaults
    environment:
      NG_VERSION: "1.7"
    steps:
      - checkout_and_rebase
      - *restore_cache
      - *npm_install
      - run: ./scripts/circleci/run-tests.sh
      - *store_junit_test_results

  test_angularjs_1_8:
    <<: *job_defaults
    environment:
      NG_VERSION: "1.8"
    steps:
      - checkout_and_rebase
      - *restore_cache
      - *npm_install
      - run: ./scripts/circleci/run-tests.sh
      - *store_junit_test_results

  test_angularjs_snapshot:
    <<: *job_defaults
    environment:
      NG_VERSION: "snapshot"
    steps:
      - checkout_and_rebase
      - *restore_cache
      - *npm_install
      - run: ./scripts/circleci/run-tests.sh
      - *store_junit_test_results

  # ------------------------------------------------------------------------------------------
  # Jobs that snapshot the `master` branch and update the docs on commits to master
  # ------------------------------------------------------------------------------------------
  update_and_snapshot_docs:
    <<: *job_defaults
    steps:
      - checkout_and_rebase
      - *restore_cache
      - *npm_install
      - run: sudo npm i -g gulp@3.9
      - run: git config --global --unset url.ssh://git@github.com.insteadof
      - run: ./scripts/circleci/update-snapshot-and-docs.sh --sha=${CIRCLE_SHA1}

# ----------------------------------------------------------------------------------------
# Workflow definitions. A workflow usually groups multiple jobs together. This is useful if
# one job depends on another.
# ----------------------------------------------------------------------------------------
workflows:
  version: 2

  # Lint workflow. As we want to lint in one job, this is a workflow with just one job.
  lint:
    jobs:
      - lint

  # Build and test workflow. A workflow includes multiple jobs that run in parallel. All jobs
  # that build and test source code should be part of this workflow.
  build_and_test:
    jobs:
      - build
      - test_angularjs_1_7:
          requires:
            - build
      - test_angularjs_1_8:
          requires:
            - build
      - test_angularjs_snapshot:
          requires:
            - build
      - build_js_modules:
          requires:
            - build
      - build_closure_modules:
          requires:
            - build
      - update_and_snapshot_docs:
            filters: *publish_branches_filter
            requires:
              - test_angularjs_1_7
              - test_angularjs_1_8
              - test_angularjs_snapshot
              - build_js_modules
              - build_closure_modules


================================================
FILE: .clang-format
================================================
Language:        JavaScript
BasedOnStyle:    Google
ColumnLimit:     100

TabWidth:                2
ContinuationIndentWidth: 4
MaxEmptyLinesToKeep    : 2

AllowShortBlocksOnASingleLine:              false
AllowShortIfStatementsOnASingleLine:        false
AllowShortLoopsOnASingleLine:               false
AllowShortFunctionsOnASingleLine:           Empty



================================================
FILE: .editorconfig
================================================
root = true

[*]
charset = utf-8
indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true

[*.md]
trim_trailing_whitespace = false


================================================
FILE: .eslintignore
================================================
# Ignore miscellaneous folders
.github/
.idea/
node_modules/
dist/
tmp/
bower-material/
code.material.angularjs.org/

# Ignore certain project files
src/core/services/compiler/compiler.spec.js
docs/config/template/*.js
docs/app/js/highlight.pack.js


================================================
FILE: .eslintrc.json
================================================
{
  "extends": "eslint:recommended",
  "parserOptions": {
    "ecmaVersion": 2021
  },
  "rules": {
    "accessor-pairs": "error",
    "array-bracket-newline": "off",
    "array-bracket-spacing": ["error", "never"],
    "array-callback-return": "error",
    "array-element-newline": "off",
    "arrow-body-style": "error",
    "arrow-parens": [
      "error",
      "as-needed"
    ],
    "arrow-spacing": "error",
    "block-scoped-var": "off",
    "block-spacing": "off",
    "brace-style": "off",
    "callback-return": "off",
    "camelcase": "off",
    "capitalized-comments": "off",
    "class-methods-use-this": "error",
    "comma-dangle": "off",
    "comma-spacing": "off",
    "comma-style": [
      "error",
      "last"
    ],
    "complexity": "off",
    "computed-property-spacing": "off",
    "consistent-return": "off",
    "consistent-this": "off",
    "curly": "off",
    "default-case": "off",
    "dot-location": "off",
    "dot-notation": "off",
    "eol-last": "off",
    "eqeqeq": "off",
    "for-direction": "error",
    "func-call-spacing": "off",
    "func-name-matching": "off",
    "func-names": "off",
    "func-style": "off",
    "generator-star-spacing": "error",
    "getter-return": "error",
    "global-require": "off",
    "guard-for-in": "off",
    "handle-callback-err": "error",
    "id-denylist": ["error"],
    "id-length": "off",
    "id-match": "error",
    "indent": "off",
    "indent-legacy": "off",
    "init-declarations": "off",
    "jsx-quotes": "error",
    "key-spacing": "off",
    "keyword-spacing": ["error", {"before":  true, "after":  true}],
    "line-comment-position": "off",
    "linebreak-style": "off",
    "lines-around-comment": "off",
    "lines-around-directive": "off",
    "max-depth": "error",
    "max-len": "off",
    "max-lines": "off",
    "max-nested-callbacks": "error",
    "max-params": "off",
    "max-statements": "off",
    "max-statements-per-line": "off",
    "multiline-ternary": "off",
    "new-parens": "error",
    "newline-after-var": "off",
    "newline-before-return": "off",
    "newline-per-chained-call": "off",
    "no-alert": "off",
    "no-array-constructor": "error",
    "no-await-in-loop": "error",
    "no-bitwise": "off",
    "no-buffer-constructor": "error",
    "no-caller": "error",
    "no-catch-shadow": "error",
    "no-confusing-arrow": "error",
    "no-console": [
      "off"
    ],
    "no-constant-condition": [
      "error",
      {
        "checkLoops": false
      }
    ],
    "no-continue": "off",
    "no-div-regex": "off",
    "no-duplicate-imports": "error",
    "no-else-return": "off",
    "no-empty-function": "off",
    "no-eq-null": "off",
    "no-eval": "error",
    "no-extend-native": "off",
    "no-extra-bind": "off",
    "no-extra-label": "error",
    "no-extra-parens": "off",
    "no-floating-decimal": "error",
    "no-implicit-coercion": [
      "error",
      {
        "boolean": false,
        "number": false,
        "string": false
      }
    ],
    "no-implicit-globals": "off",
    "no-implied-eval": "error",
    "no-inline-comments": "off",
    "no-inner-declarations": [
      "error",
      "functions"
    ],
    "no-invalid-this": "off",
    "no-iterator": "error",
    "no-label-var": "error",
    "no-labels": "error",
    "no-lone-blocks": "error",
    "no-lonely-if": "off",
    "no-loop-func": "error",
    "no-magic-numbers": "off",
    "no-mixed-operators": "off",
    "no-mixed-requires": "error",
    "no-multi-assign": "off",
    "no-multi-spaces": "off",
    "no-multi-str": "off",
    "no-multiple-empty-lines": "off",
    "no-native-reassign": "error",
    "no-negated-condition": "off",
    "no-negated-in-lhs": "error",
    "no-nested-ternary": "off",
    "no-new": "error",
    "no-new-func": "error",
    "no-new-object": "error",
    "no-new-require": "error",
    "no-new-wrappers": "error",
    "no-octal-escape": "error",
    "no-param-reassign": "off",
    "no-path-concat": "error",
    "no-plusplus": "off",
    "no-process-env": "off",
    "no-process-exit": "error",
    "no-proto": "error",
    "no-prototype-builtins": "off",
    "no-restricted-globals": "error",
    "no-restricted-imports": "error",
    "no-restricted-modules": "error",
    "no-restricted-properties": "error",
    "no-restricted-syntax": "error",
    "no-return-assign": "off",
    "no-return-await": "error",
    "no-script-url": "error",
    "no-self-compare": "error",
    "no-sequences": "off",
    "no-shadow": "off",
    "no-shadow-restricted-names": "error",
    "no-spaced-func": "off",
    "no-sync": "off",
    "no-tabs": "off",
    "no-template-curly-in-string": "error",
    "no-ternary": "off",
    "no-throw-literal": "off",
    "no-trailing-spaces": ["error"],
    "no-undef-init": "error",
    "no-undefined": "off",
    "no-underscore-dangle": "off",
    "no-unmodified-loop-condition": "error",
    "no-unneeded-ternary": "off",
    "no-unused-expressions": "off",
    "no-use-before-define": "off",
    "no-useless-call": "error",
    "no-useless-computed-key": "error",
    "no-useless-concat": "off",
    "no-useless-constructor": "error",
    "no-useless-rename": "error",
    "no-useless-return": "error",
    "no-var": "off",
    "no-void": "off",
    "no-warning-comments": "off",
    "no-whitespace-before-property": "error",
    "no-with": "error",
    "nonblock-statement-body-position": [
      "error",
      "any"
    ],
    "object-curly-newline": "off",
    "object-curly-spacing": "off",
    "object-property-newline": "off",
    "object-shorthand": "off",
    "one-var": "off",
    "one-var-declaration-per-line": "off",
    "operator-assignment": "off",
    "operator-linebreak": "off",
    "padded-blocks": "off",
    "padding-line-between-statements": "error",
    "prefer-arrow-callback": "off",
    "prefer-const": "error",
    "prefer-destructuring": "off",
    "prefer-numeric-literals": "error",
    "prefer-promise-reject-errors": "error",
    "prefer-reflect": "off",
    "prefer-rest-params": "off",
    "prefer-spread": "off",
    "prefer-template": "off",
    "quote-props": "off",
    "quotes": "off",
    "radix": "off",
    "require-await": "error",
    "require-jsdoc": "off",
    "rest-spread-spacing": "error",
    "semi": "off",
    "semi-spacing": "off",
    "semi-style": "off",
    "sort-imports": "error",
    "sort-keys": "off",
    "sort-vars": "off",
    "space-before-blocks": "off",
    "space-before-function-paren": "off",
    "space-in-parens": ["error", "never"],
    "space-infix-ops": "off",
    "space-unary-ops": "off",
    "spaced-comment": ["error", "always", { "exceptions": ["*"] }],
    "strict": "off",
    "switch-colon-spacing": "off",
    "symbol-description": "error",
    "template-curly-spacing": "error",
    "template-tag-spacing": "error",
    "unicode-bom": [
      "error",
      "never"
    ],
    "valid-jsdoc": "off",
    "vars-on-top": "off",
    "wrap-iife": "off",
    "wrap-regex": "off",
    "yield-star-spacing": "error",
    "yoda": "off",
    "no-unused-vars": "off",
    "no-cond-assign": "off",
    "no-unexpected-multiline": "off"
  },
  "env": {
    "node": true
  },
  "globals": {
    "angular": true,
    "moment": true
  },
  "overrides": [
    {
      "files": [
        "docs/app/js/**/*",
        "src/**/*"
      ],
      "parserOptions": {
        "ecmaVersion": 5
      },
      "env": {
        "browser": true
      },
      "rules": {
        "arrow-parens": "error",
        "global-require": "error",
        "no-console": [
          "error"
        ],
        "no-process-env": "error",
        "no-sync": "error"
      },
      "globals": {
        "angular": true,
        "CryptoJS": true,
        "hljs": true
      }
    },
    {
      "files": [
        "scripts/**/*"
      ],
      "rules": {
        "no-process-env": "off"
      }
    },
    {
      "files": [
        "**/*.spec.js",
        "test/*.js"
      ],
      "env": {
        "jasmine": true,
        "browser": true
      },
      "rules": {
        "no-native-reassign": "off",
        "no-global-assign": "off"
      },
      "globals": {
        "module": true,
        "inject": true,
        "disableAnimations": true,
        "createMockStyleSheet": true,
        "$mdUtil": false,
        "$timeout": false,
        "$animate": false,
        "$material": false
      }
    }
  ]
}


================================================
FILE: .github/CONTRIBUTING.md
================================================
# Contributing to AngularJS Material

 - [Code of Conduct](#coc)
 - [Signing the CLA](#cla)<br/><br/>
 - [Question or Problem?](#question)
 - [Issues and Bugs](#bug)
   - [Enhancement Requests](#feature)
   - [Issue Guidelines](#submit)
 - [Git Commit Guidelines](#commit)
 - [Developer Commits Levels](#pr_forks)
 - [Submission Guidelines](#submit)

## AngularJS Material has reached end-of-life

We are no longer accepting changes into this project as
**AngularJS Material support has officially ended as of January 2022.**
[See what ending support means](https://docs.angularjs.org/misc/version-support-status)
and [read the end of life announcement](https://goo.gle/angularjs-end-of-life). Visit
[material.angular.io](https://material.angular.io) for the actively supported Angular Material.

## <a name="coc"></a> Code of Conduct

Please help us keep AngularJS Material open and inclusive by reading and following our
[Code of Conduct](https://github.com/angular/code-of-conduct/blob/master/CODE_OF_CONDUCT.md).

Please note that by using GitHub, you have also agreed to follow the
[GitHub Terms of Service](https://help.github.com/en/articles/github-terms-of-service#) which
include [guidelines on conduct](https://help.github.com/en/articles/github-terms-of-service#3-conduct-restrictions). 

We are care deeply about our inclusive community and diverse group of members. As part of this,
we do take time away from development to enforce this policy through interventions in heated
discussions, one-on-one discussions to explain the policy to violators, and bans for repeat
violators.

## <a name="question"></a> Have a Question, Problem, or Idea?

If you have questions or ideas regarding AngularJS Material, please direct these to the
[AngularJS Material Forum](https://groups.google.com/forum/#!forum/ngmaterial).

Otherwise, do you:

- [Want to report a Bug?](#bug)
- [Want to request an Enhancement?](#feature)

#### <a name="bug"></a> 1. Want to report a Bug or Issue?

If you find a bug in the source code or a mistake in the documentation, we recommend that you first
review the latest `master` version of the [Online Documentation](https://material.angularjs.org/HEAD/)
and use one of the Demos to create a CodePen that reproduces the issue.

If the issue can be reproduced in the latest `master` version, you can help us by submitting an issue
to our [GitHub Repository](https://github.com/angular/material/issues/new/choose). After we triage the
issue and apply labels to it, we invite you to submit a **Pull Request** with a proposed fix.
Your custom changes can be crafted in a repository fork and submitted
to the [GitHub Repository](https://github.com/angular/material/compare) as a Pull Request.


**Important**: Please review the [Submission Guidelines](#submit) below, before contributing to the
  project.

#### <a name="feature"></a> 2. Want to request an Enhancement?

You can request an enhancement by
[submitting an issue](https://github.com/angular/material/issues/new/choose). After submitting an issue,
if you would like to implement an enhancement then consider what kind of change it is:

* **Major Changes** that you wish to contribute to the project should be discussed first on our
  [AngularJS Material Forum](https://groups.google.com/forum/#!forum/ngmaterial), so that we can better
  coordinate our efforts, prevent duplication of work, and help you to craft the change so that it is
  successfully accepted into the project.
* **Small Changes** can be crafted and submitted to the
  [GitHub Repository](https://github.com/angular/material/compare) as a Pull Request.

## <a name="submit"></a> Issue Guidelines

Please note, this project is mature and stable with thousands of projects depending upon it.

We welcome your enhancement requests, doc improvements, and issue reports.
However, we are not accepting major feature requests at this time.
 
If you're thinking of contributing code or documentation to the
project, please review [Submitting Pull Requests](#submitpr) before beginning any work.

#### Submitting an Issue

Before you submit an issue,
**[search](https://github.com/angular/material/issues?q=is%3Aissue+is%3Aopen)** the issues archive;
maybe the issue has already been submitted or considered. If the issue appears to be a bug,
and hasn't been reported, open a [new issue](https://github.com/angular/material/issues/new/choose).

> Please **do not report duplicate issues**; help us maximize the effort we can spend fixing
issues and adding enhancements.

Providing the following information will increase our ability to resolve your issue efficiently:

* **Issue Title** - provide a concise issue title prefixed with a snake-case name of the
                    associated service or component (if any): `<component>: <issue title>`.
                    Adding the `md-` prefix should be avoided.

  > e.g.
  > *  menu-bar: does not support dark mode themes [#11238](https://github.com/angular/material/issues/11238)
  > *  tooltip: memory leak on destroy [#11133](https://github.com/angular/material/issues/11133)

* **Complete the full Issue Template** - GitHub now supports issue templates and AngularJS Material
    provides options to make submitting an issue with the required information more straightforward.

* **Suggest a Fix** - if you can't fix the bug yourself, perhaps you can point to what might be
  causing the problem (line of code or commit).

#### <a name="submitpr"></a>Submitting Pull Requests

**Important**: We are not accepting major feature requests or PRs that contain major new features
 or breaking changes at this time.

Please check with us via [the discussion forum](https://groups.google.com/forum/#!forum/ngmaterial)
before investing significant effort in a planned Pull Request submission; it's possible that we are
already working on a related PR or have decided that the enhancement does not belong in the core
AngularJS Material project.

* All contributions must be consistent with the AngularJS Material [Coding Conventions](../docs/guides/CODING.md).
* Submit proposed changes or additions as GitHub pull requests that follow the
  [Pull Request Guidelines](../docs/guides/PULL_REQUESTS.md).

<br/>

## <a name="commit"></a> Git Commit Guidelines

We have very precise rules over how our git commit messages can be formatted. This leads to **more
readable messages** that are easy to follow when looking through the **project history**. 

It is important to note that we use the git commit messages to **generate** the AngularJS Material
[CHANGELOG](../../CHANGELOG.md) document. Improperly formatted commit messages may result in your
change not appearing in the CHANGELOG of the next release.

### <a name="commit-message-format"></a> Commit Message Format

Each commit message consists of a **header**, a **body** and a **footer**. The header has a special
format that includes a **type**, a **scope**, and a **subject**:

```html
<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>
```

> Any line of the commit message cannot be longer 100 characters!<br/>
  This allows the message to be easier to read on GitHub as well as in various Git tools.

##### Type

Must be one of the following:

* **feat**: A new feature
* **fix**: A bug fix
* **docs**: Documentation only changes
* **style**: Changes that do not affect the meaning of the code (white-space, formatting, missing
  semi-colons, etc)
* **refactor**: A code change that neither fixes a bug nor adds a feature
* **perf**: A code change that improves performance
* **test**: Adding missing tests
* **chore**: Changes to the auxiliary tools such as release scripts
* **build**: Changes to the dependencies, devDependencies, or build tooling
* **ci**: Changes to our Continuous Integration configuration

##### Scope

The scope could be anything that helps specify the scope (or feature) that is changing.

Examples
- fix(select): 
- docs(menu): 

##### Subject

The subject contains a succinct description of the change:

* use the imperative, present tense: "change" not "changed" nor "changes"
* don't capitalize first letter
* no period (.) at the end

##### Body

Just as in the **subject**, use the imperative, present tense: "change" not "changed" nor "changes".
The body should include the motivation for the change and contrast this with previous behavior.

##### Footer

The footer should contain any information about **Breaking Changes** and is also the place to
reference GitHub issues that this commit **Closes**, **Fixes**, or **Relates to**.

> We highlight Breaking Changes in the ChangeLog. These are as changes that will require
  community users to modify their code after updating to a version that contains this commit.

##### Sample Commit messages

```text
fix(autocomplete): don't show the menu panel when readonly

- this could sometimes happen when no value was selected

Fixes #11231
```
```text
feat(chips): trigger ng-change on chip addition/removal

- add test of `ng-change` for `md-chips`
- add docs regarding `ng-change` for `md-chips` and `md-contact-chips`
- add demo for ng-change on `md-chips`
- add demo for ng-change on `md-contact-chips`

Fixes #11161 Fixes #3857
```

```text
refactor(content): prefix mdContent scroll- attributes

    BREAKING CHANGE: md-content's `scroll-` attributes are now prefixed with `md-`.

    Change your code from this:
    ```html
    <md-content scroll-x scroll-y scroll-xy>
    ```

    To this:
    ```html
    <md-content md-scroll-x md-scroll-y md-scroll-xy>
    ```
```
<br/>

## <a name="pr_forks"></a> Guidelines for Developer Commit Authorizations

Please review the [Commit Level and Authorization Guidelines](../docs/guides/COMMIT_LEVELS.md) for
details on how to implement and submit your fixes, changes, or enhancements to AngularJS Material.

This guideline provides details on creating a repository Fork of the AngularJS Material repository
and how to submit Pull Requests.

<br/>

## <a name="cla"></a> Signing the CLA

Please sign our Contributor License Agreement (CLA) before sending pull requests. For any code
changes to be accepted, the CLA must be signed. It's a quick process, we promise!

To learn more and sign the CLA, visit [cla.developers.google.com](http://cla.developers.google.com).


================================================
FILE: .github/ISSUE_TEMPLATE/bug.md
================================================
---
name: Bug Report
about: Report a bug in AngularJS Material
labels: "type: bug, needs triage"
---
<!--

---------------------------------------------------------------------
This repo is for AngularJS Material, not Angular Material or the CDK.
---------------------------------------------------------------------

Please submit Angular Material and CDK questions
[here](https://groups.google.com/forum/#!forum/angular-material2)
and issues [here](https://github.com/angular/components/issues).
-->
## AngularJS Material has reached end-of-life

We are no longer accepting changes into this project as
**AngularJS Material support has officially ended as of January 2022.**
[See what ending support means](https://docs.angularjs.org/misc/version-support-status)
and [read the end of life announcement](https://goo.gle/angularjs-end-of-life). Visit
[material.angular.io](https://material.angular.io) for the actively supported Angular Material.


================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
blank_issues_enabled: false
contact_links:
  - name: AngularJS Material on StackOverflow
    url: https://stackoverflow.com/unanswered/tagged/angularjs-material
    about: Please ask and answer questions about your app or usage here.


================================================
FILE: .github/ISSUE_TEMPLATE/docs.md
================================================
---
name: Documentation
about: Suggest an improvement to our documentation at material.angularjs.org
labels: "type: docs, needs triage"
---
<!--

-------------------------------------------------------------------------
This repo is for AngularJS Material, not Angular Material or Angular CDK.
-------------------------------------------------------------------------

Please submit Angular Material and Angular CDK questions
[here](https://groups.google.com/forum/#!forum/angular-material2)
and issues [here](https://github.com/angular/components/issues).
-->
# AngularJS Material has reached end-of-life

We are no longer accepting changes into this project as
**AngularJS Material support has officially ended as of January 2022.**
[See what ending support means](https://docs.angularjs.org/misc/version-support-status)
and [read the end of life announcement](https://goo.gle/angularjs-end-of-life). Visit
[material.angular.io](https://material.angular.io) for the actively supported Angular Material.


================================================
FILE: .github/PULL_REQUEST_TEMPLATE.md
================================================
# AngularJS Material has reached end-of-life

We are no longer accepting changes into this project as
**AngularJS Material support has officially ended as of January 2022.**
[See what ending support means](https://docs.angularjs.org/misc/version-support-status)
and [read the end of life announcement](https://goo.gle/angularjs-end-of-life). Visit
[material.angular.io](https://material.angular.io) for the actively supported Angular Material.


================================================
FILE: .github/workflows/codeql-analysis.yml
================================================
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
# ******** NOTE ********

name: "CodeQL"

on:
  push:
    branches: [ master ]
  pull_request:
    # The branches below must be a subset of the branches above
    branches: [ master ]
  schedule:
    - cron: '45 16 * * 2'

jobs:
  analyze:
    name: Analyze
    runs-on: ubuntu-latest

    strategy:
      fail-fast: false
      matrix:
        language: [ 'javascript' ]
        # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
        # Learn more:
        # https://docs.github.com/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed

    steps:
    - name: Checkout repository
      uses: actions/checkout@v2

    # Initializes the CodeQL tools for scanning.
    - name: Initialize CodeQL
      uses: github/codeql-action/init@v1
      with:
        languages: ${{ matrix.language }}
        # If you wish to specify custom queries, you can do so here or in a config file.
        # By default, queries listed here will override any specified in a config file.
        # Prefix the list here with "+" to use these queries and those in the config file.
        # queries: ./path/to/local/query, your-org/your-repo/queries@main

    # Autobuild attempts to build any compiled languages  (C/C++, C#, or Java).
    # If this step fails, then you should remove it and run the build manually (see below)
    - name: Autobuild
      uses: github/codeql-action/autobuild@v1

    # ℹ️ Command-line programs to run using the OS shell.
    # 📚 https://git.io/JvXDl

    # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
    #    and modify them (or add more) to build your code if your project
    #    uses a compiled language

    #- run: |
    #   make bootstrap
    #   make release

    - name: Perform CodeQL Analysis
      uses: github/codeql-action/analyze@v1


================================================
FILE: .gitignore
================================================
*.log
.DS_Store
node_modules
dist
/.idea/
tmp/
bower-material/
code.material.angularjs.org/


================================================
FILE: .jshintrc
================================================
{
  "sub": true,
  "multistr": true,
  "-W018": true,
  "expr": true,
  "boss": true,
  "laxbreak": true,
  "predef": ["angular"]
}


================================================
FILE: .mailmap
================================================



================================================
FILE: .nvmrc
================================================
14


================================================
FILE: .vscode/README.md
================================================
# Visual Studio Code Configuration

This folder contains opt-out [Workspace Settings](https://code.visualstudio.com/docs/getstarted/settings)
and [Extension recommendations](https://code.visualstudio.com/docs/editor/extension-gallery#_workspace-recommended-extensions)
that the Angular team recommends.

## Installation

To use the configuration follow the steps below:

- To show the recommended extensions, select "Extensions: Show recommended extensions"
  in the [Command Palette](https://code.visualstudio.com/docs/getstarted/userinterface#_command-palette).
- Install the recommended extensions of [extensions.json](extensions.json)
- Restart the editor

## Editing `.vscode/settings.json`

If you want to add additional configuration items, please note that any configuration you
add here will be used by many users.

Try to restrict these settings to things that help ease the development process and
avoid altering the user workflow whenever possible.


================================================
FILE: .vscode/extensions.json
================================================
{
  // See http://go.microsoft.com/fwlink/?LinkId=827846 to learn about workspace recommendations.
  // Extension identifier format: ${publisher}.${name}. Example: firefox-devtools.vscode-firefox-debug

  // List of extensions which should be recommended for users of this workspace.
  "recommendations": [
    "editorconfig.editorconfig",
    "dbaeumer.vscode-eslint",
    "christian-kohler.path-intellisense",
    "eg2.vscode-npm-script",
    "firefox-devtools.vscode-firefox-debug",
    "dbaeumer.jshint",
    "msjsdiag.debugger-for-chrome",
    "pkief.material-icon-theme"
  ]
}


================================================
FILE: .vscode/settings.json
================================================
{
  "editor.tabCompletion": "on",
  "files.eol": "\n",
  "files.exclude": {
    "**/.git": true,
    "**/.DS_Store": true
  },
  // Exclude third-party modules and generated artifacts from watcher/editor searches.
  "files.watcherExclude": {
    "**/.git/objects/**": true,
    "**/.git/subtree-cache/**": true,
    "**/node_modules/**": true,
    "**/dist/**": true
  },
  "search.exclude": {
    "**/node_modules": true,
    "**/bower_components": true,
    "**/dist": true
  },
  "git.ignoreLimitWarning": true,
  // Wrap attributes.
  //  - auto: Wrap attributes only when line length is exceeded.
  //  - force: Wrap each attribute except first.
  //  - force-aligned: Wrap each attribute except first and keep aligned.
  //  - force-expand-multiline: Wrap each attribute.
  //  - aligned-multiple: Wrap when line length is exceeded, align attributes vertically.
  //  - preserve: Preserve wrapping of attributes
  //  - preserve-aligned: Preserve wrapping of attributes but align.
  "html.format.wrapAttributes": "auto",
  // Maximum amount of characters per line (0 = disable).
  "html.format.wrapLineLength": 100
}


================================================
FILE: CHANGELOG.md
================================================
## [1.2.5](https://github.com/angular/material/compare/v1.2.4...v1.2.5) (2022-04-11)

One final release of AngularJS in order to update package README files on npm.

## [1.2.4](https://github.com/angular/material/compare/v1.2.3...v1.2.4) (2021-12-16)


### Bug Fixes

* **panel, select:** fix Trusted Types violations during initialization ([#12128](https://github.com/angular/material/issues/12128)) ([4e354a6](https://github.com/angular/material/commit/4e354a6ef15362920f23167194e52fb40cb70ea9))

### Code Refactoring

* **sass:** migrate from node-sass to sass ([5e2d213](https://github.com/angular/material/commit/5e2d21350cd0278f210c1e2bb951786c4047bbb6))
    * If you consume our `.scss` files directly in your build, you will need to switch
      from the deprecated `node-sass` package to the `sass` package for compiling your Sass.
* **sass:** fix division deprecation warnings ([b5a1a02](https://github.com/angular/material/commit/b5a1a026202f9544847f2fba8e039c3abf1cdb1c))

### Documentation

* fix API docs issues related to `marked` Markdown rendering ([441a912](https://github.com/angular/material/commit/441a9127676ba4a28aa0c5bc18a70c09815c7221))

### Contributors

Thank you to the contributors who helped with the v1.2.4 release:

[<img alt="Splaktar" src="https://avatars1.githubusercontent.com/u/3506071?v=4&s=117" width="117">](https://github.com/Splaktar) |[<img alt="bjarkler" src="https://avatars.githubusercontent.com/u/66124740?v=4&s=117" width="117">](https://github.com/bjarkler) |[<img alt="superheri" src="https://avatars.githubusercontent.com/u/30275781?v=4&s=117" width="117">](https://github.com/superheri) |
:---: |:---: |:---: |
[Splaktar](https://github.com/Splaktar) |[bjarkler](https://github.com/bjarkler) |[superheri](https://github.com/superheri) |


## [1.2.3](https://github.com/angular/material/compare/v1.2.2...v1.2.3) (2021-07-14)


### Bug Fixes

* **datepicker:** ISO 8601 dates decorated as invalid in forms ([0a06f99](https://github.com/angular/material/commit/0a06f995be1f9cbaf963d60e848f2006309fcf12)), closes [#12075](https://github.com/angular/material/issues/12075)


### Features

* **menu:** add a new backdropParent option ([78b1073](https://github.com/angular/material/commit/78b107331e9903874cbb71404683f191f9172f7e))


### Contributors

Thank you to the contributors who helped with the v1.2.3 release:

[<img alt="Splaktar" src="https://avatars1.githubusercontent.com/u/3506071?v=4&s=117" width="117">](https://github.com/Splaktar) |[<img alt="atfzls" src="https://avatars2.githubusercontent.com/u/55975318?v=4&s=117" width="117">](https://github.com/atfzls) |
:---: |:---: |
[Splaktar](https://github.com/Splaktar) |[atfzls](https://github.com/atfzls) |


## [1.2.2](https://github.com/angular/material/compare/v1.2.1...v1.2.2) (2020-12-17)


### Bug Fixes

* **aria:** radio buttons throw argument not optional errors in IE11 ([eab5c81](https://github.com/angular/material/commit/eab5c815846c91fdda3cf2a369aee28169ca6272))
* **autocomplete:** prevent flashing of invalid state ([#12064](https://github.com/angular/material/issues/12064)) ([a4732a9](https://github.com/angular/material/commit/a4732a9808db5ccaf062ec50ef314bf124ee2feb)), closes [#10975](https://github.com/angular/material/issues/10975)
* **checkbox:** aria-checked state is not computed correctly in all cases ([c609385](https://github.com/angular/material/commit/c60938552c1a007b24b0cd2de5248453161ae012)), closes [#12046](https://github.com/angular/material/issues/12046)
* **datepicker:** null model with timezone throws exception ([7856883](https://github.com/angular/material/commit/78568835c283ac327c85016f5d43f5ec57ff9c73)), closes [#12025](https://github.com/angular/material/issues/12025)
* **datepicker:** time is modified before even selecting a date ([b406623](https://github.com/angular/material/commit/b406623f08cd229ea76cc06298eea764bd51ab84)), closes [#12028](https://github.com/angular/material/issues/12028) [#12026](https://github.com/angular/material/issues/12026)
* **dialog:** shift+tab does not cycle through tabbable elements ([7d5e262](https://github.com/angular/material/commit/7d5e262b5606f0e83faac86966aa6947bc6125c0)), closes [#10963](https://github.com/angular/material/issues/10963)
* **fab-speed-dial:** action items are in tab order when closed ([da86e62](https://github.com/angular/material/commit/da86e6282ce01c6ec31758350946b9ee1e8536f5)), closes [#10101](https://github.com/angular/material/issues/10101)
* **fab-speed-dial:** keyboard navigation issues with tab and shift+tab ([41c71ed](https://github.com/angular/material/commit/41c71ed1eb7826c1927902f19dc8d8ea5bbfda22)), closes [#12043](https://github.com/angular/material/issues/12043)
* **fab-speed-dial:** opens when trigger button is disabled ([e7dfcc1](https://github.com/angular/material/commit/e7dfcc166a8dbb7cb07d5c5f339a41e396025733)), closes [#9467](https://github.com/angular/material/issues/9467)
* **input:** check that containerCtrl.label is defined before accessing it ([f79186f](https://github.com/angular/material/commit/f79186faaca9ff477720a976bd9cf10b8047a4ec)), closes [#10831](https://github.com/angular/material/issues/10831)
* **menu:** menu focus is lost when menu-item has custom content ([6391b13](https://github.com/angular/material/commit/6391b13af979e63430b0c5f162cc1389bccdef0c)), closes [#12054](https://github.com/angular/material/issues/12054)
* **select:** floating label hidden w/ placeholder and no value ([3ea5630](https://github.com/angular/material/commit/3ea56303a284d1c3987ec760a9b781895b39ca00)), closes [#10116](https://github.com/angular/material/issues/10116)
* **select:** form remains valid after empty option is selected ([61412b4](https://github.com/angular/material/commit/61412b4b73a05c384c86fcd272d6e7d1ce78623c)), closes [#10005](https://github.com/angular/material/issues/10005)
* **tabs:** md-align-tabs should only affect the current component ([d77fbc4](https://github.com/angular/material/commit/d77fbc4dad198e22cb4ada396b15512f3daa3b03)), closes [#10541](https://github.com/angular/material/issues/10541)
* **theming:** fix CSS with nested rules parsing when registering a theme ([71dc4eb](https://github.com/angular/material/commit/71dc4eb38d8120ba1e49a9420debfe7aaf0c8e34)), closes [#9869](https://github.com/angular/material/issues/9869)


### Features

* **autocomplete:** allow localization of query result announcements ([5157f94](https://github.com/angular/material/commit/5157f94f192f64cc948adafe033361539d945408)), closes [#11789](https://github.com/angular/material/issues/11789)
* **chips:** md-max-chips support for md-contact-chips ([e6b5482](https://github.com/angular/material/commit/e6b5482231520a69ab196a2e508f1c1dc1f3a081)), closes [#10827](https://github.com/angular/material/issues/10827)
* **datepicker:** add input-aria-describedby and input-aria-labelledby ([5f8472c](https://github.com/angular/material/commit/5f8472c433d175c39019acc271f80344d6a58ed3)), closes [#11762](https://github.com/angular/material/issues/11762)


### Contributors

Thank you to the contributors who helped with the v1.2.2 release:

[<img alt="Splaktar" src="https://avatars1.githubusercontent.com/u/3506071?v=4&s=117" width="117">](https://github.com/Splaktar) |[<img alt="FreedCapybara" src="https://avatars2.githubusercontent.com/u/7003723?v=4&s=117" width="117">](https://github.com/FreedCapybara) |[<img alt="shishkinilya" src="https://avatars0.githubusercontent.com/u/20458127?v=4&s=117" width="117">](https://github.com/shishkinilya) |[<img alt="kylekatarnls" src="https://avatars1.githubusercontent.com/u/5966783?v=4&s=117" width="117">](https://github.com/kylekatarnls) |[<img alt="natete" src="https://avatars2.githubusercontent.com/u/4098303?v=4&s=117" width="117">](https://github.com/natete) |
:---: |:---: |:---: |:---: |:---: |
[Splaktar](https://github.com/Splaktar) |[FreedCapybara](https://github.com/FreedCapybara) |[shishkinilya](https://github.com/shishkinilya) |[kylekatarnls](https://github.com/kylekatarnls) |[natete](https://github.com/natete) |


<a name="1.2.1"></a>
## [1.2.1](https://github.com/angular/material/compare/v1.2.0...v1.2.1) (2020-09-23)


### Bug Fixes

* **calendar:** allow tabbing out when in standalone mode ([93518bb](https://github.com/angular/material/commit/93518bb05306e0a9d70c890a150a8c06d0fbad5b)), closes [#9794](https://github.com/angular/material/issues/9794)
* **calendar, datepicker:** fix issues with GMT+X timezones ([90d24cf](https://github.com/angular/material/commit/90d24cfa2914e78bbbd43e9523400f2755ed0754)), closes [#12000](https://github.com/angular/material/issues/12000)
* **calendar, datepicker:** fix MomentJS custom format support ([8f9e213](https://github.com/angular/material/commit/8f9e21318f21713f1f47bd35e4742919321a9e99)), closes [#12003](https://github.com/angular/material/issues/12003) [#11949](https://github.com/angular/material/issues/11949)
* **datepicker:** min-date validation is incorrect in GMT+X timezones ([7395914](https://github.com/angular/material/commit/73959142c9ed327d6218fe90c6335bc88f8c5ddf)), closes [#11963](https://github.com/angular/material/issues/11963)
* **dialog:** remove focus trap focus listeners onRemove ([33e8bac](https://github.com/angular/material/commit/33e8bac352522bf38b23ff2a4d2c281f2c14dc5f)), closes [#12010](https://github.com/angular/material/issues/12010)
* **icon:** providing empty alt or aria-label attributes do not hide them from a11y ([37f1535](https://github.com/angular/material/commit/37f15357089a87b0e3f94467a93c6511ff71d481)), closes [#10721](https://github.com/angular/material/issues/10721)
* **list:** case where list items are read twice by screen readers ([5c455d3](https://github.com/angular/material/commit/5c455d30b8bcf4902add2c1ed0a6e9216147b43c)), closes [#11582](https://github.com/angular/material/issues/11582)
* **radio-button:** Cannot read property 'nodeName' of null ([f43ff63](https://github.com/angular/material/commit/f43ff639a678edeb387a43b28faa10ca0c8b881f)), closes [#10546](https://github.com/angular/material/issues/10546)
* **radio-button:** support selection using the space key ([3cf78a7](https://github.com/angular/material/commit/3cf78a7d7ed7ff2682c88eaf9e547144225e41d5)), closes [#11960](https://github.com/angular/material/issues/11960)
* **select:** respect theme color when select has focus ([4afba57](https://github.com/angular/material/commit/4afba571c8a91e17a354c61a1ab7d711d9f9f3b6))
* **select:** in popup, hover and focus background colors are the same ([d5863b8](https://github.com/angular/material/commit/d5863b8bc4a3a4666310ea03963d87537a27a69e)), closes [#000](https://github.com/angular/material/issues/000) [#9851](https://github.com/angular/material/issues/9851)
* **select:** md-select-header closes on mouse click when not using multiple ([f2fca2e](https://github.com/angular/material/commit/f2fca2eea9d01be9f72e1dc2a275f1fdbc40764e)), closes [#11969](https://github.com/angular/material/issues/11969)
* **typography:** enable iOS long-press context menus ([3d98b6e](https://github.com/angular/material/commit/3d98b6e276ea65417aeba0df398cbd4a6fb8fb58)), closes [#10622](https://github.com/angular/material/issues/10622)


### Documentation

* **mdSticky:** update and clarify the usage and behavior ([0d431e0](https://github.com/angular/material/commit/0d431e07330f1ea42c933ae80400adfae79b60d9))
* **a11y:** add a list of supported screen readers ([8ce0813](https://github.com/angular/material/commit/8ce08134c4f305832a96a2edbe24204802a9d881)), closes [#11449](https://github.com/angular/material/issues/11449)
* **home:** simplify and clarify that browser support policy is for major versions ([1babe8c](https://github.com/angular/material/commit/1babe8c83b79702a5a980d5c602da659b88db739))
* **icon:** documentation refinement and cleanup ([c644d6a](https://github.com/angular/material/commit/c644d6a29ce4d05e0bfb4588d62340157a98df52))


### Contributors

Thank you to the contributors who helped with the v1.2.1 release:

[<img alt="Splaktar" src="https://avatars1.githubusercontent.com/u/3506071?v=4&s=117" width="117">](https://github.com/Splaktar) |[<img alt="mmalerba" src="https://avatars1.githubusercontent.com/u/14793288?v=4&s=117" width="117">](https://github.com/mmalerba) |[<img alt="josephperrott" src="https://avatars2.githubusercontent.com/u/10864441?v=4&s=117" width="117">](https://github.com/josephperrott) |[<img alt="cgx" src="https://avatars2.githubusercontent.com/u/1088448?v=4&s=117" width="117">](https://github.com/cgx) |
:---: |:---: |:---: |:---: |
[Splaktar](https://github.com/Splaktar) |[mmalerba](https://github.com/mmalerba) |[josephperrott](https://github.com/josephperrott) |[cgx](https://github.com/cgx) |


<a name="1.1.26"></a>
## [1.1.26](https://github.com/angular/material/compare/v1.1.25...v1.1.26) (2020-09-01)


### Bug Fixes

* **calendar, datepicker:** fix MomentJS custom format support ([667a78f](https://github.com/angular/material/commit/667a78f955b0980735aab744eeb5a2b22f6fbfa1)), closes [#12003](https://github.com/angular/material/issues/12003) [#11949](https://github.com/angular/material/issues/11949)


### Contributors

Thank you to the contributors who helped with the v1.1.26 release:

[<img alt="Splaktar" src="https://avatars1.githubusercontent.com/u/3506071?v=4&s=117" width="117">](https://github.com/Splaktar) |[<img alt="mmalerba" src="https://avatars0.githubusercontent.com/u/14793288?v=4&s=117" width="117">](https://github.com/mmalerba) |
:---: |:---: |
[Splaktar](https://github.com/Splaktar) |[mmalerba](https://github.com/mmalerba) |


<a name="1.1.25"></a>
## [1.1.25](https://github.com/angular/material/compare/v1.1.24...v1.1.25) (2020-08-31)


### Bug Fixes

* **calendar, datepicker:** fix date selection issues with GMT+X timezones ([a897a67](https://github.com/angular/material/commit/a897a67cf1eee6f524dce91c5e0d31b1ad8601b3)), closes [#12000](https://github.com/angular/material/issues/12000)
* **datepicker:** min-date validation is incorrect in GMT+X timezones ([dd150fa](https://github.com/angular/material/commit/dd150fa780c78177521c99ed50f9fb0916fab8c8)), closes [#11963](https://github.com/angular/material/issues/11963)
* **select:** md-select-header closes on mouse click when not using multiple ([b32b473](https://github.com/angular/material/commit/b32b473ffbc645ea921f650cc425c82ba9d42bf0)), closes [#11969](https://github.com/angular/material/issues/11969)


### Contributors

Thank you to the contributors who helped with the v1.1.25 release:

[<img alt="Splaktar" src="https://avatars1.githubusercontent.com/u/3506071?v=4&s=117" width="117">](https://github.com/Splaktar) |[<img alt="jelbourn" src="https://avatars3.githubusercontent.com/u/838736?v=4&s=117" width="117">](https://github.com/jelbourn) |
:---: |:---: |
[Splaktar](https://github.com/Splaktar) |[jelbourn](https://github.com/jelbourn) |


<a name="1.2.0"></a>
# [1.2.0](https://github.com/angular/material/compare/v1.1.24...v1.2.0) (2020-08-03)


### Bug Fixes

* **autocomplete:** change md-escape-options default to 'clear' ([47106ba](https://github.com/angular/material/commit/47106ba036eac11d4417fd2066b26d2a02283954)), closes [#11767](https://github.com/angular/material/issues/11767)
* **button:** horizontal padding should match the spec ([3205b33](https://github.com/angular/material/commit/3205b33b57bc08ef92aae28ac2fb898f307c0ac1)), closes [#10535](https://github.com/angular/material/issues/10535) [#10535](https://github.com/angular/material/issues/10535)
* **checkbox:** handle links in transcluded label in an a11y-friendly way ([4d36fd2](https://github.com/angular/material/commit/4d36fd27be8960c9a5fceed5b8750e201668e4a0)), closes [#11134](https://github.com/angular/material/issues/11134)
* **checkbox:** update CSS to match spec ([c893050](https://github.com/angular/material/commit/c8930506996a56adb1cbce20a236b7c2f76cbe93)), closes [#9351](https://github.com/angular/material/issues/9351) [#9927](https://github.com/angular/material/issues/9927) [#8713](https://github.com/angular/material/issues/8713)
* **checkbox, date-picker, input, radio-button, select, switch:** md-inline-form support ([b3e9ffe](https://github.com/angular/material/commit/b3e9ffec50cdfb560fa4bf0a32df3ad22d553291))
* **chips:** chip remove icon isn't sized to match the spec ([#10491](https://github.com/angular/material/issues/10491)) ([29c0a4a](https://github.com/angular/material/commit/29c0a4a7fb53bb92ef97422df8e5c9fa7199d6b1)), closes [#9619](https://github.com/angular/material/issues/9619)
* **chips:** placeholder is truncated even though there is room ([aa4e29b](https://github.com/angular/material/commit/aa4e29b8a1b382ccf524abe4e654196813703412)), closes [#10630](https://github.com/angular/material/issues/10630)
* **chips:** update to latest Material Design spec (2017) updates ([01351b1](https://github.com/angular/material/commit/01351b11754fdd661f3314b00d94e76a9de1c068)), closes [#9883](https://github.com/angular/material/issues/9883)
* **datepicker:** support ng-model-options timezone w/ Moment ([e24d09c](https://github.com/angular/material/commit/e24d09c68ce255ed82cac68361c8ee3dfeeb56e4)), closes [#11945](https://github.com/angular/material/issues/11945) [#10598](https://github.com/angular/material/issues/10598)
* **input-container:** align indentation with spec ([31a596f](https://github.com/angular/material/commit/31a596f484fa32b07f42e116abad91999c4385d3)), closes [#10105](https://github.com/angular/material/issues/10105) [#11421](https://github.com/angular/material/issues/11421)
* **list:** fix checkbox alignment and match dense heights to spec ([a13722e](https://github.com/angular/material/commit/a13722ee69ab01babefe1f0bcc5af77f55a3f76c)), closes [#11966](https://github.com/angular/material/issues/11966)
* **nav-bar:** throws exception when indexing null tabs variable ([b1c7154](https://github.com/angular/material/commit/b1c7154bfe684c92497fb08dea6ce98af94ed1a8)), closes [#11964](https://github.com/angular/material/issues/11964)
* **panel:** demos need to access locals in controller's $onInit ([6e91c62](https://github.com/angular/material/commit/6e91c621393cd2f5260689cec2c799eef3056a2c))
* **panel:** don't throw exceptions when the groupName is a string ([4178459](https://github.com/angular/material/commit/4178459c4251f92fac44e4eb9f182704085a2ab9))
* **radio-button:** when no value selected, first button not announced on focus ([9159384](https://github.com/angular/material/commit/91593844b772db77c81b32461e9c5361689e7733)), closes [#11973](https://github.com/angular/material/issues/11973) [#11923](https://github.com/angular/material/issues/11923) [#11974](https://github.com/angular/material/issues/11974)
* **select:** support for md-inline-form, more configurable SCSS ([0d4d37f](https://github.com/angular/material/commit/0d4d37f079c44979be934c5babd4ed1c62383762)), closes [#8712](https://github.com/angular/material/issues/8712) [#8716](https://github.com/angular/material/issues/8716)
* **select:** md-select-header closes on mouse click when not using multiple ([f2fca2e](https://github.com/angular/material/commit/f2fca2eea9d01be9f72e1dc2a275f1fdbc40764e)), closes [#11969](https://github.com/angular/material/issues/11969)
* **tabs:** update min-width to follow the spec ([693ecca](https://github.com/angular/material/commit/693eccad4e0c1605513e9b9f747cff53fef6d62a)), closes [#10406](https://github.com/angular/material/issues/10406) [#11432](https://github.com/angular/material/issues/11432)
* **tabs:** align theming with spec updates ([d237715](https://github.com/angular/material/commit/d237715ff5cdd9238a36853ed4590c5e2f64e3b6)), closes [#7685](https://github.com/angular/material/issues/7685)
* **theming:** dark contrast used incorrectly when only contrastStrongLightColors defined ([4e3f7a7](https://github.com/angular/material/commit/4e3f7a7e0839d9adce8327e67bdb9237e1e91f78))
* **theming:** update palette contrast types to current spec ([d716fde](https://github.com/angular/material/commit/d716fde69983273940cf67c641c003ba3ffc32c7)), closes [#8992](https://github.com/angular/material/issues/8992) [#10164](https://github.com/angular/material/issues/10164)
* **theming, toolbar, subheader, input:** align color palettes and contrasts with AA standards ([3a291ac](https://github.com/angular/material/commit/3a291ac6f6ae52093375f4c3dab5f15c4cf476b8)), closes [#8992](https://github.com/angular/material/issues/8992) [#10164](https://github.com/angular/material/issues/10164) [#8993](https://github.com/angular/material/issues/8993)
* **toast:** improve position handling to better align with docs ([96ec741](https://github.com/angular/material/commit/96ec741e69bfb3d2637a00366e05c11d9538371f)), closes [#11843](https://github.com/angular/material/issues/11843)
* **toolbar:** input placeholders and ink need more contrast ([a82fc93](https://github.com/angular/material/commit/a82fc93d54793472878da18a64ac8780295fac1f)), closes [#7987](https://github.com/angular/material/issues/7987) [#11376](https://github.com/angular/material/issues/11376)
* **toolbar:** default to 500 hue and contrasts when using accent/warn palettes ([98a94db](https://github.com/angular/material/commit/98a94db8b4ad3ff6ec8c38b7e848574defe4f43f)), closes [#7685](https://github.com/angular/material/issues/7685)


### Code Refactoring

* **autofocus:** remove deprecated md-auto-focus attribute ([bf0ec8c](https://github.com/angular/material/commit/bf0ec8c853c17cd60547ead11b2c1e9310ca8377))
* **card:** remove styles for md-actions class ([75aa734](https://github.com/angular/material/commit/75aa734674324df42b3e5e57508281f60d576090))
* **chips:** remove deprecated md-on-append attribute ([1a2e3d0](https://github.com/angular/material/commit/1a2e3d0b424fec4d2e3f68071b6520a5477284c8))
* **chips:** remove deprecated MdChipsCtrl.selectAndFocusChip ([01d2cde](https://github.com/angular/material/commit/01d2cde76fdc127bef4d52027c143b33dc0666c0))
* **dialog:** remove deprecated content options and methods ([e3b52a0](https://github.com/angular/material/commit/e3b52a0c84134faaa7371041b732ee4c3f1ec713))
* **dialog:** remove styles for deprecated md-actions class ([93e2081](https://github.com/angular/material/commit/93e20819053117fa2b8679178840bbb65c97a301))
* **layout:** remove deprecated *-lt-* ("less than") attributes ([e8e785e](https://github.com/angular/material/commit/e8e785e5a3a118026ca8e10e087bc76aa8db745a))
* **$mdCompilerProvider:** remove deprecated $mdCompilerProvider.respectPreAssignBindingsEnabled() ([579a327](https://github.com/angular/material/commit/579a3271698381c49803210c2efaa3b1f9e802bb))
* **menu:** removed deprecated $mdOpenMenu API ([f023ce7](https://github.com/angular/material/commit/f023ce766a816035fb3de8c1a47f9d089cb2f11d))
* **panel:** remove deprecated MdPanelRef.addClass/removeClass/toggleClass ([bafbd96](https://github.com/angular/material/commit/bafbd96905a016878fb45f5c6ff9992d0d743e6d)), closes [#9310](https://github.com/angular/material/issues/9310)
* **select:** rename ngMultiple to mdMultiple ([4c75858](https://github.com/angular/material/commit/4c758589f5ff8ad1b6fc1c990ffbbfd5dba913f7))
* **sidenav:** remove deprecated access to $media in md-is-locked-open ([baa7563](https://github.com/angular/material/commit/baa7563fc9ef32c179add7071e794771f729c991))
* **sidenav:** remove md-sidenav-focus directive ([8fc36d4](https://github.com/angular/material/commit/8fc36d4a7ce1f15cb1398a31e5ea6cea36bcfcda))
* **theming:** remove support for deprecated $mdThemingProviderTheme.primaryColor() and related APIs ([00a50de](https://github.com/angular/material/commit/00a50deb39997c73c89e5567b76b028f0cf6e16c))
* **tabs:** remove deprecated md-no-disconnect ([05bee8f](https://github.com/angular/material/commit/05bee8fb2350b066a778052db08a6009c0465ee1))
* **toast:** remove deprecated content() method and option and updateContent() method ([cf3d56c](https://github.com/angular/material/commit/cf3d56c74fe28b7500bd1d8bc312c132ba06d2b9))


### Features

* **layout:** add mixin for responsive support of rows ([c2c336b](https://github.com/angular/material/commit/c2c336b946b8c017c12dcb80955767339da3eb3b)), closes [#9112](https://github.com/angular/material/issues/9112) [#9220](https://github.com/angular/material/issues/9220)
* **theming:** add contrast opacity values for all color types and hues ([68c1d02](https://github.com/angular/material/commit/68c1d02fb40951ea95bf3a136e12e0ff66b2a780))


### Documentation

* **theming, colors:** md-colors demo was broken. improve JSDoc and fix lint issues ([01917b3](https://github.com/angular/material/commit/01917b37ec6a8b6a913f9594130b841912e37244))


### BREAKING CHANGES

* **autocomplete:** The default behavior of `md-autocomplete`, when the options panel is visible and the Escape key is pressed, has changed. `md-escape-options` now defaults to `'clear'` instead of `'blur clear'`. This better aligns with the [WAI-ARIA Authoring Practices](https://www.w3.org/TR/wai-aria-practices/examples/combobox/aria1.0pattern/combobox-autocomplete-list.html) as the focus is not sent to another element (like the `<body>`) when the Escape key is pressed.

If you want to restore the previous behavior, add the following to your `md-autocomplete` components:
```html
md-escape-options="blur clear"
```
* **autofocus:** Removed the deprecated `md-auto-focus` directive. It was deprecated in favor of `md-autofocus`. Please see the [md-autofocus Docs](https://material.angularjs.org/latest/api/directive/mdAutofocus) for examples.
* **button:** `md-button`'s internal horizontal padding has changed from `6px` to `8px` to match the Material Design spec. This may affect the layout of portions of your application where `md-button`, `md-datepicker`, or `md-toast` with actions are used.

If you are using our SCSS files, you can override this back to the default, or another value, in your app's SCSS files:
```scss
$button-left-right-padding: rem(0.600); // For 6px horizontal padding
```
* **card:** Removed support for the `class="md-actions"` inside of an `md-card` template. This is deprecated in favor of using the `<md-card-actions>` element.
* **checkbox:** If you've created a custom solution to style links within `md-checkbox` labels, then you may need to remove or change that code now. This is because we automatically detect `<a>` tags in these labels and re-render them in an accessible way.
* **checkbox:** The default size and spacing for `md-checkbox` has been updated to align with the Material Design specification. Additionally, many new Sass variables have been added for customizing the size and spacing of `md-checkbox`. The `md-dense` class is now supported. After updating to this version, you may need to adjust the layout of your app due to the larger touch-friendly size of checkbox. You may also want to make use of `md-dense` in cases where space is limited.
* **chips:** Chips have been updated to latest Material Design spec (2017). `$chip-font-size` was reduced to `13px` from `16px`. `$chip-remove-padding-right` was increased to `28px` from `22px`. These changes may cause your chips to have a smaller, denser layout now. In certain scenarios, this may require minor changes to your app's layout. You can change these variables back to their old values if your app consumes Sass. Additionally, the remove chip icon has been changed, but you can use the custom chip template demo as a guide to changing back to the old icon, if desired.
* **chips:** Removed the deprecated, since 2015, `md-on-append` attribute. It was deprecated in favor of `md-transform-chip` or the simple notifier `md-on-add`. Please see the [md-chips Demos](https://material.angularjs.org/latest/demo/chips) for examples of using `md-transform-chip`.
* **chips:** The deprecated `MdChipsCtrl.selectAndFocusChip()` function has been removed.
`MdChipsCtrl.selectAndFocusChipSafe()` should be used instead.
* **dialog:** Removed support for the deprecated `class="md-actions"` inside of an `md-dialog` template. This was deprecated in favor of using the `<md-dialog-actions>` element.
* **dialog:** Removed support for the deprecated `.content('string')` methods and options. These were deprecated in favor of `.textContent('string')` and `.htmlContent('sanitized-string')'` methods and their associated options. Please note that use of `.htmlContent` requires that the `ngSanitize` module be loaded.

If you have
```js
  alert = $mdDialog.alert()
    .content('This is an example.');
```
It needs to be changed to
```js
  alert = $mdDialog.alert()
    .textContent('This is an example.');
```
If you have
```js
  alert = $mdDialog.alert({
    content: 'This is an example.'
  });
```
It needs to be changed to
```js
  alert = $mdDialog.alert({
    textContent: 'This is an example.'
  });
```
* **input-container:** `md-input` and `md-select` inside of `md-input-container`s have been updated to use indentation that is consistent with the spec (aligned to the left in LTR and the right in RTL). This may cause some minor layout issues in apps that depended upon the previous `2px` padding inside of `md-input-container`.
* **layout:** The way that margins are applied to `md-checkbox`, `md-input-container`, `md-radio-group`, and `md-select` has been changed. You can now use the `$default-horizontal-margin` Sass variable to override the default `16px` horizontal margin size. As part of this, `md-radio-button`s inside of `layout="row"` containers are now aligned vertically with other content as they no longer have a `16px` `margin-bottom`. If you have previously added custom styles, to your components inside of a row layout, in order to give them extra `margin-right` in LTR or `margin-left` in RTL, you will need to re-evaluate those styles. In most cases, they can now be removed.
* **layout:** Removed the deprecated, undocumented `*-lt-*` layout attributes and classes. This includes the following attributes and their matching classes, which have been giving deprecation warnings since 2015:
    - layout-lt-md
    - layout-lt-lg
    - flex-lt-md
    - flex-lt-lg
    - layout-align-lt-md
    - layout-align-lt-lg
    - flex-order-lt-md
    - flex-order-lt-lg
    - flex-offset-lt-md
    - flex-offset-lt-lg
    - hide-lt-md
    - hide-lt-lg
    - show-lt-md
    - show-lt-lg

* **list:** `md-list` with the `md-dense` class has been updated to align with the Material Design specification. This means that `md-list-item`s heights have changed when using `md-dense`. The `md-dense-disabled` class is now supported on `md-list`. After updating to this version, you may need to adjust the layout of your app if you use `md-dense` with `md-list` or customize the layout of `md-checkbox`s within `md-list-item`s.
* **$mdCompilerProvider:** The deprecated `$mdCompilerProvider.respectPreAssignBindingsEnabled()` API has been removed.
We no longer respect AngularJS's `$compileProvider.preAssignBindingsEnabled()` value as this API was removed
in AngularJS `1.7.0`.

If you had the recommended configuration for AngularJS 1.6.x:
```js
  $compileProvider.preAssignBindingsEnabled(false);
  $mdCompilerProvider.respectPreAssignBindingsEnabled(true);
```
Then you should remove both of these calls as they are now the defaults in AngularJS `1.7.0`
and AngularJS Material `1.2.0`.

If you had the recommended configuration for AngularJS 1.7+:
```js
  $mdCompilerProvider.respectPreAssignBindingsEnabled(true);
```
Then you should remove this call as it is now the default in AngularJS Material `1.2.0`.

If you were using a backwards-compatible configuration for AngularJS 1.6+:
```js
  $mdCompilerProvider.respectPreAssignBindingsEnabled(false);
```
Then you will need to remove this call and may need to refactor your Controllers for
AngularJS Material components like `$mdDialog`, `$mdPanel`, `$mdToast`, or `$mdBottomSheet`.

For example:
```js
 $mdDialog.show({
   locals: {
     myVar: true
   },
   controller: MyController,
   bindToController: true
 }
  function MyController() {
   // No locals from Angular Material are available. e.g myVar is undefined.
   // You would need to move anything accessing locals in here to $onInit().
 }
  MyController.prototype.$onInit = function() {
   // Bindings are now available in the $onInit lifecycle hook.
 }
```
* **menu:** Removed the deprecated `$mdOpenMenu` API. It was deprecated in favor of `$mdMenu.open`.
* **panel:** The deprecated `MdPanelRef.addClass()`, `MdPanelRef.removeClass()`, and `MdPanelRef.toggleClass()` functions have been removed. These were deprecated in 2016 in favor of using the `panelContainer` or `panelEl` JQLite elements that are referenced in the [MdPanelRef](https://material.angularjs.org/latest/api/type/MdPanelRef) object.
* **select:** `ngMultiple` has been renamed to `mdMultiple` to make it clear that this
API is provided by AngularJS Material and not by AngularJS.

If you had:
```html
  <md-select ng-multiple="expression">...</md-select>
```
You need to change to:
```html
  <md-select md-multiple="expression">...</md-select>
```
* **sidenav:** Removed access for the deprecated `$media` service in `md-is-locked-open`. This was deprecated in favor of the `$mdMedia` service. The functionality is the same and only a rename to the current name of the service is required.
* **sidenav:** Removed the `md-sidenav-focus` directive. It was deprecated in favor of `md-autofocus`. Please see the [md-autofocus Docs](https://material.angularjs.org/latest/api/directive/mdAutofocus) and [md-sidenav Basic Usage Demo](https://material.angularjs.org/latest/demo/sidenav#basic-usage) for examples.
* **tabs:** Tab items now have a `min-width` and `padding` which matches the Material Design specification. For width, this is `72px` on `xs` screens and `160px` on all other screens. For left and right `padding`, this is now `12px` instead of `24px`. If your app needs to have tabs which are smaller than the spec, you will need to override `md-tab-item`'s `min-width` and `md-tab`'s `padding` styles.
* **theming:** Removed support for the deprecated `$mdThemingProviderTheme.primaryColor()` and the related accent/warn/background APIs. These were deprecated in favor of `$mdThemingProviderTheme.primaryPalette()` (and accent/warn/background) in 2015 and they have been logging warnings when used since then.
* **theming, toolbar, subheader, input:** The contrast colors (the text or icon color, for example on a raised button) of many of our default palettes have been updated to meet the [AA level of the contrast guidelines](https://www.w3.org/TR/WCAG21/#contrast-minimum) for web accessibility. If you are using our default palettes directly, the accessibility of your application should be improved. However, we recommend that you evaluate this after updating to `1.2.0`. There may be edge cases in your app or custom styles that need to be updated to meet accessibility guidelines.

If you find significant accessibility issues after updating, please report them to us. In `1.2.x`, we have a lot more control over our component theming in regards to hues and opacities.

If your app is using a custom palette, whether based on a copy of default palette or not, we encourage you to evaluate that your contrast configuration meets the WebAIM guidelines. Please review our guide on [Defining Custom Palettes](https://material.angularjs.org/latest/Theming/03_configuring_a_theme#defining-custom-palettes) for details.
* **toast:** `$mdToast.show()`'s position behavior has been updated to be consistent with the documentation. If you relied on the previously undocumented behavior where it defaulted to `top left` instead of `bottom left`, you will need to update your app.

Change your code from this:

```js
    $mdToast.show(
      $mdToast.simple()
      .textContent('Simple Toast!'))
    .then(...
```

To this:

```js
    $mdToast.show(
      $mdToast.simple()
      .textContent('Simple Toast!')
      .position('top left'))
    .then(...
```
* **toast:** The deprecated `content()` and `updateContent()` methods have been removed.

If you had:
```js
  $mdToast.show($mdToast.simple().content('This no longer works.'));
```
You will need to change to:
```js
  $mdToast.show($mdToast.simple().textContent('This works.'));
```

If you had:
```js
  $mdToast.updateContent('This no longer works.');
```
You will need to change to:
```js
  $mdToast.updateTextContent('This works.');
```

If you had:
```js
  $mdToast.show($mdToast.simple({parent: parent, content: 'This no longer works.', theme: 'some-theme', capsule: true}));
```
You will need to change to:
```js
  $mdToast.show($mdToast.simple({parent: parent, textContent: 'This works.', theme: 'some-theme', capsule: true}));
```


### Contributors

Thank you to the contributors who helped with the v1.2.0 release:

[<img alt="Splaktar" src="https://avatars1.githubusercontent.com/u/3506071?v=4&s=117" width="117">](https://github.com/Splaktar) |[<img alt="jelbourn" src="https://avatars3.githubusercontent.com/u/838736?v=4&s=117" width="117">](https://github.com/jelbourn) |[<img alt="clshortfuse" src="https://avatars3.githubusercontent.com/u/9271155?v=4&s=117" width="117">](https://github.com/clshortfuse) |[<img alt="oliversalzburg" src="https://avatars2.githubusercontent.com/u/1658949?v=4&s=117" width="117">](https://github.com/oliversalzburg) |[<img alt="batsauto" src="https://avatars3.githubusercontent.com/u/17678174?v=4&s=117" width="117">](https://github.com/batsauto) |[<img alt="wagnermaciel" src="https://avatars1.githubusercontent.com/u/25158423?v=4&s=117" width="117">](https://github.com/wagnermaciel) |
:---: |:---: |:---: |:---: |:---: |:---: |
[Splaktar](https://github.com/Splaktar) |[jelbourn](https://github.com/jelbourn) |[clshortfuse](https://github.com/clshortfuse) |[oliversalzburg](https://github.com/oliversalzburg) |[batsauto](https://github.com/batsauto) |[wagnermaciel](https://github.com/wagnermaciel) |

[<img alt="tomaszgrabowski" src="https://avatars0.githubusercontent.com/u/6688790?v=4&s=117" width="117">](https://github.com/tomaszgrabowski) |
:---: |
[tomaszgrabowski](https://github.com/tomaszgrabowski) |


<a name="1.2.0-rc.2"></a>
# [1.2.0-rc.2](https://github.com/angular/material/compare/v1.2.0-rc.1...v1.2.0-rc.2) (2020-07-28)


### Bug Fixes

* **checkbox, date-picker, input, radio-button, select, switch:** md-inline-form support ([b3e9ffe](https://github.com/angular/material/commit/b3e9ffec50cdfb560fa4bf0a32df3ad22d553291))
* **select:** support for md-inline-form, more configurable SCSS ([0d4d37f](https://github.com/angular/material/commit/0d4d37f079c44979be934c5babd4ed1c62383762)), closes [#8712](https://github.com/angular/material/issues/8712) [#8716](https://github.com/angular/material/issues/8716)


### Code Refactoring

* **autofocus:** remove deprecated md-auto-focus attribute ([bf0ec8c](https://github.com/angular/material/commit/bf0ec8c853c17cd60547ead11b2c1e9310ca8377))
* **card:** remove styles for md-actions class ([75aa734](https://github.com/angular/material/commit/75aa734674324df42b3e5e57508281f60d576090))
* **chips:** remove deprecated md-on-append attribute ([1a2e3d0](https://github.com/angular/material/commit/1a2e3d0b424fec4d2e3f68071b6520a5477284c8))
* **dialog:** remove deprecated content options and methods ([e3b52a0](https://github.com/angular/material/commit/e3b52a0c84134faaa7371041b732ee4c3f1ec713))
* **dialog:** remove styles for deprecated md-actions class ([93e2081](https://github.com/angular/material/commit/93e20819053117fa2b8679178840bbb65c97a301))
* **layout:** remove deprecated *-lt-* ("less than") attributes ([e8e785e](https://github.com/angular/material/commit/e8e785e5a3a118026ca8e10e087bc76aa8db745a))
* **menu:** removed deprecated $mdOpenMenu API ([f023ce7](https://github.com/angular/material/commit/f023ce766a816035fb3de8c1a47f9d089cb2f11d))
* **panel:** remove deprecated MdPanelRef.addClass/removeClass/toggleClass ([bafbd96](https://github.com/angular/material/commit/bafbd96905a016878fb45f5c6ff9992d0d743e6d)), closes [#9310](https://github.com/angular/material/issues/9310)
* **sidenav:** remove deprecated access to $media in md-is-locked-open ([baa7563](https://github.com/angular/material/commit/baa7563fc9ef32c179add7071e794771f729c991))
* **sidenav:** remove md-sidenav-focus directive ([8fc36d4](https://github.com/angular/material/commit/8fc36d4a7ce1f15cb1398a31e5ea6cea36bcfcda))
* **theming:** remove support for deprecated $mdThemingProviderTheme.primaryColor() and related APIs ([00a50de](https://github.com/angular/material/commit/00a50deb39997c73c89e5567b76b028f0cf6e16c))
* **tabs:** remove deprecated md-no-disconnect ([05bee8f](https://github.com/angular/material/commit/05bee8fb2350b066a778052db08a6009c0465ee1))

### Features

* **layouts:** add mixin for responsive support of rows ([c2c336b](https://github.com/angular/material/commit/c2c336b946b8c017c12dcb80955767339da3eb3b)), closes [#9112](https://github.com/angular/material/issues/9112) [#9220](https://github.com/angular/material/issues/9220)


### BREAKING CHANGES

* **layouts:** The way that margins are applied to `md-checkbox`, `md-input-container`, `md-radio-group`, and `md-select` has been changed. You can now use the `$default-horizontal-margin` Sass variable to override the default `16px` horizontal margin size. As part of this, `md-radio-button`s inside of `layout="row"` containers are now aligned vertically with other content as they no longer have a `16px` `margin-bottom`. If you have previously added custom styles, to your components inside of a row layout, in order to give them extra `margin-right` in LTR or `margin-left` in RTL, you will need to re-evaluate those styles. In most cases, they can now be removed.
* **sidenav:** Removed access for the deprecated `$media` service in `md-is-locked-open`. This was deprecated in favor of the `$mdMedia` service. The functionality is the same and only a rename to the current name of the service is required.
* **dialog:** Removed support for the deprecated `.content('string')` methods and options. These were deprecated in favor of `.textContent('string')` and `.htmlContent('sanitized-string')'` methods and their associated options. Please note that use of `.htmlContent` requires that the `ngSanitize` module be loaded.

If you have
```js
  alert = $mdDialog.alert()
    .content('This is an example.');
```
It needs to be changed to
```js
  alert = $mdDialog.alert()
    .textContent('This is an example.');
```
If you have
```js
  alert = $mdDialog.alert({
    content: 'This is an example.'
  });
```
It needs to be changed to
```js
  alert = $mdDialog.alert({
    textContent: 'This is an example.'
  });
```
* **theming:** Removed support for the deprecated `$mdThemingProviderTheme.primaryColor()` and the related accent/warn/background APIs. These were deprecated in favor of `$mdThemingProviderTheme.primaryPalette()` (and accent/warn/background) in 2015 and they have been logging warnings when used since then.
* **layout:** Removed the deprecated, undocumented `*-lt-*` layout attributes and classes. This includes the following attributes and their matching classes, which have been giving deprecation warnings since 2015:
- layout-lt-md
- layout-lt-lg
- flex-lt-md
- flex-lt-lg
- layout-align-lt-md
- layout-align-lt-lg
- flex-order-lt-md
- flex-order-lt-lg
- flex-offset-lt-md
- flex-offset-lt-lg
- hide-lt-md
- hide-lt-lg
- show-lt-md
- show-lt-lg

* **autofocus:** Removed the deprecated `md-auto-focus` directive. It was deprecated in favor of `md-autofocus`. Please see the [md-autofocus Docs](https://material.angularjs.org/latest/api/directive/mdAutofocus) for examples.
* **sidenav:** Removed the `md-sidenav-focus` directive. It was deprecated in favor of `md-autofocus`. Please see the [md-autofocus Docs](https://material.angularjs.org/latest/api/directive/mdAutofocus) and [md-sidenav Basic Usage Demo](https://material.angularjs.org/latest/demo/sidenav#basic-usage) for examples.
* **menu:** Removed the deprecated `$mdOpenMenu` API. It was deprecated in favor of `$mdMenu.open`.
* **chips:** Removed the deprecated, since 2015, `md-on-append` attribute. It was deprecated in favor of `md-transform-chip` or the simple notifier `md-on-add`. Please see the [md-chips Demos](https://material.angularjs.org/latest/demo/chips) for examples of using `md-transform-chip`.
* **card:** Removed support for the `class="md-actions"` inside of an `md-card` template. This is deprecated in favor of using the `<md-card-actions>` element.
* **dialog:** Removed support for the deprecated `class="md-actions"` inside of an `md-dialog` template. This was deprecated in favor of using the `<md-dialog-actions>` element.
* **panel:** The deprecated `MdPanelRef.addClass()`, `MdPanelRef.removeClass()`, and `MdPanelRef.toggleClass()` functions have been removed. These were deprecated in 2016 in favor of using the `panelContainer` or `panelEl` JQLite elements that are referenced in the [MdPanelRef](https://material.angularjs.org/latest/api/type/MdPanelRef) object.


### Contributors

Thank you to the contributors who helped with the v1.2.0-rc.2 release:

[<img alt="Splaktar" src="https://avatars1.githubusercontent.com/u/3506071?v=4&s=117" width="117">](https://github.com/Splaktar) |[<img alt="clshortfuse" src="https://avatars3.githubusercontent.com/u/9271155?v=4&s=117" width="117">](https://github.com/clshortfuse) |[<img alt="wagnermaciel" src="https://avatars1.githubusercontent.com/u/25158423?v=4&s=117" width="117">](https://github.com/wagnermaciel) |
:---: |:---: |:---: |
[Splaktar](https://github.com/Splaktar) |[clshortfuse](https://github.com/clshortfuse) |[wagnermaciel](https://github.com/wagnermaciel) |


<a name="1.2.0-rc.1"></a>
# [1.2.0-rc.1](https://github.com/angular/material/compare/v1.1.24...v1.2.0-rc.1) (2020-07-23)


### Bug Fixes

* **button:** horizontal padding should match the spec ([3205b33](https://github.com/angular/material/commit/3205b33b57bc08ef92aae28ac2fb898f307c0ac1)), closes [#10535](https://github.com/angular/material/issues/10535) [#10535](https://github.com/angular/material/issues/10535)
* **checkbox:** handle links in transcluded label in an a11y-friendly way ([4d36fd2](https://github.com/angular/material/commit/4d36fd27be8960c9a5fceed5b8750e201668e4a0)), closes [#11134](https://github.com/angular/material/issues/11134)
* **checkbox:** update CSS to match spec ([c893050](https://github.com/angular/material/commit/c8930506996a56adb1cbce20a236b7c2f76cbe93)), closes [#9351](https://github.com/angular/material/issues/9351) [#9927](https://github.com/angular/material/issues/9927) [#8713](https://github.com/angular/material/issues/8713)
* **chips:** chip remove icon isn't sized to match the spec ([#10491](https://github.com/angular/material/issues/10491)) ([29c0a4a](https://github.com/angular/material/commit/29c0a4a7fb53bb92ef97422df8e5c9fa7199d6b1)), closes [#9619](https://github.com/angular/material/issues/9619)
* **datepicker:** support ng-model-options timezone w/ Moment ([e24d09c](https://github.com/angular/material/commit/e24d09c68ce255ed82cac68361c8ee3dfeeb56e4)), closes [#11945](https://github.com/angular/material/issues/11945) [#10598](https://github.com/angular/material/issues/10598)
* **input-container:** align indentation with spec ([31a596f](https://github.com/angular/material/commit/31a596f484fa32b07f42e116abad91999c4385d3)), closes [#10105](https://github.com/angular/material/issues/10105) [#11421](https://github.com/angular/material/issues/11421)
* **list:** fix checkbox alignment and match dense heights to spec ([a13722e](https://github.com/angular/material/commit/a13722ee69ab01babefe1f0bcc5af77f55a3f76c)), closes [#11966](https://github.com/angular/material/issues/11966)
* **nav-bar:** throws exception when indexing null tabs variable ([b1c7154](https://github.com/angular/material/commit/b1c7154bfe684c92497fb08dea6ce98af94ed1a8)), closes [#11964](https://github.com/angular/material/issues/11964)
* **panel:** demos need to access locals in controller's $onInit ([6e91c62](https://github.com/angular/material/commit/6e91c621393cd2f5260689cec2c799eef3056a2c))
* **panel:** don't throw exceptions when the groupName is a string ([4178459](https://github.com/angular/material/commit/4178459c4251f92fac44e4eb9f182704085a2ab9))
* **select:** md-select-header closes on mouse click when not using multiple ([f2fca2e](https://github.com/angular/material/commit/f2fca2eea9d01be9f72e1dc2a275f1fdbc40764e)), closes [#11969](https://github.com/angular/material/issues/11969)
* **tabs:** update min-width to follow the spec ([693ecca](https://github.com/angular/material/commit/693eccad4e0c1605513e9b9f747cff53fef6d62a)), closes [#10406](https://github.com/angular/material/issues/10406) [#11432](https://github.com/angular/material/issues/11432)
* **theming:** dark contrast used incorrectly when only contrastStrongLightColors defined ([4e3f7a7](https://github.com/angular/material/commit/4e3f7a7e0839d9adce8327e67bdb9237e1e91f78))
* **theming:** update palette contrast types to current spec ([d716fde](https://github.com/angular/material/commit/d716fde69983273940cf67c641c003ba3ffc32c7)), closes [#8992](https://github.com/angular/material/issues/8992) [#10164](https://github.com/angular/material/issues/10164)
* **theming, toolbar, subheader, input:** align color palettes and contrasts with AA standards ([3a291ac](https://github.com/angular/material/commit/3a291ac6f6ae52093375f4c3dab5f15c4cf476b8)), closes [#8992](https://github.com/angular/material/issues/8992) [#10164](https://github.com/angular/material/issues/10164) [#8993](https://github.com/angular/material/issues/8993)
* **toast:** improve position handling to better align with docs ([96ec741](https://github.com/angular/material/commit/96ec741e69bfb3d2637a00366e05c11d9538371f)), closes [#11843](https://github.com/angular/material/issues/11843)
* **toolbar:** input placeholders and ink need more contrast ([a82fc93](https://github.com/angular/material/commit/a82fc93d54793472878da18a64ac8780295fac1f)), closes [#7987](https://github.com/angular/material/issues/7987) [#11376](https://github.com/angular/material/issues/11376)


### Code Refactoring

* **$mdCompilerProvider:** remove deprecated $mdCompilerProvider.respectPreAssignBindingsEnabled() ([579a327](https://github.com/angular/material/commit/579a3271698381c49803210c2efaa3b1f9e802bb))
* **chips:** remove deprecated MdChipsCtrl.selectAndFocusChip ([01d2cde](https://github.com/angular/material/commit/01d2cde76fdc127bef4d52027c143b33dc0666c0))
* **select:** rename ngMultiple to mdMultiple ([4c75858](https://github.com/angular/material/commit/4c758589f5ff8ad1b6fc1c990ffbbfd5dba913f7))
* **toast:** remove deprecated content() method and option and updateContent() method ([cf3d56c](https://github.com/angular/material/commit/cf3d56c74fe28b7500bd1d8bc312c132ba06d2b9))


### Features

* **theming:** add contrast opacity values for all color types and hues ([68c1d02](https://github.com/angular/material/commit/68c1d02fb40951ea95bf3a136e12e0ff66b2a780))


### Documentation

* **theming, colors:** md-colors demo was broken. improve JSDoc and fix lint issues ([01917b3](https://github.com/angular/material/commit/01917b37ec6a8b6a913f9594130b841912e37244))


### BREAKING CHANGES

* **list:** `md-list` with the `md-dense` class has been updated to align with the Material Design specification. This means that `md-list-item`s heights have changed when using `md-dense`. The `md-dense-disabled` class is now supported on `md-list`. After updating to this version, you may need to adjust the layout of your app if you use `md-dense` with `md-list` or customize the layout of `md-checkbox`s within `md-list-item`s.
* **button:** `md-button`'s internal horizontal padding has changed from `6px` to `8px` to match the Material Design spec. This may affect the layout of portions of your application where `md-button`, `md-datepicker`, or `md-toast` with actions are used.

If you are using our SCSS files, you can override this back to the default, or another value, in your app's SCSS files:
```scss
$button-left-right-padding: rem(0.600); // For 6px horizontal padding
```

* **$mdCompilerProvider:** The deprecated `$mdCompilerProvider.respectPreAssignBindingsEnabled()` API has been removed.
We no longer respect AngularJS's `$compileProvider.preAssignBindingsEnabled()` value as this API was removed
in AngularJS `1.7.0`.

If you had the recommended configuration for AngularJS 1.6.x:
```js
  $compileProvider.preAssignBindingsEnabled(false);
  $mdCompilerProvider.respectPreAssignBindingsEnabled(true);
```
Then you should remove both of these calls as they are now the defaults in AngularJS `1.7.0`
and AngularJS Material `1.2.0`.

If you had the recommended configuration for AngularJS 1.7+:
```js
  $mdCompilerProvider.respectPreAssignBindingsEnabled(true);
```
Then you should remove this call as it is now the default in AngularJS Material `1.2.0`.

If you were using a backwards-compatible configuration for AngularJS 1.6+:
```js
  $mdCompilerProvider.respectPreAssignBindingsEnabled(false);
```
Then you will need to remove this call and may need to refactor your Controllers for
AngularJS Material components like `$mdDialog`, `$mdPanel`, `$mdToast`, or `$mdBottomSheet`.

For example:
```js
 $mdDialog.show({
   locals: {
     myVar: true
   },
   controller: MyController,
   bindToController: true
 }
  function MyController() {
   // No locals from Angular Material are available. e.g myVar is undefined.
   // You would need to move anything accessing locals in here to $onInit().
 }
  MyController.prototype.$onInit = function() {
   // Bindings are now available in the $onInit lifecycle hook.
 }
```
* **toast:** The deprecated `content()` and `updateContent()` methods have been removed.

If you had:
```js
  $mdToast.show($mdToast.simple().content('This no longer works.'));
```
You will need to change to:
```js
  $mdToast.show($mdToast.simple().textContent('This works.'));
```

If you had:
```js
  $mdToast.updateContent('This no longer works.');
```
You will need to change to:
```js
  $mdToast.updateTextContent('This works.');
```

If you had:
```js
  $mdToast.show($mdToast.simple({parent: parent, content: 'This no longer works.', theme: 'some-theme', capsule: true}));
```
You will need to change to:
```js
  $mdToast.show($mdToast.simple({parent: parent, textContent: 'This works.', theme: 'some-theme', capsule: true}));
```
* **select:** `ngMultiple` has been renamed to `mdMultiple` to make it clear that this
API is provided by AngularJS Material and not by AngularJS.

If you had:
```html
  <md-select ng-multiple="expression">...</md-select>
```
You need to change to:
```html
  <md-select md-multiple="expression">...</md-select>
```
* **chips:** The deprecated `MdChipsCtrl.selectAndFocusChip()` function has been removed.
`MdChipsCtrl.selectAndFocusChipSafe()` should be used instead.
* **theming, toolbar, subheader, input:** The contrast colors (the text or icon color, for example on a raised button) of many of our default palettes have been updated to meet the [AA level of the contrast guidelines](https://www.w3.org/TR/WCAG21/#contrast-minimum) for web accessibility. If you are using our default palettes directly, the accessibility of your application should be improved. However, we recommend that you evaluate this after updating to `1.2.0`. There may be edge cases in your app or custom styles that need to be updated to meet accessibility guidelines.

If you find significant accessibility issues after updating, please report them to us. In `1.2.x`, we have a lot more control over our component theming in regards to hues and opacities.

If your app is using a custom palette, whether based on a copy of default palette or not, we encourage you to evaluate that your contrast configuration meets the WebAIM guidelines. Please review our guide on [Defining Custom Palettes](https://material.angularjs.org/latest/Theming/03_configuring_a_theme#defining-custom-palettes) for details.
* **tabs:** Tab items now have a `min-width` and `padding` which matches the Material Design specification. For width, this is `72px` on `xs` screens and `160px` on all other screens. For left and right `padding`, this is now `12px` instead of `24px`. If your app needs to have tabs which are smaller than the spec, you will need to override `md-tab-item`'s `min-width` and `md-tab`'s `padding` styles.
* **checkbox:** If you've created a custom solution to style links within `md-checkbox` labels, then you may need to remove or change that code now. This is because we automatically detect `<a>` tags in these labels and re-render them in an accessible way.
* **input-container:** `md-input` and `md-select` inside of `md-input-container`s have been updated to use indentation that is consistent with the spec (aligned to the left in LTR and the right in RTL). This may cause some minor layout issues in apps that depended upon the previous `2px` padding inside of `md-input-container`.
* The default size and spacing for `md-checkbox` has been updated to align with the Material Design specification. Additionally, many new Sass variables have been added for customizing the size and spacing of `md-checkbox`. The `md-dense` class is now supported. After updating to this version, you may need to adjust the layout of your app due to the larger touch-friendly size of checkbox. You may also want to make use of `md-dense` in cases where space is limited.
* **toast:** `$mdToast.show()`'s position behavior has been updated to be consistent with the documentation. If you relied on the previously undocumented behavior where it defaulted to `top left` instead of `bottom left`, you will need to update your app.

Change your code from this:

```js
    $mdToast.show(
      $mdToast.simple()
      .textContent('Simple Toast!'))
    .then(...
```

To this:

```js
    $mdToast.show(
      $mdToast.simple()
      .textContent('Simple Toast!')
      .position('top left'))
    .then(...
```

### Contributors

Thank you to the contributors who helped with the v1.2.0-rc.1 release:

[<img alt="Splaktar" src="https://avatars1.githubusercontent.com/u/3506071?v=4&s=117" width="117">](https://github.com/Splaktar) |[<img alt="jelbourn" src="https://avatars3.githubusercontent.com/u/838736?v=4&s=117" width="117">](https://github.com/jelbourn) |[<img alt="clshortfuse" src="https://avatars3.githubusercontent.com/u/9271155?v=4&s=117" width="117">](https://github.com/clshortfuse) |[<img alt="oliversalzburg" src="https://avatars2.githubusercontent.com/u/1658949?v=4&s=117" width="117">](https://github.com/oliversalzburg) |[<img alt="batsauto" src="https://avatars3.githubusercontent.com/u/17678174?v=4&s=117" width="117">](https://github.com/batsauto) |[<img alt="tomaszgrabowski" src="https://avatars0.githubusercontent.com/u/6688790?v=4&s=117" width="117">](https://github.com/tomaszgrabowski) |
:---: |:---: |:---: |:---: |:---: |:---: |
[Splaktar](https://github.com/Splaktar) |[jelbourn](https://github.com/jelbourn) |[clshortfuse](https://github.com/clshortfuse) |[oliversalzburg](https://github.com/oliversalzburg) |[batsauto](https://github.com/batsauto) |[tomaszgrabowski](https://github.com/tomaszgrabowski) |


<a name="1.1.24"></a>
## [1.1.24](https://github.com/angular/material/compare/v1.1.23...v1.1.24) (2020-06-29)


### Bug Fixes

* **datepicker:** support `ng-model-options` timezone w/ MomentJS and datepicker now passes `ng-model-options` on to calendar ([12562b0](https://github.com/angular/material/commit/12562b0e0c47472477729ed54b9aa30bfc4110e3)), closes [#11945](https://github.com/angular/material/issues/11945) [#10598](https://github.com/angular/material/issues/10598)
* **panel:** animated panels never appear on the screen ([e81e2e3](https://github.com/angular/material/commit/e81e2e33cccd414310f47ef9cec22aa54dd604a7)), closes [#11946](https://github.com/angular/material/issues/11946)
* **panel:** inline transforms accumulate after each time the close animation runs ([6322e98](https://github.com/angular/material/commit/6322e982db2ebe5bc99bddcf1e6ffde4c5041305)), closes [#11946](https://github.com/angular/material/issues/11946)

### Contributors

Thank you to the contributors who helped with the v1.1.24 release:

[<img alt="Splaktar" src="https://avatars1.githubusercontent.com/u/3506071?v=4&s=117" width="117">](https://github.com/Splaktar) |[<img alt="mmalerba" src="https://avatars1.githubusercontent.com/u/14793288?v=4&s=117" width="117">](https://github.com/mmalerba) |
:---: |:---: |
[Splaktar](https://github.com/Splaktar) |[mmalerba](https://github.com/mmalerba) |


<a name="1.1.23"></a>
## [1.1.23](https://github.com/angular/material/compare/v1.1.22...v1.1.23) (2020-06-18)


### Bug Fixes

* **calendar, datepicker:** in year view, `md-date-filter` only evaluates first day of month ([3d5ff5d](https://github.com/angular/material/commit/3d5ff5db56d3b84b2c7d813886d13ef831b7a295)), closes [#11703](https://github.com/angular/material/issues/11703)
* **compiler:** `$onDestroy` hook not called ([8bb1d98](https://github.com/angular/material/commit/8bb1d9811e39ae26e79f629902c3be619eba8b30)), closes [#11847](https://github.com/angular/material/issues/11847)
* **datepicker:** update error state only after `$validate` has run ([11f65e3](https://github.com/angular/material/commit/11f65e3371eb5fcffba0c1194ef3f9b022d0cf87)), closes [#10360](https://github.com/angular/material/issues/10360)
* **layout:** Syntax Error: Token `'&&'` not a primary expression ([#11940](https://github.com/angular/material/pull/11940)) ([1bd1a97](https://github.com/angular/material/commit/1bd1a97d7d22921e2cfb1fcb940f485a095130f8)), closes [#10935](https://github.com/angular/material/issues/10935)
* **list:** allow overriding `md-list-item` padding for clickable items ([f7d9027](https://github.com/angular/material/commit/f7d9027e9b0a91050213372cc0dfa52230d528d1)), closes [#10384](https://github.com/angular/material/issues/10384)
* **menuBar:** close top nested menu when escape key is pressed ([98e259b](https://github.com/angular/material/commit/98e259bec4dc026fa38fb1a5c16a6c4f37722e7a)), closes [#11678](https://github.com/angular/material/issues/11678)
* **navBar:** update inkbar on screen resize ([c1e2b12](https://github.com/angular/material/commit/c1e2b1277e59fd802e0e1e2da7eee492d39b84b0)), closes [#10121](https://github.com/angular/material/issues/10121)
* **panel:** allow transform to be animated on an offset panel ([269b68e](https://github.com/angular/material/commit/269b68e8540062e2a0e195edb54a75903b17fdd0)), closes [#9641](https://github.com/angular/material/issues/9641) [#9905](https://github.com/angular/material/issues/9905)
* **panel:** consolidate redundant validations ([#9631](https://github.com/angular/material/issues/9631)) ([a334134](https://github.com/angular/material/commit/a3341349631e5a2df4d4a6e0b9a527206f1b7686))
* **panel:** invisible after hide/show cycle ([a3c533f](https://github.com/angular/material/commit/a3c533f1c657588d4625c2b26c7b59ba7eeefb25)), closes [#11291](https://github.com/angular/material/issues/11291)
* **progress-circular:** correct rendering for diameter bigger than 60 ([#11896](https://github.com/angular/material/issues/11896)) ([0cca317](https://github.com/angular/material/commit/0cca317c3dfb6455609c840d2b03bb575a4cc35b)), closes [#10376](https://github.com/angular/material/issues/10376)
* **progress-linear, progress-circular:** mirror indicator when rtl is on ([#11895](https://github.com/angular/material/pull/11895)) ([9fc2f3f](https://github.com/angular/material/commit/9fc2f3fbb9d61fcdcbd32bdbdedca0d2cc9d4664)), closes [#10814](https://github.com/angular/material/issues/10814)
* **select:** height changes when disabled ([e2af2a3](https://github.com/angular/material/commit/e2af2a3f7fa05de81729d976512304c0f90f2891)), closes [#11812](https://github.com/angular/material/issues/11812)
* **select:** `md-focused` not removed from options on panel close ([5a7e967](https://github.com/angular/material/commit/5a7e967d9f2a7d568d6b9ede7a8e6a47d9270265)), closes [#11927](https://github.com/angular/material/issues/11927)
* **select:** optgroups are not visible to screen readers ([5fbabe7](https://github.com/angular/material/commit/5fbabe7e107a623303bcbcfed5c6d9e194f417e2)), closes [#11240](https://github.com/angular/material/issues/11240)
* **select:** perform correct position calculation in rtl for long labels ([#11894](https://github.com/angular/material/pull/11894)) ([9f49e10](https://github.com/angular/material/commit/9f49e1043b98977ab4e7e1053d0f4ea5ee978df5)), closes [#10395](https://github.com/angular/material/issues/10395)
* **select:** revert removal of support for `ng-selected` on `md-options` ([546bd84](https://github.com/angular/material/commit/546bd84b6c8e784aa43e88b926a117f077e1200c)), closes [#11914](https://github.com/angular/material/issues/11914)
* **slider:** vertical slider in a scrolled container sets value to zero on all clicks ([#11801](https://github.com/angular/material/issues/11801)) ([79bf96b](https://github.com/angular/material/commit/79bf96b64e992a99a10145ee6b5a2479afaa5d21)), closes [#11800](https://github.com/angular/material/issues/11800)
* **toast:** `onRemove` doesn't return a `Promise` in some cases ([e625a9c](https://github.com/angular/material/commit/e625a9ce108722a061bf087ee3b1a600ceee3fb9)), closes [#10379](https://github.com/angular/material/issues/10379)
* **toolbar:** `md-scroll-shrink` conflicts with `md-select` in toolbar ([1ed54bb](https://github.com/angular/material/commit/1ed54bb90bc9c71cce4575e325250606d97fa867)), closes [#10413](https://github.com/angular/material/issues/10413) [#9871](https://github.com/angular/material/issues/9871)
* **tooltip:** change from `inline` to `inline-block` to account for `md-panel` change ([20194ba](https://github.com/angular/material/commit/20194ba2f11227f0e3965089af598e9c89ce71a6))
* **util:** sanitize function used by select and autocomplete throws "Invalid regular expression" when typing `(` ([bc71d0b](https://github.com/angular/material/commit/bc71d0b0b6dd58a3025d8d65a309841783ebb0a9)), closes [#11908](https://github.com/angular/material/issues/11908)


### Features

* **calendar:** support specifying timezone in `ng-model-options` ([2a01746](https://github.com/angular/material/commit/2a01746c4fbea1bbd2ca82808a6e9f0f979a2968)), closes [#10431](https://github.com/angular/material/issues/10431)
* **input:** add animation to color change ([#10079](https://github.com/angular/material/issues/10079)) ([b486a41](https://github.com/angular/material/commit/b486a4104e2fdfdac8563b0c301fb3bfaf060142))
* **select:** add the ability to pre-select the only option in the list ([#9940](https://github.com/angular/material/issues/9940)) ([6372027](https://github.com/angular/material/commit/6372027e8c042845c302dfd52d8cd490faf1f43e)), closes [#9626](https://github.com/angular/material/issues/9626)

### Documentation

* **codepen:** update for AngularJS `1.8.0`
* **security:** added [Security Policy](https://github.com/angular/material/blob/master/SECURITY.md)
* **tabs:** improve correctness of API docs and types [a17ef4f](https://github.com/angular/material/commit/a17ef4fa9f7fe0ca812364fb9256f75c17d99442), closes [#10407](https://github.com/angular/material/issues/10407)

### Contributors

Thank you to the contributors who helped with the v1.1.23 release:

[<img alt="Splaktar" src="https://avatars1.githubusercontent.com/u/3506071?v=4&s=117" width="117">](https://github.com/Splaktar) |[<img alt="crisbeto" src="https://avatars0.githubusercontent.com/u/4450522?v=4&s=117" width="117">](https://github.com/crisbeto) |[<img alt="marosoft" src="https://avatars0.githubusercontent.com/u/3945455?v=4&s=117" width="117">](https://github.com/marosoft) |[<img alt="nnmrts" src="https://avatars0.githubusercontent.com/u/20396367?v=4&s=117" width="117">](https://github.com/nnmrts) |[<img alt="Thaina" src="https://avatars1.githubusercontent.com/u/1042507?v=4&s=117" width="117">](https://github.com/Thaina) |[<img alt="chmelevskij" src="https://avatars1.githubusercontent.com/u/7774918?v=4&s=117" width="117">](https://github.com/chmelevskij) |
:---: |:---: |:---: |:---: |:---: |:---: |
[Splaktar](https://github.com/Splaktar) |[crisbeto](https://github.com/crisbeto) |[marosoft](https://github.com/marosoft) |[nnmrts](https://github.com/nnmrts) |[Thaina](https://github.com/Thaina) |[chmelevskij](https://github.com/chmelevskij) |


<a name="1.1.22"></a>
## [1.1.22](https://github.com/angular/material/compare/v1.1.21...v1.1.22) (2020-04-30)


### Bug Fixes

* **autocomplete:** loop options list when moving past first/last option with arrow keys ([5228f23](https://github.com/angular/material/commit/5228f23b963b8d3811c916c2403469b92b2cca7e)), closes [#11766](https://github.com/angular/material/issues/11766)
* **autocomplete:** md-not-found template is not styled properly ([ce6e2ff](https://github.com/angular/material/commit/ce6e2ff13702cd462a1b45c06753d16278270ba1)), closes [#11852](https://github.com/angular/material/issues/11852)
* **autocomplete:** Move mouse enter and leave events to container ([5b0c9ba](https://github.com/angular/material/commit/5b0c9ba9e0e5313925f6a27390559f32028fd95b)), closes [#11776](https://github.com/angular/material/issues/11776)
* **autocomplete:** scroll to top of the list each time dropdown open ([498c9ed](https://github.com/angular/material/commit/498c9edd26e878d53e8f1b02a86380fe1b9895b1)), closes [#10479](https://github.com/angular/material/issues/10479)
* **contact-chips:** don't rely on debug info to get access to controller scope ([2f77095](https://github.com/angular/material/commit/2f770957f7d38d9c1386767b82bd662c07af9787)), closes [#11699](https://github.com/angular/material/issues/11699)
* **datepicker:** md-open-on-focus fails when switching tabs with open datepicker ([7a16778](https://github.com/angular/material/commit/7a16778ecc08593463c361b33b4fe17154b8cb75))
* **gesture:** 'drag' gestures don't clean up touch action styles on parent ([deb3dfc](https://github.com/angular/material/commit/deb3dfc11e76ea38c2ec65a2a9b4d68560d0c181)), closes [#11147](https://github.com/angular/material/issues/11147)
* **list:** dense lists cut off descenders of letters like gjqpy ([0ab73bd](https://github.com/angular/material/commit/0ab73bd86ab3f5e564ef73663e3f70e2404b2538)), closes [#8890](https://github.com/angular/material/issues/8890)
* **list:** isEventFromControl() works on all browsers now ([d537d25](https://github.com/angular/material/commit/d537d251d7281ed446ce5b5502a123884e1af9f4)), closes [#7937](https://github.com/angular/material/issues/7937)
* **list:** primary action is fired twice on space/enter keydown ([920018e](https://github.com/angular/material/commit/920018efbd51ed4f164db3fa02da721d3148da43)), closes [#11756](https://github.com/angular/material/issues/11756)
* **list:** secondary actions give aria warning if text is in a span ([90c8b8d](https://github.com/angular/material/commit/90c8b8d6f6265b3c5b71f38fa847dc5c6bb9ce04)), closes [#6152](https://github.com/angular/material/issues/6152)
* **menu-bar:** z-index not restored on menu close ([4a4dde4](https://github.com/angular/material/commit/4a4dde489835dd1c2ef221563bb5f2fd9fc9bddf)), closes [#11235](https://github.com/angular/material/issues/11235)
* **nav-bar:** clicked nav item not focused or selected in some cases ([4d4e0ac](https://github.com/angular/material/commit/4d4e0ac9487c9a632447fa5ecf38941934c3cf2c)), closes [#11747](https://github.com/angular/material/issues/11747)
* **select:** overhaul screen reader support ([928c71d](https://github.com/angular/material/commit/928c71d6ee87bc03ce383bfa555f67e1d373fe13)), closes [#10748](https://github.com/angular/material/issues/10748) [#10967](https://github.com/angular/material/issues/10967)
* **select:** sanitize user input before searching options ([#11855](https://github.com/angular/material/issues/11855)) ([0ec0cc5](https://github.com/angular/material/commit/0ec0cc5ee8aac0db6103ae4c1ee1fc30620247b2)), closes [#11854](https://github.com/angular/material/issues/11854)
* **select:** when using trackBy, trigger ng-change only when tracked property is different ([ecd55d0](https://github.com/angular/material/commit/ecd55d0dd2d52c746e4aa907bfd3712f6c03a68a)), closes [#11108](https://github.com/angular/material/issues/11108)
* **select:** menuController not defined edge case in focusOptionNode ([b9d8322](https://github.com/angular/material/commit/b9d832209f8b9e25b4bc5dc2654bf18421144816)), closes [#11885](https://github.com/angular/material/issues/11885)

### Documentation

* **vscode:** add VSCode configuration and guide ([#11879](https://github.com/angular/material/pull/11879)) ([a8954df](https://github.com/angular/material/commit/a8954dfaded6b5ae36aa35eaba3f33602f1e9da3))
* **dialog:** clarify promise rejection behavior in descriptions ([#11889](https://github.com/angular/material/pull/11889)) ([939f6c9](https://github.com/angular/material/commit/939f6c9f8ef16326b6cd15b0164afb69ae0c72fc)), closes ([#10130](https://github.com/angular/material/issues/10130))
* **docs, README:** remove Bower references, update GitHub and NPM icons. fix 'View Demo' button appearing for directives w/o demos ([#11888](https://github.com/angular/material/pull/11888)) ([5c75b12](https://github.com/angular/material/commit/5c75b121920243410c164df7ec33558087cccf1f))
* **getting-started, home:** updates to landing page and getting started. add Blank StackBlitz Demo starter ([#11890](https://github.com/angular/material/pull/11890)) ([d1a9976](https://github.com/angular/material/commit/d1a9976cad047288262d904460e7be6089de8128))
* **COMMIT_LEVELS:** update guide to better describe the process and responsibilities ([#11862](https://github.com/angular/material/pull/11862)) ([38fe956](https://github.com/angular/material/commit/38fe9560e23467cabe18a8653849238946f2afa5))
* **BUILD:** rewrote most of the guide ([#11880](https://github.com/angular/material/pull/11880)) ([4093953](https://github.com/angular/material/commit/40939534460f175543a0261c3b232d71e2a2884b))

### Contributors

Thank you to the contributors who helped with the v1.1.22 release:

[<img alt="Splaktar" src="https://avatars1.githubusercontent.com/u/3506071?v=4&s=117" width="117">](https://github.com/Splaktar) |[<img alt="marosoft" src="https://avatars0.githubusercontent.com/u/3945455?v=4&s=117" width="117">](https://github.com/marosoft) |[<img alt="oliversalzburg" src="https://avatars2.githubusercontent.com/u/1658949?v=4&s=117" width="117">](https://github.com/oliversalzburg) |[<img alt="andrewseguin" src="https://avatars3.githubusercontent.com/u/22898577?v=4&s=117" width="117">](https://github.com/andrewseguin) |[<img alt="free-easy" src="https://avatars2.githubusercontent.com/u/20483759?v=4&s=117" width="117">](https://github.com/free-easy) |[<img alt="nathanael-bice" src="https://avatars2.githubusercontent.com/u/6155868?v=4&s=117" width="117">](https://github.com/nathanael-bice) |
:---: |:---: |:---: |:---: |:---: |:---: |
[Splaktar](https://github.com/Splaktar) |[marosoft](https://github.com/marosoft) |[oliversalzburg](https://github.com/oliversalzburg) |[andrewseguin](https://github.com/andrewseguin) |[free-easy](https://github.com/free-easy) |[nathanael-bice](https://github.com/nathanael-bice) |

[<img alt="psamim" src="https://avatars3.githubusercontent.com/u/1868679?v=4&s=117" width="117">](https://github.com/psamim) |[<img alt="qubiack" src="https://avatars1.githubusercontent.com/u/19862364?v=4&s=117" width="117">](https://github.com/qubiack) |
:---: |:---: |
[psamim](https://github.com/psamim) |[qubiack](https://github.com/qubiack) |


<a name="1.1.22-rc.0"></a>
## [1.1.22-rc.0](https://github.com/angular/material/compare/v1.1.21...v1.1.22-rc.0) (2020-03-13)


### Bug Fixes

* **autocomplete:** loop options list when moving past first/last option with arrow keys ([5228f23](https://github.com/angular/material/commit/5228f23b963b8d3811c916c2403469b92b2cca7e)), closes [#11766](https://github.com/angular/material/issues/11766)
* **autocomplete:** md-not-found template is not styled properly ([ce6e2ff](https://github.com/angular/material/commit/ce6e2ff13702cd462a1b45c06753d16278270ba1)), closes [#11852](https://github.com/angular/material/issues/11852)
* **autocomplete:** Move mouse enter and leave events to container ([5b0c9ba](https://github.com/angular/material/commit/5b0c9ba9e0e5313925f6a27390559f32028fd95b)), closes [#11776](https://github.com/angular/material/issues/11776)
* **autocomplete:** scroll to top of the list each time dropdown open ([498c9ed](https://github.com/angular/material/commit/498c9edd26e878d53e8f1b02a86380fe1b9895b1)), closes [#10479](https://github.com/angular/material/issues/10479)
* **contact-chips:** don't rely on debug info to get access to controller scope ([2f77095](https://github.com/angular/material/commit/2f770957f7d38d9c1386767b82bd662c07af9787)), closes [#11699](https://github.com/angular/material/issues/11699)
* **datepicker:** md-open-on-focus fails when switching tabs with open datepicker ([7a16778](https://github.com/angular/material/commit/7a16778ecc08593463c361b33b4fe17154b8cb75))
* **gesture:** 'drag' gestures don't clean up touch action styles on parent ([deb3dfc](https://github.com/angular/material/commit/deb3dfc11e76ea38c2ec65a2a9b4d68560d0c181)), closes [#11147](https://github.com/angular/material/issues/11147)
* **list:** dense lists cut off descenders of letters like gjqpy ([0ab73bd](https://github.com/angular/material/commit/0ab73bd86ab3f5e564ef73663e3f70e2404b2538)), closes [#8890](https://github.com/angular/material/issues/8890)
* **list:** isEventFromControl() works on all browsers now ([d537d25](https://github.com/angular/material/commit/d537d251d7281ed446ce5b5502a123884e1af9f4)), closes [#7937](https://github.com/angular/material/issues/7937)
* **list:** primary action is fired twice on space/enter keydown ([920018e](https://github.com/angular/material/commit/920018efbd51ed4f164db3fa02da721d3148da43)), closes [#11756](https://github.com/angular/material/issues/11756)
* **list:** secondary actions give aria warning if text is in a span ([90c8b8d](https://github.com/angular/material/commit/90c8b8d6f6265b3c5b71f38fa847dc5c6bb9ce04)), closes [#6152](https://github.com/angular/material/issues/6152)
* **menu-bar:** z-index not restored on menu close ([4a4dde4](https://github.com/angular/material/commit/4a4dde489835dd1c2ef221563bb5f2fd9fc9bddf)), closes [#11235](https://github.com/angular/material/issues/11235)
* **nav-bar:** clicked nav item not focused or selected in some cases ([4d4e0ac](https://github.com/angular/material/commit/4d4e0ac9487c9a632447fa5ecf38941934c3cf2c)), closes [#11747](https://github.com/angular/material/issues/11747)
* **select:** overhaul screen reader support ([928c71d](https://github.com/angular/material/commit/928c71d6ee87bc03ce383bfa555f67e1d373fe13)), closes [#10748](https://github.com/angular/material/issues/10748) [#10967](https://github.com/angular/material/issues/10967)
* **select:** sanitize user input before searching options ([#11855](https://github.com/angular/material/issues/11855)) ([0ec0cc5](https://github.com/angular/material/commit/0ec0cc5ee8aac0db6103ae4c1ee1fc30620247b2)), closes [#11854](https://github.com/angular/material/issues/11854)
* **select:** when using trackBy, trigger ng-change only when tracked property is different ([ecd55d0](https://github.com/angular/material/commit/ecd55d0dd2d52c746e4aa907bfd3712f6c03a68a)), closes [#11108](https://github.com/angular/material/issues/11108)

### Contributors

Thank you to the contributors who helped with the v1.1.22-rc.0 release:

[<img alt="Splaktar" src="https://avatars1.githubusercontent.com/u/3506071?v=4&s=117" width="117">](https://github.com/Splaktar) |[<img alt="marosoft" src="https://avatars0.githubusercontent.com/u/3945455?v=4&s=117" width="117">](https://github.com/marosoft) |[<img alt="oliversalzburg" src="https://avatars2.githubusercontent.com/u/1658949?v=4&s=117" width="117">](https://github.com/oliversalzburg) |[<img alt="andrewseguin" src="https://avatars3.githubusercontent.com/u/22898577?v=4&s=117" width="117">](https://github.com/andrewseguin) |[<img alt="free-easy" src="https://avatars2.githubusercontent.com/u/20483759?v=4&s=117" width="117">](https://github.com/free-easy) |[<img alt="nathanael-bice" src="https://avatars2.githubusercontent.com/u/6155868?v=4&s=117" width="117">](https://github.com/nathanael-bice) |
:---: |:---: |:---: |:---: |:---: |:---: |
[Splaktar](https://github.com/Splaktar) |[marosoft](https://github.com/marosoft) |[oliversalzburg](https://github.com/oliversalzburg) |[andrewseguin](https://github.com/andrewseguin) |[free-easy](https://github.com/free-easy) |[nathanael-bice](https://github.com/nathanael-bice) |

[<img alt="psamim" src="https://avatars3.githubusercontent.com/u/1868679?v=4&s=117" width="117">](https://github.com/psamim) |[<img alt="qubiack" src="https://avatars1.githubusercontent.com/u/19862364?v=4&s=117" width="117">](https://github.com/qubiack) |
:---: |:---: |
[psamim](https://github.com/psamim) |[qubiack](https://github.com/qubiack) |


<a name="1.1.21"></a>
## [1.1.21](https://github.com/angular/material/compare/v1.1.20...v1.1.21) (2019-10-22)


### Bug Fixes

* **autocomplete:** improve handling of touch pads and touchscreens ([#11782](https://github.com/angular/material/issues/11782)) ([20c4d3f](https://github.com/angular/material/commit/20c4d3f)), closes [#11778](https://github.com/angular/material/issues/11778)
* **autocomplete:** improve implementation of aria-activedescendant ([#11743](https://github.com/angular/material/issues/11743)) ([8c159aa](https://github.com/angular/material/commit/8c159aa)), closes [#11742](https://github.com/angular/material/issues/11742)

### Contributors

Thank you to the contributors who helped with the v1.1.21 release:

[<img alt="Splaktar" src="https://avatars1.githubusercontent.com/u/3506071?v=4&s=117" width="117">](https://github.com/Splaktar) |[<img alt="neilsh" src="https://avatars3.githubusercontent.com/u/49814?v=4&s=117" width="117">](https://github.com/neilsh) |
:---: |:---: |
[Splaktar](https://github.com/Splaktar) |[neilsh](https://github.com/neilsh) |


<a name="1.1.20"></a>
## [1.1.20](https://github.com/angular/material/compare/v1.1.19...v1.1.20) (2019-08-15)


### Bug Fixes

* **autocomplete:** options panel flickers on hover after clicking input ([#11757](https://github.com/angular/material/issues/11757)) ([8f14afd](https://github.com/angular/material/commit/8f14afd)), closes [#11625](https://github.com/angular/material/issues/11625)
* **autocomplete:** support ng-click on md-autocomplete ([#11758](https://github.com/angular/material/issues/11758)) ([313e5e6](https://github.com/angular/material/commit/313e5e6)), closes [#11625](https://github.com/angular/material/issues/11625)
* **autocomplete:** tap outside options panel on iOS does not close panel ([#11625](https://github.com/angular/material/issues/11625)) ([f81349a](https://github.com/angular/material/commit/f81349a)), closes [#9581](https://github.com/angular/material/issues/9581)
* **datepicker:** remove invalid aria-expanded ([#11740](https://github.com/angular/material/issues/11740)) ([197d197](https://github.com/angular/material/commit/197d197)), closes [#11475](https://github.com/angular/material/issues/11475)
* **gesture:** check if navigator is defined before accessing userAgent ([#11755](https://github.com/angular/material/issues/11755)) ([0077d3e](https://github.com/angular/material/commit/0077d3e)), closes [#11751](https://github.com/angular/material/issues/11751)
* **gesture:** maximum call stack size exceeded on click w/ Tal… ([#11774](https://github.com/angular/material/issues/11774)) ([4acef53](https://github.com/angular/material/commit/4acef53)), closes [#11768](https://github.com/angular/material/issues/11768)
* **input:** floating label text fails a11y contrast audit ([#11497](https://github.com/angular/material/issues/11497)) ([b5de054](https://github.com/angular/material/commit/b5de054)), closes [#11475](https://github.com/angular/material/issues/11475)
* **panel:** append panel animation transforms after existing transforms ([#11681](https://github.com/angular/material/issues/11681)) ([ffe9349](https://github.com/angular/material/commit/ffe9349))
* **rtl:** support applying dir="rtl" on DOM elements other than the body ([#11579](https://github.com/angular/material/issues/11579)) ([bc7833b](https://github.com/angular/material/commit/bc7833b)), closes [#11016](https://github.com/angular/material/issues/11016) [#9754](https://github.com/angular/material/issues/9754)
* **select:** improve focus/blur handling on iOS ([#11739](https://github.com/angular/material/issues/11739)) ([0284b13](https://github.com/angular/material/commit/0284b13)), closes [#11345](https://github.com/angular/material/issues/11345)
* **tooltip:** move document.contains polyfill for IE11 into $mdUtil ([#11749](https://github.com/angular/material/issues/11749)) ([f5535f8](https://github.com/angular/material/commit/f5535f8)), closes [#11745](https://github.com/angular/material/issues/11745)

### Contributors

Thank you to the contributors who helped with the v1.1.20 release:

[<img alt="Splaktar" src="https://avatars1.githubusercontent.com/u/3506071?v=4&s=117" width="117">](https://github.com/Splaktar) |[<img alt="marosoft" src="https://avatars0.githubusercontent.com/u/3945455?v=4&s=117" width="117">](https://github.com/marosoft) |[<img alt="Noglen" src="https://avatars0.githubusercontent.com/u/38341522?v=4&s=117" width="117">](https://github.com/Noglen) |
:---: |:---: |:---: |
[Splaktar](https://github.com/Splaktar) |[marosoft](https://github.com/marosoft) |[Noglen](https://github.com/Noglen) |


<a name="1.1.19"></a>
## [1.1.19](https://github.com/angular/material/compare/v1.1.18...v1.1.19) (2019-05-31)


### Bug Fixes

* **datepicker:** auto closes in Chrome when md-open-on-focus is used ([#11719](https://github.com/angular/material/issues/11719)) ([73c424d](https://github.com/angular/material/commit/73c424d)), closes [#11701](https://github.com/angular/material/issues/11701)
* **gesture:** tapping a submit button fires two submit events on mobile ([#11729](https://github.com/angular/material/issues/11729)) ([244619a](https://github.com/angular/material/commit/244619a)), closes [#10189](https://github.com/angular/material/issues/10189) [#11725](https://github.com/angular/material/issues/11725)
* **icon:** symbol icons not working on browsers other than IE11 ([#11706](https://github.com/angular/material/issues/11706)) ([a62d160](https://github.com/angular/material/commit/a62d160)), closes [#11705](https://github.com/angular/material/issues/11705)
* **select:** edge case where the model value is unset w/ AngularJS 1.7.8 ([#11724](https://github.com/angular/material/issues/11724)) ([952a035](https://github.com/angular/material/commit/952a035)), closes [#11679](https://github.com/angular/material/issues/11679)
* **tabs:** new tab animation broken by code to support IE11 ([#11711](https://github.com/angular/material/issues/11711)) ([1063a92](https://github.com/angular/material/commit/1063a92)), closes [#11689](https://github.com/angular/material/issues/11689)


### Features

* **menu-bar:** support md-prevent-menu-close on checkbox/radio items ([#11710](https://github.com/angular/material/issues/11710)) ([d577afd](https://github.com/angular/material/commit/d577afd)), closes [#11707](https://github.com/angular/material/issues/11707)

### Documentation

* **migration:** Add a guide for migration to Angular Material and the CDK ([#11706](https://github.com/angular/material/pull/11706)) ([16cea88](https://github.com/angular/material/commit/16cea88))
* **docs:** Added support for Sass and TypeScript in code samples ([#11706](https://github.com/angular/material/pull/11706)) ([16cea88](https://github.com/angular/material/commit/16cea88))
* **docs:** Allow up/down/page up/page down to scroll content ([#11712](https://github.com/angular/material/pull/11712)) ([67826f5](https://github.com/angular/material/commit/67826f5)), closes [#2961](https://github.com/angular/material/issues/2961)

### Contributors

Thank you to the contributors who helped with the v1.1.19 release:

[<img alt="Splaktar" src="https://avatars1.githubusercontent.com/u/3506071?v=4&s=117" width="117">](https://github.com/Splaktar) |[<img alt="codymikol" src="https://avatars1.githubusercontent.com/u/13606342?v=4&s=117" width="117">](https://github.com/codymikol) |
:---: |:---: |
[Splaktar](https://github.com/Splaktar) |[codymikol](https://github.com/codymikol) |



<a name="1.1.18"></a>
## [1.1.18](https://github.com/angular/material/compare/v1.1.17...v1.1.18) (2019-04-05)


### Bug Fixes

* **icon:** stop breaking SVGs that have id references ([#11465](https://github.com/angular/material/issues/11465)) ([1b37e82](https://github.com/angular/material/commit/1b37e82)), closes [#11395](https://github.com/angular/material/issues/11395)

### Documentation

* **docs:** fix demos not loading in CodePen ([#11697](https://github.com/angular/material/pull/11697)) ([43035fd](https://github.com/angular/material/commit/43035fd)), closes [#11696](https://github.com/angular/material/issues/11696)

### Infrastructure

* **release:** workaround NPM bug that publishes `.git/` directory ([#11695](https://github.com/angular/material/pull/11695)) ([f44b271](https://github.com/angular/material/commit/f44b271)), closes [#11684](https://github.com/angular/material/issues/11684)

### Contributors

Thank you to the contributors who helped with the v1.1.18 release:

[<img alt="Splaktar" src="https://avatars1.githubusercontent.com/u/3506071?v=4&s=117" width="117">](https://github.com/Splaktar) |[<img alt="EmielH" src="https://avatars1.githubusercontent.com/u/5822678?v=4&s=117" width="117">](https://github.com/EmielH) |
:---: |:---: |
[Splaktar](https://github.com/Splaktar) |[EmielH](https://github.com/EmielH) |



<a name="1.1.17"></a>
## [1.1.17](https://github.com/angular/material/compare/v1.1.14...v1.1.17) (2019-03-29)


### Bug Fixes

* **autocomplete:** default dropdown to position bottom ([#11670](https://github.com/angular/material/issues/11670)) ([7674959](https://github.com/angular/material/commit/7674959)), closes [#11656](https://github.com/angular/material/issues/11656)
* **slider:** aria attrs are not announced when tabbing in screen readers ([#11688](https://github.com/angular/material/issues/11688)) ([459c03c](https://github.com/angular/material/commit/459c03c)), closes [#11685](https://github.com/angular/material/issues/11685)
* **tabs:** use standard `wheel` event instead of `mousewheel` event to fix Firefox ([#11686](https://github.com/angular/material/issues/11686)) ([7f249f9](https://github.com/angular/material/commit/7f249f9)), closes [#11654](https://github.com/angular/material/issues/11654)
* **npm:** deploy new release early to fix issue of `1.1.14` including a `.git/` dir for NPM installs, relates to [#11684](https://github.com/angular/material/issues/11684)

### Documentation

* **docs:** scroll position improvements for navigation ([#11671](https://github.com/angular/material/issues/11671)) ([b88368f](https://github.com/angular/material/commit/b88368f)), closes [#11669](https://github.com/angular/material/issues/11669)

### Contributors

Thank you to the contributors who helped with the v1.1.17 release:

[<img alt="Splaktar" src="https://avatars1.githubusercontent.com/u/3506071?v=4&s=117" width="117">](https://github.com/Splaktar) |[<img alt="gaurav5430" src="https://avatars2.githubusercontent.com/u/12510548?v=4&s=117" width="117">](https://github.com/gaurav5430) |
:---: | :---: |
[Splaktar](https://github.com/Splaktar) | [gaurav5430](https://github.com/gaurav5430) |



<a name="1.1.14"></a>
## [1.1.14](https://github.com/angular/material/compare/v1.1.13...v1.1.14) (2019-03-18)


### Bug Fixes

* **$mdInteraction:** clean up events on $rootScope destroy ([#11641](https://github.com/angular/material/issues/11641)) ([e9e9ece](https://github.com/angular/material/commit/e9e9ece)), closes [#11493](https://github.com/angular/material/issues/11493) [#11493](https://github.com/angular/material/issues/11493)
* **icon:** large SVG files can cause icon caching to hang ([#11653](https://github.com/angular/material/issues/11653)) ([6a68c96](https://github.com/angular/material/commit/6a68c96))
* **input:** placeholder hidden when there is also a label on IE11 ([#11674](https://github.com/angular/material/issues/11674)) ([ddcbb2e](https://github.com/angular/material/commit/ddcbb2e)), closes [#11668](https://github.com/angular/material/issues/11668)
* **interimElement**: don't track elements that fail compilation ([#11471](https://github.com/angular/material/pull/11471)) [08d90e9](https://github.com/angular/material/commit/08d90e96afd70129db3c57d345b53c59915205fe), closes [#11460](https://github.com/angular/material/issues/11460)
* **nav-bar:** non-selected tabs with anchors have invalid tabindex value ([#11675](https://github.com/angular/material/issues/11675)) ([ec9aa25](https://github.com/angular/material/commit/ec9aa25)), closes [#11637](https://github.com/angular/material/issues/11637)
* **panel:** caching of panels by id is not working ([#11638](https://github.com/angular/material/issues/11638)) ([649116b](https://github.com/angular/material/commit/649116b))
* **progress-circular:** show correct circle arc when changing from indeterminate to determinate mode ([#11580](https://github.com/angular/material/issues/11580)) ([686b365](https://github.com/angular/material/commit/686b365))
* **virtual-repeat-container:** support horizontal scrollbar in vertical orientation ([#11462](https://github.com/angular/material/issues/11462)) ([3cf4d74](https://github.com/angular/material/commit/3cf4d74))

### Documentation

* **docs:** properly format anchor names and hrefs ([#11648](https://github.com/angular/material/pull/11648))
* **radio-button:** correct two misspellings on demo ([#11667](https://github.com/angular/material/pull/11667))
* **colors:** clean up Closure / JSDoc comments and types ([#11676](https://github.com/angular/material/pull/11676))

### Infrastructure

* **build:** make the build output deterministic and reproducible ([#11570](https://github.com/angular/material/pull/11570))
* **ci:** we moved over to CircleCI from TravisCI in the previous 1.1.13 release ([#11592](https://github.com/angular/material/issues/11592))

#### Contributors

Thank you to the contributors who helped with the v1.1.14 release:

[<img alt="Splaktar" src="https://avatars1.githubusercontent.com/u/3506071?v=4&s=117" width="117">](https://github.com/Splaktar) |[<img alt="codymikol" src="https://avatars1.githubusercontent.com/u/13606342?v=4&s=117" width="117">](https://github.com/codymikol) |[<img alt="marosoft" src="https://avatars0.githubusercontent.com/u/3945455?v=4&s=117" width="117">](https://github.com/marosoft) |[<img alt="JSitjaNCR" src="https://avatars0.githubusercontent.com/u/43601493?v=4&s=117" width="117">](https://github.com/JSitjaNCR) |[<img alt="RQF7" src="https://avatars0.githubusercontent.com/u/11713881?v=4&s=117" width="117">](https://github.com/RQF7) |
:---: |:---: |:---: |:---: |:---: |
[Splaktar](https://github.com/Splaktar) |[codymikol](https://github.com/codymikol) |[marosoft](https://github.com/marosoft) |[JSitjaNCR](https://github.com/JSitjaNCR) |[RQF7](https://github.com/RQF7) |



<a name="1.1.13"></a>
## [1.1.13](https://github.com/angular/material/compare/v1.1.12...v1.1.13) (2019-02-20)


### Bug Fixes

* **autocomplete:** show dropdown on top only when there is room ([#11629](https://github.com/angular/material/issues/11629)) ([38fb991](https://github.com/angular/material/commit/38fb991)), closes [#10859](https://github.com/angular/material/issues/10859)
* **autocomplete:** suggestions can be highlighted incorrectly ([#11529](https://github.com/angular/material/issues/11529)) ([320511c](https://github.com/angular/material/commit/320511c)), closes [#10573](https://github.com/angular/material/issues/10573)
* **autocomplete:** two chips added on enter w/ IE11 ([#11528](https://github.com/angular/material/issues/11528)) ([705c54e](https://github.com/angular/material/commit/705c54e)), closes [#10640](https://github.com/angular/material/issues/10640) [#10667](https://github.com/angular/material/issues/10667)
* **checkbox:** submit on enter rather than toggle ([#11584](https://github.com/angular/material/issues/11584)) ([a191a8e](https://github.com/angular/material/commit/a191a8e)) ([#11640](https://github.com/angular/material/pull/11640)) ([251cfed8](https://github.com/angular/material/commit/251cfed8)), closes [#11583](https://github.com/angular/material/issues/11583) [#11639](https://github.com/angular/material/issues/11639)
* **datepicker:** does not open on focus in Firefox ([#11521](https://github.com/angular/material/issues/11521)) ([45e92ea](https://github.com/angular/material/commit/251cfed82837270c29e1099b34f5e85874a7bcad)), closes [#10619](https://github.com/angular/material/issues/10619)
* **datepicker:** validation error when adding text after date ([#11110](https://github.com/angular/material/issues/11110)) ([57c81c8](https://github.com/angular/material/commit/57c81c8)), closes [#9994](https://github.com/angular/material/issues/9994) [#10520](https://github.com/angular/material/issues/10520) [#10015](https://github.com/angular/material/issues/10015)
* **icon:** SVG elements are not loaded from the cache properly on IE11 ([#11635](https://github.com/angular/material/issues/11635)) ([7cde443](https://github.com/angular/material/commit/7cde443)), closes [#11603](https://github.com/angular/material/issues/11603) [#11545](https://github.com/angular/material/issues/11545) [#11604](https://github.com/angular/material/issues/11604)
* **layout:** remove some duplicate layout > flex styles ([#11613](https://github.com/angular/material/issues/11613)) ([6515e6c](https://github.com/angular/material/commit/6515e6c)), closes [#11609](https://github.com/angular/material/issues/11609)
* **list:** case where user is unable to interact w/ secondary actions ([#11539](https://github.com/angular/material/issues/11539)) ([708fff9](https://github.com/angular/material/commit/708fff9)), closes [#9676](https://github.com/angular/material/issues/9676)
* **menu:** fix min-height when scrollable ([#11602](https://github.com/angular/material/pull/11602))
* **nav-bar:** improve focus behavior for click events ([#11600](https://github.com/angular/material/issues/11600)) ([e64875d](https://github.com/angular/material/commit/e64875d)), closes [#11591](https://github.com/angular/material/issues/11591) [#11494](https://github.com/angular/material/issues/11494) [#11598](https://github.com/angular/material/issues/11598)
* **radio-group:** style focused but unchecked radio buttons ([#11564](https://github.com/angular/material/issues/11564)) ([8a4105c](https://github.com/angular/material/commit/8a4105c)), closes [#11563](https://github.com/angular/material/issues/11563) [#8339](https://github.com/angular/material/issues/8339) [#3643](https://github.com/angular/material/issues/3643)
* **select:** carrot not aligned to end in IE11 ([#11544](https://github.com/angular/material/issues/11544)) ([bf5bbfc](https://github.com/angular/material/commit/bf5bbfc)), closes [#10714](https://github.com/angular/material/issues/10714) [#3840](https://github.com/angular/material/issues/3840) [#3840](https://github.com/angular/material/issues/3840)
* **tabs:** exception when no selection and header clicked ([#11520](https://github.com/angular/material/issues/11520)) ([9c079aa](https://github.com/angular/material/commit/9c079aa)), closes [#10042](https://github.com/angular/material/issues/10042)


### Features

* **autocomplete:** support variable-height autocomplete list items ([#11516](https://github.com/angular/material/pull/11516)) ([562e0c7](https://github.com/angular/material/commit/562e0c7))
* **datepicker, calendar:** `md-date-filter` disables months in month mode ([#11526](https://github.com/angular/material/issues/11526)) ([8aa5d58](https://github.com/angular/material/commit/8aa5d58)), closes [#11525](https://github.com/angular/material/issues/11525)

### Documentation

* **checkbox:** clarify description of `md-no-ink` ([#11605](https://github.com/angular/material/pull/11605))
* **docs:** copying links to example/demo anchor headers gives a bad URL ([#11634](https://github.com/angular/material/pull/11634)), closes [#11285](https://github.com/angular/material/issues/11285)
* **menu:** add demo and docs for dense menus. ([#11602](https://github.com/angular/material/pull/11602))
* **ripple:** break out docs for `$mdInkRippleProvider` from `$mdInkRipple` ([#11606](https://github.com/angular/material/pull/11606))

#### Contributors

Thank you to the contributors who helped with the v1.1.13 release:

[<img alt="Splaktar" src="https://avatars1.githubusercontent.com/u/3506071?v=4&s=117" width="117">](https://github.com/Splaktar) |[<img alt="mmalerba" src="https://avatars1.githubusercontent.com/u/14793288?v=4&s=117" width="117">](https://github.com/mmalerba) |[<img alt="codymikol" src="https://avatars1.githubusercontent.com/u/13606342?v=4&s=117" width="117">](https://github.com/codymikol) |[<img alt="marosoft" src="https://avatars0.githubusercontent.com/u/3945455?v=4&s=117" width="117">](https://github.com/marosoft) |[<img alt="mgol" src="https://avatars0.githubusercontent.com/u/1758366?v=4&s=117" width="117">](https://github.com/mgol) |[<img alt="gopherkhan" src="https://avatars0.githubusercontent.com/u/1106145?v=4&s=117" width="117">](https://github.com/gopherkhan) |
:---: |:---: |:---: |:---: |:---: |:---: |
[Splaktar](https://github.com/Splaktar) |[mmalerba](https://github.com/mmalerba) |[codymikol](https://github.com/codymikol) |[marosoft](https://github.com/marosoft) |[mgol](https://github.com/mgol) |[gopherkhan](https://github.com/gopherkhan) |



<a name="1.1.12"></a>
## [1.1.12](https://github.com/angular/material/compare/v1.1.11...v1.1.12) (2019-01-03)


### Bug Fixes

* **select:** multiple with initial value causes label to overlap with value ([#11572](https://github.com/angular/material/issues/11572)) ([a4507d6](https://github.com/angular/material/commit/a4507d6)), closes [#11571](https://github.com/angular/material/issues/11571) [#11571](https://github.com/angular/material/issues/11571)
* **tabs:** md-center-tabs causes tabs to not render ([#11567](https://github.com/angular/material/issues/11567)) ([a49043d](https://github.com/angular/material/commit/a49043d)), closes [#11566](https://github.com/angular/material/issues/11566) [#11432](https://github.com/angular/material/issues/11432)

#### Contributors

Thank you to the contributors who helped with the v1.1.12 release over the holiday break:

[<img alt="Splaktar" src="https://avatars1.githubusercontent.com/u/3506071?v=4&s=117" width="117">](https://github.com/Splaktar) |[<img alt="codymikol" src="https://avatars1.githubusercontent.com/u/13606342?v=4&s=117" width="117">](https://github.com/codymikol) |[<img alt="mmalerba" src="https://avatars1.githubusercontent.com/u/14793288?v=4&s=117" width="117">](https://github.com/mmalerba) |
:---: |:---: |:---: |
[Splaktar](https://github.com/Splaktar) |[codymikol](https://github.com/codymikol) |[mmalerba](https://github.com/mmalerba) |

<a name="1.1.11"></a>
## [1.1.11](https://github.com/angular/material/compare/v1.1.10...v1.1.11) (2018-12-20)


### Bug Fixes

* **autocomplete:** screen readers now announce when an item is selected from the dropdown ([#11403](https://github.com/angular/material/issues/11403)) ([e56424e](https://github.com/angular/material/commit/e56424e)), closes [#10837](https://github.com/angular/material/issues/10837)
* **autocomplete:** apply theme to mdProgressLinear and input ([#9698](https://github.com/angular/material/issues/9698)) ([affe84b](https://github.com/angular/material/commit/affe84b))
* **autocomplete:** Chromevox indicates selected option on focus ([#11441](https://github.com/angular/material/issues/11441)) ([ca10bd0](https://github.com/angular/material/commit/ca10bd0)), closes [#10838](https://github.com/angular/material/issues/10838) [#10970](https://github.com/angular/material/issues/10970)
* **autocomplete:** updateSize incorrectly sets the size to zero ([#11500](https://github.com/angular/material/issues/11500)) ([d343363](https://github.com/angular/material/commit/d343363)), closes [#10834](https://github.com/angular/material/issues/10834)
* **bottom-sheet:** theme now supports dark mode ([#11380](https://github.com/angular/material/issues/11380)) ([4cecebb](https://github.com/angular/material/commit/4cecebb))
* **chips:** editing chips works again ([#11364](https://github.com/angular/material/issues/11364)) ([97455f5](https://github.com/angular/material/commit/97455f5)), closes [#11322](https://github.com/angular/material/issues/11322) [#11323](https://github.com/angular/material/issues/11323)
* **chips:** improve screen reader support ([#11422](https://github.com/angular/material/issues/11422)) ([2268c24](https://github.com/angular/material/commit/2268c24)), closes [#2618](https://github.com/angular/material/issues/2618)
* **chips:** set dirty when a chip is removed ([#11363](https://github.com/angular/material/issues/11363)) ([0dd688c](https://github.com/angular/material/commit/0dd688c)), closes [#11356](https://github.com/angular/material/issues/11356)
* **datepicker:** md-open-on-focus constantly re-opens on close w/ IE11 ([#11440](https://github.com/angular/material/issues/11440)) ([6596cc7](https://github.com/angular/material/commit/6596cc7)), closes [#10999](https://github.com/angular/material/issues/10999)
* **icon:** stop breaking svg id references when caching icon ids ([#11342](https://github.com/angular/material/issues/11342)) ([841e8b2](https://github.com/angular/material/commit/841e8b2)), closes [#8689](https://github.com/angular/material/issues/8689)
* **icon:** regression causing exceptions to be thrown on IE11 ([#11545](https://github.com/angular/material/issues/11545)) ([47527f2](https://github.com/angular/material/commit/47527f2)), closes [#11543](https://github.com/angular/material/issues/11543) [#11342](https://github.com/angular/material/issues/11342) [#11162](https://github.com/angular/material/issues/11162)
* **input:** make md-maxlength validation happen on initialization with interpolated value ([#11338](https://github.com/angular/material/issues/11338)) ([0cb4af1](https://github.com/angular/material/commit/0cb4af1)), closes [#11329](https://github.com/angular/material/issues/11329) [#11329](https://github.com/angular/material/issues/11329)
* **input:** placeholder and datepicker value displayed overlapping on Firefox ([#11538](https://github.com/angular/material/issues/11538)) ([44a6946](https://github.com/angular/material/commit/44a6946)), closes [#10440](https://github.com/angular/material/issues/10440)
* **input:** remove placeholder from button accessibility tree ([#11404](https://github.com/angular/material/issues/11404)) ([2203eec](https://github.com/angular/material/commit/2203eec)), closes [#11293](https://github.com/angular/material/issues/11293)
* **input:** remove unnecessary warnings when ng-messages not provided ([#11352](https://github.com/angular/material/issues/11352)) ([d48c5b8](https://github.com/angular/material/commit/d48c5b8)), closes [#10461](https://github.com/angular/material/issues/10461)
* **input-container:** handle initialization of md-icon with ng-if ([#11437](https://github.com/angular/material/issues/11437)) ([4493389](https://github.com/angular/material/commit/4493389)), closes [#9529](https://github.com/angular/material/issues/9529)
* **interim:** validate the interim element while closing it ([#11509](https://github.com/angular/material/issues/11509)) ([6815faf](https://github.com/angular/material/commit/6815faf)), closes [#11507](https://github.com/angular/material/issues/11507) [#10715](https://github.com/angular/material/issues/10715)
* **list:** account for IE11 bug with flexbox and min-height ([#11393](https://github.com/angular/material/issues/11393)) ([e3c1a5c](https://github.com/angular/material/commit/e3c1a5c))
* **nav-bar:** improve screen reader support ([#11486](https://github.com/angular/material/issues/11486)) ([6b29548](https://github.com/angular/material/commit/6b29548)), closes [#11485](https://github.com/angular/material/issues/11485) [#11485](https://github.com/angular/material/issues/11485)
* **nav-bar:** set ng-href on nav-item even if md-nav-href is empty ([#11488](https://github.com/angular/material/issues/11488)) ([e876eec](https://github.com/angular/material/commit/e876eec)), closes [#11487](https://github.com/angular/material/issues/11487)
* **nav-bar:** update keyboard navigation to WAI-ARIA guidelines ([#11494](https://github.com/angular/material/issues/11494)) ([4d29450](https://github.com/angular/material/commit/4d29450)), closes [#10419](https://github.com/angular/material/issues/10419) [#11489](https://github.com/angular/material/issues/11489)
* **select:** display asterisk on label only if empty ([#11355](https://github.com/angular/material/issues/11355)) ([f7b7f10](https://github.com/angular/material/commit/f7b7f10)), closes [#11312](https://github.com/angular/material/issues/11312)
* **select:** give focus to the first option when loaded asynchronously ([#11372](https://github.com/angular/material/issues/11372)) ([998199f](https://github.com/angular/material/commit/998199f)), closes [#11357](https://github.com/angular/material/issues/11357)
* **select:** perform full cleanup of the select drop-down after the close ([#11448](https://github.com/angular/material/issues/11448)) ([dfba062](https://github.com/angular/material/commit/dfba062)), closes [#11447](https://github.com/angular/material/issues/11447)
* **select:** theming issues with md-select-value ([#11373](https://github.com/angular/material/issues/11373)) ([9852ff7](https://github.com/angular/material/commit/9852ff7)), closes [#9592](https://github.com/angular/material/issues/9592)
* **select:** extra scrollbar when select dropdown is open ([#11453](https://github.com/angular/material/issues/11453)) ([20fc2d8](https://github.com/angular/material/commit/20fc2d8))
* **select(multiple):**  Remove side-effects to forms when adding md-select elements ([#11491](https://github.com/angular/material/issues/11491)) ([97e2d00](https://github.com/angular/material/commit/97e2d00)), closes [#11490](https://github.com/angular/material/issues/11490)
* **sidenav:** refactor syntax to work around issue in babel-minify ([#11351](https://github.com/angular/material/issues/11351)) ([0ed110b](https://github.com/angular/material/commit/0ed110b))
* **switch:** theming issues with focus in dark theme ([#11459](https://github.com/angular/material/issues/11459)) ([71e0411](https://github.com/angular/material/commit/71e0411)), closes [#8518](https://github.com/angular/material/issues/8518) [#11417](https://github.com/angular/material/issues/11417)
* **tabs:** provide guidance on how to navigate between tabs ([#11402](https://github.com/angular/material/issues/11402)) ([4b1b729](https://github.com/angular/material/commit/4b1b729)), closes [#10895](https://github.com/angular/material/issues/10895)
* **tabs:** show a visual indication of tab focus ([#11392](https://github.com/angular/material/issues/11392)) ([1d73d81](https://github.com/angular/material/commit/1d73d81))
* **tabs:** tab labels overly truncated on IE11 when pagination active ([#11432](https://github.com/angular/material/issues/11432)) ([2b2f441](https://github.com/angular/material/commit/2b2f441)), closes [#10406](https://github.com/angular/material/issues/10406)
* **theme:** prepend # to hex codes for enableBrowserColor ([#11492](https://github.com/angular/material/issues/11492)) ([0306ac0](https://github.com/angular/material/commit/0306ac0)), closes [#11259](https://github.com/angular/material/issues/11259)
* **toast:** improve a11y support for $mdToast.simple(). improve docs ([#11424](https://github.com/angular/material/issues/11424)) ([fedb9a3](https://github.com/angular/material/commit/fedb9a3)), closes [#349](https://github.com/angular/material/issues/349)
* **toast:** remove the interim element from the list before closing element ([#11427](https://github.com/angular/material/issues/11427)) ([f616b25](https://github.com/angular/material/commit/f616b25))


### Features

* **autocomplete:** add input-aria-label and input-aria-labelledby ([#11412](https://github.com/angular/material/issues/11412)) ([534beea](https://github.com/angular/material/commit/534beea)), closes [#10815](https://github.com/angular/material/issues/10815)
* **autocomplete:** add support for input-aria-describedby ([#11405](https://github.com/angular/material/issues/11405)) ([a25a7df](https://github.com/angular/material/commit/a25a7df)), closes [#11004](https://github.com/angular/material/issues/11004)
* **contactChips:** add basic support for md-separator-keys ([#8142](https://github.com/angular/material/issues/8142)) ([eb10b56](https://github.com/angular/material/commit/eb10b56))
* **slider:** enable page up/down and home/end keyboard actions ([#11517](https://github.com/angular/material/issues/11517)) ([70654c3](https://github.com/angular/material/commit/70654c3)), closes [#11515](https://github.com/angular/material/issues/11515)
* **tabs:** allow specifying custom class names for tabs ([#11332](https://github.com/angular/material/issues/11332)) ([aa30ada](https://github.com/angular/material/commit/aa30ada))
* **theming:** add ability to specify hues as options to defineTheme ([#11428](https://github.com/angular/material/issues/11428)) ([f776bf7](https://github.com/angular/material/commit/f776bf7))


### Performance Improvements

* **tabs:** md-center-tabs causes in high CPU usage ([#11375](https://github.com/angular/material/issues/11375)) ([7fdf9da](https://github.com/angular/material/commit/7fdf9da)), closes [#9690](https://github.com/angular/material/issues/9690) [#6375](https://github.com/angular/material/issues/6375)
* **tabs:** remove unreferenced elements variable from TabsController ([#11379](https://github.com/angular/material/issues/11379)) ([33652b4](https://github.com/angular/material/commit/33652b4)), closes [#11377](https://github.com/angular/material/issues/11377)
* **css:** remove bloat from autoprefixing of unsupported browsers ([#11340](https://github.com/angular/material/issues/11340)) ([3660a32](https://github.com/angular/material/commit/3660a32))
  * This reduced the minified CSS bundle size by ~75 KB.
  * You can find the breakdown of supported browsers [here](https://material.angularjs.org/HEAD/#browser-support).


#### Contributors

Thank you to the contributors, especially the first timers, who helped with the v1.1.11 release:

[<img alt="Splaktar" src="https://avatars1.githubusercontent.com/u/3506071?v=4&s=117" width="117">](https://github.com/Splaktar) |[<img alt="rudzikdawid" src="https://avatars3.githubusercontent.com/u/7476577?v=4&s=117" width="117">](https://github.com/rudzikdawid) |[<img alt="feloy" src="https://avatars0.githubusercontent.com/u/9973512?v=4&s=117" width="117">](https://github.com/feloy) |[<img alt="codymikol" src="https://avatars1.githubusercontent.com/u/13606342?v=4&s=117" width="117">](https://github.com/codymikol) |[<img alt="marosoft" src="https://avatars0.githubusercontent.com/u/3945455?v=4&s=117" width="117">](https://github.com/marosoft) |[<img alt="mmalerba" src="https://avatars1.githubusercontent.com/u/14793288?v=4&s=117" width="117">](https://github.com/mmalerba) |
:---: |:---: |:---: |:---: |:---: |:---: |
[Splaktar](https://github.com/Splaktar) |[rudzikdawid](https://github.com/rudzikdawid) |[feloy](https://github.com/feloy) |[codymikol](https://github.com/codymikol) |[marosoft](https://github.com/marosoft) |[mmalerba](https://github.com/mmalerba) |

[<img alt="jagmeetb" src="https://avatars1.githubusercontent.com/u/16247626?v=4&s=117" width="117">](https://github.com/jagmeetb) |[<img alt="mckenzielong" src="https://avatars0.githubusercontent.com/u/7656679?v=4&s=117" width="117">](https://github.com/mckenzielong) |[<img alt="Ignigena" src="https://avatars3.githubusercontent.com/u/4356436?v=4&s=117" width="117">](https://github.com/Ignigena) |[<img alt="rossgardt" src="https://avatars0.githubusercontent.com/u/234840?v=4&s=117" width="117">](https://github.com/rossgardt) |[<img alt="cstephe" src="https://avatars1.githubusercontent.com/u/311854?v=4&s=117" width="117">](https://github.com/cstephe) |[<img alt="xyng" src="https://avatars1.githubusercontent.com/u/2403703?v=4&s=117" width="117">](https://github.com/xyng) |
:---: |:---: |:---: |:---: |:---: |:---: |
[jagmeetb](https://github.com/jagmeetb) |[mckenzielong](https://github.com/mckenzielong) |[Ignigena](https://github.com/Ignigena) |[rossgardt](https://github.com/rossgardt) |[cstephe](https://github.com/cstephe) |[xyng](https://github.com/xyng) |

[<img alt="MarcoZehe" src="https://avatars3.githubusercontent.com/u/1568574?v=4&s=117" width="117">](https://github.com/MarcoZehe) |[<img alt="dokmic" src="https://avatars1.githubusercontent.com/u/15189627?v=4&s=117" width="117">](https://github.com/dokmic) |[<img alt="irkan-hadi" src="https://avatars3.githubusercontent.com/u/2753005?v=4&s=117" width="117">](https://github.com/irkan-hadi) |
:---: |:---: |:---: |
[MarcoZehe](https://github.com/MarcoZehe) |[dokmic](https://github.com/dokmic) |[irkan-hadi](https://github.com/irkan-hadi) |



<a name="1.1.10"></a>
## [1.1.10](https://github.com/angular/material/compare/v1.1.9...v1.1.10) (2018-06-28)


### Bug Fixes

* **chips:** editable chip gets removed after editing ([#11323](https://github.com/angular/material/issues/11323)) ([9cc165f](https://github.com/angular/material/commit/9cc165f)), closes [#11298](https://github.com/angular/material/issues/11298) [#10392](https://github.com/angular/material/issues/10392) [#10532](https://github.com/angular/material/issues/10532) [#10664](https://github.com/angular/material/issues/10664) [#10879](https://github.com/angular/material/issues/10879)
* **chips:** improve ability to receive focus on click ([#11098](https://github.com/angular/material/issues/11098)) ([869bc21](https://github.com/angular/material/commit/869bc21)), closes [#10344](https://github.com/angular/material/issues/10344)
* **chips:** regression where chips model gets out of sync with view ([#11310](https://github.com/angular/material/issues/11310)) ([74d2445](https://github.com/angular/material/commit/74d2445)), closes [#11304](https://github.com/angular/material/issues/11304) [#11301](https://github.com/angular/material/issues/11301)
* **chips:** unwanted re-focus of last chip after blur ([#11305](https://github.com/angular/material/issues/11305)) ([ae17515](https://github.com/angular/material/commit/ae17515)), closes [#9650](https://github.com/angular/material/issues/9650) [#10758](https://github.com/angular/material/issues/10758)
* **compiler:** remove dependency on AngularJS private API ([#11320](https://github.com/angular/material/issues/11320)) ([f6534d6](https://github.com/angular/material/commit/f6534d6)), closes [#11319](https://github.com/angular/material/issues/11319)
* **datepicker:** calendar panel theme supports dark mode in multi theme scenario ([#11267](https://github.com/angular/material/issues/11267)) ([9e6553d](https://github.com/angular/material/commit/9e6553d)), closes [#11265](https://github.com/angular/material/issues/11265)
* **layout:** allow flex-offset to be a child of layout-margin ([#11330](https://github.com/angular/material/issues/11330)) ([81eb46f](https://github.com/angular/material/commit/81eb46f)), closes [#11328](https://github.com/angular/material/issues/11328)
* **layout:** reduce layout CSS size by reverting some of [#11247](https://github.com/angular/material/issues/11247) ([#11331](https://github.com/angular/material/issues/11331)) ([5e37b63](https://github.com/angular/material/commit/5e37b63)), closes [#11000](https://github.com/angular/material/issues/11000) [#9546](https://github.com/angular/material/issues/9546)
* **menu-bar:** md-menu-bar panel theme supports dark mode themes ([#11258](https://github.com/angular/material/issues/11258)) ([3a21b89](https://github.com/angular/material/commit/3a21b89)), closes [#11238](https://github.com/angular/material/issues/11238)
* **nav-bar:** missing [disabled] scss selector ([#11269](https://github.com/angular/material/issues/11269)) ([d607e17](https://github.com/angular/material/commit/d607e17)), closes [#11268](https://github.com/angular/material/issues/11268)
* **ripple:** fix iOS Safari stuck ripple issue ([#11302](https://github.com/angular/material/issues/11302)) ([5284145](https://github.com/angular/material/commit/5284145)), closes [#11069](https://github.com/angular/material/issues/11069)
* **select:** doesn't search correctly when pressing period character ([#11313](https://github.com/angular/material/issues/11313)) ([daf67a8](https://github.com/angular/material/commit/daf67a8)), closes [#11294](https://github.com/angular/material/issues/11294)
* **theming:** md-theme leaks when child elements are removed ([#11326](https://github.com/angular/material/issues/11326)) ([41c9d00](https://github.com/angular/material/commit/41c9d00)), closes [#11325](https://github.com/angular/material/issues/11325)


### Features

* **mdMaxlength:** support use with required and ng-trim ([#11136](https://github.com/angular/material/issues/11136)) ([db1a85d](https://github.com/angular/material/commit/db1a85d)), closes [#10082](https://github.com/angular/material/issues/10082) [#10216](https://github.com/angular/material/issues/10216)

#### Contributors

Thank you to the contributors, especially the first timers, who helped with the v1.1.10 release:

[<img alt="Splaktar" src="https://avatars1.githubusercontent.com/u/3506071?v=4&s=117" width="117">](https://github.com/Splaktar) |[<img alt="rudzikdawid" src="https://avatars3.githubusercontent.com/u/7476577?v=4&s=117" width="117">](https://github.com/rudzikdawid) |[<img alt="feloy" src="https://avatars0.githubusercontent.com/u/9973512?v=4&s=117" width="117">](https://github.com/feloy) |[<img alt="jpike88" src="https://avatars1.githubusercontent.com/u/9585787?v=4&s=117" width="117">](https://github.com/jpike88) |[<img alt="bersLucas" src="https://avatars2.githubusercontent.com/u/3892772?v=4&s=117" width="117">](https://github.com/bersLucas) |
:---: |:---: |:---: |:---: |:---: |
[Splaktar](https://github.com/Splaktar) |[rudzikdawid](https://github.com/rudzikdawid) |[feloy](https://github.com/feloy) |[jpike88](https://github.com/jpike88) |[bersLucas](https://github.com/bersLucas) |


<a name="1.1.9"></a>
## [1.1.9](https://github.com/angular/material/compare/v1.1.8...v1.1.9) (2018-04-27)


### Bug Fixes

* **autocomplete:** align highlight style with spec ([#11244](https://github.com/angular/material/issues/11244)) ([011315f](https://github.com/angular/material/commit/011315f)), closes [#10060](https://github.com/angular/material/issues/10060)
* **autocomplete:** don't show the menu panel when readonly ([#11245](https://github.com/angular/material/issues/11245)) ([0fe831a](https://github.com/angular/material/commit/0fe831a)), closes [#11231](https://github.com/angular/material/issues/11231)
* **autocomplete:** md-autocomplete panel theme supports dark mode ([#11203](https://github.com/angular/material/issues/11203)) ([aba7b2b](https://github.com/angular/material/commit/aba7b2b)), closes [#11202](https://github.com/angular/material/issues/11202)
* **datepicker:** calendar panel theme supports dark mode ([#11201](https://github.com/angular/material/issues/11201)) ([2360764](https://github.com/angular/material/commit/2360764)), closes [#11200](https://github.com/angular/material/issues/11200)
* **dialog:** thread blocking during large DOM traversals ([#10552](https://github.com/angular/material/issues/10552)) ([#11193](https://github.com/angular/material/issues/11193)) ([9086b54](https://github.com/angular/material/commit/9086b54))
* **layout:** some flex directives don't work when on a child of `layout="column"` or `layout="row"` ([#11247](https://github.com/angular/material/issues/11247)) ([e0078d7](https://github.com/angular/material/commit/e0078d7)), closes [#9546](https://github.com/angular/material/issues/9546)
* **menu:** md-menu panel theme supports dark mode ([#11230](https://github.com/angular/material/issues/11230)) ([ef14194](https://github.com/angular/material/commit/ef14194)), closes [#11199](https://github.com/angular/material/issues/11199)
* **nav-bar:** initial disabled state is now respected ([#11185](https://github.com/angular/material/issues/11185)) ([d412358](https://github.com/angular/material/commit/d412358)), closes [#11172](https://github.com/angular/material/issues/11172) [#10688](https://github.com/angular/material/issues/10688)
* **panel:** use `$event.target` instead of `$event.srcElement` for Firefox compatibility ([#11234](https://github.com/angular/material/issues/11234)) ([c86767f](https://github.com/angular/material/commit/c86767f)), closes [#11035](https://github.com/angular/material/issues/11035)
* **select:** options panel theme supports dark mode ([#11198](https://github.com/angular/material/issues/11198)) ([f926c96](https://github.com/angular/material/commit/f926c96)), closes [#3379](https://github.com/angular/material/issues/3379)
* **slider:** out of sync state between model and view value in same digest cycle ([#10980](https://github.com/angular/material/issues/10980)) ([50a1616](https://github.com/angular/material/commit/50a1616)), closes [#9125](https://github.com/angular/material/issues/9125)
* **slider-container:** numeric inputs cut off on Firefox and Edge ([#11210](https://github.com/angular/material/issues/11210)) ([bbfede8](https://github.com/angular/material/commit/bbfede8)), closes [#9559](https://github.com/angular/material/issues/9559) [#10909](https://github.com/angular/material/issues/10909) [#10288](https://github.com/angular/material/issues/10288) [#10148](https://github.com/angular/material/issues/10148)
* **toast:** update style direction to flex-direction ([#11169](https://github.com/angular/material/issues/11169)) ([1ef9ec3](https://github.com/angular/material/commit/1ef9ec3))


### Features

* **autocomplete:** add md-input-class binding. ([#11102](https://github.com/angular/material/issues/11102)) ([2a83967](https://github.com/angular/material/commit/2a83967))
* **autocomplete:** add md-menu-container-class for styling ([#11194](https://github.com/angular/material/issues/11194)) ([5320d22](https://github.com/angular/material/commit/5320d22))
* **bottom-sheet:** add isLockedOpen option; general cleanup ([#9179](https://github.com/angular/material/issues/9179)) ([e519c1b](https://github.com/angular/material/commit/e519c1b)), closes [#9084](https://github.com/angular/material/issues/9084)
* **chips:** expose `$event` in md-on-remove ([#11192](https://github.com/angular/material/issues/11192)) ([bd3aa1d](https://github.com/angular/material/commit/bd3aa1d))
* **chips:** trigger ng-change on chip addition/removal ([#11237](https://github.com/angular/material/issues/11237)) ([0563f24](https://github.com/angular/material/commit/0563f24)), closes [#11161](https://github.com/angular/material/issues/11161) [#3857](https://github.com/angular/material/issues/3857)
* **gestures:** add ability to disable all gestures for perf ([#11246](https://github.com/angular/material/issues/11246)) ([65d78e0](https://github.com/angular/material/commit/65d78e0)), closes [#10884](https://github.com/angular/material/issues/10884) [#10885](https://github.com/angular/material/issues/10885)
* **icon:** Add support to svg symbol icon set ([#11162](https://github.com/angular/material/issues/11162)) ([5111f9d](https://github.com/angular/material/commit/5111f9d)), closes [#8689](https://github.com/angular/material/issues/8689) [#1514](https://github.com/angular/material/issues/1514)
* **sidenav:** add disable click and escape event ([#11165](https://github.com/angular/material/issues/11165)) ([fae4042](https://github.com/angular/material/commit/fae4042))

#### Contributors

Thank you to the contributors, especially the first timers, who helped with the v1.1.9 release:

[<img alt="crisbeto" src="https://avatars0.githubusercontent.com/u/4450522?v=4&s=117" width="117">](https://github.com/crisbeto) |[<img alt="Splaktar" src="https://avatars1.githubusercontent.com/u/3506071?v=4&s=117" width="117">](https://github.com/Splaktar) |[<img alt="feloy" src="https://avatars0.githubusercontent.com/u/9973512?v=4&s=117" width="117">](https://github.com/feloy) |[<img alt="rudzikdawid" src="https://avatars3.githubusercontent.com/u/7476577?v=4&s=117" width="117">](https://github.com/rudzikdawid) |[<img alt="mmalerba" src="https://avatars1.githubusercontent.com/u/14793288?v=4&s=117" width="117">](https://github.com/mmalerba) |[<img alt="free-easy" src="https://avatars2.githubusercontent.com/u/20483759?v=4&s=117" width="117">](https://github.com/free-easy) |
:---: |:---: |:---: |:---: |:---: |:---: |
[crisbeto](https://github.com/crisbeto) |[Splaktar](https://github.com/Splaktar) |[feloy](https://github.com/feloy) |[rudzikdawid](https://github.com/rudzikdawid) |[mmalerba](https://github.com/mmalerba) |[free-easy](https://github.com/free-easy) |

[<img alt="sviams" src="https://avatars2.githubusercontent.com/u/4960234?v=4&s=117" width="117">](https://github.com/sviams) |[<img alt="cobisimo" src="https://avatars0.githubusercontent.com/u/2192460?v=4&s=117" width="117">](https://github.com/cobisimo) |[<img alt="ypislon" src="https://avatars1.githubusercontent.com/u/12954194?v=4&s=117" width="117">](https://github.com/ypislon) |[<img alt="currensy" src="https://avatars3.githubusercontent.com/u/10333370?v=4&s=117" width="117">](https://github.com/currensy) |[<img alt="karansapolia" src="https://avatars1.githubusercontent.com/u/10175625?v=4&s=117" width="117">](https://github.com/karansapolia) |[<img alt="VictorioBerra" src="https://avatars0.githubusercontent.com/u/2934507?v=4&s=117" width="117">](https://github.com/VictorioBerra) |
:---: |:---: |:---: |:---: |:---: |:---: |
[sviams](https://github.com/sviams) |[cobisimo](https://github.com/cobisimo) |[ypislon](https://github.com/ypislon) |[currensy](https://github.com/currensy) |[karansapolia](https://github.com/karansapolia) |[VictorioBerra](https://github.com/VictorioBerra) |

[<img alt="codymikol" src="https://avatars1.githubusercontent.com/u/13606342?v=4&s=117" width="117">](https://github.com/codymikol) |[<img alt="FjVillar" src="https://avatars1.githubusercontent.com/u/12049849?v=4&s=117" width="117">](https://github.com/FjVillar) |
:---: |:---: |
[codymikol](https://github.com/codymikol) |[FjVillar](https://github.com/FjVillar) |

<a name="1.1.8"></a>
## [1.1.8](https://github.com/angular/material/compare/v1.1.7...v1.1.8) (2018-03-16)


### Bug Fixes

* **button:** fix rendering issue with borders and webkit browsers ([#9449](https://github.com/angular/material/issues/9449)) ([0f15e39](https://github.com/angular/material/commit/0f15e39)), closes [#9154](https://github.com/angular/material/issues/9154) [#10086](https://github.com/angular/material/issues/10086)
* **chips:** md-chip-append-delay of 0 does not get converted to 300 ([#11163](https://github.com/angular/material/issues/11163)) ([1f6d1b2](https://github.com/angular/material/commit/1f6d1b2)), closes [#10408](https://github.com/angular/material/issues/10408)
* **dialog:** fix prompt closing on ENTER key when input is required and empty ([#10990](https://github.com/angular/material/issues/10990)) ([69470a6](https://github.com/angular/material/commit/69470a6))
* **dialog:** md-colors breaks inside of dialogs ([#11078](https://github.com/angular/material/pull/11078)) ([e3c55f9](https://github.com/angular/material/commit/e3c55f9)), closes [#10276](https://github.com/angular/material/issues/10276)
* **input:** make md-maxlength validation happen on initialization ([#11150](https://github.com/angular/material/issues/11150)) ([9ced357](https://github.com/angular/material/commit/9ced357)), closes [#10320](https://github.com/angular/material/issues/10320)
* **input/autocomplete:** prevent md-select-on-focus from refocusing blurred input ([#11129](https://github.com/angular/material/issues/11129)) ([c5ec316](https://github.com/angular/material/commit/c5ec316))
* **menu:** allow nested md-menu-content ([#11103](https://github.com/angular/material/issues/11103)) ([60e2393](https://github.com/angular/material/commit/60e2393))
* **menu:** close menu on tab ([#11127](https://github.com/angular/material/issues/11127)) ([7e5b7f4](https://github.com/angular/material/commit/7e5b7f4)), closes [#11123](https://github.com/angular/material/issues/11123)
* **panel:** allow numbers in offset methods ([#9609](https://github.com/angular/material/issues/9609)) ([0d276f3](https://github.com/angular/material/commit/0d276f3)), closes [#9604](https://github.com/angular/material/issues/9604)
* **panel/tooltip:** memory leak on destroy ([#11145](https://github.com/angular/material/issues/11145)) ([2ef87f4](https://github.com/angular/material/commit/2ef87f4)), closes [#11133](https://github.com/angular/material/issues/11133)


### Features

* **chips:** added validation for ng-required ([#11125](https://github.com/angular/material/issues/11125)) ([ba0e9fe](https://github.com/angular/material/commit/ba0e9fe)), closes [#11124](https://github.com/angular/material/issues/11124)
* **navBar:** add disabled attribute ([#10992](https://github.com/angular/material/issues/10992)) ([b4d36f3](https://github.com/angular/material/commit/b4d36f3)), closes [#9667](https://github.com/angular/material/issues/9667)

#### Contributors

Thank you to the amazing contributors, especially the first timers, who helped with the v1.1.8 release:

[<img alt="crisbeto" src="https://avatars0.githubusercontent.com/u/4450522?v=4&s=117" width="117">](https://github.com/crisbeto) |[<img alt="Splaktar" src="https://avatars1.githubusercontent.com/u/3506071?v=4&s=117" width="117">](https://github.com/Splaktar) |[<img alt="clshortfuse" src="https://avatars3.githubusercontent.com/u/9271155?v=4&s=117" width="117">](https://github.com/clshortfuse) |[<img alt="mmalerba" src="https://avatars1.githubusercontent.com/u/14793288?v=4&s=117" width="117">](https://github.com/mmalerba) |[<img alt="IMM0rtalis" src="https://avatars3.githubusercontent.com/u/1506919?v=4&s=117" width="117">](https://github.com/IMM0rtalis) |[<img alt="feloy" src="https://avatars0.githubusercontent.com/u/9973512?v=4&s=117" width="117">](https://github.com/feloy) |
:---: |:---: |:---: |:---: |:---: |:---: |
[crisbeto](https://github.com/crisbeto) |[Splaktar](https://github.com/Splaktar) |[clshortfuse](https://github.com/clshortfuse) |[mmalerba](https://github.com/mmalerba) |[IMM0rtalis](https://github.com/IMM0rtalis) |[feloy](https://github.com/feloy) |

[<img alt="codymikol" src="https://avatars1.githubusercontent.com/u/13606342?v=4&s=117" width="117">](https://github.com/codymikol) |[<img alt="eknowles" src="https://avatars2.githubusercontent.com/u/817611?v=4&s=117" width="117">](https://github.com/eknowles) |[<img alt="currensy" src="https://avatars3.githubusercontent.com/u/10333370?v=4&s=117" width="117">](https://github.com/currensy) |[<img alt="jonbcard" src="https://avatars3.githubusercontent.com/u/497168?v=4&s=117" width="117">](https://github.com/jonbcard) |[<img alt="karansapolia" src="https://avatars1.githubusercontent.com/u/10175625?v=4&s=117" width="117">](https://github.com/karansapolia) |[<img alt="tiberiuzuld" src="https://avatars0.githubusercontent.com/u/15310395?v=4&s=117" width="117">](https://github.com/tiberiuzuld) |
:---: |:---: |:---: |:---: |:---: |:---: |
[codymikol](https://github.com/codymikol) |[eknowles](https://github.com/eknowles) |[currensy](https://github.com/currensy) |[jonbcard](https://github.com/jonbcard) |[karansapolia](https://github.com/karansapolia) |[tiberiuzuld](https://github.com/tiberiuzuld) |

[<img alt="5earle" src="https://avatars3.githubusercontent.com/u/8709806?v=4&s=117" width="117">](https://github.com/5earle) |
:---: |
[5earle](https://github.com/5earle) |


<a name="1.1.7"></a>
## [1.1.7](https://github.com/angular/material/compare/v1.1.6...v1.1.7) (2018-02-08)


### Bug Fixes

* **datepicker:** keep reference of Date object ([#10606](https://github.com/angular/material/issues/10606)) ([b4b9369](https://github.com/angular/material/commit/b4b9369))
* **panel:** loosen up bounds assessment ([#10651](https://github.com/angular/material/issues/10651)) ([27d0f7c](https://github.com/angular/material/commit/27d0f7c))
* **tooltip:** changing direction causes invalid position ([#11087](https://github.com/angular/material/issues/11087)) ([89bd69b](https://github.com/angular/material/commit/89bd69b)), closes [#10405](https://github.com/angular/material/issues/10405)


### Features

* **swipe:** allow accessing the original currentTarget ([#10997](https://github.com/angular/material/issues/10997)) ([827990e](https://github.com/angular/material/commit/827990e))

#### Contributors

Thank you to the contributors who helped with the v1.1.7 release:

[<img alt="Splaktar" src="https://avatars1.githubusercontent.com/u/3506071?v=4&s=117" width="117">](https://github.com/Splaktar) |[<img alt="oliversalzburg" src="https://avatars2.githubusercontent.com/u/1658949?v=4&s=117" width="117">](https://github.com/oliversalzburg) |[<img alt="mmalerba" src="https://avatars1.githubusercontent.com/u/14793288?v=4&s=117" width="117">](https://github.com/mmalerba) |[<img alt="cgx" src="https://avatars2.githubusercontent.com/u/1088448?v=4&s=117" width="117">](https://github.com/cgx) |[<img alt="gillyb" src="https://avatars3.githubusercontent.com/u/1319502?v=4&s=117" width="117">](https://github.com/gillyb) |
:---: |:---: |:---: |:---: |:---: |
[Splaktar](https://github.com/Splaktar) |[oliversalzburg](https://github.com/oliversalzburg) |[mmalerba](https://github.com/mmalerba) |[cgx](https://github.com/cgx) |[gillyb](https://github.com/gillyb) |

<a name="1.1.6"></a>
## [1.1.6](https://github.com/angular/material/compare/v1.1.5...v1.1.6) (2018-01-16)


### Bug Fixes

* **compiler:** assign bindings to controller instance when using an ES6 ([#10977](https://github.com/angular/material/issues/10977)) ([f4b19fe](https://github.com/angular/material/commit/f4b19fe))
* **icon:** fix malformed HTML in tests ([#10792](https://github.com/angular/material/issues/10792)) ([0bac462](https://github.com/angular/material/commit/0bac462)), closes [#10785](https://github.com/angular/material/issues/10785)
* **select:** add closing tag for native select ([#10833](https://github.com/angular/material/issues/10833)) ([3b59b20](https://github.com/angular/material/commit/3b59b20)), closes [#10828](https://github.com/angular/material/issues/10828)
* **select multiple:** set the element dirty when the selected options change ([#10749](https://github.com/angular/material/issues/10749)) ([7256670](https://github.com/angular/material/commit/7256670)), closes [#10584](https://github.com/angular/material/issues/10584)
* **slider:** role was applied to inner element instead of the directive itself ([#10731](https://github.com/angular/material/issues/10731)) ([bbb719d](https://github.com/angular/material/commit/bbb719d)), closes [#10565](https://github.com/angular/material/issues/10565)
* **theming:** don't assume selector corresponds to expression ([#10818](https://github.com/angular/material/issues/10818)) ([f1e4fcb](https://github.com/angular/material/commit/f1e4fcb)), closes [#10793](https://github.com/angular/material/issues/10793)
* **truncate:** remove controllerAs and bindToController directive attributes ([#10798](https://github.com/angular/material/issues/10798)) ([a91c99a](https://github.com/angular/material/commit/a91c99a)), closes [#10356](https://github.com/angular/material/issues/10356)


### Features

* **datepicker:** add the ability to restrict users to a calendar view ([#9736](https://github.com/angular/material/issues/9736)) ([eecc976](https://github.com/angular/material/commit/eecc976)), closes [#9260](https://github.com/angular/material/issues/9260)

#### Contributors

Thank you to the excellent contributors who helped with the v1.1.6 release:

[<img alt="crisbeto" src="https://avatars0.githubusercontent.com/u/4450522?v=4&s=117" width="117">](https://github.com/crisbeto) |[<img alt="jelbourn" src="https://avatars3.githubusercontent.com/u/838736?v=4&s=117" width="117">](https://github.com/jelbourn) |[<img alt="EladBezalel" src="https://avatars3.githubusercontent.com/u/6004537?v=4&s=117" width="117">](https://github.com/EladBezalel) |[<img alt="Splaktar" src="https://avatars1.githubusercontent.com/u/3506071?v=4&s=117" width="117">](https://github.com/Splaktar) |[<img alt="alopezsanchez" src="https://avatars3.githubusercontent.com/u/15221596?v=4&s=117" width="117">](https://github.com/alopezsanchez) |[<img alt="Phoqe" src="https://avatars3.githubusercontent.com/u/7033377?v=4&s=117" width="117">](https://github.com/Phoqe) |
:---: |:---: |:---: |:---: |:---: |:---: |
[crisbeto](https://github.com/crisbeto) |[jelbourn](https://github.com/jelbourn) |[EladBezalel](https://github.com/EladBezalel) |[Splaktar](https://github.com/Splaktar) |[alopezsanchez](https://github.com/alopezsanchez) |[Phoqe](https://github.com/Phoqe) |

[<img alt="oliversalzburg" src="https://avatars2.githubusercontent.com/u/1658949?v=4&s=117" width="117">](https://github.com/oliversalzburg) |[<img alt="graingert" src="https://avatars3.githubusercontent.com/u/413772?v=4&s=117" width="117">](https://github.com/graingert) |[<img alt="dulynoded" src="https://avatars0.githubusercontent.com/u/11513504?v=4&s=117" width="117">](https://github.com/dulynoded) |[<img alt="Ardeshir81" src="https://avatars3.githubusercontent.com/u/5755214?v=4&s=117" width="117">](https://github.com/Ardeshir81) |[<img alt="beetlerom" src="https://avatars3.githubusercontent.com/u/1420091?v=4&s=117" width="117">](https://github.com/beetlerom) |[<img alt="davestacey" src="https://avatars3.githubusercontent.com/u/754281?v=4&s=117" width="117">](https://github.com/davestacey) |
:---: |:---: |:---: |:---: |:---: |:---: |
[oliversalzburg](https://github.com/oliversalzburg) |[graingert](https://github.com/graingert) |[dulynoded](https://github.com/dulynoded) |[Ardeshir81](https://github.com/Ardeshir81) |[beetlerom](https://github.com/beetlerom) |[davestacey](https://github.com/davestacey) |

[<img alt="phistuck" src="https://avatars0.githubusercontent.com/u/184400?v=4&s=117" width="117">](https://github.com/phistuck) |[<img alt="wangsha" src="https://avatars0.githubusercontent.com/u/221029?v=4&s=117" width="117">](https://github.com/wangsha) |[<img alt="alphatwit" src="https://avatars1.githubusercontent.com/u/3231066?v=4&s=117" width="117">](https://github.com/alphatwit) |[<img alt="andrewseguin" src="https://avatars3.githubusercontent.com/u/22898577?v=4&s=117" width="117">](https://github.com/andrewseguin) |
:---: |:---: |:---: |:---: |
[phistuck](https://github.com/phistuck) |[wangsha](https://github.com/wangsha) |[alphatwit](https://github.com/alphatwit) |[andrewseguin](https://github.com/andrewseguin) |

<a name="1.1.5"></a>
## [1.1.5](https://github.com/angular/material/compare/v1.1.4...v1.1.5) (2017-09-06)


### Bug Fixes

* **autocomplete:** allow clear button even if directive is disabled ([#10603](https://github.com/angular/material/issues/10603)) ([2602e7b](https://github.com/angular/material/commit/2602e7b))
* **calendar:** conform to CSP. ([#10519](https://github.com/angular/material/issues/10519)) ([e1345ae](https://github.com/angular/material/commit/e1345ae)), closes [#10389](https://github.com/angular/material/issues/10389)
* **demo:** fix the disable ink bar checkbox ([#10423](https://github.com/angular/material/issues/10423)) ([f8deb0e](https://github.com/angular/material/commit/f8deb0e))
* **dialog:** add check that scrollmask is present ([#10708](https://github.com/angular/material/issues/10708)) ([590b684](https://github.com/angular/material/commit/590b684))
* **dialog:** generate `aria-label` with dialog title (if exists) when `.ariaLabel()` is not specified ([#10735](https://github.com/angular/material/issues/10735)) ([2247248](https://github.com/angular/material/commit/2247248)), closes [#10582](https://github.com/angular/material/issues/10582)
* **gesture:** unable to move text cursor and tap away on mobile ([#10821](https://github.com/angular/material/issues/10821)) ([baa869a](https://github.com/angular/material/commit/baa869a)), closes [#10301](https://github.com/angular/material/issues/10301) [#5365](https://github.com/angular/material/issues/5365)
* **gestures:** fix the swipe and scrolling issues on touch devices ([#10455](https://github.com/angular/material/issues/10455)) ([17f09dc](https://github.com/angular/material/commit/17f09dc)), closes [#10187](https://github.com/angular/material/issues/10187) [#10145](https://github.com/angular/material/issues/10145)
* **input:** correct initial animation state of messages ([#10246](https://github.com/angular/material/issues/10246)) ([0151b4b](https://github.com/angular/material/commit/0151b4b)), closes [#6767](https://github.com/angular/material/issues/6767) [#9543](https://github.com/angular/material/issues/9543) [#9723](https://github.com/angular/material/issues/9723) [#10240](https://github.com/angular/material/issues/10240)
* **input:** fix placeholder text being read twice by screen readers ([#10524](https://github.com/angular/material/issues/10524)) ([71cd3e9](https://github.com/angular/material/commit/71cd3e9))
* **list:** add `rel` to copied attributes for `md-list-item` buttons [#10351](https://github.com/angular/material/issues/10351) ([#10352](https://github.com/angular/material/issues/10352)) ([241bbc4](https://github.com/angular/material/commit/241bbc4))
* **menu:** prevent menu from being larger than the viewport ([#10729](https://github.com/angular/material/issues/10729)) ([f823c83](https://github.com/angular/material/commit/f823c83))
* **panel:** correctly reverse x-position in RTL ([#10710](https://github.com/angular/material/issues/10710)) ([d3d0c5d](https://github.com/angular/material/commit/d3d0c5d)), closes [#10536](https://github.com/angular/material/issues/10536)
* **panel:** fix propagateContainerEvents ([#10497](https://github.com/angular/material/issues/10497)) ([281504f](https://github.com/angular/material/commit/281504f)), closes [#10495](https://github.com/angular/material/issues/10495)
* **progress-linear-theme:** add md-primary support to progress-linear buffer mode ([#10563](https://github.com/angular/material/issues/10563)) ([9430a7c](https://github.com/angular/material/commit/9430a7c))
* **select:** accessibility fixes allowing screen readers (VoiceOver) to ([#10760](https://github.com/angular/material/issues/10760)) ([28d4bf2](https://github.com/angular/material/commit/28d4bf2))
* **select:** unable to reopen if element was destroyed while closing ([#10556](https://github.com/angular/material/issues/10556)) ([93c2917](https://github.com/angular/material/commit/93c2917)), closes [#10453](https://github.com/angular/material/issues/10453)
* **tabs:** accessibility and keyboard interaction fixes ([#10706](https://github.com/angular/material/issues/10706)) ([072f832](https://github.com/angular/material/commit/072f832)), closes [#10075](https://github.com/angular/material/issues/10075)
* **tabs:** add proper RTL support. ([#9301](https://github.com/angular/material/issues/9301)) ([338ca27](https://github.com/angular/material/commit/338ca27)), closes [#9292](https://github.com/angular/material/issues/9292)
* **tabs:** allow right and left arrows to cycle through tabs ([#10786](https://github.com/angular/material/issues/10786)) ([bf6e567](https://github.com/angular/material/commit/bf6e567))
* **tabs:** hide md-tab-content elements entirely when inactive. ([#10776](https://github.com/angular/material/issues/10776)) ([c886286](https://github.com/angular/material/commit/c886286))
* **util:** scrollTop set on proper scroll target ([#10549](https://github.com/angular/material/issues/10549)) ([c1b715f](https://github.com/angular/material/commit/c1b715f)), closes [#10272](https://github.com/angular/material/issues/10272) [#10432](https://github.com/angular/material/issues/10432)
* **virtual-repeater:** add role="presentation" to structural divs to fix screen reader interactions ([#10812](https://github.com/angular/material/issues/10812)) ([72f930b](https://github.com/angular/material/commit/72f930b))
* **virtualRepeat:** fix datepicker scroll to wrong current date ([#10537](https://github.com/angular/material/issues/10537)) ([4e579dd](https://github.com/angular/material/commit/4e579dd))


### Features

* **gesture:** allow to change maxClickDistance through setMaxClickDistance ([#10498](https://github.com/angular/material/issues/10498)) ([29ef510](https://github.com/angular/material/commit/29ef510)), closes [#10492](https://github.com/angular/material/issues/10492)
* **prompt:** implement "required" flag for prompt dialogs ([#10626](https://github.com/angular/material/issues/10626)) ([2015ae8](https://github.com/angular/material/commit/2015ae8)), closes [#10135](https://github.com/angular/material/issues/10135)
* **$mdCompiler:** respect preAssignBindingsEnabled state ([#10726](https://github.com/angular/material/issues/10726)) ([fa997b9](https://github.com/angular/material/commit/fa997b9)), closes [#10016](https://github.com/angular/material/issues/10016)


----

###### $mdCompiler


The `$mdCompiler` is able to respect the AngularJS `preAssignBindingsEnabled` state when using AngularJS 1.5.10 or higher.

To enable/disable whether Material-specific (dialogs/toasts) controllers respect the AngularJS `$compile.preAssignBindingsEnabled` flag, call the AngularJS Material method: `$mdCompilerProvider.respectPreAssignBindingsEnabled(true/false)`. 

This AngularJS Material *flag* doesn't affect directives/components created via regular AngularJS methods which constitute most Material & user-created components. 

Only dynamic construction of elements such as Dialogs, Toast, BottomSheet, etc. may be affected. Invoking `$mdCompilerProvider.respectPreAssignBindingsEnabled(true)` will make **bindings** in Material custom components like `$mdDialog` or `$mdToast` only available in controller constructors.

*  By default `respectPreAssignBindingsEnabled === false`
*  With AngularJS 1.6 or newer, `respectPreAssignBindingsEnabled === true` as the default.
*  With AngularJS >=1.5.10 <1.6.0, developers can use `$compilerProvider.preAssignBindingsEnabled(false)` to enforce this.

The `$mdCompiler` now also understands the the `$onInit` lifecycle hooks in controllers.
> Note that no other AngularJS 1.5+ lifecycle hooks are supported currently.


```js
// Using the default value `preAssignBindingsEnabled == false`

$mdDialog.show({
  locals: {
    myVar: true
  },
  controller: MyController,
  bindToController: true
}

function MyController() {
  // No locals from Angular Material are set yet. e.g myVar is undefined.
}

MyController.prototype.$onInit = function() {
  // Bindings are now set in the $onInit lifecycle hook.
}
```


<a name="1.1.4"></a>
## [AngularJS Material 1.1.4](https://github.com/angular/material/compare/v1.1.3...v1.1.4) (2017-04-20)


### Bug Fixes

* **autocomplete:** incorrect evaluation of available space in viewport ([#9999](https://github.com/angular/material/issues/9999)) ([9f198c9](https://github.com/angular/material/commit/9f198c9))
* **checkbox:** click handling when ngCheckbox is set ([#10468](https://github.com/angular/material/issues/10468)) ([#10472](https://github.com/angular/material/issues/10472)) ([69a0d8b](https://github.com/angular/material/commit/69a0d8b))
* **chips:** failing unit tests against Angular 1.3 ([#10224](https://github.com/angular/material/issues/10224)) ([1095899](https://github.com/angular/material/commit/1095899))
* **core:** eliminates many (but not all) redundant rules in layout CSS ([#10509](https://github.com/angular/material/issues/10509)) ([90b64fe](https://github.com/angular/material/commit/90b64fe))
* **gridList:** RTL Layout ([#2996](https://github.com/angular/material/issues/2996)) ([#10178](https://github.com/angular/material/issues/10178)) ([8ab7dd9](https://github.com/angular/material/commit/8ab7dd9))
* **icon:** fix aria roles and attributes ([#10024](https://github.com/angular/material/issues/10024)) ([f0facb2](https://github.com/angular/material/commit/f0facb2)), closes [#9629](https://github.com/angular/material/issues/9629)
* **layout:** trim attribute values before use ([#10462](https://github.com/angular/material/issues/10462)) ([fa02e4e](https://github.com/angular/material/commit/fa02e4e)), closes [#10426](https://github.com/angular/material/issues/10426)
* **mdGesture:** fix form submit via enter/go button on iOS ([#3990](https://github.com/angular/material/issues/3990)) ([#10189](https://github.com/angular/material/issues/10189)) ([eecc541](https://github.com/angular/material/commit/eecc541))
* **mdSelect:** fix theme change dynamically ([#10152](https://github.com/angular/material/issues/10152)) ([ed10a6e](https://github.com/angular/material/commit/ed10a6e)), closes [#9894](https://github.com/angular/material/issues/9894)
* **mdTooltip:** Tooltip parent aria label override ([#10464](https://github.com/angular/material/issues/10464)) ([6c209b9](https://github.com/angular/material/commit/6c209b9)), closes [#10242](https://github.com/angular/material/issues/10242)
* **panel:** use class instead of style attribute ([#10321](https://github.com/angular/material/issues/10321)) ([976f557](https://github.com/angular/material/commit/976f557)), closes [#10085](https://github.com/angular/material/issues/10085)
* **select:** allow non-english characters for keyboard selection. ([#8893](https://github.com/angular/material/issues/8893)) ([89538d6](https://github.com/angular/material/commit/89538d6)), closes [#7730](https://github.com/angular/material/issues/7730)
* **tabs:** fix long tab content not scrolling ([#10586](https://github.com/angular/material/issues/10586)) ([562b1c9](https://github.com/angular/material/commit/562b1c9))
* **tooltip:** resolve expressions against correct scope ([#10596](https://github.com/angular/material/issues/10596)) ([3d87453](https://github.com/angular/material/commit/3d87453))
* **tooltip:** use different attribute to track setting of aria-label ([#10600](https://github.com/angular/material/issues/10600)) ([471c225](https://github.com/angular/material/commit/471c225))
* **virtualRepeat:** DOM manipulation may alter scroll ([#10177](https://github.com/angular/material/issues/10177)) ([25aeb0d](https://github.com/angular/material/commit/25aeb0d)), closes [#10144](https://github.com/angular/material/issues/10144)


### Features

* **datepicker:** allow date strings as the source for ng-model ([#9554](https://github.com/angular/material/issues/9554)) ([e7de21d](https://github.com/angular/material/commit/e7de21d)), closes [#6253](https://github.com/angular/material/issues/6253) [#9535](https://github.com/angular/material/issues/9535)
* **navBar:** Add missing styling for md-primary and md-accent ([#10204](https://github.com/angular/material/issues/10204)) ([2cd5018](https://github.com/angular/material/commit/2cd5018)), closes [#8827](https://github.com/angular/material/issues/8827)



<a name="1.1.3"></a>
## [Angular Material 1.1.3](https://github.com/angular/material/compare/v1.1.2...v1.1.3) (2017-01-31)

### Bug Fixes

* **gestures:** slider and swipe touch ([#10314](https://github.com/angular/material/issues/10314)) ([b2562cf](https://github.com/angular/material/commit/b2562cf)), closes [#10294](https://github.com/angular/material/issues/10294) [#10187](https://github.com/angular/material/issues/10187) [#10145](https://github.com/angular/material/issues/10145)
* **select:** don't override initial model value ([#10273](https://github.com/angular/material/issues/10273)) ([2240114](https://github.com/angular/material/commit/2240114))

<a name="1.1.2"></a>
## [Angular Material 1.1.2](https://github.com/angular/material/compare/g3_v0_x...v1.1.2) (2017-01-30)

### Features

* **autocomplete:** add md-autocomplete-snap="width" ([#7750](https://github.com/angular/material/issues/7750)) ([1e45c44](https://github.com/angular/material/commit/1e45c44))
* **autocomplete:** add md-dropdown-position option ([#9774](https://github.com/angular/material/issues/9774)) ([1ed298b](https://github.com/angular/material/commit/1ed298b)), closes [#9769](https://github.com/angular/material/issues/9769)
* **autocomplete:** allow developers to specify amount of dropdown items. ([#9307](https://github.com/angular/material/issues/9307)) ([b114302](https://github.com/angular/material/commit/b114302)), closes [#9306](https://github.com/angular/material/issues/9306) [#8751](https://github.com/angular/material/issues/8751)
* **autocomplete:** option to toggle the clear button ([#9892](https://github.com/angular/material/issues/9892)) ([70cecda](https://github.com/angular/material/commit/70cecda)), closes [#4841](https://github.com/angular/material/issues/4841) [#2727](https://github.com/angular/material/issues/2727)
* **autocomplete:** pass md-input-max/min-length to the input with non-floating label ([#9964](https://github.com/angular/material/issues/9964)) ([388a340](https://github.com/angular/material/commit/388a340))
* **autocomplete:** support ng-trim on the underlaying input ([#9496](https://github.com/angular/material/issues/9496)) ([0032184](https://github.com/angular/material/commit/0032184)), closes [#4492](https://github.com/angular/material/issues/4492)
* **button:** add md-dense support ([#9313](https://github.com/angular/material/issues/9313)) ([25dd787](https://github.com/angular/material/commit/25dd787))
* **checkbox/switch:** add support for animating ng-messages ([#9473](https://github.com/angular/material/issues/9473)) ([4006f53](https://github.com/angular/material/commit/4006f53)), closes [#9430](https://github.com/angular/material/issues/9430)
* **compiler:** pass $element to controller instantiation ([#9516](https://github.com/angular/material/issues/9516)) ([be038d1](https://github.com/angular/material/commit/be038d1)), closes [#9507](https://github.com/angular/material/issues/9507)
* **compiler:** support for content elements ([#9551](https://github.com/angular/material/issues/9551)) ([dfe1a00](https://github.com/angular/material/commit/dfe1a00))
* **datepicker:** allow the date locale to be overwritten on a per element basis ([#9749](https://github.com/angular/material/issues/9749)) ([a090079](https://github.com/angular/material/commit/a090079)), closes [#9270](https://github.com/angular/material/issues/9270)
* **dialog:** extended theme inheritance of dialogs ([#9762](https://github.com/angular/material/issues/9762)) ([b7ae33e](https://github.com/angular/material/commit/b7ae33e))
* **interaction:** added service to detect last interaction ([#7965](https://github.com/angular/material/issues/7965)) ([24370e7](https://github.com/angular/material/commit/24370e7)), closes [#5563](https://github.com/angular/material/issues/5563) [#5434](https://github.com/angular/material/issues/5434) [#5583](https://github.com/angular/material/issues/5583)
* **interimElement:** properly handle multiple interims. ([#9053](https://github.com/angular/material/issues/9053)) ([421fed4](https://github.com/angular/material/commit/421fed4)), closes [#8624](https://github.com/angular/material/issues/8624) [#8630](https://github.com/angular/material/issues/8630)
* **list:** add class to disable proxy elements. ([#9470](https://github.com/angular/material/issues/9470)) ([ad82012](https://github.com/angular/material/commit/ad82012)), closes [#9423](https://github.com/angular/material/issues/9423)
* **md-nav-item:** support for `ui-sref-opts` on `md-nav-item` ([#9782](https://github.com/angular/material/issues/9782)) ([af041da](https://github.com/angular/material/commit/af041da)), closes [#9481](https://github.com/angular/material/issues/9481)
* **menu:** expose close method on element scope; deprecate $mdOpenMenu ([#9193](https://github.com/angular/material/issues/9193)) ([1e4ba35](https://github.com/angular/material/commit/1e4ba35)), closes [#8446](https://github.com/angular/material/issues/8446)
* **navBar:** option to disable ink bar ([#9866](https://github.com/angular/material/issues/9866)) ([97cbe69](https://github.com/angular/material/commit/97cbe69)), closes [#9862](https://github.com/angular/material/issues/9862)
* **panel:** add contentElement option ([#9829](https://github.com/angular/material/issues/9829)) ([3034237](https://github.com/angular/material/commit/3034237)), closes [#9757](https://github.com/angular/material/issues/9757)
* **panel:** add hook for close success. ([#9819](https://github.com/angular/material/issues/9819)) ([db90283](https://github.com/angular/material/commit/db90283))
* **panel:** add interceptors API and onClose hook ([#9574](https://github.com/angular/material/issues/9574)) ([96e5409](https://github.com/angular/material/commit/96e5409)), closes [#9557](https://github.com/angular/material/issues/9557)
* **panel:** add the ability to update the animation of an existing panel ([#9895](https://github.com/angular/material/issues/9895)) ([a6f0de7](https://github.com/angular/material/commit/a6f0de7))
* **panel:** allow panels to be part of multiple groups. ([#9830](https://github.com/angular/material/issues/9830)) ([80e87b5](https://github.com/angular/material/commit/80e87b5)), closes [#9565](https://github.com/angular/material/issues/9565)
* **panel:** allow passing in a function to the offset methods ([#9615](https://github.com/angular/material/issues/9615)) ([0896ba3](https://github.com/angular/material/commit/0896ba3)), closes [#9608](https://github.com/angular/material/issues/9608)
* **panel:** configurable animation duration ([#9570](https://github.com/angular/material/issues/9570)) ([bee04f3](https://github.com/angular/material/commit/bee04f3)), closes [#9177](https://github.com/angular/material/issues/9177)
* **panel:** panel grouping ([#9538](https://github.com/angular/material/issues/9538)) ([62df3c8](https://github.com/angular/material/commit/62df3c8)), closes [#8971](https://github.com/angular/material/issues/8971)
* **panel:** panel provider ([#10215](https://github.com/angular/material/issues/10215)) ([a169f6f](https://github.com/angular/material/commit/a169f6f)), closes [#10006](https://github.com/angular/material/issues/10006) [#10162](https://github.com/angular/material/issues/10162)
* **switch:** add attribute to invert ([#8205](https://github.com/angular/material/issues/8205)) ([ca06402](https://github.com/angular/material/commit/ca06402)), closes [#7889](https://github.com/angular/material/issues/7889)
* **themes:** register theme on the fly ([#9475](https://github.com/angular/material/issues/9475)) ([7090a1f](https://github.com/angular/material/commit/
Download .txt
gitextract_pok300ue/

├── .circleci/
│   └── config.yml
├── .clang-format
├── .editorconfig
├── .eslintignore
├── .eslintrc.json
├── .github/
│   ├── CONTRIBUTING.md
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug.md
│   │   ├── config.yml
│   │   └── docs.md
│   ├── PULL_REQUEST_TEMPLATE.md
│   └── workflows/
│       └── codeql-analysis.yml
├── .gitignore
├── .jshintrc
├── .mailmap
├── .nvmrc
├── .vscode/
│   ├── README.md
│   ├── extensions.json
│   └── settings.json
├── CHANGELOG.md
├── LICENSE
├── README.md
├── SECURITY.md
├── config/
│   ├── .jshintrc
│   ├── build.config.js
│   ├── karma-circleci.conf.js
│   ├── karma-docs.conf.js
│   ├── karma-jenkins.conf.js
│   ├── karma-sauce.conf.js
│   ├── karma-travis.conf.js
│   ├── karma.conf.js
│   ├── ngModuleData.js
│   └── sauce-browsers.json
├── docs/
│   ├── README.md
│   ├── app/
│   │   ├── css/
│   │   │   ├── highlightjs-material.css
│   │   │   ├── layout-demo.css
│   │   │   └── style.css
│   │   ├── js/
│   │   │   ├── anchor.js
│   │   │   ├── app.js
│   │   │   ├── codepen.js
│   │   │   ├── css-api-table.js
│   │   │   ├── demo.js
│   │   │   ├── demoInclude.js
│   │   │   ├── highlight-angular.js
│   │   │   ├── highlight.pack.js
│   │   │   ├── ngPanel.js
│   │   │   ├── preload.js
│   │   │   └── scripts.js
│   │   ├── partials/
│   │   │   ├── contributors.tmpl.html
│   │   │   ├── demo.tmpl.html
│   │   │   ├── docs-demo.tmpl.html
│   │   │   ├── getting-started.tmpl.html
│   │   │   ├── home.tmpl.html
│   │   │   ├── layout-alignment.tmpl.html
│   │   │   ├── layout-children.tmpl.html
│   │   │   ├── layout-container.tmpl.html
│   │   │   ├── layout-introduction.tmpl.html
│   │   │   ├── layout-options.tmpl.html
│   │   │   ├── layout-tips.tmpl.html
│   │   │   ├── license.tmpl.html
│   │   │   ├── menu-link.tmpl.html
│   │   │   ├── menu-toggle.tmpl.html
│   │   │   └── view-source.tmpl.html
│   │   └── svg-assets-cache.js
│   ├── config/
│   │   ├── index.js
│   │   ├── processors/
│   │   │   ├── buildConfig.js
│   │   │   ├── componentsData.js
│   │   │   ├── content.js
│   │   │   └── indexPage.js
│   │   └── template/
│   │       ├── build-config.js
│   │       ├── constant-data.template.js
│   │       ├── demo-index.template.html
│   │       ├── index.template.html
│   │       ├── ngdoc/
│   │       │   ├── api/
│   │       │   │   ├── api.template.html
│   │       │   │   ├── componentGroup.template.html
│   │       │   │   ├── directive.template.html
│   │       │   │   ├── filter.template.html
│   │       │   │   ├── function.template.html
│   │       │   │   ├── input.template.html
│   │       │   │   ├── module.template.html
│   │       │   │   ├── object.template.html
│   │       │   │   ├── provider.template.html
│   │       │   │   ├── service.template.html
│   │       │   │   └── type.template.html
│   │       │   ├── base.template.html
│   │       │   ├── content.template.html
│   │       │   └── lib/
│   │       │       ├── events.template.html
│   │       │       ├── macros.html
│   │       │       ├── methods.template.html
│   │       │       ├── params.template.html
│   │       │       ├── properties.template.html
│   │       │       ├── returns.template.html
│   │       │       └── this.template.html
│   │       ├── readme.template.html
│   │       └── template.json
│   ├── content/
│   │   ├── CSS/
│   │   │   ├── button.md
│   │   │   ├── checkbox.md
│   │   │   └── typography.md
│   │   ├── Theming/
│   │   │   ├── 01_introduction.md
│   │   │   ├── 02_declarative_syntax.md
│   │   │   ├── 03_configuring_a_theme.md
│   │   │   ├── 04_multiple_themes.md
│   │   │   ├── 05_under_the_hood.md
│   │   │   └── 06_browser_color.md
│   │   ├── migration.md
│   │   └── performance/
│   │       └── internet-explorer.md
│   ├── guides/
│   │   ├── BUILD.md
│   │   ├── CODEPEN.md
│   │   ├── CODING.md
│   │   ├── COMMIT_LEVELS.md
│   │   ├── MERGE_REQUESTS.md
│   │   ├── PULL_REQUESTS.md
│   │   └── THEMES_IMPL_NOTES.md
│   ├── gulpfile.js
│   └── spec/
│       ├── codepen.spec.js
│       └── demo.spec.js
├── gulp/
│   ├── .jshintrc
│   ├── config.js
│   ├── const.js
│   ├── tasks/
│   │   ├── build-all-modules.js
│   │   ├── build-contributors.js
│   │   ├── build-demo.js
│   │   ├── build-js.js
│   │   ├── build-module-demo.js
│   │   ├── build-scss.js
│   │   ├── build.js
│   │   ├── changelog.js
│   │   ├── ddescribe-iit.js
│   │   ├── default.js
│   │   ├── docs.js
│   │   ├── jshint.js
│   │   ├── karma-fast.js
│   │   ├── karma-sauce.js
│   │   ├── karma-watch.js
│   │   ├── karma.js
│   │   ├── server.js
│   │   ├── site.js
│   │   ├── validate.js
│   │   ├── watch-demo.js
│   │   └── watch.js
│   └── util.js
├── gulpfile.js
├── package.json
├── release
├── release.js
├── scripts/
│   ├── bower-material-release.sh
│   ├── build-asset-cache.sh
│   ├── circleci/
│   │   ├── run-tests.sh
│   │   └── update-snapshot-and-docs.sh
│   ├── fetch-angular-version.sh
│   ├── find-max-version.js
│   ├── gulp-utils.js
│   ├── sauce/
│   │   ├── setup-tunnel.sh
│   │   ├── stop-tunnel.sh
│   │   └── wait-tunnel.sh
│   ├── snapshot-docs-site.sh
│   ├── test-versions.sh
│   ├── utils.inc
│   └── write-presubmit-scheduler.js
├── src/
│   ├── components/
│   │   ├── autocomplete/
│   │   │   ├── autocomplete-theme.scss
│   │   │   ├── autocomplete.js
│   │   │   ├── autocomplete.scss
│   │   │   ├── autocomplete.spec.js
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   └── script.js
│   │   │   ├── demoCustomTemplate/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.global.css
│   │   │   ├── demoFloatingLabel/
│   │   │   │   ├── index.html
│   │   │   │   └── script.js
│   │   │   ├── demoInsideDialog/
│   │   │   │   ├── dialog.tmpl.html
│   │   │   │   ├── index.html
│   │   │   │   └── script.js
│   │   │   ├── demoRepeatMode/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.global.css
│   │   │   └── js/
│   │   │       ├── autocompleteController.js
│   │   │       ├── autocompleteDirective.js
│   │   │       ├── autocompleteParentScopeDirective.js
│   │   │       ├── highlightController.js
│   │   │       └── highlightDirective.js
│   │   ├── backdrop/
│   │   │   ├── backdrop-theme.scss
│   │   │   ├── backdrop.js
│   │   │   └── backdrop.scss
│   │   ├── bottomSheet/
│   │   │   ├── bottom-sheet-theme.scss
│   │   │   ├── bottom-sheet.js
│   │   │   ├── bottom-sheet.scss
│   │   │   ├── bottom-sheet.spec.js
│   │   │   └── demoBasicUsage/
│   │   │       ├── bottom-sheet-grid-template.html
│   │   │       ├── bottom-sheet-list-template.html
│   │   │       ├── index.html
│   │   │       ├── readme.html
│   │   │       ├── script.js
│   │   │       └── style.css
│   │   ├── button/
│   │   │   ├── button-theme.scss
│   │   │   ├── button.js
│   │   │   ├── button.scss
│   │   │   ├── button.spec.js
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   └── demoDense/
│   │   │       ├── index.html
│   │   │       ├── script.js
│   │   │       └── style.css
│   │   ├── card/
│   │   │   ├── card-theme.scss
│   │   │   ├── card.js
│   │   │   ├── card.scss
│   │   │   ├── card.spec.js
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── demoCardActionButtons/
│   │   │   │   ├── index.html
│   │   │   │   └── script.js
│   │   │   └── demoInCardActions/
│   │   │       ├── index.html
│   │   │       └── script.js
│   │   ├── checkbox/
│   │   │   ├── checkbox-theme.scss
│   │   │   ├── checkbox.js
│   │   │   ├── checkbox.scss
│   │   │   ├── checkbox.spec.js
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── demoLabels/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── demoSelectAll/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   └── demoSyncing/
│   │   │       ├── index.html
│   │   │       ├── script.js
│   │   │       └── style.css
│   │   ├── chips/
│   │   │   ├── chips-theme.scss
│   │   │   ├── chips.js
│   │   │   ├── chips.scss
│   │   │   ├── chips.spec.js
│   │   │   ├── contact-chips.spec.js
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   ├── readme.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.scss
│   │   │   ├── demoContactChips/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.scss
│   │   │   ├── demoCustomInputs/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── demoCustomSeparatorKeys/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.scss
│   │   │   ├── demoStaticChips/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── demoValidation/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.scss
│   │   │   └── js/
│   │   │       ├── chipController.js
│   │   │       ├── chipDirective.js
│   │   │       ├── chipRemoveDirective.js
│   │   │       ├── chipTranscludeDirective.js
│   │   │       ├── chipsController.js
│   │   │       ├── chipsDirective.js
│   │   │       ├── contactChipsController.js
│   │   │       └── contactChipsDirective.js
│   │   ├── colors/
│   │   │   ├── colors.js
│   │   │   ├── colors.spec.js
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   ├── regularCard.tmpl.html
│   │   │   │   ├── script.js
│   │   │   │   ├── style.css
│   │   │   │   └── userCard.tmpl.html
│   │   │   └── demoThemePicker/
│   │   │       ├── index.html
│   │   │       ├── script.js
│   │   │       ├── style.css
│   │   │       └── themePreview.tmpl.html
│   │   ├── content/
│   │   │   ├── content-theme.scss
│   │   │   ├── content.js
│   │   │   ├── content.scss
│   │   │   ├── content.spec.js
│   │   │   └── demoBasicUsage/
│   │   │       ├── index.html
│   │   │       ├── script.js
│   │   │       └── style.css
│   │   ├── datepicker/
│   │   │   ├── calendar-theme.scss
│   │   │   ├── calendar.scss
│   │   │   ├── datePicker-theme.scss
│   │   │   ├── datePicker.js
│   │   │   ├── datePicker.scss
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   └── script.js
│   │   │   ├── demoCalendar/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.scss
│   │   │   ├── demoMoment/
│   │   │   │   ├── index.html
│   │   │   │   └── script.js
│   │   │   ├── demoMomentCustomFormat/
│   │   │   │   ├── index.html
│   │   │   │   └── script.js
│   │   │   ├── demoNgModelOptionsTimezone/
│   │   │   │   ├── index.html
│   │   │   │   └── script.js
│   │   │   ├── demoValidations/
│   │   │   │   ├── index.html
│   │   │   │   └── script.js
│   │   │   └── js/
│   │   │       ├── calendar.js
│   │   │       ├── calendar.spec.js
│   │   │       ├── calendarMonth.js
│   │   │       ├── calendarMonthBody.js
│   │   │       ├── calendarYear.js
│   │   │       ├── calendarYearBody.js
│   │   │       ├── dateLocale.spec.js
│   │   │       ├── dateLocaleProvider.js
│   │   │       ├── dateUtil.js
│   │   │       ├── dateUtil.spec.js
│   │   │       ├── datepickerDirective.js
│   │   │       └── datepickerDirective.spec.js
│   │   ├── dialog/
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── dialog1.tmpl.html
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   ├── style.css
│   │   │   │   └── tabDialog.tmpl.html
│   │   │   ├── demoOpenFromCloseTo/
│   │   │   │   ├── index.html
│   │   │   │   └── script.js
│   │   │   ├── demoThemeInheritance/
│   │   │   │   ├── dialog1.tmpl.html
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── dialog-theme.scss
│   │   │   ├── dialog.js
│   │   │   ├── dialog.scss
│   │   │   └── dialog.spec.js
│   │   ├── divider/
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   └── script.js
│   │   │   ├── divider-theme.scss
│   │   │   ├── divider.js
│   │   │   └── divider.scss
│   │   ├── fabActions/
│   │   │   ├── fabActions.js
│   │   │   └── fabActions.spec.js
│   │   ├── fabSpeedDial/
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.scss
│   │   │   ├── demoMoreOptions/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.scss
│   │   │   ├── fabController.js
│   │   │   ├── fabSpeedDial-theme.scss
│   │   │   ├── fabSpeedDial.js
│   │   │   ├── fabSpeedDial.scss
│   │   │   └── fabSpeedDial.spec.js
│   │   ├── fabToolbar/
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.scss
│   │   │   ├── fabToolbar.js
│   │   │   ├── fabToolbar.scss
│   │   │   └── fabToolbar.spec.js
│   │   ├── gridList/
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── styles.css
│   │   │   ├── demoDynamicTiles/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.scss
│   │   │   ├── demoResponsiveUsage/
│   │   │   │   ├── index.html
│   │   │   │   └── script.js
│   │   │   ├── grid-list.js
│   │   │   ├── grid-list.scss
│   │   │   └── grid-list.spec.js
│   │   ├── icon/
│   │   │   ├── demoFontIconsWithClassnames/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── demoFontIconsWithLigatures/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── demoLoadSvgIconsFromUrl/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── demoSvgIconSets/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── demoUsingTemplateRequest/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── icon-theme.scss
│   │   │   ├── icon.js
│   │   │   ├── icon.scss
│   │   │   ├── icon.spec.js
│   │   │   └── js/
│   │   │       ├── iconDirective.js
│   │   │       └── iconService.js
│   │   ├── input/
│   │   │   ├── _input-variables.scss
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   └── script.js
│   │   │   ├── demoErrors/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── demoErrorsAdvanced/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── demoIcons/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.scss
│   │   │   ├── demoInlineForm/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.scss
│   │   │   ├── input-animations.spec.js
│   │   │   ├── input-theme.scss
│   │   │   ├── input.js
│   │   │   ├── input.scss
│   │   │   └── input.spec.js
│   │   ├── list/
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── demoListControls/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── list-theme.scss
│   │   │   ├── list.js
│   │   │   ├── list.scss
│   │   │   └── list.spec.js
│   │   ├── menu/
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── demoCustomTrigger/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── demoMenuDensity/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── demoMenuPositionModes/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── demoMenuWidth/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── js/
│   │   │   │   ├── menuController.js
│   │   │   │   ├── menuDirective.js
│   │   │   │   └── menuServiceProvider.js
│   │   │   ├── menu-theme.scss
│   │   │   ├── menu.js
│   │   │   ├── menu.scss
│   │   │   └── menu.spec.js
│   │   ├── menuBar/
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.scss
│   │   │   ├── demoDynamicNestedMenus/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.scss
│   │   │   ├── js/
│   │   │   │   ├── menuBarController.js
│   │   │   │   ├── menuBarDirective.js
│   │   │   │   ├── menuDividerDirective.js
│   │   │   │   ├── menuItemController.js
│   │   │   │   └── menuItemDirective.js
│   │   │   ├── menu-bar-theme.scss
│   │   │   ├── menu-bar.js
│   │   │   ├── menu-bar.scss
│   │   │   └── menu-bar.spec.js
│   │   ├── navBar/
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.scss
│   │   │   ├── navBar-theme.scss
│   │   │   ├── navBar.js
│   │   │   ├── navBar.scss
│   │   │   └── navBar.spec.js
│   │   ├── panel/
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   ├── panel.tmpl.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.global.css
│   │   │   ├── demoGroups/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.global.css
│   │   │   ├── demoPanelAnimations/
│   │   │   │   ├── index.html
│   │   │   │   ├── panel.tmpl.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.global.css
│   │   │   ├── demoPanelProvider/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.global.css
│   │   │   ├── demoReuse/
│   │   │   │   ├── index.html
│   │   │   │   ├── panel.tmpl.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.global.css
│   │   │   ├── panel-theme.scss
│   │   │   ├── panel.js
│   │   │   ├── panel.scss
│   │   │   └── panel.spec.js
│   │   ├── progressCircular/
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── js/
│   │   │   │   ├── progressCircularDirective.js
│   │   │   │   └── progressCircularProvider.js
│   │   │   ├── progress-circular-theme.scss
│   │   │   ├── progress-circular.js
│   │   │   ├── progress-circular.scss
│   │   │   └── progress-circular.spec.js
│   │   ├── progressLinear/
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── progress-linear-theme.scss
│   │   │   ├── progress-linear.js
│   │   │   ├── progress-linear.scss
│   │   │   └── progress-linear.spec.js
│   │   ├── radioButton/
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── demoMultiColumn/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── radio-button-theme.scss
│   │   │   ├── radio-button.js
│   │   │   ├── radio-button.scss
│   │   │   └── radio-button.spec.js
│   │   ├── select/
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── demoOptionGroups/
│   │   │   │   ├── index.html
│   │   │   │   └── script.js
│   │   │   ├── demoOptionsWithAsyncSearch/
│   │   │   │   ├── index.html
│   │   │   │   └── script.js
│   │   │   ├── demoSelectHeader/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── demoSelectedText/
│   │   │   │   ├── index.html
│   │   │   │   └── script.js
│   │   │   ├── demoTrackBy/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── demoValidations/
│   │   │   │   ├── index.html
│   │   │   │   └── script.js
│   │   │   ├── select-theme.scss
│   │   │   ├── select.js
│   │   │   ├── select.scss
│   │   │   └── select.spec.js
│   │   ├── showHide/
│   │   │   ├── showHide.js
│   │   │   └── showHide.spec.js
│   │   ├── sidenav/
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   └── script.js
│   │   │   ├── demoCustomSidenav/
│   │   │   │   ├── index.html
│   │   │   │   └── script.js
│   │   │   ├── demoDisableCloseEvents/
│   │   │   │   ├── index.html
│   │   │   │   └── script.js
│   │   │   ├── sidenav-theme.scss
│   │   │   ├── sidenav.js
│   │   │   ├── sidenav.scss
│   │   │   └── sidenav.spec.js
│   │   ├── slider/
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   └── script.js
│   │   │   ├── demoVertical/
│   │   │   │   ├── index.html
│   │   │   │   └── script.js
│   │   │   ├── slider-theme.scss
│   │   │   ├── slider.js
│   │   │   ├── slider.scss
│   │   │   └── slider.spec.js
│   │   ├── sticky/
│   │   │   ├── sticky.js
│   │   │   ├── sticky.scss
│   │   │   └── sticky.spec.js
│   │   ├── subheader/
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── subheader-theme.scss
│   │   │   ├── subheader.js
│   │   │   ├── subheader.scss
│   │   │   └── subheader.spec.js
│   │   ├── swipe/
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   ├── readme.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── swipe.js
│   │   │   └── swipe.scss
│   │   ├── switch/
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── switch-theme.scss
│   │   │   ├── switch.js
│   │   │   ├── switch.scss
│   │   │   └── switch.spec.js
│   │   ├── tabs/
│   │   │   ├── demoCenterTabs/
│   │   │   │   ├── index.html
│   │   │   │   ├── readme.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.scss
│   │   │   ├── demoDynamicHeight/
│   │   │   │   ├── index.html
│   │   │   │   ├── readme.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.scss
│   │   │   ├── demoDynamicTabs/
│   │   │   │   ├── index.html
│   │   │   │   ├── readme.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.scss
│   │   │   ├── demoStaticTabs/
│   │   │   │   ├── index.html
│   │   │   │   ├── readme.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.scss
│   │   │   ├── js/
│   │   │   │   ├── tabDirective.js
│   │   │   │   ├── tabItemDirective.js
│   │   │   │   ├── tabLabelDirective.js
│   │   │   │   ├── tabScroll.js
│   │   │   │   ├── tabsController.js
│   │   │   │   ├── tabsDirective.js
│   │   │   │   ├── tabsDummyWrapperDirective.js
│   │   │   │   └── tabsTemplateDirective.js
│   │   │   ├── tabs-theme.scss
│   │   │   ├── tabs.js
│   │   │   ├── tabs.scss
│   │   │   ├── tabs.spec.js
│   │   │   ├── tabsPaginationService.js
│   │   │   └── tabsPaginationService.spec.js
│   │   ├── toast/
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.scss
│   │   │   ├── demoCustomUsage/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   ├── style.scss
│   │   │   │   └── toast-template.html
│   │   │   ├── toast-theme.scss
│   │   │   ├── toast.js
│   │   │   ├── toast.scss
│   │   │   └── toast.spec.js
│   │   ├── toolbar/
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.scss
│   │   │   ├── demoInputsInToolbar/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.scss
│   │   │   ├── demoScrollShrink/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── toolbar-theme.scss
│   │   │   ├── toolbar.js
│   │   │   ├── toolbar.scss
│   │   │   └── toolbar.spec.js
│   │   ├── tooltip/
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   └── script.js
│   │   │   ├── tooltip-theme.scss
│   │   │   ├── tooltip.js
│   │   │   ├── tooltip.scss
│   │   │   └── tooltip.spec.js
│   │   ├── truncate/
│   │   │   ├── demoBasicUsage/
│   │   │   │   ├── index.html
│   │   │   │   └── style.scss
│   │   │   ├── truncate.js
│   │   │   ├── truncate.scss
│   │   │   └── truncate.spec.js
│   │   ├── virtualRepeat/
│   │   │   ├── demoDeferredLoading/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── demoHorizontalUsage/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── demoInfiniteScroll/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── demoScrollTo/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── demoVerticalUsage/
│   │   │   │   ├── index.html
│   │   │   │   ├── script.js
│   │   │   │   └── style.css
│   │   │   ├── virtual-repeater.js
│   │   │   ├── virtual-repeater.scss
│   │   │   └── virtual-repeater.spec.js
│   │   └── whiteframe/
│   │       ├── demoBasicClassUsage/
│   │       │   ├── index.html
│   │       │   ├── script.js
│   │       │   └── style.css
│   │       ├── demoDirectiveAttributeUsage/
│   │       │   ├── index.html
│   │       │   ├── script.js
│   │       │   └── style.css
│   │       ├── demoDirectiveInterpolation/
│   │       │   ├── index.html
│   │       │   ├── script.js
│   │       │   └── style.css
│   │       ├── whiteframe.js
│   │       ├── whiteframe.scss
│   │       └── whiteframe.spec.js
│   └── core/
│       ├── core.js
│       ├── core.spec.js
│       ├── services/
│       │   ├── aria/
│       │   │   ├── aria.js
│       │   │   └── aria.spec.js
│       │   ├── compiler/
│       │   │   ├── compiler.js
│       │   │   └── compiler.spec.js
│       │   ├── gesture/
│       │   │   ├── gesture.js
│       │   │   └── gesture.spec.js
│       │   ├── interaction/
│       │   │   ├── interaction.js
│       │   │   └── interaction.spec.js
│       │   ├── interimElement/
│       │   │   ├── interimElement.js
│       │   │   └── interimElement.spec.js
│       │   ├── layout/
│       │   │   ├── ie_fixes.css
│       │   │   ├── layout-attributes.scss
│       │   │   ├── layout.js
│       │   │   ├── layout.scss
│       │   │   └── layout.spec.js
│       │   ├── liveAnnouncer/
│       │   │   ├── live-announcer.js
│       │   │   └── live-announcer.spec.js
│       │   ├── meta/
│       │   │   ├── meta.js
│       │   │   └── meta.spec.js
│       │   ├── registry/
│       │   │   ├── componentRegistry.js
│       │   │   └── componentRegistry.spec.js
│       │   ├── ripple/
│       │   │   ├── button_ripple.js
│       │   │   ├── button_ripple.spec.js
│       │   │   ├── checkbox_ripple.js
│       │   │   ├── checkbox_ripple.spec.js
│       │   │   ├── list_ripple.js
│       │   │   ├── list_ripple.spec.js
│       │   │   ├── ripple.js
│       │   │   ├── ripple.spec.js
│       │   │   ├── tab_ripple.js
│       │   │   └── tab_ripple.spec.js
│       │   └── theming/
│       │       ├── theme.palette.js
│       │       ├── theming.js
│       │       └── theming.spec.js
│       ├── style/
│       │   ├── _mixins.scss
│       │   ├── _modules.scss
│       │   ├── _variables.scss
│       │   ├── core-theme.scss
│       │   ├── layout.scss
│       │   ├── structure.scss
│       │   └── typography.scss
│       └── util/
│           ├── animation/
│           │   ├── animate.js
│           │   ├── animate.spec.js
│           │   ├── animateCss.js
│           │   └── animateCss.spec.js
│           ├── autofocus.js
│           ├── autofocus.spec.js
│           ├── color.js
│           ├── constant.js
│           ├── iterator.js
│           ├── iterator.spec.js
│           ├── media.js
│           ├── media.spec.js
│           ├── prefixer.js
│           ├── prefixer.spec.js
│           ├── util.js
│           └── util.spec.js
├── start-hook.sh
├── test/
│   ├── .jshintrc
│   ├── angular-material-mocks.js
│   └── angular-material-spec.js
├── updateVersionPicker.js
└── watch-hook.sh
Download .txt
SYMBOL INDEX (644 symbols across 212 files)

FILE: config/ngModuleData.js
  constant MATERIAL_ONLY (line 15) | const MATERIAL_ONLY = /\.module\(['|"](material\.[a-zA-Z\-.]*)['|"]\s*,(...
  constant ANY (line 16) | const ANY = /\.module\(('[^']*'|"[^"]*")\s*,(?:\s*\[([^\]]+)])?/;
  function buildScanner (line 21) | function buildScanner(pattern) {

FILE: docs/app/js/anchor.js
  function MdAnchorDirective (line 9) | function MdAnchorDirective($mdUtil, $compile, $rootScope) {

FILE: docs/app/js/app.js
  function sortByName (line 365) | function sortByName(a,b) {
  function removeCurrentVersion (line 393) | function removeCurrentVersion (version) {
  function getAllVersions (line 400) | function getAllVersions () {
  function getVersionFullString (line 417) | function getVersionFullString (version) {
  function getCurrentVersion (line 422) | function getCurrentVersion () {
  function getVersionIdFromPath (line 431) | function getVersionIdFromPath () {
  function onLocationChange (line 461) | function onLocationChange() {
  function closeMenu (line 662) | function closeMenu() {
  function openMenu (line 666) | function openMenu() {
  function path (line 670) | function path() {
  function scrollTop (line 674) | function scrollTop() {
  function goHome (line 678) | function goHome($event) {
  function openPage (line 683) | function openPage() {
  function focusMainContent (line 692) | function focusMainContent($event) {
  function isSelected (line 703) | function isSelected(page) {
  function isSectionSelected (line 707) | function isSectionSelected(section) {
  function isOpen (line 723) | function isOpen(section) {
  function toggleOpen (line 727) | function toggleOpen(section) {
  function updateState (line 890) | function updateState() {
  function setScroll (line 907) | function setScroll(key, scrollPostion) {
  function getScroll (line 911) | function getScroll(key) {

FILE: docs/app/js/codepen.js
  function Codepen (line 7) | function Codepen($demoAngularScripts, $document, codepenDataAdapter) {
  function CodepenDataAdapter (line 63) | function CodepenDataAdapter() {

FILE: docs/app/js/css-api-table.js
  function DocsCssApiTableDirective (line 6) | function DocsCssApiTableDirective() {
  function DocsCssSelectorDirective (line 28) | function DocsCssSelectorDirective() {

FILE: docs/app/js/demo.js
  function DocsDemoCtrl (line 15) | function DocsDemoCtrl($scope, $element, $attrs, $interpolate, codepen) {
  function compile (line 86) | function compile(element, attr) {

FILE: docs/app/js/demoInclude.js
  function postLink (line 11) | function postLink(scope, element, attr) {

FILE: docs/app/js/highlight-angular.js
  function render (line 37) | function render(contents, parent) {

FILE: docs/app/js/highlight.pack.js
  function _ (line 2) | function _(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replac...
  function d (line 2) | function d(e){return e.nodeName.toLowerCase()}
  function v (line 2) | function v(e,n){var t=e&&e.exec(n);return t&&0===t.index}
  function p (line 2) | function p(e){return n.test(e)}
  function l (line 2) | function l(e){var n,t={},r=Array.prototype.slice.call(arguments,1);for(n...
  function M (line 2) | function M(e){var a=[];return function e(n,t){for(var r=n.firstChild;r;r...
  function i (line 2) | function i(e){if(r&&!e.langApiRestored){for(var n in e.langApiRestored=!...
  function m (line 2) | function m(c){function s(e){return e&&e.source||e}function o(e,n){return...
  function C (line 2) | function C(e,n,o,t){function u(e,n,t,r){var a='<span class="'+(r?"":h.cl...
  function O (line 2) | function O(t,e){e=e||h.languages||u(N);var r={r:0,value:_(t)},a=r;return...
  function B (line 2) | function B(e){return h.tabReplace||h.useBR?e.replace(t,function(e,n){ret...
  function c (line 2) | function c(e){var n,t,r,a,i,c,o,u,s,l,f=function(e){var n,t,r,a,i=e.clas...
  function o (line 2) | function o(){if(!o.called){o.called=!0;var e=document.querySelectorAll("...
  function S (line 2) | function S(e){return e=(e||"").toLowerCase(),N[e]||N[g[e]]}
  function s (line 2) | function s(e){var n=S(e);return n&&!n.disableAutodetect}

FILE: docs/app/js/scripts.js
  function DemoAngularScripts (line 5) | function DemoAngularScripts(BUILDCONFIG) {

FILE: docs/config/processors/buildConfig.js
  function process (line 12) | function process(docs) {
  function getSHA (line 30) | function getSHA() {
  function getCommitDate (line 45) | function getCommitDate() {

FILE: docs/config/processors/componentsData.js
  function publicDocData (line 6) | function publicDocData(doc, extraData) {
  function coreServiceData (line 21) | function coreServiceData(doc, extraData) {
  function buildDocData (line 26) | function buildDocData(doc, extraData, descriptor) {
  function process (line 55) | function process(docs) {

FILE: docs/config/processors/indexPage.js
  function process (line 10) | function process(docs) {

FILE: docs/gulpfile.js
  function generateDemos (line 57) | function generateDemos() {

FILE: docs/spec/demo.spec.js
  function stubHttpRequestsForImages (line 72) | function stubHttpRequestsForImages() {

FILE: gulp/config.js
  constant VERSION (line 3) | const VERSION = argsVersion || currentVersion;

FILE: gulp/const.js
  function getBuildMode (line 14) | function getBuildMode () {

FILE: gulp/tasks/build-all-modules.js
  constant BUILD_MODE (line 1) | const BUILD_MODE = require('../const').BUILD_MODE;

FILE: gulp/tasks/build-contributors.js
  function exec (line 34) | function exec (cmd, userOptions) {

FILE: gulp/tasks/build-module-demo.js
  constant BUILD_MODE (line 1) | const BUILD_MODE = require('../const').BUILD_MODE;
  constant ROOT (line 2) | const ROOT = require('../const').ROOT;

FILE: gulp/tasks/build-scss.js
  constant IS_DEV (line 15) | const IS_DEV = require('../const').IS_DEV;
  function getPaths (line 105) | function getPaths() {

FILE: gulp/tasks/changelog.js
  constant ROOT (line 3) | const ROOT = require('../const').ROOT;
  constant SHA (line 4) | const SHA = require('../const').SHA;
  constant VERSION (line 5) | const VERSION = require('../const').VERSION;
  function getLatestTag (line 52) | function getLatestTag() {
  function getShortSha (line 66) | function getShortSha(sha) {

FILE: gulp/tasks/ddescribe-iit.js
  function disallowedIndex (line 16) | function disallowedIndex(largeString, disallowedString) {
  function checkFile (line 24) | function checkFile(fileContents, disallowed) {
  function repeat (line 71) | function repeat(c, len) {

FILE: gulp/tasks/docs.js
  constant IS_DEV (line 4) | const IS_DEV = constants.IS_DEV;

FILE: gulp/tasks/karma-fast.js
  constant ROOT (line 3) | const ROOT = require('../const').ROOT;

FILE: gulp/tasks/karma-sauce.js
  constant ROOT (line 1) | const ROOT = require('../const').ROOT;

FILE: gulp/tasks/karma-watch.js
  constant ROOT (line 1) | const ROOT = require('../const').ROOT;

FILE: gulp/tasks/karma.js
  constant ROOT (line 3) | const ROOT = require('../const').ROOT;

FILE: gulp/tasks/server.js
  constant LR_PORT (line 2) | const LR_PORT = require('../const').LR_PORT;

FILE: gulp/tasks/site.js
  constant LR_PORT (line 2) | const LR_PORT = require('../const').LR_PORT;

FILE: gulp/util.js
  constant VERSION (line 25) | const VERSION = constants.VERSION;
  constant BUILD_MODE (line 26) | const BUILD_MODE = constants.BUILD_MODE;
  constant IS_DEV (line 27) | const IS_DEV = constants.IS_DEV;
  constant ROOT (line 28) | const ROOT = constants.ROOT;
  function buildJs (line 44) | function buildJs() {
  function minifyCss (line 79) | function minifyCss(extraOptions) {
  function buildModule (line 98) | function buildModule(module, opts) {
  function readModuleArg (line 233) | function readModuleArg() {
  function filterLayoutAttrFiles (line 249) | function filterLayoutAttrFiles() {
  function filterNonCodeFiles (line 255) | function filterNonCodeFiles() {
  function themeBuildStream (line 262) | function themeBuildStream() {
  function dedupeCss (line 279) | function dedupeCss() {

FILE: release.js
  function build (line 40) | function build () {
  function validate (line 68) | function validate () {
  function checkoutVersionBranch (line 83) | function checkoutVersionBranch () {
  function updateVersion (line 91) | function updateVersion () {
  function createChangelog (line 107) | function createChangelog () {
  function clear (line 121) | function clear () {
  function getNewVersion (line 126) | function getNewVersion () {
  function tagRelease (line 192) | function tagRelease () {
  function commitChanges (line 201) | function commitChanges () {
  function cloneRepo (line 209) | function cloneRepo (repo) {
  function writeScript (line 218) | function writeScript (name, cmds) {
  function updateBowerVersion (line 224) | function updateBowerVersion () {
  function updateSite (line 271) | function updateSite () {
  function replaceFilePaths (line 346) | function replaceFilePaths () {
  function replaceBaseHref (line 357) | function replaceBaseHref (folder) {
  function updateMaster (line 366) | function updateMaster () {
  function header (line 400) | function header () {
  function center (line 408) | function center (msg) {
  function done (line 416) | function done () {
  function exec (line 426) | function exec (cmd, userOptions) {
  function comment (line 440) | function comment (msg) {
  function start (line 447) | function start (msg) {
  function log (line 454) | function log (msg) {
  function write (line 460) | function write (msg) {
  function line (line 465) | function line () {

FILE: scripts/find-max-version.js
  function findMaxVersion (line 31) | function findMaxVersion(branch, output) {

FILE: scripts/gulp-utils.js
  function copyAssetsFor (line 32) | function copyAssetsFor(demo, enc, next){
  function toDemoObject (line 85) | function toDemoObject(file) {
  function lookupPath (line 102) | function lookupPath() {
  function srcFiles (line 139) | function srcFiles(path) {
  function moduleNameToClosureName (line 198) | function moduleNameToClosureName(name) {

FILE: scripts/write-presubmit-scheduler.js
  function writeScheduleScript (line 58) | function writeScheduleScript(prs) {

FILE: src/components/autocomplete/autocomplete.spec.js
  function compile (line 11) | function compile(template, scope) {
  function createScope (line 21) | function createScope(items, scopeData, matchLowercase) {
  function keydownEvent (line 54) | function keydownEvent(keyCode) {
  function waitForVirtualRepeat (line 63) | function waitForVirtualRepeat() {
  function fakeItemMatch (line 2999) | function fakeItemMatch() {

FILE: src/components/autocomplete/demoBasicUsage/script.js
  function DemoCtrl (line 7) | function DemoCtrl ($timeout, $q, $log) {

FILE: src/components/autocomplete/demoCustomTemplate/script.js
  function DemoCtrl (line 7) | function DemoCtrl ($timeout, $q, $log) {

FILE: src/components/autocomplete/demoFloatingLabel/script.js
  function DemoCtrl (line 7) | function DemoCtrl ($timeout, $q) {

FILE: src/components/autocomplete/demoInsideDialog/script.js
  function DemoCtrl (line 7) | function DemoCtrl($mdDialog) {
  function DialogCtrl (line 22) | function DialogCtrl ($timeout, $q, $scope, $mdDialog) {

FILE: src/components/autocomplete/demoRepeatMode/script.js
  function DemoCtrl (line 7) | function DemoCtrl ($timeout, $q, $log) {

FILE: src/components/autocomplete/js/autocompleteController.js
  function MdAutocompleteCtrl (line 12) | function MdAutocompleteCtrl ($scope, $element, $mdUtil, $mdConstant, $md...

FILE: src/components/autocomplete/js/autocompleteDirective.js
  function MdAutocomplete (line 308) | function MdAutocomplete ($$mdSvgRegistry) {

FILE: src/components/autocomplete/js/autocompleteParentScopeDirective.js
  function MdAutocompleteItemScopeDirective (line 5) | function MdAutocompleteItemScopeDirective($compile, $mdUtil) {

FILE: src/components/autocomplete/js/highlightController.js
  function MdHighlightCtrl (line 5) | function MdHighlightCtrl ($scope, $element, $attrs, $mdUtil) {
  function appendToken (line 99) | function appendToken(from, to) {

FILE: src/components/autocomplete/js/highlightDirective.js
  function MdHighlight (line 34) | function MdHighlight ($interpolate, $parse) {

FILE: src/components/backdrop/backdrop.js
  function postLink (line 30) | function postLink(scope, element, attrs) {

FILE: src/components/bottomSheet/bottom-sheet.js
  function MdBottomSheetDirective (line 16) | function MdBottomSheetDirective($mdBottomSheet) {
  function MdBottomSheetProvider (line 197) | function MdBottomSheetProvider($$interimElementProvider) {

FILE: src/components/button/button.js
  function MdAnchorDirective (line 29) | function MdAnchorDirective($mdTheming) {
  function MdButtonDirective (line 118) | function MdButtonDirective($mdButtonInkRipple, $mdTheming, $mdAria, $mdI...

FILE: src/components/card/card.js
  function mdCardDirective (line 123) | function mdCardDirective($mdTheming) {

FILE: src/components/checkbox/checkbox.js
  function MdCheckboxDirective (line 60) | function MdCheckboxDirective(inputDirective, $mdAria, $mdConstant, $mdTh...

FILE: src/components/checkbox/checkbox.spec.js
  function compileAndLink (line 19) | function compileAndLink(template, opt_scope) {
  function isChecked (line 206) | function isChecked(checkboxElement) {

FILE: src/components/chips/chips.spec.js
  function createChips (line 792) | function createChips(template) {
  function updateInputCursor (line 814) | function updateInputCursor() {
  function buildChips (line 1779) | function buildChips(str) {
  function setupScopeForAutocomplete (line 1789) | function setupScopeForAutocomplete() {
  function simulateInputEnterKey (line 1800) | function simulateInputEnterKey(ctrl) {
  function getChipsElements (line 1809) | function getChipsElements(root) {
  function getChipElements (line 1813) | function getChipElements(root) {

FILE: src/components/chips/contact-chips.spec.js
  function buildChips (line 197) | function buildChips(str) {
  function keydownEvent (line 211) | function keydownEvent(keyCode, target) {

FILE: src/components/chips/demoBasicUsage/script.js
  function DemoCtrl (line 10) | function DemoCtrl ($timeout, $q, $log) {

FILE: src/components/chips/demoContactChips/script.js
  function DemoCtrl (line 16) | function DemoCtrl ($q, $timeout, $log, $mdConstant) {

FILE: src/components/chips/demoCustomInputs/script.js
  function DemoCtrl (line 7) | function DemoCtrl ($timeout, $q) {

FILE: src/components/chips/demoCustomSeparatorKeys/script.js
  function DemoCtrl (line 7) | function DemoCtrl ($mdConstant) {

FILE: src/components/chips/demoStaticChips/script.js
  function DemoCtrl (line 7) | function DemoCtrl ($timeout, $q) {

FILE: src/components/chips/demoValidation/script.js
  function ValidationCtrl (line 7) | function ValidationCtrl ($log) {

FILE: src/components/chips/js/chipController.js
  function MdChipCtrl (line 16) | function MdChipCtrl ($scope, $element, $mdConstant, $timeout, $mdUtil) {

FILE: src/components/chips/js/chipDirective.js
  function MdChip (line 33) | function MdChip($mdTheming, $mdUtil, $compile, $timeout) {

FILE: src/components/chips/js/chipRemoveDirective.js
  function MdChipRemove (line 51) | function MdChipRemove ($timeout) {

FILE: src/components/chips/js/chipTranscludeDirective.js
  function MdChipTransclude (line 5) | function MdChipTransclude ($compile) {

FILE: src/components/chips/js/chipsController.js
  function MdChipsCtrl (line 28) | function MdChipsCtrl ($scope, $attrs, $mdConstant, $log, $element, $time...

FILE: src/components/chips/js/chipsDirective.js
  function MdChips (line 281) | function MdChips ($mdTheming, $mdUtil, $compile, $log, $timeout, $$mdSvg...

FILE: src/components/chips/js/contactChipsController.js
  function MdContactChipsCtrl (line 9) | function MdContactChipsCtrl ($attrs, $element, $timeout) {

FILE: src/components/chips/js/contactChipsDirective.js
  function MdContactChips (line 140) | function MdContactChips($mdTheming, $mdUtil) {

FILE: src/components/colors/colors.js
  function MdColorsService (line 56) | function MdColorsService($mdTheming, $mdUtil, $log) {
  function MdColorsDirective (line 290) | function MdColorsDirective($mdColors, $mdUtil, $log, $parse) {

FILE: src/components/colors/colors.spec.js
  function buildColor (line 32) | function buildColor(red, green, blue, opacity) {
  function compile (line 41) | function compile(template) {
  function checkColorMode (line 49) | function checkColorMode() {
  function createElement (line 58) | function createElement(scope, options) {
  function setup (line 76) | function setup(options) {

FILE: src/components/content/content.js
  function mdContentDirective (line 53) | function mdContentDirective($mdTheming) {
  function iosScrollFix (line 73) | function iosScrollFix(node) {

FILE: src/components/datepicker/js/calendar.js
  function calendarDirective (line 51) | function calendarDirective(inputDirective) {
  function CalendarCtrl (line 110) | function CalendarCtrl($element, $scope, $$mdDateUtil, $mdUtil, $mdConsta...
  function setWidth (line 546) | function setWidth() {

FILE: src/components/datepicker/js/calendar.spec.js
  function applyDateChange (line 18) | function applyDateChange() {
  function extractRowText (line 34) | function extractRowText(tr) {
  function findCellByLabel (line 44) | function findCellByLabel(monthElement, day) {
  function findMonthElement (line 59) | function findMonthElement(element, date) {
  function findYearElement (line 74) | function findYearElement(parent, year) {
  function getGroupLabelForDateCell (line 94) | function getGroupLabelForDateCell(cell) {
  function createElement (line 99) | function createElement(parentScope, templateOverride) {
  function dispatchKeyEvent (line 116) | function dispatchKeyEvent(keyCode, opt_modifiers) {
  function getFocusedDateElement (line 131) | function getFocusedDateElement() {
  function compileElement (line 761) | function compileElement(attrs) {

FILE: src/components/datepicker/js/calendarMonth.js
  function calendarDirective (line 20) | function calendarDirective() {
  function CalendarMonthCtrl (line 61) | function CalendarMonthCtrl($element, $scope, $animate, $q,

FILE: src/components/datepicker/js/calendarMonthBody.js
  function mdCalendarMonthBodyDirective (line 13) | function mdCalendarMonthBodyDirective($compile, $$mdSvgRegistry) {
  function CalendarMonthBodyCtrl (line 49) | function CalendarMonthBodyCtrl($element, $$mdDateUtil, $mdDateLocale) {

FILE: src/components/datepicker/js/calendarYear.js
  function calendarDirective (line 14) | function calendarDirective() {
  function CalendarYearCtrl (line 50) | function CalendarYearCtrl($element, $scope, $animate, $q, $$mdDateUtil, ...

FILE: src/components/datepicker/js/calendarYearBody.js
  function mdCalendarYearDirective (line 11) | function mdCalendarYearDirective() {
  function CalendarYearBodyCtrl (line 39) | function CalendarYearBodyCtrl($element, $$mdDateUtil, $mdDateLocale) {

FILE: src/components/datepicker/js/dateLocaleProvider.js
  function DateLocaleProvider (line 113) | function DateLocaleProvider() {
  function defaultFormatDate (line 197) | function defaultFormatDate(date, timezone) {
  function defaultParseDate (line 222) | function defaultParseDate(dateString) {
  function defaultIsDateComplete (line 235) | function defaultIsDateComplete(dateString) {
  function defaultMonthHeaderFormatter (line 249) | function defaultMonthHeaderFormatter(date) {
  function defaultMonthFormatter (line 258) | function defaultMonthFormatter(date) {
  function defaultWeekNumberFormatter (line 267) | function defaultWeekNumberFormatter(number) {
  function defaultLongDateFormatter (line 276) | function defaultLongDateFormatter(date) {

FILE: src/components/datepicker/js/dateUtil.js
  function getFirstDateOfMonth (line 41) | function getFirstDateOfMonth(date) {
  function getNumberOfDaysInMonth (line 50) | function getNumberOfDaysInMonth(date) {
  function getDateInNextMonth (line 59) | function getDateInNextMonth(date) {
  function getDateInPreviousMonth (line 68) | function getDateInPreviousMonth(date) {
  function isSameMonthAndYear (line 78) | function isSameMonthAndYear(d1, d2) {
  function isSameDay (line 88) | function isSameDay(d1, d2) {
  function isInNextMonth (line 98) | function isInNextMonth(startDate, endDate) {
  function isInPreviousMonth (line 109) | function isInPreviousMonth(startDate, endDate) {
  function getDateMidpoint (line 120) | function getDateMidpoint(d1, d2) {
  function getWeekOfMonth (line 129) | function getWeekOfMonth(date) {
  function incrementDays (line 140) | function incrementDays(date, numberOfDays) {
  function incrementMonths (line 152) | function incrementMonths(date, numberOfMonths) {
  function getMonthDistance (line 177) | function getMonthDistance(start, end) {
  function getLastDateOfMonth (line 186) | function getLastDateOfMonth(date) {
  function isValidDate (line 195) | function isValidDate(date) {
  function setDateTimeToMidnight (line 203) | function setDateTimeToMidnight(date) {
  function createDateAtMidnight (line 216) | function createDateAtMidnight(opt_value) {
  function isDateWithinRange (line 236) | function isDateWithinRange(date, minDate, maxDate) {
  function incrementYears (line 251) | function incrementYears(date, numberOfYears) {
  function getYearDistance (line 264) | function getYearDistance(start, end) {
  function clampDate (line 275) | function clampDate(date, minDate, maxDate) {
  function getTimestampFromNode (line 291) | function getTimestampFromNode(node) {
  function isMonthWithinRange (line 304) | function isMonthWithinRange(date, minDate, maxDate) {
  function removeLocalTzAndReparseDate (line 316) | function removeLocalTzAndReparseDate(value) {

FILE: src/components/datepicker/js/datepickerDirective.js
  function datePickerDirective (line 90) | function datePickerDirective($$mdSvgRegistry, $mdUtil, $mdAria, inputDir...
  function DatePickerCtrl (line 278) | function DatePickerCtrl($scope, $element, $attrs, $window, $mdConstant, ...
  function reset (line 930) | function reset() {

FILE: src/components/datepicker/js/datepickerDirective.spec.js
  function createDatepickerInstance (line 46) | function createDatepickerInstance(template) {
  function populateInputElement (line 60) | function populateInputElement(inputString) {
  function getMaskLength (line 707) | function getMaskLength() {
  function compileElement (line 855) | function compileElement(attrs) {

FILE: src/components/dialog/demoBasicUsage/script.js
  function DialogController (line 99) | function DialogController($scope, $mdDialog) {

FILE: src/components/dialog/demoThemeInheritance/script.js
  function DialogController (line 36) | function DialogController($scope, $mdDialog) {

FILE: src/components/dialog/dialog.js
  function MdDialogDirective (line 50) | function MdDialogDirective($$rAF, $mdTheming, $mdDialog) {
  function MdDialogProvider (line 544) | function MdDialogProvider($$interimElementProvider) {

FILE: src/components/dialog/dialog.spec.js
  function onShowing (line 885) | function onShowing(scope, element, options) {
  function hasConfigurationMethods (line 2012) | function hasConfigurationMethods(preset, methods) {

FILE: src/components/divider/divider.js
  function MdDividerDirective (line 29) | function MdDividerDirective($mdTheming) {

FILE: src/components/fabActions/fabActions.js
  function MdFabActionsDirective (line 27) | function MdFabActionsDirective($mdUtil) {

FILE: src/components/fabActions/fabActions.spec.js
  function build (line 7) | function build(template) {

FILE: src/components/fabSpeedDial/fabController.js
  function MdFabController (line 7) | function MdFabController($scope, $element, $animate, $mdUtil, $mdConstan...

FILE: src/components/fabSpeedDial/fabSpeedDial.js
  function MdFabSpeedDialDirective (line 98) | function MdFabSpeedDialDirective() {
  function MdFabSpeedDialFlingAnimation (line 120) | function MdFabSpeedDialFlingAnimation($timeout) {
  function MdFabSpeedDialScaleAnimation (line 211) | function MdFabSpeedDialScaleAnimation($timeout) {

FILE: src/components/fabSpeedDial/fabSpeedDial.spec.js
  function build (line 179) | function build(template) {

FILE: src/components/fabToolbar/fabToolbar.js
  function MdFabToolbarDirective (line 74) | function MdFabToolbarDirective() {
  function MdFabToolbarAnimation (line 104) | function MdFabToolbarAnimation() {

FILE: src/components/fabToolbar/fabToolbar.spec.js
  function build (line 7) | function build(template) {

FILE: src/components/gridList/demoDynamicTiles/script.js
  function buildGridModel (line 12) | function buildGridModel(tileTmpl){

FILE: src/components/gridList/demoResponsiveUsage/script.js
  function randomColor (line 19) | function randomColor() {
  function randomSpan (line 23) | function randomSpan() {

FILE: src/components/gridList/grid-list.js
  function GridListDirective (line 96) | function GridListDirective($interpolate, $mdConstant, $mdGridLayout, $md...
  function GridListController (line 432) | function GridListController($mdUtil) {
  function GridLayoutFactory (line 465) | function GridLayoutFactory($mdUtil) {
  function GridTileDirective (line 718) | function GridTileDirective($mdMedia) {
  function GridTileCaptionDirective (line 763) | function GridTileCaptionDirective() {

FILE: src/components/icon/icon.spec.js
  function make (line 374) | function make(html) {
  function clean (line 384) | function clean(style) {
  function updateDefaults (line 673) | function updateDefaults(svg) {

FILE: src/components/icon/js/iconDirective.js
  function mdIconDirective (line 194) | function mdIconDirective($mdIcon, $mdTheming, $mdAria, $sce) {

FILE: src/components/icon/js/iconService.js
  function MdIconProvider (line 272) | function MdIconProvider() {
  function ConfigurationItem (line 343) | function ConfigurationItem(url, viewBoxSize) {
  function MdIconService (line 389) | function MdIconService(config, $templateRequest, $q, $log, $mdUtil, $sce) {

FILE: src/components/input/input-animations.spec.js
  function performInputAnimationTests (line 22) | function performInputAnimationTests() {
  function performCheckboxAnimationTests (line 133) | function performCheckboxAnimationTests() {
  function compile (line 198) | function compile(template) {
  function setFoo (line 209) | function setFoo(value) {
  function getError (line 214) | function getError() {
  function expectError (line 218) | function expectError(element, message) {
  function flush (line 222) | function flush() {
  function injectGlobals (line 233) | function injectGlobals() {
  function setupVariables (line 252) | function setupVariables() {
  function teardown (line 257) | function teardown() {

FILE: src/components/input/input.js
  function mdInputContainerDirective (line 133) | function mdInputContainerDirective($mdTheming, $parse, $$rAF) {
  function labelDirective (line 219) | function labelDirective() {
  function inputTextareaDirective (line 366) | function inputTextareaDirective($mdUtil, $window, $mdAria, $timeout, $md...
  function mdMaxlengthDirective (line 692) | function mdMaxlengthDirective($animate, $mdUtil) {
  function placeholderDirective (line 792) | function placeholderDirective($compile) {
  function mdSelectOnFocusDirective (line 879) | function mdSelectOnFocusDirective($document, $timeout) {
  function ngMessagesDirective (line 933) | function ngMessagesDirective() {
  function ngMessageDirective (line 966) | function ngMessageDirective($mdUtil) {
  function mdInputInvalidMessagesAnimation (line 1015) | function mdInputInvalidMessagesAnimation($$AnimateRunner, $animateCss, $...
  function ngMessagesAnimation (line 1027) | function ngMessagesAnimation($$AnimateRunner, $animateCss, $mdUtil) {
  function ngMessageAnimation (line 1057) | function ngMessageAnimation($$AnimateRunner, $animateCss, $mdUtil, $log) {
  function showInputMessages (line 1075) | function showInputMessages(element, done) {
  function hideInputMessages (line 1094) | function hideInputMessages(element, done) {
  function showMessage (line 1113) | function showMessage(element) {
  function hideMessage (line 1137) | function hideMessage(element) {
  function getInputElement (line 1156) | function getInputElement(element) {
  function getMessagesElement (line 1162) | function getMessagesElement(element) {
  function saveSharedServices (line 1179) | function saveSharedServices(_$$AnimateRunner_, _$animateCss_, _$mdUtil_) {

FILE: src/components/input/input.spec.js
  function setup (line 16) | function setup(attrs, isForm) {
  function compile (line 35) | function compile(template) {
  function getCharCounter (line 254) | function getCharCounter(el) {
  function isTextSelected (line 794) | function isTextSelected(input) {
  function createAndAppendElement (line 823) | function createAndAppendElement(attrs) {

FILE: src/components/list/list.js
  function mdListDirective (line 38) | function mdListDirective($mdTheming) {
  function mdListItemDirective (line 239) | function mdListItemDirective($mdAria, $mdConstant, $mdUtil, $timeout) {
  function MdListController (line 631) | function MdListController($scope, $element, $mdListInkRipple) {

FILE: src/components/list/list.spec.js
  function setup (line 24) | function setup(html) {

FILE: src/components/menu/js/menuController.js
  function MenuController (line 10) | function MenuController($mdMenu, $attrs, $element, $scope, $mdUtil, $tim...

FILE: src/components/menu/js/menuDirective.js
  function MenuDirective (line 206) | function MenuDirective($mdUtil) {

FILE: src/components/menu/js/menuServiceProvider.js
  function MenuProvider (line 15) | function MenuProvider($$interimElementProvider) {

FILE: src/components/menu/menu.spec.js
  function createInvalidMenu (line 31) | function createInvalidMenu() {
  function createInvalidMenu (line 43) | function createInvalidMenu() {
  function createValidMenu (line 55) | function createValidMenu() {
  function itClosesWithAttributes (line 329) | function itClosesWithAttributes(types) {
  function setup (line 364) | function setup(buttonAttrs, scope) {
  function createFakeMenuController (line 458) | function createFakeMenuController() {
  function getOpenMenuContainer (line 474) | function getOpenMenuContainer(el) {
  function openMenu (line 488) | function openMenu(el, triggerType) {
  function closeMenu (line 493) | function closeMenu() {
  function waitForMenuOpen (line 500) | function waitForMenuOpen() {
  function waitForMenuClose (line 506) | function waitForMenuClose() {
  function pressKey (line 512) | function pressKey(el, code) {

FILE: src/components/menuBar/js/menuBarController.js
  function MenuBarController (line 11) | function MenuBarController($scope, $rootScope, $element, $attrs, $mdCons...

FILE: src/components/menuBar/js/menuBarDirective.js
  function MenuBarDirective (line 103) | function MenuBarDirective($mdUtil, $mdTheming) {

FILE: src/components/menuBar/js/menuDividerDirective.js
  function MenuDividerDirective (line 7) | function MenuDividerDirective() {

FILE: src/components/menuBar/js/menuItemController.js
  function MenuItemController (line 10) | function MenuItemController($scope, $element, $attrs) {
  function isSelected (line 74) | function isSelected() {
  function setDisabled (line 83) | function setDisabled(disabled) {

FILE: src/components/menuBar/js/menuItemDirective.js
  function MenuItemDirective (line 7) | function MenuItemDirective($mdUtil, $mdConstant, $$mdSvgRegistry) {

FILE: src/components/menuBar/menu-bar.spec.js
  function getOpenSubMenu (line 107) | function getOpenSubMenu() {
  function getLastOpenSubMenu (line 166) | function getLastOpenSubMenu() {
  function openSubMenu (line 262) | function openSubMenu(index) {
  function getOpenSubMenu (line 281) | function getOpenSubMenu() {
  function getNumberOfOpenMenus (line 288) | function getNumberOfOpenMenus() {
  function pressKey (line 293) | function pressKey(el, code) {
  function setup (line 300) | function setup() {
  function mockButtonAtIndex (line 404) | function mockButtonAtIndex(index) {
  function setup (line 475) | function setup() {
  function setup (line 500) | function setup() {
  function setup (line 511) | function setup(attrs) {
  function setup (line 562) | function setup(attrs) {
  function setupMenuItem (line 615) | function setupMenuItem(attrs) {
  function waitForMenuOpen (line 633) | function waitForMenuOpen() {
  function waitForMenuClose (line 639) | function waitForMenuClose() {

FILE: src/components/navBar/demoBasicUsage/script.js
  function AppCtrl (line 7) | function AppCtrl($scope) {

FILE: src/components/navBar/navBar.js
  function MdNavBar (line 84) | function MdNavBar($mdAria, $mdTheming, $window, $mdUtil) {
  function MdNavBarController (line 147) | function MdNavBarController($element, $scope, $timeout, $mdConstant) {
  function MdNavItem (line 538) | function MdNavItem($mdAria, $$rAF, $mdUtil, $window) {
  function MdNavItemController (line 684) | function MdNavItemController($element) {

FILE: src/components/navBar/navBar.spec.js
  function create (line 24) | function create(template) {
  function createTabs (line 35) | function createTabs() {
  function getTab (line 437) | function getTab(tabName) {
  function getTabCtrl (line 441) | function getTabCtrl(tabName) {
  function getInkbarEl (line 445) | function getInkbarEl() {
  function updateSelectedTabRoute (line 449) | function updateSelectedTabRoute(newRoute) {

FILE: src/components/panel/demoBasicUsage/script.js
  function BasicDemoCtrl (line 9) | function BasicDemoCtrl($mdPanel) {
  function PanelDialogCtrl (line 91) | function PanelDialogCtrl(mdPanelRef) {
  function PanelMenuCtrl (line 104) | function PanelMenuCtrl(mdPanelRef, $timeout) {
  function indexOf (line 163) | function indexOf(nodeList, element) {

FILE: src/components/panel/demoGroups/script.js
  function PanelGroupsCtrl (line 9) | function PanelGroupsCtrl($mdPanel) {
  function PanelMenuCtrl (line 134) | function PanelMenuCtrl(mdPanelRef) {

FILE: src/components/panel/demoPanelAnimations/script.js
  function AnimationCtrl (line 9) | function AnimationCtrl($mdPanel) {
  function DialogCtrl (line 98) | function DialogCtrl(mdPanelRef) {

FILE: src/components/panel/demoPanelProvider/script.js
  function PanelProviderConfig (line 18) | function PanelProviderConfig($mdPanelProvider) {
  function PanelProviderCtrl (line 47) | function PanelProviderCtrl($mdPanel) {
  function PanelMenuCtrl (line 100) | function PanelMenuCtrl(mdPanelRef) {

FILE: src/components/panel/demoReuse/script.js
  function ReuseDemoCtrl (line 8) | function ReuseDemoCtrl($mdPanel) {
  function ReusePanelCtrl (line 82) | function ReusePanelCtrl(mdPanelRef) {

FILE: src/components/panel/panel.js
  function MdPanelProvider (line 881) | function MdPanelProvider() {
  function definePreset (line 901) | function definePreset(name, preset) {
  function getAllPresets (line 923) | function getAllPresets() {
  function clearPresets (line 931) | function clearPresets() {
  function $getProvider (line 946) | function $getProvider() {
  function coerceToArray (line 960) | function coerceToArray(value) {
  function MdPanelService (line 981) | function MdPanelService(presets, $rootElement, $rootScope, $injector, $w...
  function MdPanelRef (line 1310) | function MdPanelRef(config, $injector) {
  function MdPanelPosition (line 2419) | function MdPanelPosition($injector) {
  function MdPanelAnimation (line 3024) | function MdPanelAnimation($injector) {
  function toSeconds (line 3119) | function toSeconds(value) {
  function getElement (line 3349) | function getElement(el) {
  function getComputedTranslations (line 3361) | function getComputedTranslations(el, property) {
  function validatePosition (line 3388) | function validatePosition(positionMap, value) {
  function addUnits (line 3415) | function addUnits(value) {

FILE: src/components/panel/panel.spec.js
  function Ctrl (line 1726) | function Ctrl() {
  function setRTL (line 1755) | function setRTL() {
  function disableRTL (line 1759) | function disableRTL() {
  function makePromise (line 3191) | function makePromise(value) {
  function makePromise (line 3216) | function makePromise(value, shouldFail) {
  function attachToBody (line 3437) | function attachToBody(el) {
  function getElement (line 3448) | function getElement(el) {
  function clickPanelContainer (line 3453) | function clickPanelContainer(container) {
  function pressEscape (line 3473) | function pressEscape() {
  function openPanel (line 3494) | function openPanel(preset, opt_config) {
  function closePanel (line 3516) | function closePanel() {
  function showPanel (line 3521) | function showPanel() {
  function hidePanel (line 3526) | function hidePanel() {
  function flushPanel (line 3531) | function flushPanel() {
  function getNumberOfGroups (line 3536) | function getNumberOfGroups() {
  function getGroupPanels (line 3540) | function getGroupPanels(groupName) {
  function getGroupOpenPanels (line 3544) | function getGroupOpenPanels(groupName) {
  function getGroupMaxOpen (line 3548) | function getGroupMaxOpen(groupName) {

FILE: src/components/progressCircular/js/progressCircularDirective.js
  function MdProgressCircularDirective (line 51) | function MdProgressCircularDirective($window, $mdProgressCircular, $mdTh...

FILE: src/components/progressCircular/js/progressCircularProvider.js
  function MdProgressCircularProvider (line 42) | function MdProgressCircularProvider() {

FILE: src/components/progressCircular/progress-circular.spec.js
  function buildIndicator (line 138) | function buildIndicator(template) {

FILE: src/components/progressLinear/progress-linear.js
  function MdProgressLinearDirective (line 60) | function MdProgressLinearDirective($mdTheming, $mdUtil, $log) {

FILE: src/components/progressLinear/progress-linear.spec.js
  function makeElement (line 5) | function makeElement(attrs) {

FILE: src/components/radioButton/radio-button.js
  function mdRadioGroupDirective (line 52) | function mdRadioGroupDirective($mdUtil, $mdConstant, $mdTheming, $timeou...
  function mdRadioButtonDirective (line 294) | function mdRadioButtonDirective($mdAria, $mdUtil, $mdTheming) {

FILE: src/components/radioButton/radio-button.spec.js
  function rightArrow (line 362) | function rightArrow() {

FILE: src/components/select/select.js
  function SelectDirective (line 159) | function SelectDirective($mdSelect, $mdUtil, $mdConstant, $mdTheming, $m...
  function SelectMenuDirective (line 672) | function SelectMenuDirective($parse, $mdUtil, $mdConstant, $mdTheming) {
  function OptionDirective (line 1225) | function OptionDirective($mdButtonInkRipple, $mdUtil, $mdTheming) {
  function OptionController (line 1375) | function OptionController($element) {
  function OptgroupDirective (line 1449) | function OptgroupDirective() {
  function SelectHeaderDirective (line 1482) | function SelectHeaderDirective() {
  function SelectProvider (line 1488) | function SelectProvider($$interimElementProvider) {
  function shouldHandleKey (line 2157) | function shouldHandleKey(ev, $mdConstant) {

FILE: src/components/select/select.spec.js
  function setupSelect (line 1760) | function setupSelect(attrs, options, skipLabel, scope, optCompileOpts, n...
  function setupSelectMultiple (line 1778) | function setupSelectMultiple(attrs, options, skipLabel, scope) {
  function optTemplate (line 1791) | function optTemplate(options, compileOpts, ngSelectedExpression) {
  function selectedOptions (line 1807) | function selectedOptions(el) {
  function openSelect (line 1818) | function openSelect(el) {
  function closeSelect (line 1831) | function closeSelect() {
  function pressKeyByCode (line 1839) | function pressKeyByCode(el, code, customEvent) {
  function pressKey (line 1848) | function pressKey(el, key, customEvent) {
  function clickOption (line 1857) | function clickOption(select, index) {
  function expectSelectClosed (line 1872) | function expectSelectClosed() {
  function expectSelectOpen (line 1882) | function expectSelectOpen() {

FILE: src/components/showHide/showHide.js
  function createDirective (line 16) | function createDirective(name, targetValue) {

FILE: src/components/sidenav/demoBasicUsage/script.js
  function debounce (line 14) | function debounce(func, wait, context) {
  function buildDelayedToggler (line 32) | function buildDelayedToggler(navID) {
  function buildToggler (line 43) | function buildToggler(navID) {

FILE: src/components/sidenav/demoCustomSidenav/script.js
  function buildToggler (line 6) | function buildToggler(componentId) {

FILE: src/components/sidenav/demoDisableCloseEvents/script.js
  function buildToggler (line 6) | function buildToggler(componentId) {

FILE: src/components/sidenav/sidenav.js
  function SidenavService (line 72) | function SidenavService($mdComponentRegistry, $mdUtil, $q, $log) {
  function SidenavDirective (line 230) | function SidenavDirective($mdMedia, $mdUtil, $mdConstant, $mdTheming, $m...
  function SidenavController (line 496) | function SidenavController($scope, $attrs, $mdComponentRegistry, $q, $in...

FILE: src/components/sidenav/sidenav.spec.js
  function setup (line 4) | function setup(attrs, skipInitialDigest) {
  function dispatchEvent (line 294) | function dispatchEvent(eventName) {
  function flush (line 298) | function flush() {
  function blur (line 302) | function blur() {
  function flush (line 355) | function flush() {

FILE: src/components/slider/slider.js
  function SliderContainerDirective (line 43) | function SliderContainerDirective() {
  function SliderDirective (line 177) | function SliderDirective($$rAF, $window, $mdAria, $mdUtil, $mdConstant, ...

FILE: src/components/slider/slider.spec.js
  function setup (line 17) | function setup(attrs, dimensions) {
  function setupContainer (line 36) | function setupContainer(attrs, sliderAttrs) {
  function getWrapper (line 42) | function getWrapper(slider) {
  function buildSlider (line 462) | function buildSlider(step, min, max) {
  function buildSlider (line 626) | function buildSlider(step, min, max) {
  function buildSlider (line 859) | function buildSlider(step, min, max) {

FILE: src/components/sticky/sticky.js
  function MdSticky (line 77) | function MdSticky($mdConstant, $$rAF, $mdUtil, $compile) {

FILE: src/components/subheader/subheader.js
  function MdSubheaderDirective (line 55) | function MdSubheaderDirective($mdSticky, $compile, $mdTheming, $mdUtil, ...

FILE: src/components/subheader/subheader.spec.js
  function isCloneShowing (line 91) | function isCloneShowing() {
  function build (line 199) | function build(template) {
  function getCloneElement (line 221) | function getCloneElement() {
  function getElement (line 227) | function getElement() {

FILE: src/components/swipe/swipe.js
  function getDirective (line 109) | function getDirective(name) {

FILE: src/components/switch/switch.js
  function MdSwitch (line 50) | function MdSwitch(mdCheckboxDirective, $mdUtil, $mdConstant, $parse, $$r...

FILE: src/components/tabs/demoDynamicTabs/script.js
  function AppCtrl (line 7) | function AppCtrl ($scope, $log) {

FILE: src/components/tabs/demoStaticTabs/script.js
  function AppCtrl (line 13) | function AppCtrl ($scope) {

FILE: src/components/tabs/js/tabDirective.js
  function MdTab (line 66) | function MdTab () {

FILE: src/components/tabs/js/tabItemDirective.js
  function MdTabItem (line 5) | function MdTabItem () {

FILE: src/components/tabs/js/tabLabelDirective.js
  function MdTabLabel (line 5) | function MdTabLabel () {

FILE: src/components/tabs/js/tabScroll.js
  function MdTabScroll (line 4) | function MdTabScroll ($parse) {

FILE: src/components/tabs/js/tabsController.js
  function MdTabsController (line 8) | function MdTabsController ($scope, $element, $window, $mdConstant, $mdTa...

FILE: src/components/tabs/js/tabsDirective.js
  function MdTabs (line 137) | function MdTabs ($$mdSvgRegistry) {

FILE: src/components/tabs/js/tabsDummyWrapperDirective.js
  function MdTabsDummyWrapper (line 15) | function MdTabsDummyWrapper ($mdUtil, $window) {

FILE: src/components/tabs/js/tabsTemplateDirective.js
  function MdTabsTemplate (line 5) | function MdTabsTemplate ($compile, $mdUtil) {

FILE: src/components/tabs/tabs.spec.js
  function setup (line 39) | function setup (template, scope) {
  function triggerKeydown (line 50) | function triggerKeydown (el, keyCode) {

FILE: src/components/tabs/tabsPaginationService.js
  function MdTabsPaginationService (line 23) | function MdTabsPaginationService() {

FILE: src/components/tabs/tabsPaginationService.spec.js
  function decode (line 181) | function decode(description) {
  function injectGlobals (line 225) | function injectGlobals() {

FILE: src/components/toast/demoBasicUsage/script.js
  function AppCtrl (line 5) | function AppCtrl($mdToast, $log) {

FILE: src/components/toast/demoCustomUsage/script.js
  function AppCtrl (line 11) | function AppCtrl($mdToast, $log) {
  function ToastCtrl (line 40) | function ToastCtrl($mdToast, $mdDialog, $document, $scope) {

FILE: src/components/toast/toast.js
  function MdToastDirective (line 15) | function MdToastDirective($mdToast) {
  function MdToastProvider (line 305) | function MdToastProvider($$interimElementProvider) {

FILE: src/components/toast/toast.spec.js
  function setup (line 17) | function setup(options) {
  function hasConfigMethods (line 178) | function hasConfigMethods(methods) {

FILE: src/components/toolbar/toolbar.js
  function mdToolbarDirective (line 85) | function mdToolbarDirective($$rAF, $mdConstant, $mdUtil, $mdTheming, $an...

FILE: src/components/toolbar/toolbar.spec.js
  function build (line 293) | function build(template, scope) {

FILE: src/components/tooltip/demoBasicUsage/script.js
  function AppCtrl (line 4) | function AppCtrl($scope) {

FILE: src/components/tooltip/tooltip.js
  function MdTooltipDirective (line 48) | function MdTooltipDirective($timeout, $window, $$rAF, $document, $interp...
  function MdTooltipRegistry (line 423) | function MdTooltipRegistry() {

FILE: src/components/tooltip/tooltip.spec.js
  function buildTooltip (line 537) | function buildTooltip(markup) {
  function showTooltip (line 547) | function showTooltip(isVisible) {
  function findTooltip (line 556) | function findTooltip() {
  function triggerEvent (line 560) | function triggerEvent(eventType, skipFlush) {

FILE: src/components/truncate/truncate.js
  function MdTruncateDirective (line 66) | function MdTruncateDirective() {
  function MdTruncateController (line 82) | function MdTruncateController($element) {

FILE: src/components/truncate/truncate.spec.js
  function setup (line 22) | function setup(template) {

FILE: src/components/virtualRepeat/virtual-repeater.js
  function VirtualRepeatContainerDirective (line 67) | function VirtualRepeatContainerDirective() {
  function virtualRepeatContainerTemplate (line 82) | function virtualRepeatContainerTemplate($element) {
  function VirtualRepeatContainerController (line 99) | function VirtualRepeatContainerController($$rAF, $mdUtil, $mdConstant, $...
  function VirtualRepeatDirective (line 514) | function VirtualRepeatDirective($parse) {
  function VirtualRepeatController (line 538) | function VirtualRepeatController($scope, $element, $attrs, $browser, $do...
  function VirtualRepeatModelArrayLike (line 995) | function VirtualRepeatModelArrayLike(model) {
  function ForceHeightDirective (line 1037) | function ForceHeightDirective($mdUtil) {

FILE: src/components/virtualRepeat/virtual-repeater.spec.js
  function createRepeater (line 63) | function createRepeater() {
  function createItems (line 77) | function createItems(num, label) {
  function getRepeated (line 87) | function getRepeated() {
  function getTransform (line 754) | function getTransform(target) {

FILE: src/components/whiteframe/whiteframe.js
  function MdWhiteframeDirective (line 43) | function MdWhiteframeDirective($log) {

FILE: src/components/whiteframe/whiteframe.spec.js
  function buildWhiteframe (line 5) | function buildWhiteframe(elevation) {

FILE: src/core/core.js
  function DetectNgTouch (line 23) | function DetectNgTouch($log, $injector) {
  function MdCoreConfigure (line 36) | function MdCoreConfigure($provide, $mdThemingProvider) {
  function rAFDecorator (line 51) | function rAFDecorator($delegate) {
  function qDecorator (line 85) | function qDecorator($delegate) {

FILE: src/core/services/aria/aria.js
  function MdAriaProvider (line 31) | function MdAriaProvider() {
  function MdAriaService (line 58) | function MdAriaService($$rAF, $log, $window, $interpolate) {

FILE: src/core/services/compiler/compiler.js
  function MdCompilerProvider (line 12) | function MdCompilerProvider() {

FILE: src/core/services/compiler/compiler.spec.js
  function compile (line 4) | function compile(options) {
  function compileAndLink (line 164) | function compileAndLink(options) {
  function TestController (line 182) | function TestController($scope, name) {
    method $onInit (line 405) | $onInit() { passed = true; }
    method $onDestroy (line 428) | $onDestroy() { passed = true; }
  function TestController (line 204) | function TestController($scope) {
    method $onInit (line 405) | $onInit() { passed = true; }
    method $onDestroy (line 428) | $onDestroy() { passed = true; }
  class PizzaController (line 367) | class PizzaController {
    method $onInit (line 368) | $onInit() { this.isInitialized = true; }
  class TestController (line 404) | class TestController {
    method $onInit (line 405) | $onInit() { passed = true; }
    method $onDestroy (line 428) | $onDestroy() { passed = true; }
  class TestController (line 427) | class TestController {
    method $onInit (line 405) | $onInit() { passed = true; }
    method $onDestroy (line 428) | $onDestroy() { passed = true; }

FILE: src/core/services/gesture/gesture.js
  function MdGestureProvider (line 62) | function MdGestureProvider() { }
  function MdGesture (line 117) | function MdGesture($$MdGestureHandler, $$rAF, $timeout, $mdUtil) {
  function GestureHandler (line 388) | function GestureHandler (name) {
  function MdGestureHandler (line 393) | function MdGestureHandler() {
  function attachToDocument (line 572) | function attachToDocument($mdGesture, $$MdGestureHandler, $mdUtil) {
  function makeStartPointer (line 735) | function makeStartPointer(ev) {
  function typesMatch (line 752) | function typesMatch(ev, pointer) {
  function isInputEventFromLabelClick (line 772) | function isInputEventFromLabelClick(event) {
  function updatePointerState (line 782) | function updatePointerState(ev, pointer) {
  function getEventPoint (line 805) | function getEventPoint(ev) {
  function canFocus (line 813) | function canFocus(element) {

FILE: src/core/services/interaction/interaction.js
  function MdInteractionService (line 36) | function MdInteractionService($timeout, $mdUtil, $rootScope) {

FILE: src/core/services/interimElement/interimElement.js
  function InterimElementProvider (line 28) | function InterimElementProvider() {

FILE: src/core/services/interimElement/interimElement.spec.js
  function showInterim (line 279) | function showInterim(service) {
  function showInterim (line 401) | function showInterim() {
  function showInterim (line 430) | function showInterim() {
  function showInterim (line 454) | function showInterim() {
  function beforeCompile (line 549) | function beforeCompile() {
  function beforeShow (line 553) | function beforeShow() {
  function onShowing (line 571) | function onShowing(scope, el, options) {
  function onShow (line 575) | function onShow(scope, el, options) {
  function onRemove (line 592) | function onRemove(scope, el, options) {
  function onRemove (line 706) | function onRemove(scope, el, options) {
  function onRemoving (line 725) | function onRemoving(scope, el) {
  function onRemove (line 839) | function onRemove(scope, el, options) {
  function setup (line 865) | function setup() {
  function createInterimProvider (line 892) | function createInterimProvider(providerName) {
  function flush (line 903) | function flush() {
  function tailHook (line 907) | function tailHook(sourceFn, hookFn) {

FILE: src/core/services/layout/layout.js
  function registerLayoutAPI (line 74) | function registerLayoutAPI(module){
  function detectDisabledLayouts (line 152) | function detectDisabledLayouts() {
  function disableLayoutDirective (line 176) | function disableLayoutDirective() {
  function buildCloakInterceptor (line 190) | function buildCloakInterceptor(className) {
  function attributeWithObserve (line 228) | function attributeWithObserve(className) {
  function attributeWithoutValue (line 275) | function attributeWithoutValue(className) {
  function updateClassWithValue (line 325) | function updateClassWithValue(element, className) {
  function validateAttributeUsage (line 341) | function validateAttributeUsage(className, attr, element, $log){
  function validateAttributeValue (line 364) | function validateAttributeValue(className, value, updateFn) {
  function buildUpdateFn (line 415) | function buildUpdateFn(element, className, attrs) {
  function needsInterpolation (line 430) | function needsInterpolation(value) {
  function getNormalizedAttrValue (line 434) | function getNormalizedAttrValue(className, attrs, defaultVal) {
  function findIn (line 440) | function findIn(item, list, replaceWith) {
  function extractAlignAxis (line 453) | function extractAlignAxis(attrValue) {

FILE: src/core/services/layout/layout.spec.js
  function testAllSuffixesWithValues (line 328) | function testAllSuffixesWithValues(attrName, allowedValues) {
  function testWithValue (line 342) | function testWithValue(className, value, raw) {
  function testNoValueAllowed (line 373) | function testNoValueAllowed(attrName) {

FILE: src/core/services/liveAnnouncer/live-announcer.js
  function MdLiveAnnouncer (line 33) | function MdLiveAnnouncer($timeout) {

FILE: src/core/services/meta/meta.js
  function mapExistingElement (line 44) | function mapExistingElement(name) {
  function setMeta (line 73) | function setMeta(name, content) {
  function getMeta (line 102) | function getMeta(name) {

FILE: src/core/services/registry/componentRegistry.js
  function ComponentRegistry (line 19) | function ComponentRegistry($log, $q) {

FILE: src/core/services/registry/componentRegistry.spec.js
  function setup (line 7) | function setup(attrs) {

FILE: src/core/services/ripple/button_ripple.js
  function MdButtonInkRipple (line 20) | function MdButtonInkRipple($mdInkRipple) {

FILE: src/core/services/ripple/checkbox_ripple.js
  function MdCheckboxInkRipple (line 20) | function MdCheckboxInkRipple($mdInkRipple) {

FILE: src/core/services/ripple/list_ripple.js
  function MdListInkRipple (line 20) | function MdListInkRipple($mdInkRipple) {

FILE: src/core/services/ripple/ripple.js
  function InkRippleDirective (line 50) | function InkRippleDirective ($mdButtonInkRipple, $mdCheckboxInkRipple) {
  function InkRippleProvider (line 108) | function InkRippleProvider () {
  function InkRippleCtrl (line 158) | function InkRippleCtrl ($scope, $element, rippleOptions, $window, $timeo...
  function autoCleanup (line 187) | function autoCleanup (self, cleanupFn) {
  function getElementColor (line 214) | function getElementColor () {
  function getSize (line 411) | function getSize (fit, x, y) {
  function attrNoDirective (line 468) | function attrNoDirective () {

FILE: src/core/services/ripple/tab_ripple.js
  function MdTabInkRipple (line 20) | function MdTabInkRipple($mdInkRipple) {

FILE: src/core/services/theming/theming.js
  function detectDisabledThemes (line 24) | function detectDisabledThemes($mdThemingProvider) {
  function ThemingProvider (line 265) | function ThemingProvider($mdColorPalette, $$mdMetaProvider) {
  function ThemingDirective (line 874) | function ThemingDirective($mdTheming, $interpolate, $parse, $mdUtil, $q,...
  function disableThemesDirective (line 987) | function disableThemesDirective() {
  function ThemableDirective (line 997) | function ThemableDirective($mdTheming) {
  function parseRules (line 1001) | function parseRules(theme, colorType, rules) {
  function generateAllThemes (line 1127) | function generateAllThemes($injector, $mdTheming) {
  function generateTheme (line 1327) | function generateTheme(theme, name, nonce) {
  function checkValidPalette (line 1356) | function checkValidPalette(theme, colorType) {
  function colorToRgbaArray (line 1372) | function colorToRgbaArray(clr) {
  function rgba (line 1394) | function rgba(rgbArray, opacity) {

FILE: src/core/services/theming/theming.spec.js
  function setup (line 22) | function setup() {
  function parse (line 171) | function parse(str) {
  function getRgbaBackgroundHue (line 207) | function getRgbaBackgroundHue(hue) {
  function getThemeStyleElements (line 564) | function getThemeStyleElements() {
  function cleanThemeStyleElements (line 568) | function cleanThemeStyleElements() {
  function getThemeStyleElements (line 638) | function getThemeStyleElements() {
  function cleanThemeStyleElements (line 642) | function cleanThemeStyleElements() {

FILE: src/core/util/animation/animate.js
  function AnimateDomUtils (line 15) | function AnimateDomUtils($mdUtil, $q, $timeout, $mdConstant, $animateCss) {

FILE: src/core/util/animation/animate.spec.js
  function build (line 78) | function build(template) {
  function flush (line 89) | function flush() {

FILE: src/core/util/animation/animateCss.js
  function AnimateRunner (line 40) | function AnimateRunner(host) {
  function onProgress (line 142) | function onProgress(response) {
  function init (line 161) | function init(element, options) {
  function applyClasses (line 301) | function applyClasses(element, options) {
  function computeTimings (line 312) | function computeTimings(element) {
  function parseMaxTime (line 339) | function parseMaxTime(str) {
  function waitUntilQuiet (line 356) | function waitUntilQuiet(callback) {
  function applyAnimationStyles (line 377) | function applyAnimationStyles(element, options) {
  function applyAnimationFromStyles (line 382) | function applyAnimationFromStyles(element, options) {
  function applyAnimationToStyles (line 389) | function applyAnimationToStyles(element, options) {
  function getDomNode (line 396) | function getDomNode(element) {
  function blockTransition (line 402) | function blockTransition(element, bool) {
  function camelCase (line 417) | function camelCase(str) {

FILE: src/core/util/animation/animateCss.spec.js
  function assertHasClass (line 446) | function assertHasClass(element, className, not) {
  function assertStyle (line 450) | function assertStyle(element, prop, val, not) {
  function camelCase (line 468) | function camelCase(str) {

FILE: src/core/util/autofocus.js
  function MdAutofocusDirective (line 89) | function MdAutofocusDirective($parse) {

FILE: src/core/util/autofocus.spec.js
  function build (line 79) | function build(template) {

FILE: src/core/util/color.js
  function ColorUtilFactory (line 11) | function ColorUtilFactory() {

FILE: src/core/util/constant.js
  function MdConstantFactory (line 8) | function MdConstantFactory() {

FILE: src/core/util/iterator.js
  function MdIterator (line 24) | function MdIterator(items, reloop) {

FILE: src/core/util/media.js
  function mdMediaFactory (line 98) | function mdMediaFactory($mdConstant, $rootScope, $window) {

FILE: src/core/util/media.spec.js
  function runListeners (line 5) | function runListeners() {

FILE: src/core/util/prefixer.js
  function MdPrefixer (line 22) | function MdPrefixer(initialAttributes, buildSelector) {

FILE: src/core/util/util.js
  function UtilFactory (line 30) | function UtilFactory($document, $timeout, $compile, $rootScope, $$mdAnim...

FILE: src/core/util/util.spec.js
  function getViewportTop (line 303) | function getViewportTop() {
  function flush (line 395) | function flush(expectation) {

FILE: test/angular-material-mocks.js
  function addVendorPrefix (line 152) | function addVendorPrefix(styles) {

FILE: test/angular-material-spec.js
  function getElement (line 198) | function getElement(el) {
  function buildStopTransitions (line 245) | function buildStopTransitions() {

FILE: updateVersionPicker.js
  function checkout (line 32) | function checkout (filename) {
  function exec (line 47) | function exec (cmd, userOptions) {
Condensed preview — 727 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (4,539K chars).
[
  {
    "path": ".circleci/config.yml",
    "chars": 6885,
    "preview": "# Configuration file for https://circleci.com/gh/angular/material\n\n# Note: YAML anchors allow an object to be re-used, r"
  },
  {
    "path": ".clang-format",
    "chars": 357,
    "preview": "Language:        JavaScript\nBasedOnStyle:    Google\nColumnLimit:     100\n\nTabWidth:                2\nContinuationIndentW"
  },
  {
    "path": ".editorconfig",
    "chars": 171,
    "preview": "root = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespa"
  },
  {
    "path": ".eslintignore",
    "chars": 249,
    "preview": "# Ignore miscellaneous folders\n.github/\n.idea/\nnode_modules/\ndist/\ntmp/\nbower-material/\ncode.material.angularjs.org/\n\n# "
  },
  {
    "path": ".eslintrc.json",
    "chars": 8331,
    "preview": "{\n  \"extends\": \"eslint:recommended\",\n  \"parserOptions\": {\n    \"ecmaVersion\": 2021\n  },\n  \"rules\": {\n    \"accessor-pairs\""
  },
  {
    "path": ".github/CONTRIBUTING.md",
    "chars": 10270,
    "preview": "# Contributing to AngularJS Material\n\n - [Code of Conduct](#coc)\n - [Signing the CLA](#cla)<br/><br/>\n - [Question or Pr"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug.md",
    "chars": 947,
    "preview": "---\nname: Bug Report\nabout: Report a bug in AngularJS Material\nlabels: \"type: bug, needs triage\"\n---\n<!--\n\n-------------"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/config.yml",
    "chars": 234,
    "preview": "blank_issues_enabled: false\ncontact_links:\n  - name: AngularJS Material on StackOverflow\n    url: https://stackoverflow."
  },
  {
    "path": ".github/ISSUE_TEMPLATE/docs.md",
    "chars": 1005,
    "preview": "---\nname: Documentation\nabout: Suggest an improvement to our documentation at material.angularjs.org\nlabels: \"type: docs"
  },
  {
    "path": ".github/PULL_REQUEST_TEMPLATE.md",
    "chars": 444,
    "preview": "# AngularJS Material has reached end-of-life\n\nWe are no longer accepting changes into this project as\n**AngularJS Materi"
  },
  {
    "path": ".github/workflows/codeql-analysis.yml",
    "chars": 2354,
    "preview": "# For most projects, this workflow file will not need changing; you simply need\n# to commit it to your repository.\n#\n# Y"
  },
  {
    "path": ".gitignore",
    "chars": 92,
    "preview": "*.log\n.DS_Store\nnode_modules\ndist\n/.idea/\ntmp/\nbower-material/\ncode.material.angularjs.org/\n"
  },
  {
    "path": ".jshintrc",
    "chars": 132,
    "preview": "{\n  \"sub\": true,\n  \"multistr\": true,\n  \"-W018\": true,\n  \"expr\": true,\n  \"boss\": true,\n  \"laxbreak\": true,\n  \"predef\": [\""
  },
  {
    "path": ".mailmap",
    "chars": 1,
    "preview": "\n"
  },
  {
    "path": ".nvmrc",
    "chars": 3,
    "preview": "14\n"
  },
  {
    "path": ".vscode/README.md",
    "chars": 961,
    "preview": "# Visual Studio Code Configuration\n\nThis folder contains opt-out [Workspace Settings](https://code.visualstudio.com/docs"
  },
  {
    "path": ".vscode/extensions.json",
    "chars": 583,
    "preview": "{\n  // See http://go.microsoft.com/fwlink/?LinkId=827846 to learn about workspace recommendations.\n  // Extension identi"
  },
  {
    "path": ".vscode/settings.json",
    "chars": 1123,
    "preview": "{\n  \"editor.tabCompletion\": \"on\",\n  \"files.eol\": \"\\n\",\n  \"files.exclude\": {\n    \"**/.git\": true,\n    \"**/.DS_Store\": tru"
  },
  {
    "path": "CHANGELOG.md",
    "chars": 629931,
    "preview": "## [1.2.5](https://github.com/angular/material/compare/v1.2.4...v1.2.5) (2022-04-11)\n\nOne final release of AngularJS in "
  },
  {
    "path": "LICENSE",
    "chars": 1094,
    "preview": "The MIT License\n\nCopyright (c) 2022 Google LLC. https://angularjs.org\n\nPermission is hereby granted, free of charge, to "
  },
  {
    "path": "README.md",
    "chars": 7174,
    "preview": "# Material Design for AngularJS Apps\n[![npm version](https://badge.fury.io/js/angular-material.svg)](https://www.npmjs.c"
  },
  {
    "path": "SECURITY.md",
    "chars": 1080,
    "preview": "# Security Policy\n\n**AngularJS Material support has officially ended as of January 2022.**\n[See what ending support mean"
  },
  {
    "path": "config/.jshintrc",
    "chars": 150,
    "preview": "{\n  \"sub\": true,\n  \"multistr\": true,\n  \"-W018\": true,\n  \"expr\": true,\n  \"boss\": true,\n  \"laxbreak\": true,\n  \"esversion\":"
  },
  {
    "path": "config/build.config.js",
    "chars": 203,
    "preview": "const pkg = require('../package.json');\n\nmodule.exports = {\n  ngVersion: '1.8.2',\n  version: pkg.version,\n  repository: "
  },
  {
    "path": "config/karma-circleci.conf.js",
    "chars": 894,
    "preview": "const baseKarma = require('./karma.conf.js');\n\nmodule.exports = function(config) {\n  baseKarma(config);\n\n  // Override d"
  },
  {
    "path": "config/karma-docs.conf.js",
    "chars": 1651,
    "preview": "const path = require('path');\n\n// Used for running unit tests against the docs site\n// Unit tests can be run using gulp "
  },
  {
    "path": "config/karma-jenkins.conf.js",
    "chars": 537,
    "preview": "const baseKarma = require('./karma.conf.js');\n\nmodule.exports = function(config) {\n  baseKarma(config);\n\n  // Override d"
  },
  {
    "path": "config/karma-sauce.conf.js",
    "chars": 1434,
    "preview": "const baseKarma = require('./karma.conf.js');\nconst sauceBrowsers = require('./sauce-browsers.json');\n\nif (!process.env."
  },
  {
    "path": "config/karma-travis.conf.js",
    "chars": 654,
    "preview": "const baseKarma = require('./karma.conf.js');\n\nmodule.exports = function(config) {\n  baseKarma(config);\n\n  // Override d"
  },
  {
    "path": "config/karma.conf.js",
    "chars": 3108,
    "preview": "const path = require('path');\n\nmodule.exports = function(config) {\n\n  const UNCOMPILED_SRC = [\n\n    // To enable use of "
  },
  {
    "path": "config/ngModuleData.js",
    "chars": 1379,
    "preview": "/**\n * The AngularJS Material module `ngMaterial` is generated by scanning all Material components\n * for valid module d"
  },
  {
    "path": "config/sauce-browsers.json",
    "chars": 5094,
    "preview": "{\n  \"SL_CHROME\": {\n    \"base\": \"SauceLabs\",\n    \"browserName\": \"chrome\",\n    \"platform\": \"Windows 10\",\n    \"version\": \"l"
  },
  {
    "path": "docs/README.md",
    "chars": 100,
    "preview": "AngularJS Material Docs\n-------------\n\n- [How to build the documentation](guides/BUILD.md#livedocs)\n"
  },
  {
    "path": "docs/app/css/highlightjs-material.css",
    "chars": 2015,
    "preview": "hljs {\n  display: block;\n  overflow-x: auto;\n  padding: 0;\n  background: #0C2238;\n  color: white;\n  font-family: Menlo, "
  },
  {
    "path": "docs/app/css/layout-demo.css",
    "chars": 2424,
    "preview": "demo-include {\n  display: block;\n}\n\n/* For documentation printing purposes, set background color */\n@media print {\n  .de"
  },
  {
    "path": "docs/app/css/style.css",
    "chars": 17953,
    "preview": "\nhtml {\n  font-size: 62.5%;\n  line-height: 1.4;\n}\nbody {\n  font-size: 1.6rem;\n}\n\n/* This styling should be not applied t"
  },
  {
    "path": "docs/app/js/anchor.js",
    "chars": 2572,
    "preview": "(function() {\n  angular\n    .module('docsApp')\n    .directive('h4', MdAnchorDirective)\n    .directive('h3', MdAnchorDire"
  },
  {
    "path": "docs/app/js/app.js",
    "chars": 26397,
    "preview": "angular.module('docsApp', ['angularytics', 'ngRoute', 'ngMessages', 'ngMaterial'], [\n  'SERVICES',\n  'COMPONENTS',\n  'DE"
  },
  {
    "path": "docs/app/js/codepen.js",
    "chars": 8128,
    "preview": "(function() {\n  angular.module('docsApp')\n    .factory('codepenDataAdapter', CodepenDataAdapter)\n    .factory('codepen',"
  },
  {
    "path": "docs/app/js/css-api-table.js",
    "chars": 1078,
    "preview": "(function() {\n  angular.module('docsApp')\n    .directive('docsCssApiTable', DocsCssApiTableDirective)\n    .directive('do"
  },
  {
    "path": "docs/app/js/demo.js",
    "chars": 3135,
    "preview": "angular.module('docsApp')\n.directive('layoutAlign', function() { return angular.noop; })\n.directive('layout', function()"
  },
  {
    "path": "docs/app/js/demoInclude.js",
    "chars": 3297,
    "preview": "angular.module('docsApp').directive('demoInclude', [\n  '$q',\n  '$compile',\n  '$timeout',\nfunction($q, $compile, $timeout"
  },
  {
    "path": "docs/app/js/highlight-angular.js",
    "chars": 2302,
    "preview": "angular.module('docsApp')\n.directive('hljs', ['$timeout', '$q', '$interpolate', function($timeout, $q, $interpolate) {\n "
  },
  {
    "path": "docs/app/js/highlight.pack.js",
    "chars": 24852,
    "preview": "/*! highlight.js v9.15.6 | BSD3 License | git.io/hljslicense */\n!function(e){var n=\"object\"==typeof window&&window||\"obj"
  },
  {
    "path": "docs/app/js/ngPanel.js",
    "chars": 1401,
    "preview": "/**\n * ngPanel by @matsko\n * https://github.com/matsko/ng-panel\n */\nangular.module('docsApp')\n  .directive('ngPanel', ['"
  },
  {
    "path": "docs/app/js/preload.js",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "docs/app/js/scripts.js",
    "chars": 629,
    "preview": "(function() {\n  angular.module('docsApp')\n    .factory('$demoAngularScripts', ['BUILDCONFIG', DemoAngularScripts]);\n\n  f"
  },
  {
    "path": "docs/app/partials/contributors.tmpl.html",
    "chars": 1269,
    "preview": "<div ng-controller=\"GuideCtrl\" class=\"doc-content\">\n  <md-content>\n    <p>\n      We are thankful for the amazing communi"
  },
  {
    "path": "docs/app/partials/demo.tmpl.html",
    "chars": 281,
    "preview": "<docs-demo\n    ng-repeat=\"demo in demos\"\n    demo-id=\"{{demo.id}}\"\n    demo-title=\"{{demo.label}}\"\n    demo-module=\"{{de"
  },
  {
    "path": "docs/app/partials/docs-demo.tmpl.html",
    "chars": 1965,
    "preview": "<div class=\"doc-demo-content doc-content\">\n  <div flex layout=\"column\" style=\"z-index:1\">\n\n    <div class=\"doc-descripti"
  },
  {
    "path": "docs/app/partials/getting-started.tmpl.html",
    "chars": 5235,
    "preview": "<div ng-controller=\"GuideCtrl\" class=\"doc-content\">\n  <md-content>\n    <p>\n      <h2><em>New to AngularJS?</em> Before g"
  },
  {
    "path": "docs/app/partials/home.tmpl.html",
    "chars": 10369,
    "preview": "<div ng-controller=\"HomeCtrl\" class=\"doc-content\">\n  <md-content>\n    <h2 class=\"md-headline\" style=\"margin-top: 0;\">Wha"
  },
  {
    "path": "docs/app/partials/layout-alignment.tmpl.html",
    "chars": 4277,
    "preview": "<div ng-controller=\"LayoutCtrl\" class=\"layout-content\" ng-cloak>\n\n  <p>\n    The <code>layout-align</code> directive take"
  },
  {
    "path": "docs/app/partials/layout-children.tmpl.html",
    "chars": 13661,
    "preview": "<div ng-controller=\"LayoutCtrl\" class=\"layout-content\" ng-cloak>\n\n  <h3>Children within a Layout Container</h3>\n\n  <p>\n "
  },
  {
    "path": "docs/app/partials/layout-container.tmpl.html",
    "chars": 4991,
    "preview": "<div ng-controller=\"LayoutCtrl\" class=\"layout-content\" ng-cloak>\n\n  <h3>Layout and Containers</h3>\n\n  <p>\n    Use the <c"
  },
  {
    "path": "docs/app/partials/layout-introduction.tmpl.html",
    "chars": 9642,
    "preview": "<div ng-controller=\"LayoutCtrl\" class=\"layout-content\" ng-cloak>\n\n  <h3>Overview</h3>\n  <p>\n    AngularJS Material's Lay"
  },
  {
    "path": "docs/app/partials/layout-options.tmpl.html",
    "chars": 6058,
    "preview": "<div ng-controller=\"LayoutCtrl\" class=\"layout-content layout-options\" ng-cloak>\n\n  <docs-demo demo-title=\"Responsive Lay"
  },
  {
    "path": "docs/app/partials/layout-tips.tmpl.html",
    "chars": 8253,
    "preview": "<style>\n  ul.spaced li {\n    margin-bottom: 15px;\n  }\n</style>\n<div ng-controller=\"LayoutTipsCtrl as tips\" class=\"layout"
  },
  {
    "path": "docs/app/partials/license.tmpl.html",
    "chars": 1400,
    "preview": "<div ng-controller=\"GuideCtrl\" class=\"doc-content\">\n  <md-content>\n    <p>The MIT License</p>\n\n    <p>\n      Copyright ("
  },
  {
    "path": "docs/app/partials/menu-link.tmpl.html",
    "chars": 242,
    "preview": "<md-button\n    ng-class=\"{'active' : isSelected()}\"\n    ng-href=\"{{section.url}}\"\n    ng-click=\"focusSection()\">\n  {{sec"
  },
  {
    "path": "docs/app/partials/menu-toggle.tmpl.html",
    "chars": 767,
    "preview": "<md-button class=\"md-button-toggle\"\n  ng-click=\"toggle()\"\n  aria-controls=\"docs-menu-{{section.name | nospace}}\"\n  aria-"
  },
  {
    "path": "docs/app/partials/view-source.tmpl.html",
    "chars": 690,
    "preview": "<md-dialog class=\"view-source-dialog\">\n\n  <md-tabs>\n    <md-tab ng-repeat=\"file in files\"\n                  active=\"file"
  },
  {
    "path": "docs/app/svg-assets-cache.js",
    "chars": 116006,
    "preview": "(function() {\n  /**\n   * This 'svg-assets-cache.js' file should be loaded to a CDN or edge-server (currently S3).\n   * T"
  },
  {
    "path": "docs/config/index.js",
    "chars": 2553,
    "preview": "const path = require('canonical-path');\nconst Package = require('dgeni').Package;\n\nconst projectPath = path.resolve(__di"
  },
  {
    "path": "docs/config/processors/buildConfig.js",
    "chars": 1321,
    "preview": "const buildConfig = require('../../../config/build.config');\nconst q = require('q');\nconst exec = require('child_process"
  },
  {
    "path": "docs/config/processors/componentsData.js",
    "chars": 3436,
    "preview": "const _ = require('lodash');\nconst buildConfig = require('../../../config/build.config.js');\n\n// We don't need to publis"
  },
  {
    "path": "docs/config/processors/content.js",
    "chars": 830,
    "preview": "const _ = require('lodash');\n\nmodule.exports = function contentProcessor() {\n  return {\n    $runAfter: ['paths-computed'"
  },
  {
    "path": "docs/config/processors/indexPage.js",
    "chars": 420,
    "preview": "const buildConfig = require('../../../config/build.config');\n\nmodule.exports = function indexPageProcessor() {\n  return "
  },
  {
    "path": "docs/config/template/build-config.js",
    "chars": 81,
    "preview": "angular.module('docsApp').constant('BUILDCONFIG', {$ doc.buildConfig | json $});\n"
  },
  {
    "path": "docs/config/template/constant-data.template.js",
    "chars": 78,
    "preview": "angular.module('docsApp').constant('{$ doc.name $}', {$ doc.items | json $});\n"
  },
  {
    "path": "docs/config/template/demo-index.template.html",
    "chars": 856,
    "preview": "<!doctype html>\n<html ng-app=\"<%= ngModule && ngModule.module || 'ngMaterial' %>\">\n<head>\n    <title><%= name %></title>"
  },
  {
    "path": "docs/config/template/index.template.html",
    "chars": 9635,
    "preview": "<!doctype html>\n<html ng-app=\"docsApp\" ng-controller=\"DocsCtrl\" lang=\"en\" ng-strict-di>\n<head>\n<meta charset=\"utf-8\">\n<b"
  },
  {
    "path": "docs/config/template/ngdoc/api/api.template.html",
    "chars": 1015,
    "preview": "{% extends \"base.template.html\" %}\n\n{% block content %}\n\n{% block header %}\n<header class=\"api-profile-header\" >\n  <h2 c"
  },
  {
    "path": "docs/config/template/ngdoc/api/componentGroup.template.html",
    "chars": 657,
    "preview": "{% block content %}\n<h1>\n  {%- if doc.title -%}\n    {$ doc.title $}\n  {%- elif doc.module -%}\n    {$ doc.groupType | tit"
  },
  {
    "path": "docs/config/template/ngdoc/api/directive.template.html",
    "chars": 1659,
    "preview": "{% include \"lib/macros.html\" -%}\n{% extends \"api/api.template.html\" %}\n\n{% block additional %}\n\n  {% block usage %}\n  <s"
  },
  {
    "path": "docs/config/template/ngdoc/api/filter.template.html",
    "chars": 738,
    "preview": "{% include \"lib/macros.html\" -%}\n{% extends \"api/api.template.html\" %}\n\n{% block additional %}\n  <h3>In HTML Template Bi"
  },
  {
    "path": "docs/config/template/ngdoc/api/function.template.html",
    "chars": 41,
    "preview": "{% extends \"api/object.template.html\" %}\n"
  },
  {
    "path": "docs/config/template/ngdoc/api/input.template.html",
    "chars": 310,
    "preview": "{% include \"lib/macros.html\" -%}\n{% extends \"api/directive.template.html\" %}\n\n{% block usage %}\n  {% code %}\n  <input ty"
  },
  {
    "path": "docs/config/template/ngdoc/api/module.template.html",
    "chars": 202,
    "preview": "{% extends \"base.template.html\" %}\n\n{% block content %}\n<h1>\n  {% if doc.title %}{$ doc.title | marked $}{% else %}{$ do"
  },
  {
    "path": "docs/config/template/ngdoc/api/object.template.html",
    "chars": 664,
    "preview": "{% include \"lib/macros.html\" %}\n{% extends \"api/api.template.html\" %}\n\n{% block additional %}\n\n{% if doc.usage %}\n  <sec"
  },
  {
    "path": "docs/config/template/ngdoc/api/provider.template.html",
    "chars": 217,
    "preview": "{% extends \"api/object.template.html\" %}\n\n{% block related_components %}\n  {% if doc.serviceDoc -%}\n  <li>\n    <a href=\""
  },
  {
    "path": "docs/config/template/ngdoc/api/service.template.html",
    "chars": 220,
    "preview": "{% extends \"api/object.template.html\" %}\n\n{% block related_components %}\n  {% if doc.providerDoc -%}\n  <li>\n    <a href="
  },
  {
    "path": "docs/config/template/ngdoc/api/type.template.html",
    "chars": 41,
    "preview": "{% extends \"api/object.template.html\" %}\n"
  },
  {
    "path": "docs/config/template/ngdoc/base.template.html",
    "chars": 68,
    "preview": "<div class=\"doc-content\">\n{% block content %}\n{% endblock %}\n</div>\n"
  },
  {
    "path": "docs/config/template/ngdoc/content.template.html",
    "chars": 119,
    "preview": "<div class=\"doc-content theming\">\n    {% block content %}\n    {$ doc.description | marked $}\n    {% endblock %}\n</div>\n"
  },
  {
    "path": "docs/config/template/ngdoc/lib/events.template.html",
    "chars": 712,
    "preview": "{%- if doc.events %}\n<section class=\"api-section\">\n  <h2>Events</h2>\n  <ul class=\"events\">\n    {%- for event in doc.even"
  },
  {
    "path": "docs/config/template/ngdoc/lib/macros.html",
    "chars": 3119,
    "preview": "{% macro typeList(types) -%}\n{%- set sep = joiner('|') %}\n{% for typeName in types %}<code class=\"api-type {$ typeName |"
  },
  {
    "path": "docs/config/template/ngdoc/lib/methods.template.html",
    "chars": 876,
    "preview": "{% import \"./macros.html\" as macros %}\n\n{%- if doc.methods %}\n<section class=\"api-section\">\n  <h2>Methods</h2>\n  <br/>\n "
  },
  {
    "path": "docs/config/template/ngdoc/lib/params.template.html",
    "chars": 397,
    "preview": "{% import \"./macros.html\" as macros %}\n\n{%- if doc.params %}\n  <div class=\"api-param-section\">\n    <h2>\n      {% if doc."
  },
  {
    "path": "docs/config/template/ngdoc/lib/properties.template.html",
    "chars": 907,
    "preview": "{% import \"./macros.html\" as macros %}\n\n{%- if doc.properties %}\n<section class=\"api-section\">\n  <h2>Properties</h2>\n  <"
  },
  {
    "path": "docs/config/template/ngdoc/lib/returns.template.html",
    "chars": 152,
    "preview": "{% import \"./macros.html\" as macros %}\n\n{% if doc.returns -%}\n<div class=\"api-param-table\">\n  {$ macros.returnTable(doc."
  },
  {
    "path": "docs/config/template/ngdoc/lib/this.template.html",
    "chars": 150,
    "preview": "<section class=\"api-section\">\n  {% if doc.this %}\n  <h3>Method's {% code %}this{% endcode %}</h3>\n  {$ doc.this | marked"
  },
  {
    "path": "docs/config/template/readme.template.html",
    "chars": 1293,
    "preview": "<div class=\"doc-content\">\n  <div>\n    {$ doc.content | marked $}\n  </div>\n  <div flex layout=\"column\">\n\n    <section ng-"
  },
  {
    "path": "docs/config/template/template.json",
    "chars": 25,
    "preview": "{$ doc.content | json $}\n"
  },
  {
    "path": "docs/content/CSS/button.md",
    "chars": 6760,
    "preview": "@ngdoc content\n@name button\n@description\n\n# &lt;md-button&gt;\n\nBelow is a snapshot of the AngularJS Material **button** "
  },
  {
    "path": "docs/content/CSS/checkbox.md",
    "chars": 2161,
    "preview": "@ngdoc content\n@name checkbox\n@description\n\n<h2>  CSS Styles</h2>\n\nThe css decalaration of the `<md-checkbox>` component"
  },
  {
    "path": "docs/content/CSS/typography.md",
    "chars": 6707,
    "preview": "@ngdoc content\n@name Typography\n@description\n\n<h2 class=\"md-display-1\">CSS classes are provided for typography</h2>\n<h3 "
  },
  {
    "path": "docs/content/Theming/01_introduction.md",
    "chars": 2678,
    "preview": "@ngdoc content\n@name Introduction and Terms\n@description\n\nMaterial Design is a visual language with specifications for i"
  },
  {
    "path": "docs/content/Theming/02_declarative_syntax.md",
    "chars": 1176,
    "preview": "@ngdoc content\n@name Declarative Syntax\n@description\n\nTheming in AngularJS Material uses classes to apply an intention g"
  },
  {
    "path": "docs/content/Theming/03_configuring_a_theme.md",
    "chars": 6285,
    "preview": "@ngdoc content\n@name Configuring a Theme\n@description\n\n## Configuring a theme\n\nBy default, your AngularJS Material appli"
  },
  {
    "path": "docs/content/Theming/04_multiple_themes.md",
    "chars": 3270,
    "preview": "@ngdoc content\n@name Multiple Themes\n@description\n\nIn most applications, declaring multiple themes is **not** necessary."
  },
  {
    "path": "docs/content/Theming/05_under_the_hood.md",
    "chars": 1402,
    "preview": "@ngdoc content\n@name Theming under the hood\n@description\n\n### Under the Hood\n\nAngularJS Material dynamically generates C"
  },
  {
    "path": "docs/content/Theming/06_browser_color.md",
    "chars": 1776,
    "preview": "@ngdoc content\n@name Browser Colors\n@description\n\n<div class=\"layout_note\">\n  <span>This feature is for **mobile** devic"
  },
  {
    "path": "docs/content/migration.md",
    "chars": 37308,
    "preview": "@ngdoc content\n@name Migration to Angular Material\n@description\n\n<style>\n  table {\n    margin: 24px 2px;\n    box-shadow:"
  },
  {
    "path": "docs/content/performance/internet-explorer.md",
    "chars": 6954,
    "preview": "@ngdoc content\n@name Internet Explorer\n@description\n\n# Introduction\n\nAngularJS Material is a cutting edge framework whic"
  },
  {
    "path": "docs/guides/BUILD.md",
    "chars": 4875,
    "preview": "## Build Instructions\n\n* [Introduction](#intro)<br/><br/>\n* [Build Commands](#commands)\n* [Building the Documentation](#"
  },
  {
    "path": "docs/guides/CODEPEN.md",
    "chars": 3312,
    "preview": "# Editable Demos in CodePen\n\n## Description\n\nUsers can click a button on each demo to open it in CodePen\nfor editing. Fr"
  },
  {
    "path": "docs/guides/CODING.md",
    "chars": 5381,
    "preview": "# Coding Conventions and Guidelines\n\n - [Project Structure](#structure)\n - [Coding Rules](#rules)\n\n\n## <a name=\"structur"
  },
  {
    "path": "docs/guides/COMMIT_LEVELS.md",
    "chars": 3991,
    "preview": "## Understanding the Team Commit Process\nThe AngularJS Material team has a very specific process for change commits.\n\nOu"
  },
  {
    "path": "docs/guides/MERGE_REQUESTS.md",
    "chars": 3988,
    "preview": "## Merging a Pull Request\n\n* [Copy the PR into a local branch](#curl)\n* [Squashing everything into one commit](#squash)\n"
  },
  {
    "path": "docs/guides/PULL_REQUESTS.md",
    "chars": 2728,
    "preview": "### Submitting a Pull Request\nBefore you submit your pull request consider the following guidelines:\n\n* Search [GitHub]("
  },
  {
    "path": "docs/guides/THEMES_IMPL_NOTES.md",
    "chars": 2304,
    "preview": "# Notes on AngularJS Material's theme implementation\n\n#### TL;DR\nYou configure themes with `$mdThemingProvider`. The CSS"
  },
  {
    "path": "docs/gulpfile.js",
    "chars": 5623,
    "preview": "const gulp = require('gulp');\nconst Dgeni = require('dgeni');\nconst _ = require('lodash');\nconst concat = require('gulp-"
  },
  {
    "path": "docs/spec/codepen.spec.js",
    "chars": 5582,
    "preview": "describe('CodepenDataAdapter', function() {\n\n  let codepenDataAdapter, demo, data, externalScripts;\n  beforeEach(module("
  },
  {
    "path": "docs/spec/demo.spec.js",
    "chars": 2351,
    "preview": "describe('docsDemo', function() {\n\n  beforeEach(module('docsApp', 'ngMaterial'));\n\n  var codepen, element, $httpBackend,"
  },
  {
    "path": "gulp/.jshintrc",
    "chars": 150,
    "preview": "{\n  \"sub\": true,\n  \"multistr\": true,\n  \"-W018\": true,\n  \"expr\": true,\n  \"boss\": true,\n  \"laxbreak\": true,\n  \"esversion\":"
  },
  {
    "path": "gulp/config.js",
    "chars": 5130,
    "preview": "const argsVersion = require('minimist')(process.argv.slice(2)).version;\nconst currentVersion = require('../package.json'"
  },
  {
    "path": "gulp/const.js",
    "chars": 1173,
    "preview": "const config = require('./config');\nconst path = require('path');\nconst args = require('minimist')(process.argv.slice(2)"
  },
  {
    "path": "gulp/tasks/build-all-modules.js",
    "chars": 948,
    "preview": "const BUILD_MODE = require('../const').BUILD_MODE;\n\nconst gulp = require('gulp');\nconst path = require('path');\nconst th"
  },
  {
    "path": "gulp/tasks/build-contributors.js",
    "chars": 1601,
    "preview": "const child_process = require('child_process');\nconst os = require('os');\nconst path = require('path');\n\n(function () {\n"
  },
  {
    "path": "gulp/tasks/build-demo.js",
    "chars": 170,
    "preview": "const util = require('../util');\n\nexports.dependencies = ['build', 'build-module-demo'];\n\nexports.task = function() {\n  "
  },
  {
    "path": "gulp/tasks/build-js.js",
    "chars": 90,
    "preview": "const util = require('../util');\n\nexports.task = function() {\n  return util.buildJs();\n};\n"
  },
  {
    "path": "gulp/tasks/build-module-demo.js",
    "chars": 1203,
    "preview": "const BUILD_MODE = require('../const').BUILD_MODE;\nconst ROOT = require('../const').ROOT;\n\nconst gulp = require('gulp');"
  },
  {
    "path": "gulp/tasks/build-scss.js",
    "chars": 4031,
    "preview": "const config = require('../config');\nconst gulp = require('gulp');\nconst gutil = require('gulp-util');\nconst rename = re"
  },
  {
    "path": "gulp/tasks/build.js",
    "chars": 51,
    "preview": "exports.dependencies = ['build-scss', 'build-js'];\n"
  },
  {
    "path": "gulp/tasks/changelog.js",
    "chars": 2147,
    "preview": "const fs = require('fs');\nconst changelog = require('conventional-changelog');\nconst ROOT = require('../const').ROOT;\nco"
  },
  {
    "path": "gulp/tasks/ddescribe-iit.js",
    "chars": 2947,
    "preview": "const gulp = require('gulp');\nconst PluginError = require('gulp-util').PluginError;\nconst path = require('path');\nconst "
  },
  {
    "path": "gulp/tasks/default.js",
    "chars": 34,
    "preview": "exports.dependencies = ['build'];\n"
  },
  {
    "path": "gulp/tasks/docs.js",
    "chars": 404,
    "preview": "const gulp = require('gulp');\nconst connect = require('gulp-connect');\nconst constants = require('../const');\nconst IS_D"
  },
  {
    "path": "gulp/tasks/jshint.js",
    "chars": 421,
    "preview": "const config = require('../config');\nconst gulp = require('gulp');\nconst jshint = require('gulp-jshint');\n\nexports.task "
  },
  {
    "path": "gulp/tasks/karma-fast.js",
    "chars": 1334,
    "preview": "const gutil = require('gulp-util');\nconst util = require('../util');\nconst ROOT = require('../const').ROOT;\nconst karma "
  },
  {
    "path": "gulp/tasks/karma-sauce.js",
    "chars": 739,
    "preview": "const ROOT = require('../const').ROOT;\nconst karma = require('karma');\nconst parseConfig = karma.config.parseConfig;\ncon"
  },
  {
    "path": "gulp/tasks/karma-watch.js",
    "chars": 1074,
    "preview": "const ROOT = require('../const').ROOT;\nconst args = require('../util').args;\nconst karma = require('karma');\nconst parse"
  },
  {
    "path": "gulp/tasks/karma.js",
    "chars": 1282,
    "preview": "const gutil = require('gulp-util');\nconst util = require('../util');\nconst ROOT = require('../const').ROOT;\nconst args ="
  },
  {
    "path": "gulp/tasks/server.js",
    "chars": 200,
    "preview": "const connect = require('gulp-connect');\nconst LR_PORT = require('../const').LR_PORT;\n\nexports.task = function () {\n  co"
  },
  {
    "path": "gulp/tasks/site.js",
    "chars": 438,
    "preview": "const connect = require('gulp-connect');\nconst LR_PORT = require('../const').LR_PORT;\n\nexports.task = function () {\n  co"
  },
  {
    "path": "gulp/tasks/validate.js",
    "chars": 61,
    "preview": "exports.dependencies = ['jshint', 'ddescribe-iit', 'karma'];\n"
  },
  {
    "path": "gulp/tasks/watch-demo.js",
    "chars": 541,
    "preview": "const gulp = require('gulp');\nconst gutil = require('gulp-util');\nconst util = require('../util');\n\nexports.dependencies"
  },
  {
    "path": "gulp/tasks/watch.js",
    "chars": 155,
    "preview": "const gulp = require('gulp');\n\nexports.dependencies = ['docs'];\n\nexports.task = function() {\n  gulp.watch(['docs/**/*', "
  },
  {
    "path": "gulp/util.js",
    "chars": 10279,
    "preview": "const config = require('./config');\nconst gulp = require('gulp');\nconst gutil = require('gulp-util');\nconst frep = requi"
  },
  {
    "path": "gulpfile.js",
    "chars": 607,
    "preview": "const gulp = require('gulp');\nconst fs = require('fs');\n\n// include docs gulpfile (should eventually be factored out)\nre"
  },
  {
    "path": "package.json",
    "chars": 4262,
    "preview": "{\n  \"name\": \"angular-material-source\",\n  \"version\": \"1.2.5\",\n  \"description\": \"The AngularJS Material project is an impl"
  },
  {
    "path": "release",
    "chars": 26,
    "preview": "node --harmony release.js\n"
  },
  {
    "path": "release.js",
    "chars": 15347,
    "preview": "/* eslint-disable no-fallthrough */\n(function () {\n  'use strict';\n\n  const colors         = require('colors');\n  const "
  },
  {
    "path": "scripts/bower-material-release.sh",
    "chars": 2141,
    "preview": "#!/bin/bash\n\nARG_DEFS=(\n  \"--version=(.*)\"\n)\n\nfunction run {\n  cd ../\n\n  echo \"-- Building release...\"\n  rm -rf dist\n  g"
  },
  {
    "path": "scripts/build-asset-cache.sh",
    "chars": 510,
    "preview": "#!/bin/bash\n\n# Intended to generate an object literal of SVG images\n# key - relative path to file.\n# value - contents of"
  },
  {
    "path": "scripts/circleci/run-tests.sh",
    "chars": 441,
    "preview": "#!/bin/bash\n\n# Enable tracing and Terminate the execution if anything fails in the pipeline.\nset -xe\n\n# Ensure that scri"
  },
  {
    "path": "scripts/circleci/update-snapshot-and-docs.sh",
    "chars": 630,
    "preview": "#!/bin/bash\n\nARG_DEFS=(\n  \"--sha=(.*)\"\n)\n\ngit config --global user.email \"ngmaterial@googlegroups.com\"\ngit config --glob"
  },
  {
    "path": "scripts/fetch-angular-version.sh",
    "chars": 2390,
    "preview": "#!/bin/bash\n\n# Bash Script to replace the current AngularJS version in the node modules.\n# Accepts a version as an argum"
  },
  {
    "path": "scripts/find-max-version.js",
    "chars": 2947,
    "preview": "// INPUT = $1 = VERSION\n//  (something like 1.3 or 1.4.5)\n\n// OUTPUT = a specific version number\n//  (something like 1.3"
  },
  {
    "path": "scripts/gulp-utils.js",
    "chars": 11671,
    "preview": "const gulp = require('gulp');\nconst through2 = require('through2');\nconst gutil = require('gulp-util');\nconst autoprefix"
  },
  {
    "path": "scripts/sauce/setup-tunnel.sh",
    "chars": 903,
    "preview": "#!/bin/bash\n\nSAUCE_BINARY_FILE=\"sc-4.4.6-linux.tar.gz\"\nSAUCE_BINARY_DIR=\"/tmp/sauce\"\nSAUCE_ACCESS_KEY=`echo $SAUCE_ACCES"
  },
  {
    "path": "scripts/sauce/stop-tunnel.sh",
    "chars": 106,
    "preview": "#!/bin/bash\n\n# Closes all instances of any Sauce Connector and waits for them to finish.\nkillall --wait sc"
  },
  {
    "path": "scripts/sauce/wait-tunnel.sh",
    "chars": 134,
    "preview": "#!/bin/bash\n\n# Wait for the tunnel to be ready.\nwhile [ ! -e $SAUCE_READY_FILE ]; do\n  sleep 1;\ndone\n\necho \"Sauce Tunnel"
  },
  {
    "path": "scripts/snapshot-docs-site.sh",
    "chars": 1914,
    "preview": "#!/bin/bash\n\nARG_DEFS=(\n  \"--version=(.*)\"\n)\n\nfunction run {\n  cd ../\n\n  echo \"-- Building docs site release...\"\n  rm -r"
  },
  {
    "path": "scripts/test-versions.sh",
    "chars": 2145,
    "preview": "#!/bin/bash\n\n# The purpose of this file is to download\n# assigned AngularJS source files and test\n# them against this bu"
  },
  {
    "path": "scripts/utils.inc",
    "chars": 7212,
    "preview": "# bash utils from angularjs\n\n# This file provides:\n# - a default control flow\n#   * initializes the environment\n#   * ab"
  },
  {
    "path": "scripts/write-presubmit-scheduler.js",
    "chars": 2617,
    "preview": "#!/usr/bin/env node\n\nconst path = require('path');\nconst fs = require('fs');\nconst GitHubApi = require('github');\nconst "
  },
  {
    "path": "src/components/autocomplete/autocomplete-theme.scss",
    "chars": 1394,
    "preview": "@mixin md-autocomplete-input($input-color) {\n  md-input-container.md-input-focused {\n    .md-input {\n      border-color:"
  },
  {
    "path": "src/components/autocomplete/autocomplete.js",
    "chars": 268,
    "preview": "/**\n * @ngdoc module\n * @name material.components.autocomplete\n */\n/*\n * @see js folder for autocomplete implementation\n"
  },
  {
    "path": "src/components/autocomplete/autocomplete.scss",
    "chars": 5196,
    "preview": "// The default item height is also specified in the JavaScript.\n$md-autocomplete-item-height: 48px !default;\n$md-autocom"
  },
  {
    "path": "src/components/autocomplete/autocomplete.spec.js",
    "chars": 141802,
    "preview": "describe('<md-autocomplete>', function() {\n\n  var element, scope;\n\n  beforeEach(module('material.components.autocomplete"
  },
  {
    "path": "src/components/autocomplete/demoBasicUsage/index.html",
    "chars": 1874,
    "preview": "<div ng-controller=\"DemoCtrl as ctrl\" ng-cloak>\n  <md-content class=\"md-padding\">\n    <form ng-submit=\"$event.preventDef"
  },
  {
    "path": "src/components/autocomplete/demoBasicUsage/script.js",
    "chars": 2585,
    "preview": "(function () {\n  'use strict';\n  angular\n      .module('autocompleteDemo', ['ngMaterial'])\n      .controller('DemoCtrl',"
  },
  {
    "path": "src/components/autocomplete/demoCustomTemplate/index.html",
    "chars": 1531,
    "preview": "<div ng-controller=\"DemoCtrl as ctrl\" ng-cloak>\n  <md-content layout-padding layout=\"column\">\n    <form ng-submit=\"$even"
  },
  {
    "path": "src/components/autocomplete/demoCustomTemplate/script.js",
    "chars": 2890,
    "preview": "(function () {\n  'use strict';\n  angular\n      .module('autocompleteCustomTemplateDemo', ['ngMaterial'])\n      .controll"
  },
  {
    "path": "src/components/autocomplete/demoCustomTemplate/style.global.css",
    "chars": 594,
    "preview": "md-autocomplete#custom-template {\n  width: 200px;\n}\n.autocomplete-custom-template .md-autocomplete-suggestion {\n  border"
  },
  {
    "path": "src/components/autocomplete/demoFloatingLabel/index.html",
    "chars": 1833,
    "preview": "<div ng-controller=\"DemoCtrl as ctrl\" ng-cloak>\n  <md-content class=\"md-padding\">\n    <form ng-submit=\"$event.preventDef"
  },
  {
    "path": "src/components/autocomplete/demoFloatingLabel/script.js",
    "chars": 2054,
    "preview": "(function () {\n  'use strict';\n  angular\n      .module('autocompleteFloatingLabelDemo', ['ngMaterial', 'ngMessages'])\n  "
  },
  {
    "path": "src/components/autocomplete/demoInsideDialog/dialog.tmpl.html",
    "chars": 1557,
    "preview": "<md-dialog aria-label=\"Autocomplete Dialog Example\">\n\n  <md-toolbar>\n    <div class=\"md-toolbar-tools\">\n      <h2>Autoco"
  },
  {
    "path": "src/components/autocomplete/demoInsideDialog/index.html",
    "chars": 284,
    "preview": "<div ng-controller=\"DemoCtrl as ctrl\" ng-cloak>\n  <md-content class=\"md-padding\">\n    <p>\n      Click the button below t"
  },
  {
    "path": "src/components/autocomplete/demoInsideDialog/script.js",
    "chars": 2432,
    "preview": "(function () {\n  'use strict';\n  angular\n      .module('autocompleteDemoInsideDialog', ['ngMaterial'])\n      .controller"
  },
  {
    "path": "src/components/autocomplete/demoRepeatMode/index.html",
    "chars": 4494,
    "preview": "<md-content class=\"md-padding\" ng-cloak>\n  <div layout=\"row\" layout-xs=\"column\">\n    <div class=\"instance-wrapper\" flex-"
  },
  {
    "path": "src/components/autocomplete/demoRepeatMode/script.js",
    "chars": 3796,
    "preview": "(function () {\n  'use strict';\n  angular\n      .module('autocompleteRepeatModeDemo', ['ngMaterial'])\n      .controller('"
  },
  {
    "path": "src/components/autocomplete/demoRepeatMode/style.global.css",
    "chars": 1092,
    "preview": "#standard-autocomplete,\n#virtual-autocomplete {\n  width: 200px;\n}\n.autocomplete-standard-template .md-autocomplete-sugge"
  },
  {
    "path": "src/components/autocomplete/js/autocompleteController.js",
    "chars": 35628,
    "preview": "angular\n    .module('material.components.autocomplete')\n    .controller('MdAutocompleteCtrl', MdAutocompleteCtrl);\n\nvar "
  },
  {
    "path": "src/components/autocomplete/js/autocompleteDirective.js",
    "chars": 28295,
    "preview": "angular\n    .module('material.components.autocomplete')\n    .directive('mdAutocomplete', MdAutocomplete);\n\n/**\n * @ngdoc"
  },
  {
    "path": "src/components/autocomplete/js/autocompleteParentScopeDirective.js",
    "chars": 2046,
    "preview": "angular\n  .module('material.components.autocomplete')\n  .directive('mdAutocompleteParentScope', MdAutocompleteItemScopeD"
  },
  {
    "path": "src/components/autocomplete/js/highlightController.js",
    "chars": 3072,
    "preview": "angular\n    .module('material.components.autocomplete')\n    .controller('MdHighlightCtrl', MdHighlightCtrl);\n\nfunction M"
  },
  {
    "path": "src/components/autocomplete/js/highlightDirective.js",
    "chars": 1635,
    "preview": "angular\n    .module('material.components.autocomplete')\n    .directive('mdHighlightText', MdHighlight);\n\n/**\n * @ngdoc d"
  },
  {
    "path": "src/components/backdrop/backdrop-theme.scss",
    "chars": 153,
    "preview": "md-backdrop {\n\n  background-color: '{{background-900-0.0}}';\n\n  &.md-opaque.md-THEME_NAME-theme {\n    background-color: "
  },
  {
    "path": "src/components/backdrop/backdrop.js",
    "chars": 2707,
    "preview": "/*\n * @ngdoc module\n * @name material.components.backdrop\n * @description Backdrop\n */\n\n/**\n * @ngdoc directive\n * @name"
  },
  {
    "path": "src/components/backdrop/backdrop.scss",
    "chars": 1045,
    "preview": "// !!Important - Theme-based Background-color can be configured in backdrop-theme.scss\n//             - Animate backgrou"
  },
  {
    "path": "src/components/bottomSheet/bottom-sheet-theme.scss",
    "chars": 328,
    "preview": "md-bottom-sheet.md-THEME_NAME-theme {\n  background-color: '{{background-color}}';\n  border-top-color: '{{background-hue-"
  },
  {
    "path": "src/components/bottomSheet/bottom-sheet.js",
    "chars": 12809,
    "preview": "/**\n * @ngdoc module\n * @name material.components.bottomSheet\n * @description\n * BottomSheet\n */\nangular\n  .module('mate"
  },
  {
    "path": "src/components/bottomSheet/bottom-sheet.scss",
    "chars": 4183,
    "preview": "$bottom-sheet-horizontal-padding: 2 * $baseline-grid !default;\n$bottom-sheet-vertical-padding: 1 * $baseline-grid !defau"
  },
  {
    "path": "src/components/bottomSheet/bottom-sheet.spec.js",
    "chars": 8033,
    "preview": "describe('$mdBottomSheet service', function () {\n  var $mdBottomSheet, $rootElement, $rootScope, $material, $mdConstant;"
  },
  {
    "path": "src/components/bottomSheet/demoBasicUsage/bottom-sheet-grid-template.html",
    "chars": 658,
    "preview": "<md-bottom-sheet class=\"md-grid\" layout=\"column\">\n  <div layout=\"row\" layout-align=\"center center\" ng-cloak>\n    <h4>Sin"
  },
  {
    "path": "src/components/bottomSheet/demoBasicUsage/bottom-sheet-list-template.html",
    "chars": 506,
    "preview": "<md-bottom-sheet class=\"md-list md-has-header\">\n  <md-subheader ng-cloak>Comment Actions</md-subheader>\n  <md-list ng-cl"
  },
  {
    "path": "src/components/bottomSheet/demoBasicUsage/index.html",
    "chars": 847,
    "preview": "<div ng-controller=\"BottomSheetExample\" class=\"md-padding\" ng-cloak>\n  <h2 class=\"md-title\">Usage</h2>\n  <p>Bottom sheet"
  },
  {
    "path": "src/components/bottomSheet/demoBasicUsage/readme.html",
    "chars": 111,
    "preview": "<p>This UX pattern is intended for mobile devices only, and may not make sense to use\non responsive sites.</p>\n"
  },
  {
    "path": "src/components/bottomSheet/demoBasicUsage/script.js",
    "chars": 2966,
    "preview": "angular.module('bottomSheetDemo1', ['ngMaterial'])\n.config(function($mdIconProvider) {\n    $mdIconProvider\n      .icon('"
  },
  {
    "path": "src/components/bottomSheet/demoBasicUsage/style.css",
    "chars": 605,
    "preview": ".md-inline-list-icon-label {\n  display: inline-block;\n  padding-left: 10px;\n  padding-right: 10px;\n  margin-top: -10px;\n"
  },
  {
    "path": "src/components/button/button-theme.scss",
    "chars": 3248,
    "preview": ".md-button.md-THEME_NAME-theme {\n\n  &:not([disabled]) {\n    &:hover {\n      background-color: '{{background-500-0.2}}';\n"
  },
  {
    "path": "src/components/button/button.js",
    "chars": 5692,
    "preview": "/**\n * @ngdoc module\n * @name material.components.button\n * @description\n *\n * Button\n */\nangular\n    .module('material."
  },
  {
    "path": "src/components/button/button.scss",
    "chars": 5876,
    "preview": "// Material Design Button: https://material.io/archive/guidelines/components/buttons.html\n\n$button-border-radius: 2px !d"
  },
  {
    "path": "src/components/button/button.spec.js",
    "chars": 7953,
    "preview": "describe('md-button', function() {\n\n  beforeEach(module('material.components.button'));\n\n  it('should convert attributes"
  },
  {
    "path": "src/components/button/demoBasicUsage/index.html",
    "chars": 3931,
    "preview": "<div ng-controller=\"AppCtrl\" ng-cloak>\n  <md-content>\n\n    <section layout=\"row\" layout-sm=\"column\" layout-align=\"center"
  },
  {
    "path": "src/components/button/demoBasicUsage/script.js",
    "chars": 167,
    "preview": "angular.module('buttonsDemoBasic', ['ngMaterial'])\n.controller('AppCtrl', function($scope) {\n  $scope.isDisabled = true;"
  },
  {
    "path": "src/components/button/demoBasicUsage/style.css",
    "chars": 250,
    "preview": "section {\n  border-radius: 3px;\n  text-align: center;\n  margin: 1em;\n  position: relative !important;\n}\nsection .md-butt"
  }
]

// ... and 527 more files (download for full content)

About this extraction

This page contains the full source code of the angular/material GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 727 files (4.1 MB), approximately 1.1M tokens, and a symbol index with 644 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!