Skip to content

Commit a2ab84d

Browse files
authored
fix(cdk/dialog): provide proper shaped Directionality (#30898)
#30702 added a `valueSignal` property to `Directionality`, this PR adds it to the directionality provided by cdk-dialog as well.
1 parent e0446ec commit a2ab84d

File tree

1 file changed

+28
-11
lines changed

1 file changed

+28
-11
lines changed

Diff for: src/cdk/dialog/dialog.ts

+28-11
Original file line numberDiff line numberDiff line change
@@ -7,26 +7,43 @@
77
*/
88

99
import {
10-
TemplateRef,
10+
ComponentRef,
11+
EventEmitter,
1112
Injectable,
1213
Injector,
1314
OnDestroy,
14-
Type,
1515
StaticProvider,
16-
ComponentRef,
16+
TemplateRef,
17+
Type,
1718
inject,
19+
signal,
1820
} from '@angular/core';
21+
import {Observable, Subject, defer} from 'rxjs';
22+
import {startWith} from 'rxjs/operators';
23+
import {_IdGenerator} from '../a11y';
24+
import {Direction, Directionality} from '../bidi';
25+
import {ComponentType, Overlay, OverlayConfig, OverlayContainer, OverlayRef} from '../overlay';
1926
import {BasePortalOutlet, ComponentPortal, TemplatePortal} from '../portal';
20-
import {of as observableOf, Observable, Subject, defer} from 'rxjs';
21-
import {DialogRef} from './dialog-ref';
2227
import {DialogConfig} from './dialog-config';
23-
import {Directionality} from '../bidi';
24-
import {_IdGenerator} from '../a11y';
25-
import {ComponentType, Overlay, OverlayRef, OverlayConfig, OverlayContainer} from '../overlay';
26-
import {startWith} from 'rxjs/operators';
28+
import {DialogRef} from './dialog-ref';
2729

28-
import {DEFAULT_DIALOG_CONFIG, DIALOG_DATA, DIALOG_SCROLL_STRATEGY} from './dialog-injectors';
2930
import {CdkDialogContainer} from './dialog-container';
31+
import {DEFAULT_DIALOG_CONFIG, DIALOG_DATA, DIALOG_SCROLL_STRATEGY} from './dialog-injectors';
32+
33+
function getDirectionality(value: Direction): Directionality {
34+
const valueSignal = signal(value);
35+
const change = new EventEmitter<Direction>();
36+
return {
37+
valueSignal,
38+
get value() {
39+
return valueSignal();
40+
},
41+
change,
42+
ngOnDestroy() {
43+
change.complete();
44+
},
45+
};
46+
}
3047

3148
@Injectable({providedIn: 'root'})
3249
export class Dialog implements OnDestroy {
@@ -317,7 +334,7 @@ export class Dialog implements OnDestroy {
317334
) {
318335
providers.push({
319336
provide: Directionality,
320-
useValue: {value: config.direction, change: observableOf()},
337+
useValue: getDirectionality(config.direction),
321338
});
322339
}
323340

0 commit comments

Comments
 (0)