@angular/material 12.0.0-rc.2 → 12.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (215) hide show
  1. package/_index.scss +2 -1
  2. package/_theming.scss +39 -4
  3. package/autocomplete/_autocomplete-legacy-index.scss +2 -0
  4. package/badge/_badge-legacy-index.scss +3 -0
  5. package/bottom-sheet/_bottom-sheet-legacy-index.scss +2 -0
  6. package/bottom-sheet/bottom-sheet-container.d.ts +0 -2
  7. package/bottom-sheet/index.metadata.json +1 -1
  8. package/bundles/material-bottom-sheet.umd.js +7 -15
  9. package/bundles/material-bottom-sheet.umd.js.map +1 -1
  10. package/bundles/material-checkbox.umd.js +1 -1
  11. package/bundles/material-checkbox.umd.js.map +1 -1
  12. package/bundles/material-core.umd.js +2 -2
  13. package/bundles/material-core.umd.js.map +1 -1
  14. package/bundles/material-datepicker.umd.js +33 -17
  15. package/bundles/material-datepicker.umd.js.map +1 -1
  16. package/bundles/material-dialog.umd.js +11 -19
  17. package/bundles/material-dialog.umd.js.map +1 -1
  18. package/bundles/material-input.umd.js +7 -1
  19. package/bundles/material-input.umd.js.map +1 -1
  20. package/bundles/material-slide-toggle.umd.js +4 -4
  21. package/bundles/material-slide-toggle.umd.js.map +1 -1
  22. package/bundles/material-sort.umd.js +7 -1
  23. package/bundles/material-sort.umd.js.map +1 -1
  24. package/bundles/material-stepper.umd.js +2 -2
  25. package/bundles/material-stepper.umd.js.map +1 -1
  26. package/bundles/material-table-testing.umd.js +103 -143
  27. package/bundles/material-table-testing.umd.js.map +1 -1
  28. package/bundles/material-table.umd.js.map +1 -1
  29. package/bundles/material-tabs.umd.js +4 -2
  30. package/bundles/material-tabs.umd.js.map +1 -1
  31. package/bundles/material-tooltip.umd.js +19 -15
  32. package/bundles/material-tooltip.umd.js.map +1 -1
  33. package/button/_button-legacy-index.scss +19 -0
  34. package/button-toggle/_button-toggle-legacy-index.scss +2 -0
  35. package/card/_card-legacy-index.scss +2 -0
  36. package/checkbox/_checkbox-legacy-index.scss +2 -0
  37. package/checkbox/index.metadata.json +1 -1
  38. package/chips/_chips-legacy-index.scss +6 -0
  39. package/core/_core-legacy-index.scss +17 -0
  40. package/core/color/_color-legacy-index.scss +1 -0
  41. package/core/density/private/_density-legacy-index.scss +5 -0
  42. package/core/focus-indicators/_focus-indicators-legacy-index.scss +5 -0
  43. package/core/focus-indicators/_focus-indicators.import.scss +1 -1
  44. package/core/focus-indicators/_focus-indicators.scss +4 -0
  45. package/core/index.metadata.json +1 -1
  46. package/core/option/_option-legacy-index.scss +5 -0
  47. package/core/ripple/_ripple-legacy-index.scss +3 -0
  48. package/core/ripple/ripple.d.ts +3 -3
  49. package/core/selection/pseudo-checkbox/_pseudo-checkbox-legacy-index.scss +2 -0
  50. package/core/style/_style-legacy-index.scss +24 -0
  51. package/core/theming/_theming-legacy-index.scss +22 -0
  52. package/core/typography/_typography-legacy-index.scss +18 -0
  53. package/datepicker/_datepicker-legacy-index.scss +9 -0
  54. package/datepicker/date-range-input.d.ts +2 -0
  55. package/datepicker/datepicker-base.d.ts +7 -2
  56. package/datepicker/datepicker-input.d.ts +4 -2
  57. package/datepicker/index.metadata.json +1 -1
  58. package/dialog/_dialog-legacy-index.scss +2 -0
  59. package/dialog/dialog-container.d.ts +0 -2
  60. package/dialog/index.metadata.json +1 -1
  61. package/divider/_divider-legacy-index.scss +3 -0
  62. package/esm2015/bottom-sheet/bottom-sheet-container.js +5 -12
  63. package/esm2015/checkbox/checkbox.js +2 -2
  64. package/esm2015/core/common-behaviors/common-module.js +1 -1
  65. package/esm2015/core/ripple/ripple.js +1 -1
  66. package/esm2015/core/version.js +1 -1
  67. package/esm2015/datepicker/date-range-input-parts.js +3 -2
  68. package/esm2015/datepicker/date-range-input.js +5 -1
  69. package/esm2015/datepicker/datepicker-base.js +16 -11
  70. package/esm2015/datepicker/datepicker-input.js +8 -1
  71. package/esm2015/datepicker/datepicker-intl.js +3 -3
  72. package/esm2015/dialog/dialog-container.js +5 -12
  73. package/esm2015/input/input.js +9 -3
  74. package/esm2015/slide-toggle/slide-toggle.js +5 -5
  75. package/esm2015/sort/sort-header.js +8 -2
  76. package/esm2015/stepper/step-header.js +3 -3
  77. package/esm2015/table/table-data-source.js +1 -1
  78. package/esm2015/table/testing/cell-harness.js +9 -9
  79. package/esm2015/table/testing/row-harness.js +38 -70
  80. package/esm2015/table/testing/table-harness.js +23 -15
  81. package/esm2015/tabs/tab-group.js +4 -2
  82. package/esm2015/tabs/tab.js +3 -3
  83. package/esm2015/tooltip/tooltip.js +12 -8
  84. package/expansion/_expansion-legacy-index.scss +3 -0
  85. package/fesm2015/bottom-sheet.js +4 -11
  86. package/fesm2015/bottom-sheet.js.map +1 -1
  87. package/fesm2015/checkbox.js +1 -1
  88. package/fesm2015/checkbox.js.map +1 -1
  89. package/fesm2015/core.js +2 -2
  90. package/fesm2015/core.js.map +1 -1
  91. package/fesm2015/datepicker.js +30 -13
  92. package/fesm2015/datepicker.js.map +1 -1
  93. package/fesm2015/dialog.js +4 -11
  94. package/fesm2015/dialog.js.map +1 -1
  95. package/fesm2015/input.js +8 -2
  96. package/fesm2015/input.js.map +1 -1
  97. package/fesm2015/slide-toggle.js +4 -4
  98. package/fesm2015/slide-toggle.js.map +1 -1
  99. package/fesm2015/sort.js +7 -1
  100. package/fesm2015/sort.js.map +1 -1
  101. package/fesm2015/stepper.js +2 -2
  102. package/fesm2015/stepper.js.map +1 -1
  103. package/fesm2015/table/testing.js +66 -90
  104. package/fesm2015/table/testing.js.map +1 -1
  105. package/fesm2015/table.js.map +1 -1
  106. package/fesm2015/tabs.js +4 -2
  107. package/fesm2015/tabs.js.map +1 -1
  108. package/fesm2015/tooltip.js +11 -7
  109. package/fesm2015/tooltip.js.map +1 -1
  110. package/form-field/_form-field-legacy-index.scss +24 -0
  111. package/grid-list/_grid-list-legacy-index.scss +2 -0
  112. package/icon/_icon-legacy-index.scss +2 -0
  113. package/input/_input-legacy-index.scss +2 -0
  114. package/input/index.metadata.json +1 -1
  115. package/list/_list-legacy-index.scss +2 -0
  116. package/menu/_menu-legacy-index.scss +2 -0
  117. package/package.json +6 -6
  118. package/paginator/_paginator-legacy-index.scss +2 -0
  119. package/prebuilt-themes/deeppurple-amber.css +1 -1
  120. package/prebuilt-themes/indigo-pink.css +1 -1
  121. package/prebuilt-themes/pink-bluegrey.css +1 -1
  122. package/prebuilt-themes/purple-green.css +1 -1
  123. package/progress-bar/_progress-bar-legacy-index.scss +2 -0
  124. package/progress-spinner/_progress-spinner-legacy-index.scss +2 -0
  125. package/radio/_radio-legacy-index.scss +2 -0
  126. package/schematics/collection.json +0 -6
  127. package/schematics/ng-add/fonts/material-fonts.mjs +46 -0
  128. package/schematics/ng-add/index.js +2 -2
  129. package/schematics/ng-add/index.mjs +55 -0
  130. package/schematics/ng-add/package-config.mjs +47 -0
  131. package/schematics/ng-add/schema.mjs +10 -0
  132. package/schematics/ng-add/setup-project.mjs +121 -0
  133. package/schematics/ng-add/theming/create-custom-theme.mjs +51 -0
  134. package/schematics/ng-add/theming/theming.mjs +165 -0
  135. package/schematics/ng-generate/address-form/index.mjs +49 -0
  136. package/schematics/ng-generate/address-form/schema.mjs +10 -0
  137. package/schematics/ng-generate/dashboard/index.mjs +49 -0
  138. package/schematics/ng-generate/dashboard/schema.mjs +10 -0
  139. package/schematics/ng-generate/navigation/index.mjs +49 -0
  140. package/schematics/ng-generate/navigation/schema.mjs +10 -0
  141. package/schematics/ng-generate/table/index.mjs +46 -0
  142. package/schematics/ng-generate/table/schema.mjs +10 -0
  143. package/schematics/ng-generate/tree/index.mjs +46 -0
  144. package/schematics/ng-generate/tree/schema.mjs +10 -0
  145. package/schematics/ng-update/data/attribute-selectors.mjs +12 -0
  146. package/schematics/ng-update/data/class-names.mjs +32 -0
  147. package/schematics/ng-update/data/constructor-checks.mjs +143 -0
  148. package/schematics/ng-update/data/css-selectors.mjs +46 -0
  149. package/schematics/ng-update/data/element-selectors.mjs +18 -0
  150. package/schematics/ng-update/data/index.mjs +29 -0
  151. package/schematics/ng-update/data/input-names.mjs +76 -0
  152. package/schematics/ng-update/data/method-call-checks.mjs +22 -0
  153. package/schematics/ng-update/data/output-names.mjs +101 -0
  154. package/schematics/ng-update/data/property-names.mjs +173 -0
  155. package/schematics/ng-update/index.js +3 -1
  156. package/schematics/ng-update/index.mjs +78 -0
  157. package/schematics/ng-update/migrations/hammer-gestures-v9/find-hammer-script-tags.mjs +42 -0
  158. package/schematics/ng-update/migrations/hammer-gestures-v9/find-main-module.mjs +32 -0
  159. package/schematics/ng-update/migrations/hammer-gestures-v9/hammer-gestures-migration.mjs +778 -0
  160. package/schematics/ng-update/migrations/hammer-gestures-v9/hammer-template-check.mjs +56 -0
  161. package/schematics/ng-update/migrations/hammer-gestures-v9/import-manager.mjs +370 -0
  162. package/schematics/ng-update/migrations/hammer-gestures-v9/remove-array-element.mjs +66 -0
  163. package/schematics/ng-update/migrations/hammer-gestures-v9/remove-element-from-html.mjs +28 -0
  164. package/schematics/ng-update/migrations/misc-checks/misc-class-inheritance.mjs +48 -0
  165. package/schematics/ng-update/migrations/misc-checks/misc-class-names.mjs +43 -0
  166. package/schematics/ng-update/migrations/misc-checks/misc-imports.mjs +54 -0
  167. package/schematics/ng-update/migrations/misc-checks/misc-property-names.mjs +47 -0
  168. package/schematics/ng-update/migrations/misc-checks/misc-template.mjs +60 -0
  169. package/schematics/ng-update/migrations/misc-ripples-v7/ripple-speed-factor-migration.mjs +138 -0
  170. package/schematics/ng-update/migrations/misc-ripples-v7/ripple-speed-factor.mjs +30 -0
  171. package/schematics/ng-update/migrations/package-imports-v8/secondary-entry-points-migration.mjs +169 -0
  172. package/schematics/{ng-generate/theming-api → ng-update/migrations/theming-api-v12}/config.d.ts +6 -0
  173. package/schematics/ng-update/migrations/theming-api-v12/config.js +206 -0
  174. package/schematics/ng-update/migrations/theming-api-v12/config.mjs +206 -0
  175. package/schematics/{ng-generate/theming-api → ng-update/migrations/theming-api-v12}/migration.d.ts +0 -0
  176. package/schematics/ng-update/migrations/theming-api-v12/migration.js +234 -0
  177. package/schematics/ng-update/migrations/theming-api-v12/migration.mjs +234 -0
  178. package/schematics/ng-update/migrations/theming-api-v12/theming-api-migration.d.ts +18 -0
  179. package/schematics/ng-update/migrations/theming-api-v12/theming-api-migration.js +45 -0
  180. package/schematics/ng-update/migrations/theming-api-v12/theming-api-migration.mjs +45 -0
  181. package/schematics/ng-update/typescript/module-specifiers.mjs +35 -0
  182. package/schematics/ng-update/upgrade-data.mjs +24 -0
  183. package/schematics/paths.mjs +16 -0
  184. package/schematics/schematics.externs.js +0 -0
  185. package/select/_select-legacy-index.scss +2 -0
  186. package/sidenav/_sidenav-legacy-index.scss +2 -0
  187. package/slide-toggle/_slide-toggle-legacy-index.scss +3 -0
  188. package/slide-toggle/index.metadata.json +1 -1
  189. package/slide-toggle/slide-toggle.d.ts +3 -2
  190. package/slider/_slider-legacy-index.scss +2 -0
  191. package/snack-bar/_snack-bar-legacy-index.scss +2 -0
  192. package/sort/_sort-legacy-index.scss +2 -0
  193. package/sort/sort-header.d.ts +1 -1
  194. package/stepper/_stepper-legacy-index.scss +7 -0
  195. package/stepper/index.metadata.json +1 -1
  196. package/table/_table-legacy-index.scss +3 -0
  197. package/table/index.metadata.json +1 -1
  198. package/table/table-data-source.d.ts +17 -5
  199. package/table/testing/cell-harness.d.ts +2 -1
  200. package/table/testing/row-harness.d.ts +21 -22
  201. package/table/testing/table-harness.d.ts +32 -13
  202. package/tabs/_tabs-legacy-index.scss +6 -0
  203. package/tabs/_tabs-theme.scss +5 -2
  204. package/tabs/index.metadata.json +1 -1
  205. package/toolbar/_toolbar-legacy-index.scss +4 -0
  206. package/tooltip/_tooltip-legacy-index.scss +3 -0
  207. package/tooltip/index.metadata.json +1 -1
  208. package/tree/_tree-legacy-index.scss +2 -0
  209. package/schematics/ng-generate/theming-api/config.js +0 -183
  210. package/schematics/ng-generate/theming-api/index.d.ts +0 -10
  211. package/schematics/ng-generate/theming-api/index.js +0 -26
  212. package/schematics/ng-generate/theming-api/migration.js +0 -226
  213. package/schematics/ng-generate/theming-api/schema.d.ts +0 -9
  214. package/schematics/ng-generate/theming-api/schema.js +0 -10
  215. package/schematics/ng-generate/theming-api/schema.json +0 -7
