@angular/material 19.1.0-next.3 → 19.1.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 (101) hide show
  1. package/LICENSE +1 -1
  2. package/autocomplete/index.d.ts +1 -1
  3. package/badge/index.d.ts +2 -2
  4. package/button/index.d.ts +4 -6
  5. package/checkbox/index.d.ts +4 -4
  6. package/chips/index.d.ts +3 -3
  7. package/core/index.d.ts +0 -1
  8. package/datepicker/index.d.ts +16 -40
  9. package/fesm2022/autocomplete.mjs +13 -13
  10. package/fesm2022/autocomplete.mjs.map +1 -1
  11. package/fesm2022/badge.mjs +12 -12
  12. package/fesm2022/badge.mjs.map +1 -1
  13. package/fesm2022/bottom-sheet.mjs +10 -10
  14. package/fesm2022/bottom-sheet.mjs.map +1 -1
  15. package/fesm2022/button-toggle.mjs +10 -10
  16. package/fesm2022/button-toggle.mjs.map +1 -1
  17. package/fesm2022/button.mjs +36 -38
  18. package/fesm2022/button.mjs.map +1 -1
  19. package/fesm2022/card.mjs +46 -46
  20. package/fesm2022/card.mjs.map +1 -1
  21. package/fesm2022/checkbox.mjs +18 -18
  22. package/fesm2022/checkbox.mjs.map +1 -1
  23. package/fesm2022/chips.mjs +42 -42
  24. package/fesm2022/chips.mjs.map +1 -1
  25. package/fesm2022/core.mjs +75 -73
  26. package/fesm2022/core.mjs.map +1 -1
  27. package/fesm2022/datepicker.mjs +820 -821
  28. package/fesm2022/datepicker.mjs.map +1 -1
  29. package/fesm2022/dialog.mjs +25 -25
  30. package/fesm2022/dialog.mjs.map +1 -1
  31. package/fesm2022/divider.mjs +7 -7
  32. package/fesm2022/divider.mjs.map +1 -1
  33. package/fesm2022/expansion.mjs +25 -25
  34. package/fesm2022/expansion.mjs.map +1 -1
  35. package/fesm2022/form-field.mjs +36 -36
  36. package/fesm2022/form-field.mjs.map +1 -1
  37. package/fesm2022/grid-list.mjs +22 -22
  38. package/fesm2022/grid-list.mjs.map +1 -1
  39. package/fesm2022/icon/testing.mjs +7 -7
  40. package/fesm2022/icon/testing.mjs.map +1 -1
  41. package/fesm2022/icon.mjs +12 -12
  42. package/fesm2022/icon.mjs.map +1 -1
  43. package/fesm2022/input.mjs +7 -7
  44. package/fesm2022/input.mjs.map +1 -1
  45. package/fesm2022/list.mjs +54 -53
  46. package/fesm2022/list.mjs.map +1 -1
  47. package/fesm2022/menu.mjs +35 -28
  48. package/fesm2022/menu.mjs.map +1 -1
  49. package/fesm2022/paginator.mjs +21 -24
  50. package/fesm2022/paginator.mjs.map +1 -1
  51. package/fesm2022/progress-bar.mjs +9 -9
  52. package/fesm2022/progress-bar.mjs.map +1 -1
  53. package/fesm2022/progress-spinner.mjs +9 -9
  54. package/fesm2022/progress-spinner.mjs.map +1 -1
  55. package/fesm2022/radio.mjs +14 -14
  56. package/fesm2022/radio.mjs.map +1 -1
  57. package/fesm2022/select.mjs +12 -12
  58. package/fesm2022/select.mjs.map +1 -1
  59. package/fesm2022/sidenav.mjs +133 -110
  60. package/fesm2022/sidenav.mjs.map +1 -1
  61. package/fesm2022/slide-toggle.mjs +16 -16
  62. package/fesm2022/slide-toggle.mjs.map +1 -1
  63. package/fesm2022/slider.mjs +23 -25
  64. package/fesm2022/slider.mjs.map +1 -1
  65. package/fesm2022/snack-bar.mjs +22 -22
  66. package/fesm2022/snack-bar.mjs.map +1 -1
  67. package/fesm2022/sort.mjs +14 -14
  68. package/fesm2022/sort.mjs.map +1 -1
  69. package/fesm2022/stepper.mjs +37 -37
  70. package/fesm2022/stepper.mjs.map +1 -1
  71. package/fesm2022/table.mjs +57 -57
  72. package/fesm2022/table.mjs.map +1 -1
  73. package/fesm2022/tabs.mjs +54 -56
  74. package/fesm2022/tabs.mjs.map +1 -1
  75. package/fesm2022/timepicker.mjs +16 -14
  76. package/fesm2022/timepicker.mjs.map +1 -1
  77. package/fesm2022/toolbar.mjs +12 -12
  78. package/fesm2022/toolbar.mjs.map +1 -1
  79. package/fesm2022/tooltip.mjs +104 -71
  80. package/fesm2022/tooltip.mjs.map +1 -1
  81. package/fesm2022/tree.mjs +25 -25
  82. package/fesm2022/tree.mjs.map +1 -1
  83. package/form-field/index.d.ts +4 -4
  84. package/icon/index.d.ts +4 -4
  85. package/list/index.d.ts +6 -5
  86. package/menu/index.d.ts +5 -1
  87. package/package.json +7 -7
  88. package/paginator/index.d.ts +5 -5
  89. package/progress-bar/index.d.ts +4 -4
  90. package/progress-spinner/index.d.ts +4 -4
  91. package/radio/index.d.ts +6 -6
  92. package/schematics/ng-add/index.js +2 -2
  93. package/schematics/ng-add/index.mjs +2 -2
  94. package/select/index.d.ts +1 -1
  95. package/sidenav/index.d.ts +11 -10
  96. package/slide-toggle/index.d.ts +4 -4
  97. package/slider/index.d.ts +2 -2
  98. package/stepper/index.d.ts +6 -6
  99. package/tabs/index.d.ts +9 -9
  100. package/toolbar/index.d.ts +2 -2
  101. package/tooltip/index.d.ts +10 -4
