UNPKG

@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
/**----------------------------------------------------------------------------------------- * 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); } }