Skip to content

Commit 5909713

Browse files
authored
fix(multiple): remove backwards-compatibility code (#30747)
Removes code that we added to support Angular versions less than 19.1.
1 parent 3daa360 commit 5909713

File tree

13 files changed

+42
-214
lines changed

13 files changed

+42
-214
lines changed

goldens/cdk/platform/index.api.md

-14
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,6 @@
55
```ts
66

77
import * as i0 from '@angular/core';
8-
import { Renderer2 } from '@angular/core';
9-
10-
// @public
11-
export function _bindEventWithOptions(renderer: Renderer2, target: EventTarget, eventName: string, callback: (event: any) => boolean | void, options: _ListenerOptions): () => void;
128

139
// @public
1410
export function _getEventTarget<T extends EventTarget>(event: Event): T | null;
@@ -28,16 +24,6 @@ export function getSupportedInputTypes(): Set<string>;
2824
// @public
2925
export function _isTestEnvironment(): boolean;
3026

31-
// @public
32-
export interface _ListenerOptions {
33-
// (undocumented)
34-
capture?: boolean;
35-
// (undocumented)
36-
once?: boolean;
37-
// (undocumented)
38-
passive?: boolean;
39-
}
40-
4127
// @public
4228
export function normalizePassiveListenerOptions(options: AddEventListenerOptions): AddEventListenerOptions | boolean;
4329

src/cdk-experimental/popover-edit/table-directives.ts

+1-4
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ import {
3535
withLatestFrom,
3636
} from 'rxjs/operators';
3737

38-
import {_bindEventWithOptions} from '@angular/cdk/platform';
3938
import {CELL_SELECTOR, EDIT_PANE_CLASS, EDIT_PANE_SELECTOR, ROW_SELECTOR} from './constants';
4039
import {EditEventDispatcher, HoverContentState} from './edit-event-dispatcher';
4140
import {EditRef} from './edit-ref';
@@ -136,9 +135,7 @@ export class CdkEditable implements AfterViewInit, OnDestroy {
136135
) {
137136
return new Observable<T>(subscriber => {
138137
const handler = (event: T) => subscriber.next(event);
139-
const cleanup = options
140-
? _bindEventWithOptions(this._renderer, element, name, handler, options)
141-
: this._renderer.listen(element, name, handler, options);
138+
const cleanup = this._renderer.listen(element, name, handler, options);
142139
return () => {
143140
cleanup();
144141
subscriber.complete();

src/cdk/a11y/input-modality/input-modality-detector.ts

+4-22
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import {
1515
inject,
1616
RendererFactory2,
1717
} from '@angular/core';
18-
import {Platform, _bindEventWithOptions, _getEventTarget} from '../../platform';
18+
import {Platform, _getEventTarget} from '../../platform';
1919
import {DOCUMENT} from '@angular/common';
2020
import {BehaviorSubject, Observable} from 'rxjs';
2121
import {distinctUntilChanged, skip} from 'rxjs/operators';
@@ -205,27 +205,9 @@ export class InputModalityDetector implements OnDestroy {
205205

206206
this._listenerCleanups = ngZone.runOutsideAngular(() => {
207207
return [
208-
_bindEventWithOptions(
209-
renderer,
210-
document,
211-
'keydown',
212-
this._onKeydown,
213-
modalityEventListenerOptions,
214-
),
215-
_bindEventWithOptions(
216-
renderer,
217-
document,
218-
'mousedown',
219-
this._onMousedown,
220-
modalityEventListenerOptions,
221-
),
222-
_bindEventWithOptions(
223-
renderer,
224-
document,
225-
'touchstart',
226-
this._onTouchstart,
227-
modalityEventListenerOptions,
228-
),
208+
renderer.listen(document, 'keydown', this._onKeydown, modalityEventListenerOptions),
209+
renderer.listen(document, 'mousedown', this._onMousedown, modalityEventListenerOptions),
210+
renderer.listen(document, 'touchstart', this._onTouchstart, modalityEventListenerOptions),
229211
];
230212
});
231213
}

src/cdk/drag-drop/drag-drop-registry.ts

+5-7
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import {
1010
ChangeDetectionStrategy,
1111
Component,
1212
Injectable,
13+
ListenerOptions,
1314
NgZone,
1415
OnDestroy,
1516
RendererFactory2,
@@ -19,7 +20,6 @@ import {
1920
signal,
2021
} from '@angular/core';
2122
import {DOCUMENT} from '@angular/common';
22-
import {_bindEventWithOptions, _ListenerOptions} from '../platform';
2323
import {_CdkPrivateStyleLoader} from '../private';
2424
import {Observable, Observer, Subject, merge} from 'rxjs';
2525
import type {DropListRef} from './drop-list-ref';
@@ -123,8 +123,7 @@ export class DragDropRegistry implements OnDestroy {
123123
// The event handler has to be explicitly active,
124124
// because newer browsers make it passive by default.
125125
this._cleanupDocumentTouchmove?.();
126-
this._cleanupDocumentTouchmove = _bindEventWithOptions(
127-
this._renderer,
126+
this._cleanupDocumentTouchmove = this._renderer.listen(
128127
this._document,
129128
'touchmove',
130129
this._persistentTouchmoveListener,
@@ -170,7 +169,7 @@ export class DragDropRegistry implements OnDestroy {
170169
const isTouchEvent = event.type.startsWith('touch');
171170
const endEventHandler = (e: Event) => this.pointerUp.next(e as TouchEvent | MouseEvent);
172171

173-
const toBind: [name: string, handler: (event: Event) => void, options: _ListenerOptions][] = [
172+
const toBind: [name: string, handler: (event: Event) => void, options: ListenerOptions][] = [
174173
// Use capturing so that we pick up scroll changes in any scrollable nodes that aren't
175174
// the document. See https://github.com/angular/components/issues/17144.
176175
['scroll', (e: Event) => this._scroll.next(e), capturingEventOptions],
@@ -203,7 +202,7 @@ export class DragDropRegistry implements OnDestroy {
203202

204203
this._ngZone.runOutsideAngular(() => {
205204
this._globalListeners = toBind.map(([name, handler, options]) =>
206-
_bindEventWithOptions(this._renderer, this._document, name, handler, options),
205+
this._renderer.listen(this._document, name, handler, options),
207206
);
208207
});
209208
}
@@ -247,8 +246,7 @@ export class DragDropRegistry implements OnDestroy {
247246
streams.push(
248247
new Observable((observer: Observer<Event>) => {
249248
return this._ngZone.runOutsideAngular(() => {
250-
const cleanup = _bindEventWithOptions(
251-
this._renderer,
249+
const cleanup = this._renderer.listen(
252250
shadowRoot as ShadowRoot,
253251
'scroll',
254252
(event: Event) => {

src/cdk/drag-drop/drag-ref.ts

+6-24
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import {isFakeMousedownFromScreenReader, isFakeTouchstartFromScreenReader} from '../a11y';
1010
import {Direction} from '../bidi';
1111
import {coerceElement} from '../coercion';
12-
import {_getEventTarget, _getShadowRoot, _bindEventWithOptions} from '../platform';
12+
import {_getEventTarget, _getShadowRoot} from '../platform';
1313
import {ViewportRuler} from '../scrolling';
1414
import {
1515
ElementRef,
@@ -457,28 +457,11 @@ export class DragRef<T = any> {
457457

458458
if (element !== this._rootElement) {
459459
this._removeRootElementListeners();
460+
const renderer = this._renderer;
460461
this._rootElementCleanups = this._ngZone.runOutsideAngular(() => [
461-
_bindEventWithOptions(
462-
this._renderer,
463-
element,
464-
'mousedown',
465-
this._pointerDown,
466-
activeEventListenerOptions,
467-
),
468-
_bindEventWithOptions(
469-
this._renderer,
470-
element,
471-
'touchstart',
472-
this._pointerDown,
473-
passiveEventListenerOptions,
474-
),
475-
_bindEventWithOptions(
476-
this._renderer,
477-
element,
478-
'dragstart',
479-
this._nativeDragStart,
480-
activeEventListenerOptions,
481-
),
462+
renderer.listen(element, 'mousedown', this._pointerDown, activeEventListenerOptions),
463+
renderer.listen(element, 'touchstart', this._pointerDown, passiveEventListenerOptions),
464+
renderer.listen(element, 'dragstart', this._nativeDragStart, activeEventListenerOptions),
482465
]);
483466
this._initialTransform = undefined;
484467
this._rootElement = element;
@@ -832,8 +815,7 @@ export class DragRef<T = any> {
832815
// In some browsers the global `selectstart` that we maintain in the `DragDropRegistry`
833816
// doesn't cross the shadow boundary so we have to prevent it at the shadow root (see #28792).
834817
this._ngZone.runOutsideAngular(() => {
835-
this._cleanupShadowRootSelectStart = _bindEventWithOptions(
836-
this._renderer,
818+
this._cleanupShadowRootSelectStart = this._renderer.listen(
837819
shadowRoot,
838820
'selectstart',
839821
shadowDomSelectStart,

src/cdk/overlay/dispatchers/overlay-outside-click-dispatcher.ts

+6-17
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*/
88

99
import {Injectable, NgZone, RendererFactory2, inject} from '@angular/core';
10-
import {Platform, _bindEventWithOptions, _getEventTarget} from '../../platform';
10+
import {Platform, _getEventTarget} from '../../platform';
1111
import {BaseOverlayDispatcher} from './base-overlay-dispatcher';
1212
import type {OverlayRef} from '../overlay-ref';
1313

@@ -40,24 +40,13 @@ export class OverlayOutsideClickDispatcher extends BaseOverlayDispatcher {
4040
if (!this._isAttached) {
4141
const body = this._document.body;
4242
const eventOptions = {capture: true};
43+
const renderer = this._renderer;
4344

4445
this._cleanups = this._ngZone.runOutsideAngular(() => [
45-
_bindEventWithOptions(
46-
this._renderer,
47-
body,
48-
'pointerdown',
49-
this._pointerDownListener,
50-
eventOptions,
51-
),
52-
_bindEventWithOptions(this._renderer, body, 'click', this._clickListener, eventOptions),
53-
_bindEventWithOptions(this._renderer, body, 'auxclick', this._clickListener, eventOptions),
54-
_bindEventWithOptions(
55-
this._renderer,
56-
body,
57-
'contextmenu',
58-
this._clickListener,
59-
eventOptions,
60-
),
46+
renderer.listen(body, 'pointerdown', this._pointerDownListener, eventOptions),
47+
renderer.listen(body, 'click', this._clickListener, eventOptions),
48+
renderer.listen(body, 'auxclick', this._clickListener, eventOptions),
49+
renderer.listen(body, 'contextmenu', this._clickListener, eventOptions),
6150
]);
6251

6352
// click event is not fired on iOS. To make element "clickable" we are

src/cdk/platform/features/backwards-compatibility.ts

-47
This file was deleted.

src/cdk/platform/public-api.ts

-1
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,3 @@ export * from './features/passive-listeners';
1313
export * from './features/scrolling';
1414
export * from './features/shadow-dom';
1515
export * from './features/test-environment';
16-
export * from './features/backwards-compatibility';

src/cdk/text-field/autofill.ts

+2-8
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* found in the LICENSE file at https://angular.dev/license
77
*/
88

9-
import {Platform, _bindEventWithOptions} from '../platform';
9+
import {Platform} from '../platform';
1010
import {
1111
Directive,
1212
ElementRef,
@@ -111,13 +111,7 @@ export class AutofillMonitor implements OnDestroy {
111111

112112
const unlisten = this._ngZone.runOutsideAngular(() => {
113113
element.classList.add('cdk-text-field-autofill-monitored');
114-
return _bindEventWithOptions(
115-
this._renderer,
116-
element,
117-
'animationstart',
118-
listener,
119-
listenerOptions,
120-
);
114+
return this._renderer.listen(element, 'animationstart', listener, listenerOptions);
121115
});
122116

123117
this._monitoredElements.set(element, {subject, unlisten});

src/material/core/private/ripple-loader.ts

+6-12
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import {
1414
RippleTarget,
1515
defaultRippleAnimationConfig,
1616
} from '../ripple';
17-
import {Platform, _bindEventWithOptions, _getEventTarget} from '@angular/cdk/platform';
17+
import {Platform, _getEventTarget} from '@angular/cdk/platform';
1818
import {_CdkPrivateStyleLoader} from '@angular/cdk/private';
1919
import {_animationsDisabled} from '../animation/animation';
2020

@@ -65,17 +65,11 @@ export class MatRippleLoader implements OnDestroy {
6565
constructor() {
6666
const renderer = inject(RendererFactory2).createRenderer(null, null);
6767

68-
this._eventCleanups = this._ngZone.runOutsideAngular(() => {
69-
return rippleInteractionEvents.map(name =>
70-
_bindEventWithOptions(
71-
renderer,
72-
this._document,
73-
name,
74-
this._onInteraction,
75-
eventListenerOptions,
76-
),
77-
);
78-
});
68+
this._eventCleanups = this._ngZone.runOutsideAngular(() =>
69+
rippleInteractionEvents.map(name =>
70+
renderer.listen(this._document, name, this._onInteraction, eventListenerOptions),
71+
),
72+
);
7973
}
8074

8175
ngOnDestroy(): void {

0 commit comments

Comments
 (0)