/** * @hidden */ export class FilterController { /** * @param {angular.gettext.gettextCatalog} gettextCatalog Gettext service. * @param {angular.IScope} $scope Angular scope. * @param {angular.ITimeoutService} $timeout Angular timeout service. * @param {import('ngeo/query/MapQuerent').MapQuerent} ngeoMapQuerent The ngeo map querent service. * @param {import('ngeo/filter/RuleHelper').RuleHelper} ngeoRuleHelper Ngeo rule helper service. * @ngdoc controller * @ngname NgeoFilterController */ constructor(gettextCatalog: angular.gettext.gettextCatalog, $scope: angular.IScope, $timeout: angular.ITimeoutService, ngeoMapQuerent: import("ngeo/query/MapQuerent").MapQuerent, ngeoRuleHelper: import("ngeo/filter/RuleHelper").RuleHelper); /** * @type {boolean} */ aRuleIsActive: boolean; /** * @type {import('ngeo/rule/Rule').default[]} */ customRules: import("ngeo/rule/Rule").default[]; /** * @type {?import('ngeo/datasource/OGC').default} */ datasource: import("ngeo/datasource/OGC").default | null; /** * @type {import('ngeo/rule/Rule').default[]} */ directedRules: import("ngeo/rule/Rule").default[]; /** * @type {?import('ngeo/map/FeatureOverlay').FeatureOverlay} */ featureOverlay: import("ngeo/map/FeatureOverlay").FeatureOverlay | null; /** * @type {?import('ol/Map').default} */ map: import("ol/Map").default | null; /** * @type {string} */ toolGroup: string; /** * @type {boolean} */ filterIsApplied: boolean; /** * @type {angular.gettext.gettextCatalog} * @private */ private gettextCatalog_; /** * @type {angular.IScope} * @private */ private scope_; /** * @type {angular.ITimeoutService} * @private */ private timeout_; /** * @type {import('ngeo/query/MapQuerent').MapQuerent} * @private */ private ngeoMapQuerent_; /** * @type {import('ngeo/filter/RuleHelper').RuleHelper} * @private */ private ngeoRuleHelper_; /** * @type {FilterCondition[]} */ conditions: FilterCondition[]; /** * List of geometry attributes. * * @type {import('ngeo/format/Attribute').Attribute[]} */ geometryAttributes: import("ngeo/format/Attribute").Attribute[]; /** * List of other attribute names. * * @type {import('ngeo/format/Attribute').Attribute[]} */ otherAttributes: import("ngeo/format/Attribute").Attribute[]; /** * @type {Object} * @private */ private ruleUnlisteners_; /** * Called on initialization of the controller. * * Loop through the attributes of the data source and separated them in 2 * lists: geometry and the others. Then, apply the filters to the data source. */ $onInit(): void; /** * Called on destruction of the controller. * * Reset the `filterRules` of the data source back to `null`. * Clear the feature overlay. */ $onDestroy(): void; /** * @returns {boolean} True if at least one rule is currently defined with a literal. */ hasARuleActive(): boolean; /** * Loop in all directed and custom rules. Apply the rules that have a proper * value inside the data source, in the `filterRules` property. */ apply(): void; /** * Loop in all directed and custom rules. Issue a request to obtain the data * and show the result. */ getData(): void; /** * Loop in all directed and custom rules and collect those with a value. * * @returns {import('ngeo/rule/Rule').default[]} Rules with value. * @private */ private getRulesWithValue_; /** * Create and add a new custom rule using an attribute. The rule is activated * after being created. * * @param {import('ngeo/format/Attribute').Attribute} attribute Attribute to use to create the custom * rule. */ createAndAddCustomRule(attribute: import("ngeo/format/Attribute").Attribute): void; /** * @param {FilterCondition} condition Condition to set. */ setCondition(condition: FilterCondition): void; /** * Remove a custom rule. Deactivate it first, then give time to the * `ngeo-rule` directive to manage the deactivation of the rule. * * @param {import('ngeo/rule/Rule').default} rule Custom rule to remove. */ removeCustomRule(rule: import("ngeo/rule/Rule").default): void; /** * @param {import('ngeo/rule/Rule').default} rule Rule. */ registerRule_(rule: import("ngeo/rule/Rule").default): void; /** * @param {import('ngeo/rule/Rule').default} rule Rule. */ unregisterRule_(rule: import("ngeo/rule/Rule").default): void; /** * Called when the active property of a rule changes. Set the `aRuleIsActive` * property accordingly. * * @private */ private handleRuleActiveChange_; /** * Called when the `aRuleIsActive` property changes. Make sure that * no rule is still active if the property is `false`. * * @private */ private handleARuleIsActiveChange_; } export namespace FilterController { let $inject: string[]; } export default myModule; export type FilterCondition = { text: string; value: string; }; import angular from 'angular'; /** * @typedef {Object} FilterCondition * @property {string} text * @property {string} value */ /** * @type {angular.IModule} * @hidden */ declare const myModule: angular.IModule;