@netgrif/components-core
Version:
Netgrif Application engine frontend core Angular library
53 lines • 7.2 kB
JavaScript
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=