UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

82 lines 8.14 kB
import { Injectable } from '@angular/core'; import { DashboardOriginatorService } from './dashboard-originator.service'; import { DashboardCaretakerService } from './dashboard-caretaker.service'; import * as i0 from "@angular/core"; import * as i1 from "./dashboard-originator.service"; import * as i2 from "./dashboard-caretaker.service"; /** * Facade for implementation of Memento design pattern (caretaker, originator). Responsible for undo/redo feature * during edit mode of dashboard. */ export class DashboardEditModeService { get undoButtonDisabled() { return this.caretaker.undoStackLength === 0; } /** * Current dashboard change name for undo button title. */ get changeToUndoName() { return this.originator.currentStateName; } /** * Redo stack latest item for defining redo button disable state and its title. */ get redoStackLastItem() { return this.caretaker.redoStackLastItem; } constructor(originator, caretaker) { this.originator = originator; this.caretaker = caretaker; } /** * Initializes dashboard children state on edit mode start. * @param state Dashboard children initial state. */ init(state) { this.originator.initState(state); } /** * Saves current state for further undo actions and sets new dashboard children state. * @param state Dashboard children updated state. */ newState(state) { this.caretaker.backup(); this.originator.setState(state); } /** * Returns copy of current state. */ getCurrentState() { return this.originator.getState(); } /** * Reverts last dashboard children change. * @returns Current state of dashboard children after reverting last change. */ undo() { return this.caretaker.undo(); } /** * Applies previously undone change. * @returns Current state of dashboard children after applying previously undone change. */ redo() { return this.caretaker.redo(); } /** * Resets dashboard children state to initial one and returns initial state. * @returns Initial state of dashboard children. */ reset() { return this.caretaker.reset(); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DashboardEditModeService, deps: [{ token: i1.DashboardOriginatorService }, { token: i2.DashboardCaretakerService }], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DashboardEditModeService, providedIn: 'root' }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DashboardEditModeService, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }], ctorParameters: () => [{ type: i1.DashboardOriginatorService }, { type: i2.DashboardCaretakerService }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLWVkaXQtbW9kZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29udGV4dC1kYXNoYm9hcmQvbWVtZW50by9kYXNoYm9hcmQtZWRpdC1tb2RlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7OztBQUUxRTs7O0dBR0c7QUFJSCxNQUFNLE9BQU8sd0JBQXdCO0lBQ25DLElBQUksa0JBQWtCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLEtBQUssQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFDRDs7T0FFRztJQUNILElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQztJQUMxQyxDQUFDO0lBQ0Q7O09BRUc7SUFDSCxJQUFJLGlCQUFpQjtRQUNuQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUM7SUFDMUMsQ0FBQztJQUVELFlBQ1UsVUFBc0MsRUFDdEMsU0FBb0M7UUFEcEMsZUFBVSxHQUFWLFVBQVUsQ0FBNEI7UUFDdEMsY0FBUyxHQUFULFNBQVMsQ0FBMkI7SUFDM0MsQ0FBQztJQUNKOzs7T0FHRztJQUNILElBQUksQ0FBQyxLQUE2QjtRQUNoQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBQ0Q7OztPQUdHO0lBQ0gsUUFBUSxDQUFDLEtBQTZCO1FBQ3BDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUNEOztPQUVHO0lBQ0gsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBQ0Q7OztPQUdHO0lBQ0gsSUFBSTtRQUNGLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBQ0Q7OztPQUdHO0lBQ0gsSUFBSTtRQUNGLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBQ0Q7OztPQUdHO0lBQ0gsS0FBSztRQUNILE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNoQyxDQUFDOytHQTlEVSx3QkFBd0I7bUhBQXhCLHdCQUF3QixjQUZ2QixNQUFNOzs0RkFFUCx3QkFBd0I7a0JBSHBDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGFzaGJvYXJkT3JpZ2luYXRvclNlcnZpY2UgfSBmcm9tICcuL2Rhc2hib2FyZC1vcmlnaW5hdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGFzaGJvYXJkQ2FyZXRha2VyU2VydmljZSB9IGZyb20gJy4vZGFzaGJvYXJkLWNhcmV0YWtlci5zZXJ2aWNlJztcbmltcG9ydCB7IERhc2hib2FyZENoaWxkcmVuU3RhdGUgfSBmcm9tICcuLi9jb250ZXh0LWRhc2hib2FyZC5tb2RlbCc7XG4vKipcbiAqIEZhY2FkZSBmb3IgaW1wbGVtZW50YXRpb24gb2YgTWVtZW50byBkZXNpZ24gcGF0dGVybiAoY2FyZXRha2VyLCBvcmlnaW5hdG9yKS4gUmVzcG9uc2libGUgZm9yIHVuZG8vcmVkbyBmZWF0dXJlXG4gKiBkdXJpbmcgZWRpdCBtb2RlIG9mIGRhc2hib2FyZC5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRGFzaGJvYXJkRWRpdE1vZGVTZXJ2aWNlIHtcbiAgZ2V0IHVuZG9CdXR0b25EaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jYXJldGFrZXIudW5kb1N0YWNrTGVuZ3RoID09PSAwO1xuICB9XG4gIC8qKlxuICAgKiBDdXJyZW50IGRhc2hib2FyZCBjaGFuZ2UgbmFtZSBmb3IgdW5kbyBidXR0b24gdGl0bGUuXG4gICAqL1xuICBnZXQgY2hhbmdlVG9VbmRvTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm9yaWdpbmF0b3IuY3VycmVudFN0YXRlTmFtZTtcbiAgfVxuICAvKipcbiAgICogUmVkbyBzdGFjayBsYXRlc3QgaXRlbSBmb3IgZGVmaW5pbmcgcmVkbyBidXR0b24gZGlzYWJsZSBzdGF0ZSBhbmQgaXRzIHRpdGxlLlxuICAgKi9cbiAgZ2V0IHJlZG9TdGFja0xhc3RJdGVtKCk6IERhc2hib2FyZENoaWxkcmVuU3RhdGUge1xuICAgIHJldHVybiB0aGlzLmNhcmV0YWtlci5yZWRvU3RhY2tMYXN0SXRlbTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgb3JpZ2luYXRvcjogRGFzaGJvYXJkT3JpZ2luYXRvclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjYXJldGFrZXI6IERhc2hib2FyZENhcmV0YWtlclNlcnZpY2VcbiAgKSB7fVxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgZGFzaGJvYXJkIGNoaWxkcmVuIHN0YXRlIG9uIGVkaXQgbW9kZSBzdGFydC5cbiAgICogQHBhcmFtIHN0YXRlIERhc2hib2FyZCBjaGlsZHJlbiBpbml0aWFsIHN0YXRlLlxuICAgKi9cbiAgaW5pdChzdGF0ZTogRGFzaGJvYXJkQ2hpbGRyZW5TdGF0ZSkge1xuICAgIHRoaXMub3JpZ2luYXRvci5pbml0U3RhdGUoc3RhdGUpO1xuICB9XG4gIC8qKlxuICAgKiBTYXZlcyBjdXJyZW50IHN0YXRlIGZvciBmdXJ0aGVyIHVuZG8gYWN0aW9ucyBhbmQgc2V0cyBuZXcgZGFzaGJvYXJkIGNoaWxkcmVuIHN0YXRlLlxuICAgKiBAcGFyYW0gc3RhdGUgRGFzaGJvYXJkIGNoaWxkcmVuIHVwZGF0ZWQgc3RhdGUuXG4gICAqL1xuICBuZXdTdGF0ZShzdGF0ZTogRGFzaGJvYXJkQ2hpbGRyZW5TdGF0ZSkge1xuICAgIHRoaXMuY2FyZXRha2VyLmJhY2t1cCgpO1xuICAgIHRoaXMub3JpZ2luYXRvci5zZXRTdGF0ZShzdGF0ZSk7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgY29weSBvZiBjdXJyZW50IHN0YXRlLlxuICAgKi9cbiAgZ2V0Q3VycmVudFN0YXRlKCk6IERhc2hib2FyZENoaWxkcmVuU3RhdGUge1xuICAgIHJldHVybiB0aGlzLm9yaWdpbmF0b3IuZ2V0U3RhdGUoKTtcbiAgfVxuICAvKipcbiAgICogUmV2ZXJ0cyBsYXN0IGRhc2hib2FyZCBjaGlsZHJlbiBjaGFuZ2UuXG4gICAqIEByZXR1cm5zIEN1cnJlbnQgc3RhdGUgb2YgZGFzaGJvYXJkIGNoaWxkcmVuIGFmdGVyIHJldmVydGluZyBsYXN0IGNoYW5nZS5cbiAgICovXG4gIHVuZG8oKTogRGFzaGJvYXJkQ2hpbGRyZW5TdGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuY2FyZXRha2VyLnVuZG8oKTtcbiAgfVxuICAvKipcbiAgICogQXBwbGllcyBwcmV2aW91c2x5IHVuZG9uZSBjaGFuZ2UuXG4gICAqIEByZXR1cm5zIEN1cnJlbnQgc3RhdGUgb2YgZGFzaGJvYXJkIGNoaWxkcmVuIGFmdGVyIGFwcGx5aW5nIHByZXZpb3VzbHkgdW5kb25lIGNoYW5nZS5cbiAgICovXG4gIHJlZG8oKTogRGFzaGJvYXJkQ2hpbGRyZW5TdGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuY2FyZXRha2VyLnJlZG8oKTtcbiAgfVxuICAvKipcbiAgICogUmVzZXRzIGRhc2hib2FyZCBjaGlsZHJlbiBzdGF0ZSB0byBpbml0aWFsIG9uZSBhbmQgcmV0dXJucyBpbml0aWFsIHN0YXRlLlxuICAgKiBAcmV0dXJucyBJbml0aWFsIHN0YXRlIG9mIGRhc2hib2FyZCBjaGlsZHJlbi5cbiAgICovXG4gIHJlc2V0KCk6IERhc2hib2FyZENoaWxkcmVuU3RhdGUge1xuICAgIHJldHVybiB0aGlzLmNhcmV0YWtlci5yZXNldCgpO1xuICB9XG59XG4iXX0=