From 3abd19876cc995c08156fc41f9b3b736cacfd565 Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Thu, 21 Nov 2019 19:18:25 +0200 Subject: [PATCH] Fix --- projects/ngx-flowchart/src/lib/model.service.ts | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/projects/ngx-flowchart/src/lib/model.service.ts b/projects/ngx-flowchart/src/lib/model.service.ts index eb87b8b..8b572b0 100644 --- a/projects/ngx-flowchart/src/lib/model.service.ts +++ b/projects/ngx-flowchart/src/lib/model.service.ts @@ -1,7 +1,8 @@ import { FcModelValidationService } from './modelvalidation.service'; import { FcConnector, FcCoords, FcEdge, FcItemInfo, FcModel, FcNode, FcRectBox } from './ngx-flowchart.models'; -import { Observable, of } from 'rxjs'; +import { Observable, of, Subject } from 'rxjs'; import { ChangeDetectorRef, EventEmitter } from '@angular/core'; +import { debounceTime } from 'rxjs/operators'; export class FcModelService { @@ -24,7 +25,8 @@ export class FcModelService { dropTargetId: string; - modelChanged: EventEmitter; + private readonly modelChanged: EventEmitter; + private readonly debouncer = new Subject(); connectors: ConnectorsModel; nodes: NodesModel; @@ -61,10 +63,14 @@ export class FcModelService { this.connectors = new ConnectorsModel(this); this.nodes = new NodesModel(this); this.edges = new EdgesModel(this); + + this.debouncer + .pipe(debounceTime(100)) + .subscribe(() => this.modelChanged.emit()); } public notifyModelChanged() { - this.modelChanged.emit(); + this.debouncer.next(); } public detectChanges() {