import GirafeSingleton from '../../base/GirafeSingleton.js'; import BaseLayer from '../../models/layers/baselayer.js'; import GroupLayer from '../../models/layers/grouplayer.js'; import Layer from '../../models/layers/layer.js'; import ThemeLayer from '../../models/layers/themelayer.js'; export type LayerTreeChanges = { insertedLayers: BaseLayer[]; activatedLayers: BaseLayer[]; }; export default class ThemesHelper extends GirafeSingleton { initializeSingleton(): void; private get state(); findBaseLayerById(layerId: number): BaseLayer; private findBaseLayerRecursiveById; findThemeByName(themename: string): ThemeLayer | null; findGroupByName(groupname: string): GroupLayer | null; findLayerByName(layername: string): Layer | null; private findBaseLayerByName; private findLayerRecursive; private onSelectedThemeChanged; private onThemeChanged; getMinimalClonedThemeForLayer(layer: BaseLayer): ThemeLayer; private removeOthers; private getHierarchyFromLayer; addThemesFromUrl(): boolean; addGroupsFromUrl(): boolean; addLayersFromUrl(): boolean; addLayerFromName(layername: string): boolean; private addLayerBaseFromName; private extractLayerOptions; private extractLayerOptionOpacity; private extractLayerOptionFilter; private extractLayerOptionTime; /** * Calculates the initial order (=position) for a new theme in the tree. * Themes are added at the top of the tree, but underneath any pinned themes. Defaults to 0. * This prevents themes of visibly "jumping" around in the tree after being added due to reordering. */ getInitialOrderForNewTheme(): number; mergeThemeInLayerTree(theme: ThemeLayer, activate?: boolean, forceTop?: boolean): LayerTreeChanges; /** * This function merges the newLayer at its right place in the LayerTree * @param newLayer The layer to insert somewhere in the hierarchy * @param existingList * @param parent * @returns */ private mergeLayerWithExistingLayerTree; private highlightLayerInLayerTree; private addLayerToLayerTree; removeLayersFromLayerTree(layersToRemove: BaseLayer[]): void; private removeLayersFromExistingLayerTree; /** * Removes all layers from the layer tree except themes that are pinned. */ emptyLayerTree(): void; }