@angular/material 7.2.2 → 7.3.0

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 (143) hide show
  1. package/bundles/material-button.umd.js +2 -2
  2. package/bundles/material-button.umd.js.map +1 -1
  3. package/bundles/material-button.umd.min.js +1 -1
  4. package/bundles/material-button.umd.min.js.map +1 -1
  5. package/bundles/material-chips.umd.js +3 -19
  6. package/bundles/material-chips.umd.js.map +1 -1
  7. package/bundles/material-chips.umd.min.js +1 -1
  8. package/bundles/material-chips.umd.min.js.map +1 -1
  9. package/bundles/material-core.umd.js.map +1 -1
  10. package/bundles/material-core.umd.min.js.map +1 -1
  11. package/bundles/material-datepicker.umd.js +3 -0
  12. package/bundles/material-datepicker.umd.js.map +1 -1
  13. package/bundles/material-datepicker.umd.min.js +1 -1
  14. package/bundles/material-datepicker.umd.min.js.map +1 -1
  15. package/bundles/material-dialog.umd.js +38 -0
  16. package/bundles/material-dialog.umd.js.map +1 -1
  17. package/bundles/material-dialog.umd.min.js +1 -1
  18. package/bundles/material-dialog.umd.min.js.map +1 -1
  19. package/bundles/material-grid-list.umd.js +1 -1
  20. package/bundles/material-grid-list.umd.min.js +1 -1
  21. package/bundles/material-menu.umd.js +6 -6
  22. package/bundles/material-menu.umd.min.js +1 -1
  23. package/bundles/material-stepper.umd.js +21 -1
  24. package/bundles/material-stepper.umd.js.map +1 -1
  25. package/bundles/material-stepper.umd.min.js +1 -1
  26. package/bundles/material-stepper.umd.min.js.map +1 -1
  27. package/bundles/material-table.umd.js +1 -1
  28. package/bundles/material-table.umd.js.map +1 -1
  29. package/bundles/material-table.umd.min.js.map +1 -1
  30. package/bundles/material-tabs.umd.js +179 -45
  31. package/bundles/material-tabs.umd.js.map +1 -1
  32. package/bundles/material-tabs.umd.min.js +2 -2
  33. package/bundles/material-tabs.umd.min.js.map +1 -1
  34. package/bundles/material-tooltip.umd.js +3 -0
  35. package/bundles/material-tooltip.umd.js.map +1 -1
  36. package/bundles/material-tooltip.umd.min.js +1 -1
  37. package/bundles/material-tooltip.umd.min.js.map +1 -1
  38. package/bundles/material.umd.js +258 -76
  39. package/bundles/material.umd.js.map +1 -1
  40. package/bundles/material.umd.min.js +19 -19
  41. package/bundles/material.umd.min.js.map +1 -1
  42. package/button/typings/index.metadata.json +1 -1
  43. package/chips/typings/chip.d.ts +5 -5
  44. package/chips/typings/index.metadata.json +1 -1
  45. package/core/typings/ripple/ripple.d.ts +1 -1
  46. package/dialog/typings/dialog-ref.d.ts +4 -0
  47. package/dialog/typings/index.metadata.json +1 -1
  48. package/esm2015/button.js +2 -2
  49. package/esm2015/button.js.map +1 -1
  50. package/esm2015/chips.js +4 -20
  51. package/esm2015/chips.js.map +1 -1
  52. package/esm2015/core.js +1 -1
  53. package/esm2015/core.js.map +1 -1
  54. package/esm2015/datepicker.js +3 -0
  55. package/esm2015/datepicker.js.map +1 -1
  56. package/esm2015/dialog.js +22 -0
  57. package/esm2015/dialog.js.map +1 -1
  58. package/esm2015/grid-list.js +1 -1
  59. package/esm2015/material.js +4 -4
  60. package/esm2015/material.js.map +1 -1
  61. package/esm2015/menu.js +1 -1
  62. package/esm2015/stepper.js +17 -1
  63. package/esm2015/stepper.js.map +1 -1
  64. package/esm2015/table.js +1 -1
  65. package/esm2015/table.js.map +1 -1
  66. package/esm2015/tabs.js +130 -36
  67. package/esm2015/tabs.js.map +1 -1
  68. package/esm2015/tooltip.js +3 -0
  69. package/esm2015/tooltip.js.map +1 -1
  70. package/esm5/button.es5.js +2 -2
  71. package/esm5/button.es5.js.map +1 -1
  72. package/esm5/chips.es5.js +3 -19
  73. package/esm5/chips.es5.js.map +1 -1
  74. package/esm5/core.es5.js.map +1 -1
  75. package/esm5/datepicker.es5.js +3 -0
  76. package/esm5/datepicker.es5.js.map +1 -1
  77. package/esm5/dialog.es5.js +38 -0
  78. package/esm5/dialog.es5.js.map +1 -1
  79. package/esm5/grid-list.es5.js +1 -1
  80. package/esm5/material.es5.js +4 -4
  81. package/esm5/material.es5.js.map +1 -1
  82. package/esm5/menu.es5.js +1 -1
  83. package/esm5/stepper.es5.js +21 -1
  84. package/esm5/stepper.es5.js.map +1 -1
  85. package/esm5/table.es5.js +1 -1
  86. package/esm5/table.es5.js.map +1 -1
  87. package/esm5/tabs.es5.js +171 -37
  88. package/esm5/tabs.es5.js.map +1 -1
  89. package/esm5/tooltip.es5.js +3 -0
  90. package/esm5/tooltip.es5.js.map +1 -1
  91. package/grid-list/typings/index.d.ts +1 -1
  92. package/grid-list/typings/index.metadata.json +1 -1
  93. package/material.d.ts +1 -1
  94. package/material.metadata.json +3 -3
  95. package/menu/typings/index.d.ts +4 -4
  96. package/menu/typings/index.metadata.json +1 -1
  97. package/package.json +5 -5
  98. package/stepper/typings/index.metadata.json +1 -1
  99. package/stepper/typings/step-header.d.ts +1 -0
  100. package/tabs/typings/index.d.ts +5 -5
  101. package/tabs/typings/index.metadata.json +1 -1
  102. package/tabs/typings/tab-header.d.ts +28 -3
  103. package/tabs/typings/tab-nav-bar/tab-nav-bar.d.ts +6 -6
  104. package/tooltip/typings/index.metadata.json +1 -1
  105. package/tooltip/typings/tooltip.d.ts +1 -0
  106. package/typings/button/index.metadata.json +1 -1
  107. package/typings/chips/chip.d.ts +5 -5
  108. package/typings/chips/index.metadata.json +1 -1
  109. package/typings/core/ripple/ripple.d.ts +1 -1
  110. package/typings/dialog/dialog-ref.d.ts +4 -0
  111. package/typings/dialog/index.metadata.json +1 -1
  112. package/typings/esm5/button/index.metadata.json +1 -1
  113. package/typings/esm5/chips/chip.d.ts +5 -5
  114. package/typings/esm5/chips/index.metadata.json +1 -1
  115. package/typings/esm5/core/ripple/ripple.d.ts +1 -1
  116. package/typings/esm5/dialog/dialog-ref.d.ts +4 -0
  117. package/typings/esm5/dialog/index.metadata.json +1 -1
  118. package/typings/esm5/grid-list/index.d.ts +1 -1
  119. package/typings/esm5/grid-list/index.metadata.json +1 -1
  120. package/typings/esm5/index.metadata.json +1 -1
  121. package/typings/esm5/menu/index.d.ts +4 -4
  122. package/typings/esm5/menu/index.metadata.json +1 -1
  123. package/typings/esm5/stepper/index.metadata.json +1 -1
  124. package/typings/esm5/stepper/step-header.d.ts +1 -0
  125. package/typings/esm5/tabs/index.d.ts +5 -5
  126. package/typings/esm5/tabs/index.metadata.json +1 -1
  127. package/typings/esm5/tabs/tab-header.d.ts +28 -3
  128. package/typings/esm5/tabs/tab-nav-bar/tab-nav-bar.d.ts +6 -6
  129. package/typings/esm5/tooltip/index.metadata.json +1 -1
  130. package/typings/esm5/tooltip/tooltip.d.ts +1 -0
  131. package/typings/grid-list/index.d.ts +1 -1
  132. package/typings/grid-list/index.metadata.json +1 -1
  133. package/typings/index.metadata.json +1 -1
  134. package/typings/menu/index.d.ts +4 -4
  135. package/typings/menu/index.metadata.json +1 -1
  136. package/typings/stepper/index.metadata.json +1 -1
  137. package/typings/stepper/step-header.d.ts +1 -0
  138. package/typings/tabs/index.d.ts +5 -5
  139. package/typings/tabs/index.metadata.json +1 -1
  140. package/typings/tabs/tab-header.d.ts +28 -3
  141. package/typings/tabs/tab-nav-bar/tab-nav-bar.d.ts +6 -6
  142. package/typings/tooltip/index.metadata.json +1 -1
  143. package/typings/tooltip/tooltip.d.ts +1 -0
