Skip to content

Commit 5324893

Browse files
committed
fix(lib): use get/set for events prop of element strategies
This will allow for late binding of the property in the wrapped strategies
1 parent 0c628bf commit 5324893

File tree

2 files changed

+26
-5
lines changed

2 files changed

+26
-5
lines changed

projects/ngx-element-boundary/element-strategy/default/src/element-boundary-ng-element-strategy.ts

+13-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
11
import { ComponentRef, Injector, Type } from '@angular/core';
2-
import { NgElementStrategy, NgElementStrategyFactory } from '@angular/elements';
2+
import {
3+
NgElementStrategy,
4+
NgElementStrategyEvent,
5+
NgElementStrategyFactory,
6+
} from '@angular/elements';
37
import {
48
ElementBoundaryNgElementStrategy,
59
ElementBoundaryNgElementStrategyFactory,
610
} from 'ngx-element-boundary';
11+
import { Observable } from 'rxjs';
712

813
import {
914
DefaultNgElementStrategyFactory,
@@ -59,7 +64,13 @@ export class DefaultElementBoundaryNgElementStrategyOptionsDefault
5964
*/
6065
export class DefaultElementBoundaryNgElementStrategy
6166
implements ElementBoundaryNgElementStrategy {
62-
events = this.defaultStrategy.events;
67+
get events() {
68+
return this.defaultStrategy.events;
69+
}
70+
71+
set events(events: Observable<NgElementStrategyEvent>) {
72+
this.defaultStrategy.events = events;
73+
}
6374

6475
private options: DefaultElementBoundaryNgElementStrategyOptionsDefault;
6576

projects/ngx-element-boundary/src/lib/cross-boundary-ng-element-strategy.ts

+13-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
import { Injector } from '@angular/core';
2-
import { NgElementStrategy, NgElementStrategyFactory } from '@angular/elements';
3-
import { of, Subject } from 'rxjs';
2+
import {
3+
NgElementStrategy,
4+
NgElementStrategyEvent,
5+
NgElementStrategyFactory,
6+
} from '@angular/elements';
7+
import { Observable, of, Subject } from 'rxjs';
48
import { take, takeUntil, timeoutWith } from 'rxjs/operators';
59

610
import {
@@ -63,7 +67,13 @@ export class CrossBoundaryNgElementStrategyOptionsDefault
6367
* To disable the timeout you may set it to `0` (zero, number)
6468
*/
6569
export class CrossBoundaryNgElementStrategy implements NgElementStrategy {
66-
events = this.baseStrategy.events;
70+
get events() {
71+
return this.baseStrategy.events;
72+
}
73+
74+
set events(events: Observable<NgElementStrategyEvent>) {
75+
this.baseStrategy.events = events;
76+
}
6777

6878
private elementBoundaryService: ElementBoundaryService = this.hookableInjector.get(
6979
ElementBoundaryService,

0 commit comments

Comments
 (0)