@@ -2,9 +2,9 @@ import { takeUntil } from 'rxjs/operators';
2
2
  import { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';
3
3
  import { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes';
4
4
  import * as i0 from '@angular/core';
5
- import { InjectionToken, inject, ElementRef, ViewContainerRef, NgZone, Injector, Renderer2, afterNextRender, Directive, Input, ChangeDetectorRef, ANIMATION_MODULE_TYPE, Component, ViewEncapsulation, ChangeDetectionStrategy, ViewChild, NgModule } from '@angular/core';
5
+ import { InjectionToken, inject, ElementRef, ViewContainerRef, NgZone, Injector, afterNextRender, Directive, Input, ChangeDetectorRef, ANIMATION_MODULE_TYPE, Component, ViewEncapsulation, ChangeDetectionStrategy, ViewChild, NgModule } from '@angular/core';
6
6
  import { DOCUMENT, NgClass } from '@angular/common';
7
- import { Platform, _bindEventWithOptions } from '@angular/cdk/platform';
7
+ import { normalizePassiveListenerOptions, Platform } from '@angular/cdk/platform';
8
8
  import { AriaDescriber, FocusMonitor, A11yModule } from '@angular/cdk/a11y';
9
9
  import { Directionality } from '@angular/cdk/bidi';
10
10
  import { Overlay, ScrollDispatcher, OverlayModule } from '@angular/cdk/overlay';
@@ -62,7 +62,7 @@ const MAT_TOOLTIP_DEFAULT_OPTIONS = new InjectionToken('mat-tooltip-default-opti
62
62
  const TOOLTIP_PANEL_CLASS = 'mat-mdc-tooltip-panel';
63
63
  const PANEL_CLASS = 'tooltip-panel';
64
64
  /** Options used to bind passive event listeners. */
65
- const passiveListenerOptions = { passive: true };
65
+ const passiveListenerOptions = normalizePassiveListenerOptions({ passive: true });
66
66
  // These constants were taken from MDC's `numbers` object. We can't import them from MDC,
67
67
  // because they have some top-level references to `window` which break during SSR.
68
68
  const MIN_VIEWPORT_TOOLTIP_THRESHOLD = 8;
@@ -86,8 +86,6 @@ class MatTooltip {
86
86
  _focusMonitor = inject(FocusMonitor);
87
87
  _dir = inject(Directionality);
88
88
  _injector = inject(Injector);
89
- _document = inject(DOCUMENT);
90
- _renderer = inject(Renderer2);
91
89
  _defaultOptions = inject(MAT_TOOLTIP_DEFAULT_OPTIONS, {
92
90
  optional: true,
93
91
  });
@@ -106,6 +104,7 @@ class MatTooltip {
106
104
  _currentPosition;
107
105
  _cssClassPrefix = 'mat-mdc';
108
106
  _ariaDescriptionPending;
107
+ _dirSubscribed = false;
109
108
  /** Allows the user to define the position of the tooltip relative to the parent element */
110
109
  get position() {
111
110
  return this._position;
@@ -214,12 +213,16 @@ class MatTooltip {
214
213
  this._setTooltipClass(this._tooltipClass);
215
214
  }
216
215
  }
217
- /** Cleanup functions for manually-bound events. */
218
- _eventCleanups = [];
216
+ /** Manually-bound passive event listeners. */
217
+ _passiveListeners = [];
218
+ /** Reference to the current document. */
219
+ _document = inject(DOCUMENT);
219
220
  /** Timer started at the last `touchstart` event. */
220
221
  _touchstartTimeout = null;
221
222
  /** Emits when the component is destroyed. */
222
223
  _destroyed = new Subject();
224
+ /** Whether ngOnDestroyed has been called. */
225
+ _isDestroyed = false;
223
226
  constructor() {
224
227
  const defaultOptions = this._defaultOptions;
225
228
  if (defaultOptions) {
@@ -238,11 +241,6 @@ class MatTooltip {
238
241
  this.tooltipClass = defaultOptions.tooltipClass;
239
242
  }
240
243
  }
241
- this._dir.change.pipe(takeUntil(this._destroyed)).subscribe(() => {
242
- if (this._overlayRef) {
243
- this._updatePosition(this._overlayRef);
244
- }
245
- });
246
244
  this._viewportMargin = MIN_VIEWPORT_TOOLTIP_THRESHOLD;
247
245
  }
248
246
  ngAfterViewInit() {
@@ -275,10 +273,14 @@ class MatTooltip {
275
273
  this._overlayRef.dispose();
276
274
  this._tooltipInstance = null;
277
275
  }
278
- this._eventCleanups.forEach(cleanup => cleanup());
279
- this._eventCleanups.length = 0;
276
+ // Clean up the event listeners set in the constructor
277
+ this._passiveListeners.forEach(([event, listener]) => {
278
+ nativeElement.removeEventListener(event, listener, passiveListenerOptions);
279
+ });
280
+ this._passiveListeners.length = 0;
280
281
  this._destroyed.next();
281
282
  this._destroyed.complete();
283
+ this._isDestroyed = true;
282
284
  this._ariaDescriber.removeDescription(nativeElement, this.message, 'tooltip');
283
285
  this._focusMonitor.stopMonitoring(nativeElement);
284
286
  }
@@ -381,6 +383,14 @@ class MatTooltip {
381
383
  if (this._defaultOptions?.disableTooltipInteractivity) {
382
384
  this._overlayRef.addPanelClass(`${this._cssClassPrefix}-tooltip-panel-non-interactive`);
383
385
  }
386
+ if (!this._dirSubscribed) {
387
+ this._dirSubscribed = true;
388
+ this._dir.change.pipe(takeUntil(this._destroyed)).subscribe(() => {
389
+ if (this._overlayRef) {
390
+ this._updatePosition(this._overlayRef);
391
+ }
392
+ });
393
+ }
384
394
  return this._overlayRef;
385
395
  }
386
396
  /** Detaches the currently-attached tooltip. */
@@ -554,54 +564,66 @@ class MatTooltip {
554
564
  /** Binds the pointer events to the tooltip trigger. */
555
565
  _setupPointerEnterEventsIfNeeded() {
556
566
  // Optimization: Defer hooking up events if there's no message or the tooltip is disabled.
557
- if (this._disabled || !this.message || !this._viewInitialized || this._eventCleanups.length) {
567
+ if (this._disabled ||
568
+ !this.message ||
569
+ !this._viewInitialized ||
570
+ this._passiveListeners.length) {
558
571
  return;
559
572
  }
560
- const element = this._elementRef.nativeElement;
561
573
  // The mouse events shouldn't be bound on mobile devices, because they can prevent the
562
574
  // first tap from firing its click event or can cause the tooltip to open for clicks.
563
575
  if (this._platformSupportsMouseEvents()) {
564
- this._eventCleanups.push(_bindEventWithOptions(this._renderer, element, 'mouseenter', (event) => {
565
- this._setupPointerExitEventsIfNeeded();
566
- let point = undefined;
567
- if (event.x !== undefined && event.y !== undefined) {
568
- point = event;
569
- }
570
- this.show(undefined, point);
571
- }, passiveListenerOptions));
576
+ this._passiveListeners.push([
577
+ 'mouseenter',
578
+ event => {
579
+ this._setupPointerExitEventsIfNeeded();
580
+ let point = undefined;
581
+ if (event.x !== undefined && event.y !== undefined) {
582
+ point = event;
583
+ }
584
+ this.show(undefined, point);
585
+ },
586
+ ]);
572
587
  }
573
588
  else if (this.touchGestures !== 'off') {
574
589
  this._disableNativeGesturesIfNecessary();
575
- this._eventCleanups.push(_bindEventWithOptions(this._renderer, element, 'touchstart', (event) => {
576
- const touch = event.targetTouches?.[0];
577
- const origin = touch ? { x: touch.clientX, y: touch.clientY } : undefined;
578
- // Note that it's important that we don't `preventDefault` here,
579
- // because it can prevent click events from firing on the element.
580
- this._setupPointerExitEventsIfNeeded();
581
- if (this._touchstartTimeout) {
582
- clearTimeout(this._touchstartTimeout);
583
- }
584
- const DEFAULT_LONGPRESS_DELAY = 500;
585
- this._touchstartTimeout = setTimeout(() => {
586
- this._touchstartTimeout = null;
587
- this.show(undefined, origin);
588
- }, this._defaultOptions?.touchLongPressShowDelay ?? DEFAULT_LONGPRESS_DELAY);
589
- }, passiveListenerOptions));
590
- }
590
+ this._passiveListeners.push([
591
+ 'touchstart',
592
+ event => {
593
+ const touch = event.targetTouches?.[0];
594
+ const origin = touch ? { x: touch.clientX, y: touch.clientY } : undefined;
595
+ // Note that it's important that we don't `preventDefault` here,
596
+ // because it can prevent click events from firing on the element.
597
+ this._setupPointerExitEventsIfNeeded();
598
+ if (this._touchstartTimeout) {
599
+ clearTimeout(this._touchstartTimeout);
600
+ }
601
+ const DEFAULT_LONGPRESS_DELAY = 500;
602
+ this._touchstartTimeout = setTimeout(() => {
603
+ this._touchstartTimeout = null;
604
+ this.show(undefined, origin);
605
+ }, this._defaultOptions?.touchLongPressShowDelay ?? DEFAULT_LONGPRESS_DELAY);
606
+ },
607
+ ]);
608
+ }
609
+ this._addListeners(this._passiveListeners);
591
610
  }
592
611
  _setupPointerExitEventsIfNeeded() {
593
612
  if (this._pointerExitEventsInitialized) {
594
613
  return;
595
614
  }
596
615
  this._pointerExitEventsInitialized = true;
597
- const element = this._elementRef.nativeElement;
616
+ const exitListeners = [];
598
617
  if (this._platformSupportsMouseEvents()) {
599
- this._eventCleanups.push(_bindEventWithOptions(this._renderer, element, 'mouseleave', (event) => {
600
- const newTarget = event.relatedTarget;
601
- if (!newTarget || !this._overlayRef?.overlayElement.contains(newTarget)) {
602
- this.hide();
603
- }
604
- }, passiveListenerOptions), _bindEventWithOptions(this._renderer, element, 'wheel', event => this._wheelListener(event), passiveListenerOptions));
618
+ exitListeners.push([
619
+ 'mouseleave',
620
+ event => {
621
+ const newTarget = event.relatedTarget;
622
+ if (!newTarget || !this._overlayRef?.overlayElement.contains(newTarget)) {
623
+ this.hide();
624
+ }
625
+ },
626
+ ], ['wheel', event => this._wheelListener(event)]);
605
627
  }
606
628
  else if (this.touchGestures !== 'off') {
607
629
  this._disableNativeGesturesIfNecessary();
@@ -611,8 +633,15 @@ class MatTooltip {
611
633
  }
612
634
  this.hide(this._defaultOptions?.touchendHideDelay);
613
635
  };
614
- this._eventCleanups.push(_bindEventWithOptions(this._renderer, element, 'touchend', touchendListener, passiveListenerOptions), _bindEventWithOptions(this._renderer, element, 'touchcancel', touchendListener, passiveListenerOptions));
636
+ exitListeners.push(['touchend', touchendListener], ['touchcancel', touchendListener]);
615
637
  }
638
+ this._addListeners(exitListeners);
639
+ this._passiveListeners.push(...exitListeners);
640
+ }
641
+ _addListeners(listeners) {
642
+ listeners.forEach(([event, listener]) => {
643
+ this._elementRef.nativeElement.addEventListener(event, listener, passiveListenerOptions);
644
+ });
616
645
  }
617
646
  _platformSupportsMouseEvents() {
618
647
  return !this._platform.IOS && !this._platform.ANDROID;
@@ -662,23 +691,25 @@ class MatTooltip {
662
691
  }
663
692
  this._ariaDescriptionPending = true;
664
693
  this._ariaDescriber.removeDescription(this._elementRef.nativeElement, oldMessage, 'tooltip');
665
- this._ngZone.runOutsideAngular(() => {
666
- // The `AriaDescriber` has some functionality that avoids adding a description if it's the
667
- // same as the `aria-label` of an element, however we can't know whether the tooltip trigger
668
- // has a data-bound `aria-label` or when it'll be set for the first time. We can avoid the
669
- // issue by deferring the description by a tick so Angular has time to set the `aria-label`.
670
- Promise.resolve().then(() => {
671
- this._ariaDescriptionPending = false;
672
- if (this.message && !this.disabled) {
673
- this._ariaDescriber.describe(this._elementRef.nativeElement, this.message, 'tooltip');
674
- }
675
- });
676
- });
677
- }
678
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: MatTooltip, deps: [], target: i0.ɵɵFactoryTarget.Directive });
679
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0-next.3", type: MatTooltip, isStandalone: true, selector: "[matTooltip]", inputs: { position: ["matTooltipPosition", "position"], positionAtOrigin: ["matTooltipPositionAtOrigin", "positionAtOrigin"], disabled: ["matTooltipDisabled", "disabled"], showDelay: ["matTooltipShowDelay", "showDelay"], hideDelay: ["matTooltipHideDelay", "hideDelay"], touchGestures: ["matTooltipTouchGestures", "touchGestures"], message: ["matTooltip", "message"], tooltipClass: ["matTooltipClass", "tooltipClass"] }, host: { properties: { "class.mat-mdc-tooltip-disabled": "disabled" }, classAttribute: "mat-mdc-tooltip-trigger" }, exportAs: ["matTooltip"], ngImport: i0 });
694
+ // The `AriaDescriber` has some functionality that avoids adding a description if it's the
695
+ // same as the `aria-label` of an element, however we can't know whether the tooltip trigger
696
+ // has a data-bound `aria-label` or when it'll be set for the first time. We can avoid the
697
+ // issue by deferring the description by a tick so Angular has time to set the `aria-label`.
698
+ if (!this._isDestroyed) {
699
+ afterNextRender({
700
+ write: () => {
701
+ this._ariaDescriptionPending = false;
702
+ if (this.message && !this.disabled) {
703
+ this._ariaDescriber.describe(this._elementRef.nativeElement, this.message, 'tooltip');
704
+ }
705
+ },
706
+ }, { injector: this._injector });
707
+ }
708
+ }
709
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: MatTooltip, deps: [], target: i0.ɵɵFactoryTarget.Directive });
710
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0-rc.0", type: MatTooltip, isStandalone: true, selector: "[matTooltip]", inputs: { position: ["matTooltipPosition", "position"], positionAtOrigin: ["matTooltipPositionAtOrigin", "positionAtOrigin"], disabled: ["matTooltipDisabled", "disabled"], showDelay: ["matTooltipShowDelay", "showDelay"], hideDelay: ["matTooltipHideDelay", "hideDelay"], touchGestures: ["matTooltipTouchGestures", "touchGestures"], message: ["matTooltip", "message"], tooltipClass: ["matTooltipClass", "tooltipClass"] }, host: { properties: { "class.mat-mdc-tooltip-disabled": "disabled" }, classAttribute: "mat-mdc-tooltip-trigger" }, exportAs: ["matTooltip"], ngImport: i0 });
680
711
  }
