UNPKG

geostyler

Version:
101 lines (100 loc) 3.91 kB
import { Filter, ComparisonFilter, Rule, CombinationFilter, NegationFilter, CombinationOperator } from 'geostyler-style'; import { VectorData } from 'geostyler-data'; import { Feature } from 'geojson'; export type CountResult = { counts?: number[]; duplicates?: number[]; }; /** * @class FilterUtil */ declare class FilterUtil { static nestingOperators: string[]; /** * Handle nested filters. */ static handleNestedFilter: (filter: CombinationFilter | NegationFilter, feature: any) => boolean; /** * Handle simple filters, i.e. non-nested filters. */ static handleSimpleFilter: (filter: ComparisonFilter, feature: any) => boolean; /** * Checks if a feature matches the specified filter. * Returns true if it matches, otherwise returns false. */ static featureMatchesFilter: (filter: Filter | CombinationOperator, feature: Feature) => boolean; /** * Returns those features that match a given filter. * If no feature matches, returns an empty array. * * @param {Filter} filter A geostyler filter object. * @param {VectorData} data A geostyler data object. * @return {Feature[]} An Array of geojson feature objects. */ static getMatches: (filter: Filter, data: VectorData) => Feature[]; /** * Calculates the number of features that are covered by more than one rule per * rule. * * @param {object} matches An object containing the count of matches for every * filter. Separated by scales. * @returns {number[]} An array containing the number of duplicates for each * rule. */ static calculateDuplicates(matches: any): number[]; /** * Calculates the amount of matched and duplicate matched features for the rules. * * @param {Rule[]} rules An array of GeoStyler rule objects. * @param {VectorData} data A geostyler data object. * @returns {CountResult} An object containing array with the amount of matched * and duplicate matched features reachable through keys'counts' and 'duplicates'. */ static calculateCountAndDuplicates(rules: Rule[], data: VectorData): CountResult; /** * Transforms a position String like '[2][3]' to an positionArray like [2, 3]. */ static positionStringAsArray(positionString: string): number[]; /** * Transforms am positionArray like [2, 3] to a string like '[2][3]'. */ static positionArrayAsString(positionArray: number[] | string[]): string; /** * Returns the filter at a specific position. */ static getFilterAtPosition(rootFilter: Filter, position: string): any; /** * Removes a subfilter from a given filter at the given position. */ static removeAtPosition(filter: Filter, position: string): Filter; /** * Inserts a given subfilter to a given parentfilter by its position and its * dropPosition. */ static insertAtPosition(baseFilter: Filter, insertFilter: Filter, position: string): Filter; /** * Handler for the add button. * Adds a filter of a given type at the given position. * */ static addFilter(rootFilter: Filter, position: string, type: string): ComparisonFilter | NegationFilter | CombinationFilter; /** * Changes a filter at a position to a given typ. * */ static changeFilter(rootFilter: Filter, position: string, type: string): ComparisonFilter | NegationFilter | CombinationFilter; /** * Removes a filter at a given position. * */ static removeFilter: (rootFilter: Filter, position: string) => Filter; /** * Helper method for FilterUtil.filterToTree(). */ static filterToTreeHelper: (filter: Filter) => any; /** * Maps a GeoStyler filter to an antd treeData object. */ static filterToTree: (filter: Filter) => any[]; } export default FilterUtil;