@@ -750,12 +750,29 @@ var MatTabLabelWrapper = /** @class */ (function (_super) {
750
750
  * @fileoverview added by tsickle
751
751
  * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
752
752
  */
753
+ /**
754
+ * Config used to bind passive event listeners
755
+ * @type {?}
756
+ */
757
+ var passiveEventListenerOptions = (/** @type {?} */ (platform.normalizePassiveListenerOptions({ passive: true })));
753
758
  /**
754
759
  * The distance in pixels that will be overshot when scrolling a tab label into view. This helps
755
760
  * provide a small affordance to the label next to it.
756
761
  * @type {?}
757
762
  */
758
763
  var EXAGGERATED_OVERSCROLL = 60;
764
+ /**
765
+ * Amount of milliseconds to wait before starting to scroll the header automatically.
766
+ * Set a little conservatively in order to handle fake events dispatched on touch devices.
767
+ * @type {?}
768
+ */
769
+ var HEADER_SCROLL_DELAY = 650;
770
+ /**
771
+ * Interval in milliseconds at which to scroll the header
772
+ * while the user is holding their pointer.
773
+ * @type {?}
774
+ */
775
+ var HEADER_SCROLL_INTERVAL = 100;
759
776
  // Boilerplate for applying mixins to MatTabHeader.
760
777
  /**
761
778
  * \@docs-private
@@ -813,6 +830,10 @@ var MatTabHeader = /** @class */ (function (_super) {
813
830
  * Whether the tab list can be scrolled more towards the beginning of the tab label list.
814
831
  */
815
832
  _this._disableScrollBefore = true;
833
+ /**
834
+ * Stream that will stop the automated scrolling.
835
+ */
836
+ _this._stopScrolling = new rxjs.Subject();
816
837
  _this._selectedIndex = 0;
817
838
  /**
818
839
  * Event emitted when the option is selected.
@@ -822,6 +843,24 @@ var MatTabHeader = /** @class */ (function (_super) {
822
843
  * Event emitted when a label is focused.
823
844
  */
824
845
  _this.indexFocused = new core.EventEmitter();
846
+ /** @type {?} */
847
+ var element = _elementRef.nativeElement;
848
+ /** @type {?} */
849
+ var bindEvent = function () {
850
+ rxjs.fromEvent(element, 'mouseleave')
851
+ .pipe(operators.takeUntil(_this._destroyed))
852
+ .subscribe(function () {
853
+ _this._stopInterval();
854
+ });
855
+ };
856
+ // @breaking-change 8.0.0 remove null check once _ngZone is made into a required parameter.
857
+ if (_ngZone) {
858
+ // Bind the `mouseleave` event on the outside since it doesn't change anything in the view.
859
+ _ngZone.runOutsideAngular(bindEvent);
860
+ }
861
+ else {
862
+ bindEvent();
863
+ }
825
864
  return _this;
826
865
  }
827
866
  Object.defineProperty(MatTabHeader.prototype, "selectedIndex", {
@@ -876,11 +915,14 @@ var MatTabHeader = /** @class */ (function (_super) {
876
915
  this._changeDetectorRef.markForCheck();
877
916
  }
878
917
  };
918
+ /** Handles keyboard events on the header. */
879
919
  /**
920
+ * Handles keyboard events on the header.
880
921
  * @param {?} event
881
922
  * @return {?}
882
923
  */
883
924
  MatTabHeader.prototype._handleKeydown = /**
925
+ * Handles keyboard events on the header.
884
926
  * @param {?} event
885
927
  * @return {?}
886
928
  */
@@ -950,6 +992,26 @@ var MatTabHeader = /** @class */ (function (_super) {
950
992
  _this._setTabFocus(newFocusIndex);
951
993
  });
952
994
  };
995
+ /**
996
+ * @return {?}
997
+ */
998
+ MatTabHeader.prototype.ngAfterViewInit = /**
999
+ * @return {?}
1000
+ */
1001
+ function () {
1002
+ var _this = this;
1003
+ // We need to handle these events manually, because we want to bind passive event listeners.
1004
+ rxjs.fromEvent(this._previousPaginator.nativeElement, 'touchstart', passiveEventListenerOptions)
1005
+ .pipe(operators.takeUntil(this._destroyed))
1006
+ .subscribe(function () {
1007
+ _this._handlePaginatorPress('before');
1008
+ });
1009
+ rxjs.fromEvent(this._nextPaginator.nativeElement, 'touchstart', passiveEventListenerOptions)
1010
+ .pipe(operators.takeUntil(this._destroyed))
1011
+ .subscribe(function () {
1012
+ _this._handlePaginatorPress('after');
1013
+ });
1014
+ };
953
1015
  /**
954
1016
  * @return {?}
955
1017
  */
@@ -959,6 +1021,7 @@ var MatTabHeader = /** @class */ (function (_super) {
959
1021
  function () {
960
1022
  this._destroyed.next();
961
1023
  this._destroyed.complete();
1024
+ this._stopScrolling.complete();
962
1025
  };
963
1026
  /**
964
1027
  * Callback for when the MutationObserver detects that the content has changed.
@@ -1157,15 +1220,11 @@ var MatTabHeader = /** @class */ (function (_super) {
1157
1220
  */
1158
1221
  function () { return this._scrollDistance; },
1159
1222
  set: /**
1160
- * @param {?} v
1223
+ * @param {?} value
1161
1224
  * @return {?}
1162
1225
  */
1163
- function (v) {
1164
- this._scrollDistance = Math.max(0, Math.min(this._getMaxScrollDistance(), v));
1165
- // Mark that the scroll distance has changed so that after the view is checked, the CSS
1166
- // transformation can move the header.
1167
- this._scrollDistanceChanged = true;
1168
- this._checkScrollingControls();
1226
+ function (value) {
1227
+ this._scrollTo(value);
1169
1228
  },
1170
1229
  enumerable: true,
1171
1230
  configurable: true
@@ -1185,7 +1244,7 @@ var MatTabHeader = /** @class */ (function (_super) {
1185
1244
  *
1186
1245
  * This is an expensive call that forces a layout reflow to compute box and scroll metrics and
1187
1246
  * should be called sparingly.
1188
- * @param {?} scrollDir
1247
+ * @param {?} direction
1189
1248
  * @return {?}
1190
1249
  */
1191
1250
  MatTabHeader.prototype._scrollHeader = /**
@@ -1195,14 +1254,31 @@ var MatTabHeader = /** @class */ (function (_super) {
1195
1254
  *
1196
1255
  * This is an expensive call that forces a layout reflow to compute box and scroll metrics and
1197
1256
  * should be called sparingly.
1198
- * @param {?} scrollDir
1257
+ * @param {?} direction
1199
1258
  * @return {?}
1200
1259
  */
1201
- function (scrollDir) {
1260
+ function (direction) {
1202
1261
  /** @type {?} */
1203
1262
  var viewLength = this._tabListContainer.nativeElement.offsetWidth;
1204
1263
  // Move the scroll distance one-third the length of the tab list's viewport.
1205
- this.scrollDistance += (scrollDir == 'before' ? -1 : 1) * viewLength / 3;
1264
+ /** @type {?} */
1265
+ var scrollAmount = (direction == 'before' ? -1 : 1) * viewLength / 3;
1266
+ return this._scrollTo(this._scrollDistance + scrollAmount);
1267
+ };
1268
+ /** Handles click events on the pagination arrows. */
1269
+ /**
1270
+ * Handles click events on the pagination arrows.
1271
+ * @param {?} direction
1272
+ * @return {?}
1273
+ */
1274
+ MatTabHeader.prototype._handlePaginatorClick = /**
1275
+ * Handles click events on the pagination arrows.
1276
+ * @param {?} direction
1277
+ * @return {?}
1278
+ */
1279
+ function (direction) {
1280
+ this._stopInterval();
1281
+ this._scrollHeader(direction);
1206
1282
  };
1207
1283
  /**
1208
1284
  * Moves the tab list such that the desired tab label (marked by index) is moved into view.
@@ -1378,10 +1454,82 @@ var MatTabHeader = /** @class */ (function (_super) {
1378
1454
  null;
1379
1455
  this._inkBar.alignToElement((/** @type {?} */ (selectedLabelWrapper)));
1380
1456
  };
1457
+ /** Stops the currently-running paginator interval. */
1458
+ /**
1459
+ * Stops the currently-running paginator interval.
1460
+ * @return {?}
1461
+ */
1462
+ MatTabHeader.prototype._stopInterval = /**
1463
+ * Stops the currently-running paginator interval.
1464
+ * @return {?}
1465
+ */
1466
+ function () {
1467
+ this._stopScrolling.next();
1468
+ };
1469
+ /**
1470
+ * Handles the user pressing down on one of the paginators.
1471
+ * Starts scrolling the header after a certain amount of time.
1472
+ * @param direction In which direction the paginator should be scrolled.
1473
+ */
1474
+ /**
1475
+ * Handles the user pressing down on one of the paginators.
1476
+ * Starts scrolling the header after a certain amount of time.
1477
+ * @param {?} direction In which direction the paginator should be scrolled.
1478
+ * @return {?}
1479
+ */
1480
+ MatTabHeader.prototype._handlePaginatorPress = /**
1481
+ * Handles the user pressing down on one of the paginators.
1482
+ * Starts scrolling the header after a certain amount of time.
1483
+ * @param {?} direction In which direction the paginator should be scrolled.
1484
+ * @return {?}
1485
+ */
1486
+ function (direction) {
1487
+ var _this = this;
1488
+ // Avoid overlapping timers.
1489
+ this._stopInterval();
1490
+ // Start a timer after the delay and keep firing based on the interval.
1491
+ rxjs.timer(HEADER_SCROLL_DELAY, HEADER_SCROLL_INTERVAL)
1492
+ // Keep the timer going until something tells it to stop or the component is destroyed.
1493
+ .pipe(operators.takeUntil(rxjs.merge(this._stopScrolling, this._destroyed)))
1494
+ .subscribe(function () {
1495
+ var _a = _this._scrollHeader(direction), maxScrollDistance = _a.maxScrollDistance, distance = _a.distance;
1496
+ // Stop the timer if we've reached the start or the end.
1497
+ if (distance === 0 || distance >= maxScrollDistance) {
1498
+ _this._stopInterval();
1499
+ }
1500
+ });
1501
+ };
1502
+ /**
1503
+ * Scrolls the header to a given position.
1504
+ * @param position Position to which to scroll.
1505
+ * @returns Information on the current scroll distance and the maximum.
1506
+ */
1507
+ /**
1508
+ * Scrolls the header to a given position.
1509
+ * @private
1510
+ * @param {?} position Position to which to scroll.
1511
+ * @return {?} Information on the current scroll distance and the maximum.
1512
+ */
1513
+ MatTabHeader.prototype._scrollTo = /**
1514
+ * Scrolls the header to a given position.
1515
+ * @private
1516
+ * @param {?} position Position to which to scroll.
1517
+ * @return {?} Information on the current scroll distance and the maximum.
1518
+ */
1519
+ function (position) {
1520
+ /** @type {?} */
1521
+ var maxScrollDistance = this._getMaxScrollDistance();
1522
+ this._scrollDistance = Math.max(0, Math.min(maxScrollDistance, position));
1523
+ // Mark that the scroll distance has changed so that after the view is checked, the CSS
1524
+ // transformation can move the header.
1525
+ this._scrollDistanceChanged = true;
1526
+ this._checkScrollingControls();
1527
+ return { maxScrollDistance: maxScrollDistance, distance: this._scrollDistance };
1528
+ };
1381
1529
  MatTabHeader.decorators = [
1382
1530
  { type: core.Component, args: [{selector: 'mat-tab-header',
1383
- template: "<div class=\"mat-tab-header-pagination mat-tab-header-pagination-before mat-elevation-z4\" aria-hidden=\"true\" mat-ripple [matRippleDisabled]=\"_disableScrollBefore || disableRipple\" [class.mat-tab-header-pagination-disabled]=\"_disableScrollBefore\" (click)=\"_scrollHeader('before')\"><div class=\"mat-tab-header-pagination-chevron\"></div></div><div class=\"mat-tab-label-container\" #tabListContainer (keydown)=\"_handleKeydown($event)\"><div class=\"mat-tab-list\" #tabList role=\"tablist\" (cdkObserveContent)=\"_onContentChanges()\"><div class=\"mat-tab-labels\"><ng-content></ng-content></div><mat-ink-bar></mat-ink-bar></div></div><div class=\"mat-tab-header-pagination mat-tab-header-pagination-after mat-elevation-z4\" aria-hidden=\"true\" mat-ripple [matRippleDisabled]=\"_disableScrollAfter || disableRipple\" [class.mat-tab-header-pagination-disabled]=\"_disableScrollAfter\" (click)=\"_scrollHeader('after')\"><div class=\"mat-tab-header-pagination-chevron\"></div></div>",
1384
- styles: [".mat-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mat-tab-label{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;position:relative}.mat-tab-label:focus{outline:0}.mat-tab-label:focus:not(.mat-tab-disabled){opacity:1}@media (-ms-high-contrast:active){.mat-tab-label:focus{outline:dotted 2px}}.mat-tab-label.mat-tab-disabled{cursor:default}@media (-ms-high-contrast:active){.mat-tab-label.mat-tab-disabled{opacity:.5}}.mat-tab-label .mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}@media (-ms-high-contrast:active){.mat-tab-label{opacity:1}}@media (max-width:599px){.mat-tab-label{min-width:72px}}.mat-ink-bar{position:absolute;bottom:0;height:2px;transition:.5s cubic-bezier(.35,0,.25,1)}.mat-tab-group-inverted-header .mat-ink-bar{bottom:auto;top:0}@media (-ms-high-contrast:active){.mat-ink-bar{outline:solid 2px;height:0}}.mat-tab-header-pagination{position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2}.mat-tab-header-pagination-controls-enabled .mat-tab-header-pagination{display:flex}.mat-tab-header-pagination-before,.mat-tab-header-rtl .mat-tab-header-pagination-after{padding-left:4px}.mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-rtl .mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-tab-header-pagination-after,.mat-tab-header-rtl .mat-tab-header-pagination-before{padding-right:4px}.mat-tab-header-pagination-after .mat-tab-header-pagination-chevron,.mat-tab-header-rtl .mat-tab-header-pagination-before .mat-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;content:'';height:8px;width:8px}.mat-tab-header-pagination-disabled{box-shadow:none;cursor:default}.mat-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}.mat-tab-list{flex-grow:1;position:relative;transition:transform .5s cubic-bezier(.35,0,.25,1)}.mat-tab-labels{display:flex}[mat-align-tabs=center] .mat-tab-labels{justify-content:center}[mat-align-tabs=end] .mat-tab-labels{justify-content:flex-end}"],
1531
+ template: "<div class=\"mat-tab-header-pagination mat-tab-header-pagination-before mat-elevation-z4\" #previousPaginator aria-hidden=\"true\" mat-ripple [matRippleDisabled]=\"_disableScrollBefore || disableRipple\" [class.mat-tab-header-pagination-disabled]=\"_disableScrollBefore\" (click)=\"_handlePaginatorClick('before')\" (mousedown)=\"_handlePaginatorPress('before')\" (touchend)=\"_stopInterval()\"><div class=\"mat-tab-header-pagination-chevron\"></div></div><div class=\"mat-tab-label-container\" #tabListContainer (keydown)=\"_handleKeydown($event)\"><div class=\"mat-tab-list\" #tabList role=\"tablist\" (cdkObserveContent)=\"_onContentChanges()\"><div class=\"mat-tab-labels\"><ng-content></ng-content></div><mat-ink-bar></mat-ink-bar></div></div><div class=\"mat-tab-header-pagination mat-tab-header-pagination-after mat-elevation-z4\" #nextPaginator aria-hidden=\"true\" mat-ripple [matRippleDisabled]=\"_disableScrollAfter || disableRipple\" [class.mat-tab-header-pagination-disabled]=\"_disableScrollAfter\" (mousedown)=\"_handlePaginatorPress('after')\" (click)=\"_handlePaginatorClick('after')\" (touchend)=\"_stopInterval()\"><div class=\"mat-tab-header-pagination-chevron\"></div></div>",
1532
+ styles: [".mat-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mat-tab-label{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;position:relative}.mat-tab-label:focus{outline:0}.mat-tab-label:focus:not(.mat-tab-disabled){opacity:1}@media (-ms-high-contrast:active){.mat-tab-label:focus{outline:dotted 2px}}.mat-tab-label.mat-tab-disabled{cursor:default}@media (-ms-high-contrast:active){.mat-tab-label.mat-tab-disabled{opacity:.5}}.mat-tab-label .mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}@media (-ms-high-contrast:active){.mat-tab-label{opacity:1}}@media (max-width:599px){.mat-tab-label{min-width:72px}}.mat-ink-bar{position:absolute;bottom:0;height:2px;transition:.5s cubic-bezier(.35,0,.25,1)}.mat-tab-group-inverted-header .mat-ink-bar{bottom:auto;top:0}@media (-ms-high-contrast:active){.mat-ink-bar{outline:solid 2px;height:0}}.mat-tab-header-pagination{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:transparent;touch-action:none}.mat-tab-header-pagination-controls-enabled .mat-tab-header-pagination{display:flex}.mat-tab-header-pagination-before,.mat-tab-header-rtl .mat-tab-header-pagination-after{padding-left:4px}.mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-rtl .mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-tab-header-pagination-after,.mat-tab-header-rtl .mat-tab-header-pagination-before{padding-right:4px}.mat-tab-header-pagination-after .mat-tab-header-pagination-chevron,.mat-tab-header-rtl .mat-tab-header-pagination-before .mat-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;content:'';height:8px;width:8px}.mat-tab-header-pagination-disabled{box-shadow:none;cursor:default}.mat-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}.mat-tab-list{flex-grow:1;position:relative;transition:transform .5s cubic-bezier(.35,0,.25,1)}.mat-tab-labels{display:flex}[mat-align-tabs=center] .mat-tab-labels{justify-content:center}[mat-align-tabs=end] .mat-tab-labels{justify-content:flex-end}"],
1385
1533
  inputs: ['disableRipple'],
1386
1534
  encapsulation: core.ViewEncapsulation.None,
1387
1535
  changeDetection: core.ChangeDetectionStrategy.OnPush,
@@ -1406,6 +1554,8 @@ var MatTabHeader = /** @class */ (function (_super) {
1406
1554
  _inkBar: [{ type: core.ViewChild, args: [MatInkBar,] }],
1407
1555
  _tabListContainer: [{ type: core.ViewChild, args: ['tabListContainer',] }],
1408
1556
  _tabList: [{ type: core.ViewChild, args: ['tabList',] }],
1557
+ _nextPaginator: [{ type: core.ViewChild, args: ['nextPaginator',] }],
1558
+ _previousPaginator: [{ type: core.ViewChild, args: ['previousPaginator',] }],
1409
1559
  selectedIndex: [{ type: core.Input }],
1410
1560
  selectFocusedIndex: [{ type: core.Output }],
1411
1561
  indexFocused: [{ type: core.Output }]
@@ -2109,7 +2259,7 @@ var _MatTabLinkMixinBase = core$1.mixinTabIndex(core$1.mixinDisableRipple(core$1
2109
2259
  */
2110
2260
  var MatTabLink = /** @class */ (function (_super) {
2111
2261
  __extends(MatTabLink, _super);
2112
- function MatTabLink(_tabNavBar, _elementRef, ngZone, platform$$1, globalOptions, tabIndex, _focusMonitor) {
2262
+ function MatTabLink(_tabNavBar, _elementRef, ngZone, platform$$1, globalRippleOptions, tabIndex, _focusMonitor) {
2113
2263
  var _this = _super.call(this) || this;
2114
2264
  _this._tabNavBar = _tabNavBar;
2115
2265
  _this._elementRef = _elementRef;
@@ -2118,26 +2268,10 @@ var MatTabLink = /** @class */ (function (_super) {
2118
2268
  * Whether the tab link is active or not.
2119
2269
  */
2120
2270
  _this._isActive = false;
2121
- /**
2122
- * Whether the ripples are globally disabled through the RippleGlobalOptions
2123
- */
2124
- _this._ripplesGloballyDisabled = false;
2125
- /**
2126
- * Ripple configuration for ripples that are launched on pointer down.
2127
- * \@docs-private
2128
- */
2129
- _this.rippleConfig = {};
2130
2271
  _this._tabLinkRipple = new core$1.RippleRenderer(_this, ngZone, _elementRef, platform$$1);
2131
2272
  _this._tabLinkRipple.setupTriggerEvents(_elementRef.nativeElement);
2273
+ _this.rippleConfig = globalRippleOptions || {};
2132
2274
  _this.tabIndex = parseInt(tabIndex) || 0;
2133
- if (globalOptions) {
2134
- // TODO(paul): Do not copy each option manually. Allow dynamic global option changes: #9729
2135
- _this._ripplesGloballyDisabled = !!globalOptions.disabled;
2136
- _this.rippleConfig = {
2137
- terminateOnPointerUp: globalOptions.terminateOnPointerUp,
2138
- animation: globalOptions.animation,
2139
- };
2140
- }
2141
2275
  if (_focusMonitor) {
2142
2276
  _focusMonitor.monitor(_elementRef);
2143
2277
  }
@@ -2165,17 +2299,17 @@ var MatTabLink = /** @class */ (function (_super) {
2165
2299
  });
2166
2300
  Object.defineProperty(MatTabLink.prototype, "rippleDisabled", {
2167
2301
  /**
2168
- * Whether ripples are disabled on interaction
2302
+ * Whether ripples are disabled on interaction.
2169
2303
  * @docs-private
2170
2304
  */
2171
2305
  get: /**
2172
- * Whether ripples are disabled on interaction
2306
+ * Whether ripples are disabled on interaction.
2173
2307
  * \@docs-private
2174
2308
  * @return {?}
2175
2309
  */
2176
2310
  function () {
2177
2311
  return this.disabled || this.disableRipple || this._tabNavBar.disableRipple ||
2178
- this._ripplesGloballyDisabled;
2312
+ !!this.rippleConfig.disabled;
2179
2313
  },
2180
2314
  enumerable: true,
2181
2315
  configurable: true
@@ -2286,17 +2420,17 @@ exports.MatTabGroupBase = MatTabGroupBase;
2286
2420
  exports._MatTabGroupMixinBase = _MatTabGroupMixinBase;
2287
2421
  exports.MatTabGroup = MatTabGroup;
2288
2422
  exports.matTabsAnimations = matTabsAnimations;
2289
- exports.ɵa24 = _MAT_INK_BAR_POSITIONER_FACTORY;
2290
- exports.ɵf24 = MatTabBase;
2291
- exports.ɵg24 = _MatTabMixinBase;
2292
- exports.ɵb24 = MatTabHeaderBase;
2293
- exports.ɵc24 = _MatTabHeaderMixinBase;
2294
- exports.ɵd24 = MatTabLabelWrapperBase;
2295
- exports.ɵe24 = _MatTabLabelWrapperMixinBase;
2296
- exports.ɵj24 = MatTabLinkBase;
2297
- exports.ɵh24 = MatTabNavBase;
2298
- exports.ɵk24 = _MatTabLinkMixinBase;
2299
- exports.ɵi24 = _MatTabNavMixinBase;
2423
+ exports.ɵa22 = _MAT_INK_BAR_POSITIONER_FACTORY;
2424
+ exports.ɵf22 = MatTabBase;
2425
+ exports.ɵg22 = _MatTabMixinBase;
2426
+ exports.ɵb22 = MatTabHeaderBase;
2427
+ exports.ɵc22 = _MatTabHeaderMixinBase;
2428
+ exports.ɵd22 = MatTabLabelWrapperBase;
2429
+ exports.ɵe22 = _MatTabLabelWrapperMixinBase;
2430
+ exports.ɵj22 = MatTabLinkBase;
2431
+ exports.ɵh22 = MatTabNavBase;
2432
+ exports.ɵk22 = _MatTabLinkMixinBase;
2433
+ exports.ɵi22 = _MatTabNavMixinBase;
2300
2434
 
2301
2435
  Object.defineProperty(exports, '__esModule', { value: true });
2302
2436