UNPKG

@netgrif/components-core

Version:

Netgrif Application engine frontend core Angular library

53 lines 7.2 kB
import { HeaderMode } from './models/header-mode'; import { BehaviorSubject } from 'rxjs'; /** * Keeps the current state of the header */ export class HeaderState { mode = HeaderMode.SORT; _lastMode = HeaderMode.SORT; _selectedHeaders$; _lastSelectedHeaders; constructor(initialHeaders) { this._lastSelectedHeaders = new Array(); this._selectedHeaders$ = new BehaviorSubject(initialHeaders); } get selectedHeaders$() { return this._selectedHeaders$.asObservable(); } get selectedHeaders() { return this._selectedHeaders$.getValue(); } get lastSelectedHeaders() { return this._lastSelectedHeaders; } saveState() { this._lastMode = this.mode; this._lastSelectedHeaders = this._selectedHeaders$.getValue(); } restoreLastMode() { this.mode = this._lastMode; } restoreLastState() { this.mode = this._lastMode; this._selectedHeaders$.next(this._lastSelectedHeaders); } restoreLastHeadersToIndex(count) { this._selectedHeaders$.next(this._lastSelectedHeaders.slice(0, count)); } updateSelectedHeaders(newSelectedHeaders) { this._selectedHeaders$.next(newSelectedHeaders); } asInterface() { return { mode: this.mode, selectedHeaders$: this.selectedHeaders$, selectedHeaders: this.selectedHeaders, lastSelectedHeaders: this.lastSelectedHeaders, saveState: this.saveState, restoreLastState: this.restoreLastState, restoreLastMode: this.restoreLastMode }; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLXN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi9oZWFkZXIvaGVhZGVyLXN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQUMsZUFBZSxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBY2pEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFdBQVc7SUFFYixJQUFJLEdBQWUsVUFBVSxDQUFDLElBQUksQ0FBQztJQUVsQyxTQUFTLEdBQWUsVUFBVSxDQUFDLElBQUksQ0FBQztJQUN4QyxpQkFBaUIsQ0FBdUM7SUFDeEQsb0JBQW9CLENBQXNCO0lBRWxELFlBQVksY0FBbUM7UUFDM0MsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksS0FBSyxFQUFnQixDQUFDO1FBQ3RELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLGVBQWUsQ0FBc0IsY0FBYyxDQUFDLENBQUM7SUFDdEYsQ0FBQztJQUVELElBQVcsZ0JBQWdCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ2pELENBQUM7SUFFRCxJQUFXLGVBQWU7UUFDdEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0MsQ0FBQztJQUVELElBQUksbUJBQW1CO1FBQ25CLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDO0lBQ3JDLENBQUM7SUFDTSxTQUFTO1FBQ1osSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQzNCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEUsQ0FBQztJQUVNLGVBQWU7UUFDbEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQy9CLENBQUM7SUFFTSxnQkFBZ0I7UUFDbkIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVNLHlCQUF5QixDQUFDLEtBQWE7UUFDMUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFBO0lBQzFFLENBQUM7SUFFTSxxQkFBcUIsQ0FBQyxrQkFBdUM7UUFDaEUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFTSxXQUFXO1FBQ2QsT0FBTztZQUNILElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDdkMsZUFBZSxFQUFFLElBQUksQ0FBQyxlQUFlO1lBQ3JDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxtQkFBbUI7WUFDN0MsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3pCLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDdkMsZUFBZSxFQUFFLElBQUksQ0FBQyxlQUFlO1NBQ3hDLENBQUM7SUFDTixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0hlYWRlck1vZGV9IGZyb20gJy4vbW9kZWxzL2hlYWRlci1tb2RlJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7SGVhZGVyQ29sdW1ufSBmcm9tICcuL21vZGVscy9oZWFkZXItY29sdW1uJztcblxuXG5leHBvcnQgaW50ZXJmYWNlIEhlYWRlclN0YXRlSW50ZXJmYWNlIHtcbiAgICBtb2RlOiBIZWFkZXJNb2RlO1xuICAgIHJlYWRvbmx5IHNlbGVjdGVkSGVhZGVycyQ6IE9ic2VydmFibGU8QXJyYXk8SGVhZGVyQ29sdW1uPj47XG4gICAgcmVhZG9ubHkgc2VsZWN0ZWRIZWFkZXJzOiBBcnJheTxIZWFkZXJDb2x1bW4+O1xuICAgIHJlYWRvbmx5IGxhc3RTZWxlY3RlZEhlYWRlcnM6IEFycmF5PEhlYWRlckNvbHVtbj47XG4gICAgc2F2ZVN0YXRlOiAoKSA9PiB2b2lkO1xuICAgIHJlc3RvcmVMYXN0U3RhdGU6ICgpID0+IHZvaWQ7XG4gICAgcmVzdG9yZUxhc3RNb2RlOiAoKSA9PiB2b2lkO1xufVxuXG4vKipcbiAqIEtlZXBzIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBoZWFkZXJcbiAqL1xuZXhwb3J0IGNsYXNzIEhlYWRlclN0YXRlIGltcGxlbWVudHMgSGVhZGVyU3RhdGVJbnRlcmZhY2Uge1xuXG4gICAgcHVibGljIG1vZGU6IEhlYWRlck1vZGUgPSBIZWFkZXJNb2RlLlNPUlQ7XG5cbiAgICBwcml2YXRlIF9sYXN0TW9kZTogSGVhZGVyTW9kZSA9IEhlYWRlck1vZGUuU09SVDtcbiAgICBwcml2YXRlIF9zZWxlY3RlZEhlYWRlcnMkOiBCZWhhdmlvclN1YmplY3Q8QXJyYXk8SGVhZGVyQ29sdW1uPj47XG4gICAgcHJpdmF0ZSBfbGFzdFNlbGVjdGVkSGVhZGVyczogQXJyYXk8SGVhZGVyQ29sdW1uPjtcblxuICAgIGNvbnN0cnVjdG9yKGluaXRpYWxIZWFkZXJzOiBBcnJheTxIZWFkZXJDb2x1bW4+KSB7XG4gICAgICAgIHRoaXMuX2xhc3RTZWxlY3RlZEhlYWRlcnMgPSBuZXcgQXJyYXk8SGVhZGVyQ29sdW1uPigpO1xuICAgICAgICB0aGlzLl9zZWxlY3RlZEhlYWRlcnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBcnJheTxIZWFkZXJDb2x1bW4+Pihpbml0aWFsSGVhZGVycyk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBzZWxlY3RlZEhlYWRlcnMkKCk6IE9ic2VydmFibGU8QXJyYXk8SGVhZGVyQ29sdW1uPj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRIZWFkZXJzJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHNlbGVjdGVkSGVhZGVycygpOiBBcnJheTxIZWFkZXJDb2x1bW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkSGVhZGVycyQuZ2V0VmFsdWUoKTtcbiAgICB9XG5cbiAgICBnZXQgbGFzdFNlbGVjdGVkSGVhZGVycygpOiBBcnJheTxIZWFkZXJDb2x1bW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xhc3RTZWxlY3RlZEhlYWRlcnM7XG4gICAgfVxuICAgIHB1YmxpYyBzYXZlU3RhdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2xhc3RNb2RlID0gdGhpcy5tb2RlO1xuICAgICAgICB0aGlzLl9sYXN0U2VsZWN0ZWRIZWFkZXJzID0gdGhpcy5fc2VsZWN0ZWRIZWFkZXJzJC5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZXN0b3JlTGFzdE1vZGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubW9kZSA9IHRoaXMuX2xhc3RNb2RlO1xuICAgIH1cblxuICAgIHB1YmxpYyByZXN0b3JlTGFzdFN0YXRlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1vZGUgPSB0aGlzLl9sYXN0TW9kZTtcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWRIZWFkZXJzJC5uZXh0KHRoaXMuX2xhc3RTZWxlY3RlZEhlYWRlcnMpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZXN0b3JlTGFzdEhlYWRlcnNUb0luZGV4KGNvdW50OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWRIZWFkZXJzJC5uZXh0KHRoaXMuX2xhc3RTZWxlY3RlZEhlYWRlcnMuc2xpY2UoMCwgY291bnQpKVxuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGVTZWxlY3RlZEhlYWRlcnMobmV3U2VsZWN0ZWRIZWFkZXJzOiBBcnJheTxIZWFkZXJDb2x1bW4+KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3NlbGVjdGVkSGVhZGVycyQubmV4dChuZXdTZWxlY3RlZEhlYWRlcnMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc0ludGVyZmFjZSgpOiBIZWFkZXJTdGF0ZUludGVyZmFjZSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBtb2RlOiB0aGlzLm1vZGUsXG4gICAgICAgICAgICBzZWxlY3RlZEhlYWRlcnMkOiB0aGlzLnNlbGVjdGVkSGVhZGVycyQsXG4gICAgICAgICAgICBzZWxlY3RlZEhlYWRlcnM6IHRoaXMuc2VsZWN0ZWRIZWFkZXJzLFxuICAgICAgICAgICAgbGFzdFNlbGVjdGVkSGVhZGVyczogdGhpcy5sYXN0U2VsZWN0ZWRIZWFkZXJzLFxuICAgICAgICAgICAgc2F2ZVN0YXRlOiB0aGlzLnNhdmVTdGF0ZSxcbiAgICAgICAgICAgIHJlc3RvcmVMYXN0U3RhdGU6IHRoaXMucmVzdG9yZUxhc3RTdGF0ZSxcbiAgICAgICAgICAgIHJlc3RvcmVMYXN0TW9kZTogdGhpcy5yZXN0b3JlTGFzdE1vZGVcbiAgICAgICAgfTtcbiAgICB9XG59XG4iXX0=