import {UIElement} from "./UIElement"; import {UIEventSource} from "./UIEventSource"; export class PendingChanges extends UIElement { private _pendingChangesCount: UIEventSource; private _countdown: UIEventSource; private _isSaving: UIEventSource; constructor(pendingChangesCount: UIEventSource, countdown: UIEventSource, isSaving: UIEventSource) { super(pendingChangesCount); this.ListenTo(isSaving); this.ListenTo(countdown); this._pendingChangesCount = pendingChangesCount; this._countdown = countdown; this._isSaving = isSaving; } protected InnerRender(): string { if (this._isSaving.data) { return "Saving"; } if (this._pendingChangesCount.data == 0) { return ""; } var restingSeconds = this._countdown.data / 1000; var dots = ""; while (restingSeconds > 0) { dots += "."; restingSeconds = restingSeconds - 1; } return "Saving "+this._pendingChangesCount.data; } }