@geogirafe/lib-geoportal
Version:
GeoGirafe is a flexible application to build online geoportals.
52 lines (51 loc) • 2.2 kB
TypeScript
import LayerWms from '../../models/layers/layerwms.js';
import { LayerAttribute } from '../../models/serverwfs.js';
import { LogicalFilterOperator } from '../../models/filter.js';
import IGirafeContext from '../../tools/context/icontext.js';
import WfsFilter from '../../tools/wfs/wfsfilter.js';
import ColumnAliasHelper from '../../tools/utils/aliases.js';
import FilterConditionElement from './filterconditionelement.js';
/**
* Represents the state of a filter element in the AdvancedFilterComponent. This class provides functionality
* to store and manage filter conditions, operators, and attributes.
*/
declare class LayerFilterElement {
id: string;
layer?: LayerWms;
attributes: LayerAttribute[];
conditions: FilterConditionElement[];
inverted: boolean;
attributeChoices: Map<string, string[]>;
attributeTitles: Map<string, string>;
private readonly context;
private readonly columnAliasHelper;
private readonly position;
constructor(context: IGirafeContext, columnAliasHelper: ColumnAliasHelper, position: number);
/**
* Sets the filter element with all conditions from a given layer with an existing filter.
*/
setFromLayer(layer: LayerWms): Promise<void>;
private setConditionsFromLayerRecursively;
get title(): string;
get availableLogicalOperators(): {
operator: LogicalFilterOperator;
displayName: string;
}[];
setLayer(layer: LayerWms): Promise<void>;
removeConditions(): void;
addCondition(): void;
removeCondition(condition: FilterConditionElement): void;
hasAppliedConditions(): boolean;
hasNoneAppliedConditions(): boolean;
removeNonAppliedConditions(): void;
setAttributeInCondition(condition: FilterConditionElement, attributeName: string): void;
private isEnumeratedAttribute;
private getOperatorsByAttributeType;
applyFilter(): WfsFilter | undefined;
toggleInverted(): void;
i18n(key: string): string;
isLogicalOperatorSelectorVisible(condition: FilterConditionElement): boolean;
private getInputTypeByAttributeType;
getAttributeDisplayName(attribute: LayerAttribute): string;
}
export default LayerFilterElement;