@@ -12,6 +12,7 @@ import { ESCAPE, hasModifierKey, SPACE, ENTER, PAGE_DOWN, PAGE_UP, END, HOME, DO
12
12
  import { Directionality } from '@angular/cdk/bidi';
13
13
  import { take, startWith, filter } from 'rxjs/operators';
14
14
  import { coerceBooleanProperty, coerceStringArray } from '@angular/cdk/coercion';
15
+ import { _getFocusedElementPierceShadowDom } from '@angular/cdk/platform';
15
16
  import { trigger, transition, animate, keyframes, style, state } from '@angular/animations';
16
17
  import { NG_VALUE_ACCESSOR, NG_VALIDATORS, Validators, NgControl, NgForm, FormGroupDirective, ControlContainer } from '@angular/forms';
17
18
  import { MatFormField, MAT_FORM_FIELD, MatFormFieldControl } from '@angular/material/form-field';
@@ -61,9 +62,9 @@ class MatDatepickerIntl {
61
62
  /** A label for the next year button (used by screen readers). */
62
63
  this.nextYearLabel = 'Next year';
63
64
  /** A label for the previous multi-year button (used by screen readers). */
64
- this.prevMultiYearLabel = 'Previous 20 years';
65
+ this.prevMultiYearLabel = 'Previous 24 years';
65
66
  /** A label for the next multi-year button (used by screen readers). */
66
- this.nextMultiYearLabel = 'Next 20 years';
67
+ this.nextMultiYearLabel = 'Next 24 years';
67
68
  /** A label for the 'switch to month view' button (used by screen readers). */
68
69
  this.switchToMonthViewLabel = 'Choose date';
69
70
  /** A label for the 'switch to year view' button (used by screen readers). */
@@ -1938,13 +1939,17 @@ class MatDatepickerBase {
1938
1939
  * @deprecated `_dialog` parameter is no longer being used and it will be removed.
1939
1940
  * @breaking-change 13.0.0
1940
1941
  */
1941
- _dialog, _overlay, _ngZone, _viewContainerRef, scrollStrategy, _dateAdapter, _dir, _document, _model) {
1942
+ _dialog, _overlay, _ngZone, _viewContainerRef, scrollStrategy, _dateAdapter, _dir,
1943
+ /**
1944
+ * @deprecated No longer being used. To be removed.
1945
+ * @breaking-change 13.0.0
1946
+ */
1947
+ _document, _model) {
1942
1948
  this._overlay = _overlay;
1943
1949
  this._ngZone = _ngZone;
1944
1950
  this._viewContainerRef = _viewContainerRef;
1945
1951
  this._dateAdapter = _dateAdapter;
1946
1952
  this._dir = _dir;
1947
- this._document = _document;
1948
1953
  this._model = _model;
1949
1954
  this._inputStateChanges = Subscription.EMPTY;
1950
1955
  /** The view that the calendar should start in. */
@@ -2128,18 +2133,13 @@ class MatDatepickerBase {
2128
2133
  }
2129
2134
  /** Open the calendar. */
2130
2135
  open() {
2131
- var _a, _b;
2132
2136
  if (this._opened || this.disabled) {
2133
2137
  return;
2134
2138
  }
2135
2139
  if (!this.datepickerInput && (typeof ngDevMode === 'undefined' || ngDevMode)) {
2136
2140
  throw Error('Attempted to open an MatDatepicker with no associated input.');
2137
2141
  }
2138
- // If the `activeElement` is inside a shadow root, `document.activeElement` will
2139
- // point to the shadow root so we have to descend into it ourselves.
2140
- const activeElement = (_a = this._document) === null || _a === void 0 ? void 0 : _a.activeElement;
2141
- this._focusedElementBeforeOpen =
2142
- ((_b = activeElement === null || activeElement === void 0 ? void 0 : activeElement.shadowRoot) === null || _b === void 0 ? void 0 : _b.activeElement) || activeElement;
2142
+ this._focusedElementBeforeOpen = _getFocusedElementPierceShadowDom();
2143
2143
  this._openOverlay();
2144
2144
  this._opened = true;
2145
2145
  this.openedStream.emit();
@@ -2192,6 +2192,7 @@ class MatDatepickerBase {
2192
2192
  _openOverlay() {
2193
2193
  this._destroyOverlay();
2194
2194
  const isDialog = this.touchUi;
2195
+ const labelId = this.datepickerInput.getOverlayLabelId();
2195
2196
  const portal = new ComponentPortal(MatDatepickerContent, this._viewContainerRef);
2196
2197
  const overlayRef = this._overlayRef = this._overlay.create(new OverlayConfig({
2197
2198
  positionStrategy: isDialog ? this._getDialogStrategy() : this._getDropdownStrategy(),
@@ -2204,9 +2205,13 @@ class MatDatepickerBase {
2204
2205
  scrollStrategy: isDialog ? this._overlay.scrollStrategies.block() : this._scrollStrategy(),
2205
2206
  panelClass: `mat-datepicker-${isDialog ? 'dialog' : 'popup'}`,
2206
2207
  }));
2207
- overlayRef.overlayElement.setAttribute('role', 'dialog');
2208
+ const overlayElement = overlayRef.overlayElement;
2209
+ overlayElement.setAttribute('role', 'dialog');
2210
+ if (labelId) {
2211
+ overlayElement.setAttribute('aria-labelledby', labelId);
2212
+ }
2208
2213
  if (isDialog) {
2209
- overlayRef.overlayElement.setAttribute('aria-modal', 'true');
2214
+ overlayElement.setAttribute('aria-modal', 'true');
2210
2215
  }
2211
2216
  this._getCloseStream(overlayRef).subscribe(event => {
2212
2217
  if (event) {
@@ -2698,6 +2703,13 @@ class MatDatepickerInput extends MatDatepickerInputBase {
2698
2703
  getConnectedOverlayOrigin() {
2699
2704
  return this._formField ? this._formField.getConnectedOverlayOrigin() : this._elementRef;
2700
2705
  }
2706
+ /** Gets the ID of an element that should be used a description for the calendar overlay. */
2707
+ getOverlayLabelId() {
2708
+ if (this._formField) {
2709
+ return this._formField.getLabelId();
2710
+ }
2711
+ return this._elementRef.nativeElement.getAttribute('aria-labelledby');
2712
+ }
2701
2713
  /** Returns the palette used by the input's form field, if any. */
2702
2714
  getThemePalette() {
2703
2715
  return this._formField ? this._formField.color : undefined;
@@ -2909,7 +2921,8 @@ class MatDateRangeInputPartBase extends MatDatepickerInputBase {
2909
2921
  // itself. Usually we can work around it for the CVA, but there's no API to do it for the
2910
2922
  // validator. We work around it here by injecting the `NgControl` in `ngOnInit`, after
2911
2923
  // everything has been resolved.
2912
- const ngControl = this._injector.get(NgControl, null, InjectFlags.Self);
2924
+ // tslint:disable-next-line:no-bitwise
2925
+ const ngControl = this._injector.get(NgControl, null, InjectFlags.Self | InjectFlags.Optional);
2913
2926
  if (ngControl) {
2914
2927
  this.ngControl = ngControl;
2915
2928
  }
@@ -3389,6 +3402,10 @@ class MatDateRangeInput {
3389
3402
  getConnectedOverlayOrigin() {
3390
3403
  return this._formField ? this._formField.getConnectedOverlayOrigin() : this._elementRef;
3391
3404
  }
3405
+ /** Gets the ID of an element that should be used a description for the calendar overlay. */
3406
+ getOverlayLabelId() {
3407
+ return this._formField ? this._formField.getLabelId() : null;
3408
+ }
3392
3409
  /** Gets the value that is used to mirror the state input. */
3393
3410
  _getInputMirrorValue() {
3394
3411
  return this._startInput ? this._startInput.getMirrorValue() : '';