@progress/kendo-angular-grid
Version:
Kendo UI Grid for Angular - high performance data grid with paging, filtering, virtualization, CRUD, and more.
40 lines (39 loc) • 1.63 kB
JavaScript
/**-----------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { EventEmitter } from "@angular/core";
/**
* @hidden
*/
export class ZoneAwareEventEmitter extends EventEmitter {
ngZone;
constructor(ngZone, isAsync = false) {
super(isAsync);
this.ngZone = ngZone;
}
subscribe(generatorOrNext, error, complete) {
let schedulerFn;
let errorFn = (_) => null;
let completeFn = () => null;
if (generatorOrNext && typeof generatorOrNext === 'object') {
schedulerFn = (value) => { this.ngZone.run(() => generatorOrNext.next(value)); };
if (generatorOrNext.error) {
errorFn = (err) => { this.ngZone.run(() => generatorOrNext.error(err)); };
}
if (generatorOrNext.complete) {
completeFn = () => { this.ngZone.run(() => generatorOrNext.complete()); };
}
}
else {
schedulerFn = (value) => { this.ngZone.run(() => generatorOrNext(value)); };
if (error) {
errorFn = (err) => { this.ngZone.run(() => error(err)); };
}
if (complete) {
completeFn = () => { this.ngZone.run(() => complete()); };
}
}
return super.subscribe(schedulerFn, errorFn, completeFn);
}
}