UNPKG

ngx-dynamic-dashboard

Version:
50 lines 6.17 kB
import { Injectable } from '@angular/core'; import { Subject } from 'rxjs'; export class OptionsService { constructor() { this.optionsCollectionName = 'dashboardOptions'; this.defaultOptions = { 'enableHover': false, 'displayGadgetOptionsInSideBar': false }; this.globalOptionsChangeEventSubject = new Subject(); } getBoardOptions() { let databaseOptions = JSON.parse(localStorage.getItem(this.optionsCollectionName)); if (databaseOptions == null) { this.persistDefautBoardOptions(); return this.defaultOptions; } else { return databaseOptions; } } setBoardOptions(options) { /** * Todo this will need to change to support the update to individual options. Currently there is only one * option but once there is more than one this method must change to take the input and update just that * property of the options object. */ localStorage.removeItem(this.optionsCollectionName); /** * Raise an event to listeners, primarily the gadgets, when the global options change. The listeners can use * the event to change their behavior */ this.globalOptionsChangeEventSubject.next(options); return localStorage.setItem(this.optionsCollectionName, JSON.stringify(options)); } /** * The gadget-base can use this method to subscribe to events that are created when the global options change. */ listenForGlobalOptionsChanges() { return this.globalOptionsChangeEventSubject.asObservable(); } persistDefautBoardOptions() { localStorage.setItem(this.optionsCollectionName, JSON.stringify(this.defaultOptions)); } } OptionsService.decorators = [ { type: Injectable } ]; OptionsService.ctorParameters = () => []; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIvVXNlcnMvYmVubGkvd29ya3NwYWNlcy9uZ3gtZHluYW1pYy1kYXNoYm9hcmQtZnJhbWV3b3JrL3Byb2plY3RzL25neC1keW5hbWljLWRhc2hib2FyZC9zcmMvIiwic291cmNlcyI6WyJkYXNoYm9hcmQvY29uZmlndXJhdGlvbi90YWItb3B0aW9ucy9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFhLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUl6QyxNQUFNLE9BQU8sY0FBYztJQVV2QjtRQVJBLDBCQUFxQixHQUFHLGtCQUFrQixDQUFDO1FBQzNDLG1CQUFjLEdBQUc7WUFDYixhQUFhLEVBQUUsS0FBSztZQUNwQiwrQkFBK0IsRUFBRSxLQUFLO1NBQ3pDLENBQUM7UUFFTSxvQ0FBK0IsR0FBaUIsSUFBSSxPQUFPLEVBQU8sQ0FBQztJQUczRSxDQUFDO0lBRU0sZUFBZTtRQUVsQixJQUFJLGVBQWUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQztRQUVuRixJQUFJLGVBQWUsSUFBSSxJQUFJLEVBQUU7WUFDekIsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7WUFDakMsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO1NBQzlCO2FBQU07WUFDSCxPQUFPLGVBQWUsQ0FBQztTQUMxQjtJQUNMLENBQUM7SUFFTSxlQUFlLENBQUMsT0FBWTtRQUUvQjs7OztXQUlHO1FBRUgsWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUVwRDs7O1dBR0c7UUFDSCxJQUFJLENBQUMsK0JBQStCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRW5ELE9BQU8sWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBRXJGLENBQUM7SUFFRDs7T0FFRztJQUNILDZCQUE2QjtRQUN6QixPQUFPLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMvRCxDQUFDO0lBRU8seUJBQXlCO1FBRTdCLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUE7SUFFekYsQ0FBQzs7O1lBekRKLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcblxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgT3B0aW9uc1NlcnZpY2Uge1xuXG4gICAgb3B0aW9uc0NvbGxlY3Rpb25OYW1lID0gJ2Rhc2hib2FyZE9wdGlvbnMnO1xuICAgIGRlZmF1bHRPcHRpb25zID0ge1xuICAgICAgICAnZW5hYmxlSG92ZXInOiBmYWxzZSxcbiAgICAgICAgJ2Rpc3BsYXlHYWRnZXRPcHRpb25zSW5TaWRlQmFyJzogZmFsc2VcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBnbG9iYWxPcHRpb25zQ2hhbmdlRXZlbnRTdWJqZWN0OiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Qm9hcmRPcHRpb25zKCkge1xuXG4gICAgICAgIGxldCBkYXRhYmFzZU9wdGlvbnMgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMub3B0aW9uc0NvbGxlY3Rpb25OYW1lKSk7XG5cbiAgICAgICAgaWYgKGRhdGFiYXNlT3B0aW9ucyA9PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLnBlcnNpc3REZWZhdXRCb2FyZE9wdGlvbnMoKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmRlZmF1bHRPcHRpb25zO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGRhdGFiYXNlT3B0aW9ucztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzZXRCb2FyZE9wdGlvbnMob3B0aW9uczogYW55KSB7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRvZG8gdGhpcyB3aWxsIG5lZWQgdG8gY2hhbmdlIHRvIHN1cHBvcnQgdGhlIHVwZGF0ZSB0byBpbmRpdmlkdWFsIG9wdGlvbnMuIEN1cnJlbnRseSB0aGVyZSBpcyBvbmx5IG9uZVxuICAgICAgICAgKiBvcHRpb24gYnV0IG9uY2UgdGhlcmUgaXMgbW9yZSB0aGFuIG9uZSB0aGlzIG1ldGhvZCBtdXN0IGNoYW5nZSB0byB0YWtlIHRoZSBpbnB1dCBhbmQgdXBkYXRlIGp1c3QgdGhhdFxuICAgICAgICAgKiBwcm9wZXJ0eSBvZiB0aGUgb3B0aW9ucyBvYmplY3QuXG4gICAgICAgICAqL1xuXG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMub3B0aW9uc0NvbGxlY3Rpb25OYW1lKTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogIFJhaXNlIGFuIGV2ZW50IHRvIGxpc3RlbmVycywgcHJpbWFyaWx5IHRoZSBnYWRnZXRzLCB3aGVuIHRoZSBnbG9iYWwgb3B0aW9ucyBjaGFuZ2UuIFRoZSBsaXN0ZW5lcnMgY2FuIHVzZVxuICAgICAgICAgKiB0aGUgZXZlbnQgdG8gY2hhbmdlIHRoZWlyIGJlaGF2aW9yXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmdsb2JhbE9wdGlvbnNDaGFuZ2VFdmVudFN1YmplY3QubmV4dChvcHRpb25zKTtcblxuICAgICAgICByZXR1cm4gbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5vcHRpb25zQ29sbGVjdGlvbk5hbWUsIEpTT04uc3RyaW5naWZ5KG9wdGlvbnMpKTtcblxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBnYWRnZXQtYmFzZSBjYW4gdXNlIHRoaXMgbWV0aG9kIHRvIHN1YnNjcmliZSB0byBldmVudHMgdGhhdCBhcmUgY3JlYXRlZCB3aGVuIHRoZSBnbG9iYWwgb3B0aW9ucyBjaGFuZ2UuXG4gICAgICovXG4gICAgbGlzdGVuRm9yR2xvYmFsT3B0aW9uc0NoYW5nZXMoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2xvYmFsT3B0aW9uc0NoYW5nZUV2ZW50U3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHBlcnNpc3REZWZhdXRCb2FyZE9wdGlvbnMoKSB7XG5cbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5vcHRpb25zQ29sbGVjdGlvbk5hbWUsIEpTT04uc3RyaW5naWZ5KHRoaXMuZGVmYXVsdE9wdGlvbnMpKVxuXG4gICAgfVxufVxuIl19