import { BehaviorSubject, Observable, ReplaySubject, Subject } from 'rxjs'; import { FieldsGroup } from './models/fields-group'; import { HeaderState, HeaderStateInterface } from './header-state'; import { OnDestroy } from '@angular/core'; import { HeaderChange } from './models/user-changes/header-change'; import { PetriNetReference } from '../resources/interface/petri-net-reference'; import { HeaderType } from './models/header-type'; import { HeaderMode } from './models/header-mode'; import { HeaderColumn } from './models/header-column'; import { UserPreferenceService } from '../user/services/user-preference.service'; import { LoggerService } from '../logger/services/logger.service'; import { LoadingEmitter } from '../utility/loading-emitter'; import { SortDirection } from '@angular/material/sort'; import { ViewIdService } from '../user/services/view-id.service'; import { Net } from '../process/net'; import { OverflowService } from './services/overflow.service'; import * as i0 from "@angular/core"; export declare abstract class AbstractHeaderService implements OnDestroy { protected _headerType: HeaderType; protected _preferences: UserPreferenceService; protected _logger: LoggerService; private _viewIdService; protected _overflowService: OverflowService; static readonly DEFAULT_HEADER_COUNT = 5; static readonly DEFAULT_HEADER_RESPONSIVITY = true; protected _headerColumnCount$: BehaviorSubject; protected _preferenceColumnCount$: ReplaySubject; protected _responsiveHeaders$: BehaviorSubject; protected _headerState: HeaderState; protected _headerChange$: Subject; protected _clearHeaderSearch$: Subject; private _initDefaultHeaders; private _initializedCount; loading: LoadingEmitter; fieldsGroup: Array; protected constructor(_headerType: HeaderType, _preferences: UserPreferenceService, _logger: LoggerService, _viewIdService: ViewIdService, _overflowService: OverflowService); /** * Provides Observable for all changes in header */ get headerChange$(): Observable; get selectedHeaders$(): Observable>; get headerState(): HeaderStateInterface; get headerType(): HeaderType; get overflowMode(): boolean; get headerColumnCount(): number; set headerColumnCount(maxColumns: number); get headerColumnCount$(): Observable; get responsiveHeaders(): boolean; set responsiveHeaders(responsiveHeaders: boolean); get responsiveHeaders$(): Observable; get clearHeaderSearch$(): Observable; set initDefaultHeaders(defaultHeaders: Array); get initDefaultHeaders(): Array; get preferenceColumnCount$(): Observable; private initializeHeaderState; protected initializeDefaultHeaderState(): void; /** * Adds `null` headers if the new count is greater than the current count. * * Removes extra headers if the new count is smaller than the current count. */ protected updateHeaderColumnCount(): void; setAllowedNets(allowedNets: Array): void; setTaskAllowedNets(allowedNets: Array): void; /** * If this view has som headers stored in it's preferences attempts to load them. * If the preferences contain nonexistent headers they will be skipped. * * This function is NOT called by the abstract class' constructor. * It is the responsibility of the child class to call it at an appropriate moment. */ protected loadHeadersFromPreferences(): void; protected abstract createMetaHeaders(): Array; /** * Change sort mode for selected column all other column are set to default sort mode * Emit request for sorted panels * @param columnIndex index of the column that caused the sort change * @param active Represents column identifier * @param direction Represent one of sort modes: asd, desc and '' */ sortHeaderChanged(columnIndex: number, active: string, direction: SortDirection): void; /** * Saves the search value in the appropriate column in the header * Emit request for searched panels by user input query */ headerSearchInputChanged(columnIndex: number, searchInput: any): void; /** * Change active header and titles of panels */ headerColumnSelected(columnIndex: number, newHeaderColumn: HeaderColumn): void; /** * Change selected header mode there are three possible modes: SORT, SEARCH and EDIT * @param newMode the mode that the header should change to * @param saveLastMode whether the last state should be remembered. * It can be restored with the [HeaderState.restoreLastMode()]{@link HeaderState#restoreLastMode} method. */ changeMode(newMode: HeaderMode, saveLastMode?: boolean): void; confirmEditMode(): void; /** * When user cancels the edit mode, the last saved headers state is loaded and emitted * Last mode in header is reloaded as well. Possible reloaded modes: sort or search */ revertEditMode(): void; ngOnDestroy(): void; /** * @param newMode the {@link HeaderMode} that is being selected as the next mode * @returnsa {@link HeaderChange} object with {@link ModeChangeDescription} object as it's `description`, * where the `previousMode` is set to the currently selected mode and the `currentMode` is set to the provided argument */ protected modeChangeFromCurrent(newMode: HeaderMode): HeaderChange; /** * @returns a {@link HeaderChange} object with {@link ModeChangeDescription} object as it's `description`, * where the `previousMode` is set to [EDIT]{@link HeaderMode#EDIT} and the `currentMode` to the mode * that is currently selected */ protected modeChangeAfterEdit(): HeaderChange; /** * @param oldMode the {@link HeaderMode} that was previously selected * @param newMode the {@link HeaderMode} that is selected now * @returns a {@link HeaderChange} object with {@link ModeChangeDescription} object as it's `description` * containing information about a change to the header mode */ protected createModeChange(oldMode: HeaderMode, newMode: HeaderMode): HeaderChange; /** * Emits a new value into the [clearHeaderSearch$]{@link AbstractHeaderService#clearHeaderSearch$} stream, that notifies * the header search component, that it should clear the input for the specified column. * @param columnIndex the index of the column that should be cleared */ clearHeaderSearch(columnIndex: number): void; /** * @returns the Id of the view, if the ViewIdService was injected. Returns `undefined` if the service was not injected. */ protected getViewId(): string | undefined; protected abstract saveState(): any; protected abstract saveNewState(): any; protected abstract restoreLastState(): any; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; }