681
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: MatTooltip, decorators: [{
712
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: MatTooltip, decorators: [{
682
713
  type: Directive,
683
714
  args: [{
684
715
  selector: '[matTooltip]',
@@ -892,10 +923,10 @@ class TooltipComponent {
892
923
  this._finalizeAnimation(isVisible);
893
924
  }
894
925
  }
895
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: TooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
896
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.0-next.3", type: TooltipComponent, isStandalone: true, selector: "mat-tooltip-component", host: { attributes: { "aria-hidden": "true" }, listeners: { "mouseleave": "_handleMouseLeave($event)" } }, viewQueries: [{ propertyName: "_tooltip", first: true, predicate: ["tooltip"], descendants: true, static: true }], ngImport: i0, template: "<div\n #tooltip\n class=\"mdc-tooltip mat-mdc-tooltip\"\n [ngClass]=\"tooltipClass\"\n (animationend)=\"_handleAnimationEnd($event)\"\n [class.mdc-tooltip--multiline]=\"_isMultiline\">\n <div class=\"mat-mdc-tooltip-surface mdc-tooltip__surface\">{{message}}</div>\n</div>\n", styles: [".mat-mdc-tooltip{position:relative;transform:scale(0);display:inline-flex}.mat-mdc-tooltip::before{content:\"\";top:0;right:0;bottom:0;left:0;z-index:-1;position:absolute}.mat-mdc-tooltip-panel-below .mat-mdc-tooltip::before{top:-8px}.mat-mdc-tooltip-panel-above .mat-mdc-tooltip::before{bottom:-8px}.mat-mdc-tooltip-panel-right .mat-mdc-tooltip::before{left:-8px}.mat-mdc-tooltip-panel-left .mat-mdc-tooltip::before{right:-8px}.mat-mdc-tooltip._mat-animation-noopable{animation:none;transform:scale(1)}.mat-mdc-tooltip-surface{word-break:normal;overflow-wrap:anywhere;padding:4px 8px;min-width:40px;max-width:200px;min-height:24px;max-height:40vh;box-sizing:border-box;overflow:hidden;text-align:center;will-change:transform,opacity;background-color:var(--mdc-plain-tooltip-container-color, var(--mat-sys-inverse-surface));color:var(--mdc-plain-tooltip-supporting-text-color, var(--mat-sys-inverse-on-surface));border-radius:var(--mdc-plain-tooltip-container-shape, var(--mat-sys-corner-extra-small));font-family:var(--mdc-plain-tooltip-supporting-text-font, var(--mat-sys-body-small-font));font-size:var(--mdc-plain-tooltip-supporting-text-size, var(--mat-sys-body-small-size));font-weight:var(--mdc-plain-tooltip-supporting-text-weight, var(--mat-sys-body-small-weight));line-height:var(--mdc-plain-tooltip-supporting-text-line-height, var(--mat-sys-body-small-line-height));letter-spacing:var(--mdc-plain-tooltip-supporting-text-tracking, var(--mat-sys-body-small-tracking))}.mat-mdc-tooltip-surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:\"\";pointer-events:none}.mdc-tooltip--multiline .mat-mdc-tooltip-surface{text-align:left}[dir=rtl] .mdc-tooltip--multiline .mat-mdc-tooltip-surface{text-align:right}.mat-mdc-tooltip-panel{line-height:normal}.mat-mdc-tooltip-panel.mat-mdc-tooltip-panel-non-interactive{pointer-events:none}@keyframes mat-mdc-tooltip-show{0%{opacity:0;transform:scale(0.8)}100%{opacity:1;transform:scale(1)}}@keyframes mat-mdc-tooltip-hide{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(0.8)}}.mat-mdc-tooltip-show{animation:mat-mdc-tooltip-show 150ms cubic-bezier(0, 0, 0.2, 1) forwards}.mat-mdc-tooltip-hide{animation:mat-mdc-tooltip-hide 75ms cubic-bezier(0.4, 0, 1, 1) forwards}"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
926
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: TooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
927
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.0-rc.0", type: TooltipComponent, isStandalone: true, selector: "mat-tooltip-component", host: { attributes: { "aria-hidden": "true" }, listeners: { "mouseleave": "_handleMouseLeave($event)" } }, viewQueries: [{ propertyName: "_tooltip", first: true, predicate: ["tooltip"], descendants: true, static: true }], ngImport: i0, template: "<div\n #tooltip\n class=\"mdc-tooltip mat-mdc-tooltip\"\n [ngClass]=\"tooltipClass\"\n (animationend)=\"_handleAnimationEnd($event)\"\n [class.mdc-tooltip--multiline]=\"_isMultiline\">\n <div class=\"mat-mdc-tooltip-surface mdc-tooltip__surface\">{{message}}</div>\n</div>\n", styles: [".mat-mdc-tooltip{position:relative;transform:scale(0);display:inline-flex}.mat-mdc-tooltip::before{content:\"\";top:0;right:0;bottom:0;left:0;z-index:-1;position:absolute}.mat-mdc-tooltip-panel-below .mat-mdc-tooltip::before{top:-8px}.mat-mdc-tooltip-panel-above .mat-mdc-tooltip::before{bottom:-8px}.mat-mdc-tooltip-panel-right .mat-mdc-tooltip::before{left:-8px}.mat-mdc-tooltip-panel-left .mat-mdc-tooltip::before{right:-8px}.mat-mdc-tooltip._mat-animation-noopable{animation:none;transform:scale(1)}.mat-mdc-tooltip-surface{word-break:normal;overflow-wrap:anywhere;padding:4px 8px;min-width:40px;max-width:200px;min-height:24px;max-height:40vh;box-sizing:border-box;overflow:hidden;text-align:center;will-change:transform,opacity;background-color:var(--mdc-plain-tooltip-container-color, var(--mat-sys-inverse-surface));color:var(--mdc-plain-tooltip-supporting-text-color, var(--mat-sys-inverse-on-surface));border-radius:var(--mdc-plain-tooltip-container-shape, var(--mat-sys-corner-extra-small));font-family:var(--mdc-plain-tooltip-supporting-text-font, var(--mat-sys-body-small-font));font-size:var(--mdc-plain-tooltip-supporting-text-size, var(--mat-sys-body-small-size));font-weight:var(--mdc-plain-tooltip-supporting-text-weight, var(--mat-sys-body-small-weight));line-height:var(--mdc-plain-tooltip-supporting-text-line-height, var(--mat-sys-body-small-line-height));letter-spacing:var(--mdc-plain-tooltip-supporting-text-tracking, var(--mat-sys-body-small-tracking))}.mat-mdc-tooltip-surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:\"\";pointer-events:none}.mdc-tooltip--multiline .mat-mdc-tooltip-surface{text-align:left}[dir=rtl] .mdc-tooltip--multiline .mat-mdc-tooltip-surface{text-align:right}.mat-mdc-tooltip-panel{line-height:normal}.mat-mdc-tooltip-panel.mat-mdc-tooltip-panel-non-interactive{pointer-events:none}@keyframes mat-mdc-tooltip-show{0%{opacity:0;transform:scale(0.8)}100%{opacity:1;transform:scale(1)}}@keyframes mat-mdc-tooltip-hide{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(0.8)}}.mat-mdc-tooltip-show{animation:mat-mdc-tooltip-show 150ms cubic-bezier(0, 0, 0.2, 1) forwards}.mat-mdc-tooltip-hide{animation:mat-mdc-tooltip-hide 75ms cubic-bezier(0.4, 0, 1, 1) forwards}"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
897
928
  }
898
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: TooltipComponent, decorators: [{
929
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: TooltipComponent, decorators: [{
899
930
  type: Component,
900
931
  args: [{ selector: 'mat-tooltip-component', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
901
932
  '(mouseleave)': '_handleMouseLeave($event)',
@@ -913,6 +944,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.3",
913
944
  /**
914
945
  * Animations used by MatTooltip.
915
946
  * @docs-private
947
+ * @deprecated No longer being used, to be removed.
948
+ * @breaking-change 21.0.0
916
949
  */
917
950
  const matTooltipAnimations = {
918
951
  /** Animation that transitions a tooltip in and out. */
@@ -927,11 +960,11 @@ const matTooltipAnimations = {
927
960
  };
928
961
 
929
962
  class MatTooltipModule {
930
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: MatTooltipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
931
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.0-next.3", ngImport: i0, type: MatTooltipModule, imports: [A11yModule, OverlayModule, MatCommonModule, MatTooltip, TooltipComponent], exports: [MatTooltip, TooltipComponent, MatCommonModule, CdkScrollableModule] });
932
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: MatTooltipModule, providers: [MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER], imports: [A11yModule, OverlayModule, MatCommonModule, MatCommonModule, CdkScrollableModule] });
963
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: MatTooltipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
964
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.0-rc.0", ngImport: i0, type: MatTooltipModule, imports: [A11yModule, OverlayModule, MatCommonModule, MatTooltip, TooltipComponent], exports: [MatTooltip, TooltipComponent, MatCommonModule, CdkScrollableModule] });
965
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: MatTooltipModule, providers: [MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER], imports: [A11yModule, OverlayModule, MatCommonModule, MatCommonModule, CdkScrollableModule] });
933
966
  }
934
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: MatTooltipModule, decorators: [{
967
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: MatTooltipModule, decorators: [{
935
968
  type: NgModule,
936
969
  args: [{
937
970
  imports: [A11yModule, OverlayModule, MatCommonModule, MatTooltip, TooltipComponent],