@netgrif/components-core
Version:
Netgrif Application engine frontend core Angular library
99 lines • 12 kB
JavaScript
import { Injectable, Optional } from '@angular/core';
import * as i0 from "@angular/core";
import * as i1 from "../../user/services/view-id.service";
export class OverflowService {
_viewIdService;
DEFAULT_COLUMN_WIDTH = 200;
DEFAULT_COLUMN_COUNT = 6;
_overflowMode;
_columnWidth;
_columnCount;
_state;
_initializedCount;
constructor(_viewIdService) {
this._viewIdService = _viewIdService;
this._initializedCount = false;
this._overflowMode = this.initializeItem('overflowMode', false) === 'true';
this._columnCount = this.checkIsNan(this.initializeItem('columnCount', this.DEFAULT_COLUMN_COUNT), this.DEFAULT_COLUMN_COUNT);
this._columnWidth = this.checkIsNan(this.initializeItem('columnWidth', this.DEFAULT_COLUMN_WIDTH), this.DEFAULT_COLUMN_WIDTH);
}
get overflowMode() {
return this._overflowMode;
}
set overflowMode(value) {
this._overflowMode = value;
}
get columnWidth() {
return this._columnWidth;
}
set columnWidth(value) {
this._columnWidth = value;
}
get columnCount() {
return this._columnCount;
}
set columnCount(value) {
this._columnCount = value;
}
get initializedCount() {
return this._initializedCount;
}
saveState() {
this._state = {
overflowMode: this._overflowMode,
columnWidth: this._columnWidth,
columnCount: this._columnCount,
};
}
saveNewState() {
const viewId = this.getViewId();
if (viewId) {
localStorage.setItem(viewId + '-overflowMode', this._overflowMode + '');
localStorage.setItem(viewId + '-columnCount', this._columnCount + '');
localStorage.setItem(viewId + '-columnWidth', this._columnWidth + '');
}
this._state = undefined;
}
restoreLastState() {
this._overflowMode = this._state.overflowMode;
this._columnWidth = this._state.columnWidth;
this._columnCount = this._state.columnCount;
this._state = undefined;
}
initializeItem(id, defaultValue) {
const viewId = this.getViewId();
if (!viewId) {
return defaultValue;
}
const item = localStorage.getItem(viewId + '-' + id);
if (item !== null) {
if (id?.includes('columnCount')) {
this._initializedCount = true;
}
return item;
}
else {
return defaultValue;
}
}
checkIsNan(item, defaultValue) {
return isNaN(parseInt(item, 10)) ? defaultValue : parseInt(item, 10);
}
/**
* @returns the Id of the view, if the ViewIdService was injected. Returns `undefined` if the service was not injected.
*/
getViewId() {
if (this._viewIdService) {
return this._viewIdService.viewId;
}
return undefined;
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OverflowService, deps: [{ token: i1.ViewIdService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OverflowService });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OverflowService, decorators: [{
type: Injectable
}], ctorParameters: () => [{ type: i1.ViewIdService, decorators: [{
type: Optional
}] }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmZsb3cuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvaGVhZGVyL3NlcnZpY2VzL292ZXJmbG93LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7OztBQVVuRCxNQUFNLE9BQU8sZUFBZTtJQVVRO0lBUmIsb0JBQW9CLEdBQUcsR0FBRyxDQUFDO0lBQzNCLG9CQUFvQixHQUFHLENBQUMsQ0FBQztJQUNwQyxhQUFhLENBQVU7SUFDdkIsWUFBWSxDQUFTO0lBQ3JCLFlBQVksQ0FBUztJQUNyQixNQUFNLENBQWdCO0lBQ3RCLGlCQUFpQixDQUFVO0lBRW5DLFlBQWdDLGNBQTZCO1FBQTdCLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQ3pELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDL0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsS0FBSyxNQUFNLENBQUM7UUFDM0UsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzlILElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUNsSSxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ1osT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzlCLENBQUM7SUFF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LENBQUM7SUFDckIsQ0FBQzt3R0FuR1EsZUFBZTs0R0FBZixlQUFlOzs0RkFBZixlQUFlO2tCQUQzQixVQUFVOzswQkFXTSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1ZpZXdJZFNlcnZpY2V9IGZyb20gJy4uLy4uL3VzZXIvc2VydmljZXMvdmlldy1pZC5zZXJ2aWNlJztcblxuaW50ZXJmYWNlIE92ZXJmbG93U3RhdGUge1xuICAgIG92ZXJmbG93TW9kZTogYm9vbGVhbjtcbiAgICBjb2x1bW5XaWR0aDogbnVtYmVyO1xuICAgIGNvbHVtbkNvdW50OiBudW1iZXI7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBPdmVyZmxvd1NlcnZpY2Uge1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IERFRkFVTFRfQ09MVU1OX1dJRFRIID0gMjAwO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBERUZBVUxUX0NPTFVNTl9DT1VOVCA9IDY7XG4gICAgcHJpdmF0ZSBfb3ZlcmZsb3dNb2RlOiBib29sZWFuO1xuICAgIHByaXZhdGUgX2NvbHVtbldpZHRoOiBudW1iZXI7XG4gICAgcHJpdmF0ZSBfY29sdW1uQ291bnQ6IG51bWJlcjtcbiAgICBwcml2YXRlIF9zdGF0ZTogT3ZlcmZsb3dTdGF0ZTtcbiAgICBwcml2YXRlIF9pbml0aWFsaXplZENvdW50OiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHJpdmF0ZSBfdmlld0lkU2VydmljZTogVmlld0lkU2VydmljZSkge1xuICAgICAgICB0aGlzLl9pbml0aWFsaXplZENvdW50ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX292ZXJmbG93TW9kZSA9IHRoaXMuaW5pdGlhbGl6ZUl0ZW0oJ292ZXJmbG93TW9kZScsIGZhbHNlKSA9PT0gJ3RydWUnO1xuICAgICAgICB0aGlzLl9jb2x1bW5Db3VudCA9IHRoaXMuY2hlY2tJc05hbih0aGlzLmluaXRpYWxpemVJdGVtKCdjb2x1bW5Db3VudCcsIHRoaXMuREVGQVVMVF9DT0xVTU5fQ09VTlQpLCB0aGlzLkRFRkFVTFRfQ09MVU1OX0NPVU5UKTtcbiAgICAgICAgdGhpcy5fY29sdW1uV2lkdGggPSB0aGlzLmNoZWNrSXNOYW4odGhpcy5pbml0aWFsaXplSXRlbSgnY29sdW1uV2lkdGgnLCB0aGlzLkRFRkFVTFRfQ09MVU1OX1dJRFRIKSwgdGhpcy5ERUZBVUxUX0NPTFVNTl9XSURUSCk7XG4gICAgfVxuXG4gICAgZ2V0IG92ZXJmbG93TW9kZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX292ZXJmbG93TW9kZTtcbiAgICB9XG5cbiAgICBzZXQgb3ZlcmZsb3dNb2RlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX292ZXJmbG93TW9kZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIGdldCBjb2x1bW5XaWR0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29sdW1uV2lkdGg7XG4gICAgfVxuXG4gICAgc2V0IGNvbHVtbldpZHRoKHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5fY29sdW1uV2lkdGggPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgY29sdW1uQ291bnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbHVtbkNvdW50O1xuICAgIH1cblxuICAgIHNldCBjb2x1bW5Db3VudCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX2NvbHVtbkNvdW50ID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IGluaXRpYWxpemVkQ291bnQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbml0aWFsaXplZENvdW50O1xuICAgIH1cblxuICAgIHB1YmxpYyBzYXZlU3RhdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N0YXRlID0ge1xuICAgICAgICAgICAgb3ZlcmZsb3dNb2RlOiB0aGlzLl9vdmVyZmxvd01vZGUsXG4gICAgICAgICAgICBjb2x1bW5XaWR0aDogdGhpcy5fY29sdW1uV2lkdGgsXG4gICAgICAgICAgICBjb2x1bW5Db3VudDogdGhpcy5fY29sdW1uQ291bnQsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIHNhdmVOZXdTdGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgdmlld0lkID0gdGhpcy5nZXRWaWV3SWQoKTtcbiAgICAgICAgaWYgKHZpZXdJZCkge1xuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odmlld0lkICsgJy1vdmVyZmxvd01vZGUnLCB0aGlzLl9vdmVyZmxvd01vZGUgKyAnJyk7XG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh2aWV3SWQgKyAnLWNvbHVtbkNvdW50JywgdGhpcy5fY29sdW1uQ291bnQgKyAnJyk7XG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh2aWV3SWQgKyAnLWNvbHVtbldpZHRoJywgdGhpcy5fY29sdW1uV2lkdGggKyAnJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc3RhdGUgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIHJlc3RvcmVMYXN0U3RhdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX292ZXJmbG93TW9kZSA9IHRoaXMuX3N0YXRlLm92ZXJmbG93TW9kZTtcbiAgICAgICAgdGhpcy5fY29sdW1uV2lkdGggPSB0aGlzLl9zdGF0ZS5jb2x1bW5XaWR0aDtcbiAgICAgICAgdGhpcy5fY29sdW1uQ291bnQgPSB0aGlzLl9zdGF0ZS5jb2x1bW5Db3VudDtcbiAgICAgICAgdGhpcy5fc3RhdGUgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGluaXRpYWxpemVJdGVtKGlkOiBzdHJpbmcsIGRlZmF1bHRWYWx1ZSkge1xuICAgICAgICBjb25zdCB2aWV3SWQgPSB0aGlzLmdldFZpZXdJZCgpO1xuICAgICAgICBpZiAoIXZpZXdJZCkge1xuICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGl0ZW0gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh2aWV3SWQgKyAnLScgKyBpZCk7XG4gICAgICAgIGlmIChpdGVtICE9PSBudWxsKSB7XG4gICAgICAgICAgICBpZiAoaWQ/LmluY2x1ZGVzKCdjb2x1bW5Db3VudCcpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5faW5pdGlhbGl6ZWRDb3VudCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY2hlY2tJc05hbihpdGVtLCBkZWZhdWx0VmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIGlzTmFOKHBhcnNlSW50KGl0ZW0sIDEwKSkgPyBkZWZhdWx0VmFsdWUgOiBwYXJzZUludChpdGVtLCAxMCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHJldHVybnMgdGhlIElkIG9mIHRoZSB2aWV3LCBpZiB0aGUgVmlld0lkU2VydmljZSB3YXMgaW5qZWN0ZWQuIFJldHVybnMgYHVuZGVmaW5lZGAgaWYgdGhlIHNlcnZpY2Ugd2FzIG5vdCBpbmplY3RlZC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZ2V0Vmlld0lkKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmICh0aGlzLl92aWV3SWRTZXJ2aWNlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fdmlld0lkU2VydmljZS52aWV3SWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG59XG4iXX0=