@sisense/sdk-data 1.33.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/dimensional-model/analytics/factory.d.ts +10 -10
- package/dist/cjs/dimensional-model/analytics/factory.js +15 -16
- package/dist/cjs/dimensional-model/attributes.d.ts +13 -6
- package/dist/cjs/dimensional-model/attributes.js +39 -12
- package/dist/cjs/dimensional-model/base.d.ts +3 -3
- package/dist/cjs/dimensional-model/base.js +7 -4
- package/dist/cjs/dimensional-model/compose-code-utils.d.ts +41 -0
- package/dist/cjs/dimensional-model/compose-code-utils.js +127 -0
- package/dist/cjs/dimensional-model/consts.d.ts +1 -0
- package/dist/cjs/dimensional-model/consts.js +4 -0
- package/dist/cjs/dimensional-model/data-model.d.ts +1 -1
- package/dist/cjs/dimensional-model/data-model.js +1 -1
- package/dist/cjs/dimensional-model/dimensions/dimensions.d.ts +6 -6
- package/dist/cjs/dimensional-model/dimensions/dimensions.js +34 -17
- package/dist/cjs/dimensional-model/dimensions/utils.d.ts +1 -0
- package/dist/cjs/dimensional-model/dimensions/utils.js +2 -1
- package/dist/cjs/dimensional-model/factory.js +5 -5
- package/dist/cjs/dimensional-model/filters/factory.d.ts +42 -42
- package/dist/cjs/dimensional-model/filters/factory.js +53 -168
- package/dist/cjs/dimensional-model/filters/filter-relations.d.ts +11 -2
- package/dist/cjs/dimensional-model/filters/filter-relations.js +14 -7
- package/dist/cjs/dimensional-model/filters/filters.d.ts +40 -24
- package/dist/cjs/dimensional-model/filters/filters.js +106 -56
- package/dist/cjs/dimensional-model/filters/helpers.d.ts +1 -1
- package/dist/cjs/dimensional-model/filters/helpers.js +2 -2
- package/dist/cjs/dimensional-model/filters/utils/attribute-measure-util.js +9 -17
- package/dist/cjs/dimensional-model/filters/utils/condition-filter-util.d.ts +1 -1
- package/dist/cjs/dimensional-model/filters/utils/condition-filter-util.js +31 -29
- package/dist/cjs/dimensional-model/filters/utils/filter-from-jaql-util.d.ts +1 -1
- package/dist/cjs/dimensional-model/filters/utils/filter-from-jaql-util.js +13 -19
- package/dist/cjs/dimensional-model/filters/utils/filter-types-util.d.ts +1 -1
- package/dist/cjs/dimensional-model/filters/utils/filter-types-util.js +1 -1
- package/dist/cjs/dimensional-model/filters/utils/types.d.ts +10 -0
- package/dist/cjs/dimensional-model/interfaces.d.ts +17 -7
- package/dist/cjs/dimensional-model/jaql-element.d.ts +13 -1
- package/dist/cjs/dimensional-model/jaql-element.js +54 -2
- package/dist/cjs/dimensional-model/measures/factory.d.ts +46 -53
- package/dist/cjs/dimensional-model/measures/factory.js +57 -186
- package/dist/cjs/dimensional-model/measures/measures.d.ts +10 -10
- package/dist/cjs/dimensional-model/measures/measures.js +35 -33
- package/dist/cjs/dimensional-model/types.d.ts +41 -16
- package/dist/cjs/index.d.ts +7 -7
- package/dist/cjs/index.js +7 -7
- package/dist/cjs/utils.d.ts +45 -22
- package/dist/cjs/utils.js +119 -47
- package/dist/dimensional-model/analytics/factory.d.ts +10 -10
- package/dist/dimensional-model/analytics/factory.js +15 -14
- package/dist/dimensional-model/attributes.d.ts +13 -6
- package/dist/dimensional-model/attributes.js +39 -12
- package/dist/dimensional-model/base.d.ts +3 -3
- package/dist/dimensional-model/base.js +7 -4
- package/dist/dimensional-model/compose-code-utils.d.ts +41 -0
- package/dist/dimensional-model/compose-code-utils.js +119 -0
- package/dist/dimensional-model/consts.d.ts +1 -0
- package/dist/dimensional-model/consts.js +1 -0
- package/dist/dimensional-model/data-model.d.ts +1 -1
- package/dist/dimensional-model/data-model.js +1 -1
- package/dist/dimensional-model/dimensions/dimensions.d.ts +6 -6
- package/dist/dimensional-model/dimensions/dimensions.js +35 -18
- package/dist/dimensional-model/dimensions/utils.d.ts +1 -0
- package/dist/dimensional-model/dimensions/utils.js +3 -2
- package/dist/dimensional-model/factory.js +5 -5
- package/dist/dimensional-model/filters/factory.d.ts +42 -42
- package/dist/dimensional-model/filters/factory.js +52 -126
- package/dist/dimensional-model/filters/filter-relations.d.ts +11 -2
- package/dist/dimensional-model/filters/filter-relations.js +14 -7
- package/dist/dimensional-model/filters/filters.d.ts +40 -24
- package/dist/dimensional-model/filters/filters.js +106 -56
- package/dist/dimensional-model/filters/helpers.d.ts +1 -1
- package/dist/dimensional-model/filters/helpers.js +2 -2
- package/dist/dimensional-model/filters/utils/attribute-measure-util.js +10 -18
- package/dist/dimensional-model/filters/utils/condition-filter-util.d.ts +1 -1
- package/dist/dimensional-model/filters/utils/condition-filter-util.js +31 -29
- package/dist/dimensional-model/filters/utils/filter-from-jaql-util.d.ts +1 -1
- package/dist/dimensional-model/filters/utils/filter-from-jaql-util.js +13 -19
- package/dist/dimensional-model/filters/utils/filter-types-util.d.ts +1 -1
- package/dist/dimensional-model/filters/utils/filter-types-util.js +1 -1
- package/dist/dimensional-model/filters/utils/types.d.ts +10 -0
- package/dist/dimensional-model/interfaces.d.ts +17 -7
- package/dist/dimensional-model/jaql-element.d.ts +13 -1
- package/dist/dimensional-model/jaql-element.js +52 -1
- package/dist/dimensional-model/measures/factory.d.ts +46 -53
- package/dist/dimensional-model/measures/factory.js +56 -143
- package/dist/dimensional-model/measures/measures.d.ts +10 -10
- package/dist/dimensional-model/measures/measures.js +35 -33
- package/dist/dimensional-model/types.d.ts +41 -16
- package/dist/index.d.ts +7 -7
- package/dist/index.js +7 -7
- package/dist/translation/initialize-i18n.js +1 -1
- package/dist/tsconfig.prod.cjs.tsbuildinfo +1 -1
- package/dist/utils.d.ts +45 -22
- package/dist/utils.js +94 -49
- package/package.json +5 -4
- package/dist/cjs/dimensional-model/filters/utils/filter-code-util.d.ts +0 -17
- package/dist/cjs/dimensional-model/filters/utils/filter-code-util.js +0 -82
- package/dist/dimensional-model/filters/utils/filter-code-util.d.ts +0 -17
- package/dist/dimensional-model/filters/utils/filter-code-util.js +0 -77
|
@@ -5,9 +5,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.convertFilterRelationsModelToJaql = exports.getFilterRelationsFromJaql = exports.mergeFilters = exports.getFilterCompareId = exports.isOperatorDescriptionNode = exports.isAttributeDescriptionNode = exports.isCloseBracketDescriptionNode = exports.isOpenBracketDescriptionNode = exports.UnknownRelationsNodeError = exports.findFilterByGuid = exports.filterRelationRulesToFilterRelationsModel = exports.isRelationsRule = exports.isRelationsRuleIdNode = exports.convertFilterRelationsModelToRelationRules = exports.getRelationsWithReplacedFilter = exports.calculateNewRelations = exports.isTrivialSingleNodeRelations = exports.combineFiltersAndRelations = exports.getFiltersArray = exports.splitFiltersAndRelations = exports.mergeFiltersOrFilterRelations = exports.isFilterRelations = void 0;
|
|
7
7
|
/* eslint-disable @typescript-eslint/default-param-last */
|
|
8
|
-
const index_js_1 = require("../../index.js");
|
|
9
8
|
const cloneDeep_js_1 = __importDefault(require("lodash-es/cloneDeep.js"));
|
|
10
9
|
const isArray_js_1 = __importDefault(require("lodash-es/isArray.js"));
|
|
10
|
+
const index_js_1 = require("../../index.js");
|
|
11
11
|
const translatable_error_js_1 = require("../../translation/translatable-error.js");
|
|
12
12
|
/**
|
|
13
13
|
* Type guard for checking if the provided filters are FilterRelations.
|
|
@@ -45,6 +45,7 @@ function mergeFiltersOrFilterRelations(sourceFilters = [], targetFilters = []) {
|
|
|
45
45
|
exports.mergeFiltersOrFilterRelations = mergeFiltersOrFilterRelations;
|
|
46
46
|
/**
|
|
47
47
|
* Splits filters or filter relations into filters and relations rules.
|
|
48
|
+
*
|
|
48
49
|
* @internal
|
|
49
50
|
*/
|
|
50
51
|
function splitFiltersAndRelations(filtersOrFilterRelations) {
|
|
@@ -76,6 +77,7 @@ function splitFiltersAndRelations(filtersOrFilterRelations) {
|
|
|
76
77
|
exports.splitFiltersAndRelations = splitFiltersAndRelations;
|
|
77
78
|
/**
|
|
78
79
|
* Returns pure filters array from the given filters or filter relations.
|
|
80
|
+
*
|
|
79
81
|
* @internal
|
|
80
82
|
*/
|
|
81
83
|
function getFiltersArray(filtersOrFilterRelations) {
|
|
@@ -88,6 +90,7 @@ exports.getFiltersArray = getFiltersArray;
|
|
|
88
90
|
/**
|
|
89
91
|
* Combines filters and relations into a single FilterRelations object.
|
|
90
92
|
* If the relations are empty or relations are trivial (single node), the filters are returned as is.
|
|
93
|
+
*
|
|
91
94
|
* @internal
|
|
92
95
|
*/
|
|
93
96
|
function combineFiltersAndRelations(filters, relations) {
|
|
@@ -101,17 +104,16 @@ function combineFiltersAndRelations(filters, relations) {
|
|
|
101
104
|
return filters.find((filter) => filter.config.guid === node.instanceid);
|
|
102
105
|
}
|
|
103
106
|
if (isRelationsRule(node)) {
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
right: traverse(node.right),
|
|
107
|
-
operator: node.operator,
|
|
108
|
-
};
|
|
107
|
+
const func = node.operator === 'AND' ? index_js_1.filterFactory.logic.and : index_js_1.filterFactory.logic.or;
|
|
108
|
+
return func(traverse(node.left), traverse(node.right));
|
|
109
109
|
}
|
|
110
110
|
throw new UnknownRelationsNodeError();
|
|
111
111
|
}
|
|
112
112
|
}
|
|
113
113
|
exports.combineFiltersAndRelations = combineFiltersAndRelations;
|
|
114
|
-
/**
|
|
114
|
+
/**
|
|
115
|
+
* Type guard for checking if a node is a single relations node (trivial case when relations are needless).
|
|
116
|
+
*
|
|
115
117
|
* @internal
|
|
116
118
|
*/
|
|
117
119
|
function isTrivialSingleNodeRelations(relations) {
|
|
@@ -120,6 +122,7 @@ function isTrivialSingleNodeRelations(relations) {
|
|
|
120
122
|
exports.isTrivialSingleNodeRelations = isTrivialSingleNodeRelations;
|
|
121
123
|
/**
|
|
122
124
|
* Calculates new relations based on the changes in filters.
|
|
125
|
+
*
|
|
123
126
|
* @internal
|
|
124
127
|
*/
|
|
125
128
|
function calculateNewRelations(prevFilters, prevRelations, newFilters) {
|
|
@@ -149,6 +152,7 @@ function areFiltersEqualForRelations(filter1, filter2) {
|
|
|
149
152
|
}
|
|
150
153
|
/**
|
|
151
154
|
* Replaces a filter in the relations tree with a new filter.
|
|
155
|
+
*
|
|
152
156
|
* @internal
|
|
153
157
|
*/
|
|
154
158
|
function getRelationsWithReplacedFilter(relations, filterToReplace, newFilter) {
|
|
@@ -248,6 +252,7 @@ function removeFilterFromRelations(filter, relations) {
|
|
|
248
252
|
}
|
|
249
253
|
/**
|
|
250
254
|
* Converts filter relations model from Fusion to internal CSDK filter relations rules.
|
|
255
|
+
*
|
|
251
256
|
* @internal
|
|
252
257
|
*/
|
|
253
258
|
function convertFilterRelationsModelToRelationRules(filterRelationsModel, filters) {
|
|
@@ -319,6 +324,7 @@ function isFilterNode(node) {
|
|
|
319
324
|
}
|
|
320
325
|
/**
|
|
321
326
|
* Converts internal CSDK filter relations rules to filter relations model for Fusion.
|
|
327
|
+
*
|
|
322
328
|
* @internal
|
|
323
329
|
*/
|
|
324
330
|
function filterRelationRulesToFilterRelationsModel(filterRelationRules, filters) {
|
|
@@ -373,6 +379,7 @@ function findFilterByGuid(filters, guid) {
|
|
|
373
379
|
exports.findFilterByGuid = findFilterByGuid;
|
|
374
380
|
/**
|
|
375
381
|
* Error thrown when an unknown node type is encountered in filter relations.
|
|
382
|
+
*
|
|
376
383
|
* @internal
|
|
377
384
|
*/
|
|
378
385
|
class UnknownRelationsNodeError extends Error {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { LevelAttribute, Attribute, Measure, Filter, MembersFilterConfig, CompleteMembersFilterConfig, CompleteBaseFilterConfig, BaseFilterConfig } from '../interfaces.js';
|
|
2
1
|
import { DimensionalElement } from '../base.js';
|
|
3
|
-
import {
|
|
2
|
+
import { Attribute, BaseFilterConfig, CompleteBaseFilterConfig, CompleteMembersFilterConfig, Filter, LevelAttribute, Measure, MembersFilterConfig } from '../interfaces.js';
|
|
3
|
+
import { AnyObject, JSONObject } from '../types.js';
|
|
4
4
|
/**
|
|
5
5
|
* Different text operators that can be used with text filters
|
|
6
6
|
*
|
|
@@ -95,7 +95,7 @@ declare abstract class AbstractFilter extends DimensionalElement implements Filt
|
|
|
95
95
|
* Filter configuration
|
|
96
96
|
*/
|
|
97
97
|
config: CompleteBaseFilterConfig;
|
|
98
|
-
constructor(att: Attribute, filterType: string, config?: BaseFilterConfig);
|
|
98
|
+
constructor(att: Attribute, filterType: string, config?: BaseFilterConfig, composeCode?: string);
|
|
99
99
|
get name(): string;
|
|
100
100
|
/**
|
|
101
101
|
* Gets JAQL representing this Filter instance
|
|
@@ -112,7 +112,7 @@ declare abstract class AbstractFilter extends DimensionalElement implements Filt
|
|
|
112
112
|
/**
|
|
113
113
|
* Gets a serializable representation of the element
|
|
114
114
|
*/
|
|
115
|
-
|
|
115
|
+
serialize(): JSONObject;
|
|
116
116
|
/**
|
|
117
117
|
* Gets the JAQL representation of this instance
|
|
118
118
|
*
|
|
@@ -128,7 +128,7 @@ declare abstract class AbstractFilter extends DimensionalElement implements Filt
|
|
|
128
128
|
export declare class LogicalAttributeFilter extends AbstractFilter {
|
|
129
129
|
readonly filters: Filter[];
|
|
130
130
|
readonly operator: string;
|
|
131
|
-
constructor(filters: Filter[], operator: string, config?: BaseFilterConfig);
|
|
131
|
+
constructor(filters: Filter[], operator: string, config?: BaseFilterConfig, composeCode?: string);
|
|
132
132
|
/**
|
|
133
133
|
* gets the element's ID
|
|
134
134
|
*/
|
|
@@ -136,7 +136,7 @@ export declare class LogicalAttributeFilter extends AbstractFilter {
|
|
|
136
136
|
/**
|
|
137
137
|
* Gets a serializable representation of the element
|
|
138
138
|
*/
|
|
139
|
-
|
|
139
|
+
serialize(): JSONObject;
|
|
140
140
|
/**
|
|
141
141
|
* Gets JAQL representing this Filter instance
|
|
142
142
|
*/
|
|
@@ -148,7 +148,7 @@ export declare class LogicalAttributeFilter extends AbstractFilter {
|
|
|
148
148
|
export declare class MembersFilter extends AbstractFilter {
|
|
149
149
|
readonly members: string[];
|
|
150
150
|
config: CompleteMembersFilterConfig;
|
|
151
|
-
constructor(attribute: Attribute, members?: string[], config?: MembersFilterConfig);
|
|
151
|
+
constructor(attribute: Attribute, members?: string[], config?: MembersFilterConfig, composeCode?: string);
|
|
152
152
|
/**
|
|
153
153
|
* gets the element's ID
|
|
154
154
|
*/
|
|
@@ -157,7 +157,7 @@ export declare class MembersFilter extends AbstractFilter {
|
|
|
157
157
|
/**
|
|
158
158
|
* Gets a serializable representation of the element
|
|
159
159
|
*/
|
|
160
|
-
|
|
160
|
+
serialize(): JSONObject;
|
|
161
161
|
/**
|
|
162
162
|
* Gets JAQL representing this Filter instance
|
|
163
163
|
*/
|
|
@@ -168,7 +168,7 @@ export declare class MembersFilter extends AbstractFilter {
|
|
|
168
168
|
*/
|
|
169
169
|
export declare class CascadingFilter extends AbstractFilter {
|
|
170
170
|
readonly _filters: Filter[];
|
|
171
|
-
constructor(filters: Filter[], config?: BaseFilterConfig);
|
|
171
|
+
constructor(filters: Filter[], config?: BaseFilterConfig, composeCode?: string);
|
|
172
172
|
/**
|
|
173
173
|
* Returns the level filters with the root config applied.
|
|
174
174
|
*/
|
|
@@ -180,7 +180,7 @@ export declare class CascadingFilter extends AbstractFilter {
|
|
|
180
180
|
/**
|
|
181
181
|
* Gets a serializable representation of the element
|
|
182
182
|
*/
|
|
183
|
-
|
|
183
|
+
serialize(): JSONObject;
|
|
184
184
|
/**
|
|
185
185
|
* Gets JAQL representing this Filter instance
|
|
186
186
|
*/
|
|
@@ -193,7 +193,7 @@ export declare class CascadingFilter extends AbstractFilter {
|
|
|
193
193
|
export declare class ExcludeFilter extends AbstractFilter {
|
|
194
194
|
readonly filter: Filter;
|
|
195
195
|
readonly input?: Filter;
|
|
196
|
-
constructor(filter: Filter, input?: Filter, config?: BaseFilterConfig);
|
|
196
|
+
constructor(filter: Filter, input?: Filter, config?: BaseFilterConfig, composeCode?: string);
|
|
197
197
|
/**
|
|
198
198
|
* gets the element's ID
|
|
199
199
|
*/
|
|
@@ -201,7 +201,7 @@ export declare class ExcludeFilter extends AbstractFilter {
|
|
|
201
201
|
/**
|
|
202
202
|
* Gets a serializable representation of the element
|
|
203
203
|
*/
|
|
204
|
-
|
|
204
|
+
serialize(): JSONObject;
|
|
205
205
|
/**
|
|
206
206
|
* Gets JAQL representing this Filter instance
|
|
207
207
|
*/
|
|
@@ -215,7 +215,7 @@ export declare class DoubleOperatorFilter<Type> extends AbstractFilter {
|
|
|
215
215
|
operatorB?: string;
|
|
216
216
|
valueA?: Type;
|
|
217
217
|
valueB?: Type;
|
|
218
|
-
constructor(att: Attribute, filterType: string, operatorA?: string, valueA?: Type, operatorB?: string, valueB?: Type, config?: BaseFilterConfig);
|
|
218
|
+
constructor(att: Attribute, filterType: string, operatorA?: string, valueA?: Type, operatorB?: string, valueB?: Type, config?: BaseFilterConfig, composeCode?: string);
|
|
219
219
|
/**
|
|
220
220
|
* gets the element's ID
|
|
221
221
|
*/
|
|
@@ -223,7 +223,7 @@ export declare class DoubleOperatorFilter<Type> extends AbstractFilter {
|
|
|
223
223
|
/**
|
|
224
224
|
* Gets a serializable representation of the element
|
|
225
225
|
*/
|
|
226
|
-
|
|
226
|
+
serialize(): JSONObject;
|
|
227
227
|
/**
|
|
228
228
|
* Gets JAQL representing this Filter instance
|
|
229
229
|
*/
|
|
@@ -234,7 +234,7 @@ export declare class DoubleOperatorFilter<Type> extends AbstractFilter {
|
|
|
234
234
|
*/
|
|
235
235
|
export declare class MeasureFilter extends DoubleOperatorFilter<number> {
|
|
236
236
|
measure: Measure;
|
|
237
|
-
constructor(att: Attribute, measure: Measure, operatorA?: string, valueA?: number, operatorB?: string, valueB?: number, config?: BaseFilterConfig);
|
|
237
|
+
constructor(att: Attribute, measure: Measure, operatorA?: string, valueA?: number, operatorB?: string, valueB?: number, config?: BaseFilterConfig, composeCode?: string);
|
|
238
238
|
/**
|
|
239
239
|
* gets the element's ID
|
|
240
240
|
*/
|
|
@@ -242,7 +242,7 @@ export declare class MeasureFilter extends DoubleOperatorFilter<number> {
|
|
|
242
242
|
/**
|
|
243
243
|
* Gets a serializable representation of the element
|
|
244
244
|
*/
|
|
245
|
-
|
|
245
|
+
serialize(): JSONObject;
|
|
246
246
|
jaql(nested?: boolean | undefined): any;
|
|
247
247
|
}
|
|
248
248
|
/**
|
|
@@ -252,7 +252,7 @@ export declare class RankingFilter extends AbstractFilter {
|
|
|
252
252
|
count: number;
|
|
253
253
|
operator: string;
|
|
254
254
|
measure: Measure;
|
|
255
|
-
constructor(att: Attribute, measure: Measure, operator: string, count: number, config?: BaseFilterConfig);
|
|
255
|
+
constructor(att: Attribute, measure: Measure, operator: string, count: number, config?: BaseFilterConfig, composeCode?: string);
|
|
256
256
|
/**
|
|
257
257
|
* gets the element's ID
|
|
258
258
|
*/
|
|
@@ -260,7 +260,7 @@ export declare class RankingFilter extends AbstractFilter {
|
|
|
260
260
|
/**
|
|
261
261
|
* Gets a serializable representation of the element
|
|
262
262
|
*/
|
|
263
|
-
|
|
263
|
+
serialize(): JSONObject;
|
|
264
264
|
/**
|
|
265
265
|
* Gets JAQL representing this Filter instance
|
|
266
266
|
*/
|
|
@@ -270,19 +270,27 @@ export declare class RankingFilter extends AbstractFilter {
|
|
|
270
270
|
* @internal
|
|
271
271
|
*/
|
|
272
272
|
export declare class NumericFilter extends DoubleOperatorFilter<number> {
|
|
273
|
-
constructor(att: Attribute, operatorA?: string, valueA?: number, operatorB?: string, valueB?: number, config?: BaseFilterConfig);
|
|
273
|
+
constructor(att: Attribute, operatorA?: string, valueA?: number, operatorB?: string, valueB?: number, config?: BaseFilterConfig, composeCode?: string);
|
|
274
|
+
/**
|
|
275
|
+
* Gets a serializable representation of the element
|
|
276
|
+
*/
|
|
277
|
+
serialize(): JSONObject;
|
|
274
278
|
}
|
|
275
279
|
/**
|
|
276
280
|
* @internal
|
|
277
281
|
*/
|
|
278
282
|
export declare class TextFilter extends DoubleOperatorFilter<string> {
|
|
279
|
-
constructor(att: Attribute, operator: string, value: string, config?: BaseFilterConfig);
|
|
283
|
+
constructor(att: Attribute, operator: string, value: string, config?: BaseFilterConfig, composeCode?: string);
|
|
284
|
+
/**
|
|
285
|
+
* Gets a serializable representation of the element
|
|
286
|
+
*/
|
|
287
|
+
serialize(): JSONObject;
|
|
280
288
|
}
|
|
281
289
|
/**
|
|
282
290
|
* @internal
|
|
283
291
|
*/
|
|
284
292
|
export declare class DateRangeFilter extends DoubleOperatorFilter<Date | string> {
|
|
285
|
-
constructor(
|
|
293
|
+
constructor(levelAttribute: LevelAttribute, valueFrom?: Date | string, valueTo?: Date | string, config?: BaseFilterConfig, composeCode?: string);
|
|
286
294
|
get level(): LevelAttribute;
|
|
287
295
|
get from(): string;
|
|
288
296
|
get to(): string;
|
|
@@ -290,6 +298,10 @@ export declare class DateRangeFilter extends DoubleOperatorFilter<Date | string>
|
|
|
290
298
|
* Gets JAQL representing this Filter instance
|
|
291
299
|
*/
|
|
292
300
|
filterJaql(): any;
|
|
301
|
+
/**
|
|
302
|
+
* Gets a serializable representation of the element
|
|
303
|
+
*/
|
|
304
|
+
serialize(): JSONObject;
|
|
293
305
|
}
|
|
294
306
|
/**
|
|
295
307
|
* @internal
|
|
@@ -299,7 +311,7 @@ export declare class RelativeDateFilter extends AbstractFilter {
|
|
|
299
311
|
readonly count: number;
|
|
300
312
|
readonly operator: typeof DateOperators.Last | typeof DateOperators.Next;
|
|
301
313
|
readonly anchor?: Date | string;
|
|
302
|
-
constructor(
|
|
314
|
+
constructor(levelAttribute: LevelAttribute, offset: number, count: number, operator?: typeof DateOperators.Last | typeof DateOperators.Next, anchor?: Date | string, config?: BaseFilterConfig, composeCode?: string);
|
|
303
315
|
get level(): LevelAttribute;
|
|
304
316
|
/**
|
|
305
317
|
* gets the element's ID
|
|
@@ -308,7 +320,7 @@ export declare class RelativeDateFilter extends AbstractFilter {
|
|
|
308
320
|
/**
|
|
309
321
|
* Gets a serializable representation of the element
|
|
310
322
|
*/
|
|
311
|
-
|
|
323
|
+
serialize(): JSONObject;
|
|
312
324
|
/**
|
|
313
325
|
* Gets JAQL representing this Filter instance
|
|
314
326
|
*
|
|
@@ -320,7 +332,7 @@ export declare class RelativeDateFilter extends AbstractFilter {
|
|
|
320
332
|
*/
|
|
321
333
|
export declare class CustomFilter extends AbstractFilter {
|
|
322
334
|
readonly jaqlExpression: any;
|
|
323
|
-
constructor(att: Attribute, jaql: any, config?: BaseFilterConfig);
|
|
335
|
+
constructor(att: Attribute, jaql: any, config?: BaseFilterConfig, composeCode?: string);
|
|
324
336
|
/**
|
|
325
337
|
* gets the element's ID
|
|
326
338
|
*/
|
|
@@ -330,6 +342,10 @@ export declare class CustomFilter extends AbstractFilter {
|
|
|
330
342
|
*
|
|
331
343
|
*/
|
|
332
344
|
filterJaql(): any;
|
|
345
|
+
/**
|
|
346
|
+
* Gets a serializable representation of the element
|
|
347
|
+
*/
|
|
348
|
+
serialize(): JSONObject;
|
|
333
349
|
}
|
|
334
350
|
/**
|
|
335
351
|
* Checks if a filter is a CustomFilter.
|
|
@@ -5,14 +5,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.createFilter = exports.isDateRangeFilter = exports.isTextFilter = exports.isRelativeDateFilter = exports.isCascadingFilter = exports.isLogicalAttributeFilter = exports.isExcludeFilter = exports.isMeasureFilter = exports.isRankingFilter = exports.isNumericFilter = exports.isMembersFilter = exports.isCustomFilter = exports.CustomFilter = exports.RelativeDateFilter = exports.DateRangeFilter = exports.TextFilter = exports.NumericFilter = exports.RankingFilter = exports.MeasureFilter = exports.DoubleOperatorFilter = exports.ExcludeFilter = exports.CascadingFilter = exports.MembersFilter = exports.LogicalAttributeFilter = exports.FilterTypes = exports.RankingOperators = exports.LogicalOperators = exports.DateOperators = exports.NumericOperators = exports.TextOperators = void 0;
|
|
7
7
|
const hash_it_1 = __importDefault(require("hash-it"));
|
|
8
|
+
const merge_js_1 = __importDefault(require("lodash-es/merge.js"));
|
|
9
|
+
const omit_js_1 = __importDefault(require("lodash-es/omit.js"));
|
|
10
|
+
const translatable_error_js_1 = require("../../translation/translatable-error.js");
|
|
8
11
|
const base_js_1 = require("../base.js");
|
|
9
|
-
const types_js_1 = require("../types.js");
|
|
10
12
|
const factory_js_1 = require("../factory.js");
|
|
11
13
|
const measures_js_1 = require("../measures/measures.js");
|
|
12
|
-
const
|
|
14
|
+
const types_js_1 = require("../types.js");
|
|
13
15
|
const filter_config_utils_js_1 = require("./filter-config-utils.js");
|
|
14
|
-
const merge_js_1 = __importDefault(require("lodash-es/merge.js"));
|
|
15
|
-
const omit_js_1 = __importDefault(require("lodash-es/omit.js"));
|
|
16
16
|
/**
|
|
17
17
|
* Different text operators that can be used with text filters
|
|
18
18
|
*
|
|
@@ -96,8 +96,8 @@ exports.FilterTypes = {
|
|
|
96
96
|
* @internal
|
|
97
97
|
*/
|
|
98
98
|
class AbstractFilter extends base_js_1.DimensionalElement {
|
|
99
|
-
constructor(att, filterType, config) {
|
|
100
|
-
super('filter', types_js_1.MetadataTypes.Filter);
|
|
99
|
+
constructor(att, filterType, config, composeCode) {
|
|
100
|
+
super('filter', types_js_1.MetadataTypes.Filter, undefined, undefined, composeCode);
|
|
101
101
|
this.filterType = filterType;
|
|
102
102
|
// need to set isScope
|
|
103
103
|
// to make filter complete for comparison
|
|
@@ -113,10 +113,15 @@ class AbstractFilter extends base_js_1.DimensionalElement {
|
|
|
113
113
|
/**
|
|
114
114
|
* Gets a serializable representation of the element
|
|
115
115
|
*/
|
|
116
|
-
|
|
117
|
-
const result = super.
|
|
116
|
+
serialize() {
|
|
117
|
+
const result = super.serialize();
|
|
118
|
+
result.__serializable = 'AbstractFilter';
|
|
118
119
|
result.filterType = this.filterType;
|
|
119
|
-
result.attribute = this.attribute.
|
|
120
|
+
result.attribute = this.attribute.serialize();
|
|
121
|
+
if (this.config) {
|
|
122
|
+
result.config = this.config;
|
|
123
|
+
}
|
|
124
|
+
result.composeCode = this.composeCode;
|
|
120
125
|
return result;
|
|
121
126
|
}
|
|
122
127
|
/**
|
|
@@ -166,8 +171,8 @@ class AbstractFilter extends base_js_1.DimensionalElement {
|
|
|
166
171
|
* @internal
|
|
167
172
|
*/
|
|
168
173
|
class LogicalAttributeFilter extends AbstractFilter {
|
|
169
|
-
constructor(filters, operator, config) {
|
|
170
|
-
super(filters[0].attribute, exports.FilterTypes.logicalAttribute, config);
|
|
174
|
+
constructor(filters, operator, config, composeCode) {
|
|
175
|
+
super(filters[0].attribute, exports.FilterTypes.logicalAttribute, config, composeCode);
|
|
171
176
|
this.operator = operator;
|
|
172
177
|
this.filters = filters;
|
|
173
178
|
}
|
|
@@ -180,10 +185,11 @@ class LogicalAttributeFilter extends AbstractFilter {
|
|
|
180
185
|
/**
|
|
181
186
|
* Gets a serializable representation of the element
|
|
182
187
|
*/
|
|
183
|
-
|
|
184
|
-
const result = super.
|
|
188
|
+
serialize() {
|
|
189
|
+
const result = super.serialize();
|
|
190
|
+
result.__serializable = 'LogicalAttributeFilter';
|
|
185
191
|
result.operator = this.operator;
|
|
186
|
-
result.filters = this.filters.map((f) => f.
|
|
192
|
+
result.filters = this.filters.map((f) => f.serialize());
|
|
187
193
|
return result;
|
|
188
194
|
}
|
|
189
195
|
/**
|
|
@@ -200,8 +206,8 @@ exports.LogicalAttributeFilter = LogicalAttributeFilter;
|
|
|
200
206
|
* @internal
|
|
201
207
|
*/
|
|
202
208
|
class MembersFilter extends AbstractFilter {
|
|
203
|
-
constructor(attribute, members, config) {
|
|
204
|
-
super(attribute, exports.FilterTypes.members);
|
|
209
|
+
constructor(attribute, members, config, composeCode) {
|
|
210
|
+
super(attribute, exports.FilterTypes.members, undefined, composeCode);
|
|
205
211
|
this.members = members !== null && members !== void 0 ? members : [];
|
|
206
212
|
if (this.members.filter((m) => m === null || m === undefined).length > 0) {
|
|
207
213
|
throw new translatable_error_js_1.TranslatableError('errors.filter.membersFilterNullMember', {
|
|
@@ -225,8 +231,13 @@ class MembersFilter extends AbstractFilter {
|
|
|
225
231
|
/**
|
|
226
232
|
* Gets a serializable representation of the element
|
|
227
233
|
*/
|
|
228
|
-
|
|
229
|
-
const result = super.
|
|
234
|
+
serialize() {
|
|
235
|
+
const result = super.serialize();
|
|
236
|
+
result.__serializable = 'MembersFilter';
|
|
237
|
+
if (this.config) {
|
|
238
|
+
result.config = (this.config.backgroundFilter
|
|
239
|
+
? Object.assign(Object.assign({}, this.config), { backgroundFilter: this.config.backgroundFilter.serialize() }) : this.config);
|
|
240
|
+
}
|
|
230
241
|
result.members = this.members;
|
|
231
242
|
return result;
|
|
232
243
|
}
|
|
@@ -253,8 +264,8 @@ exports.MembersFilter = MembersFilter;
|
|
|
253
264
|
* @internal
|
|
254
265
|
*/
|
|
255
266
|
class CascadingFilter extends AbstractFilter {
|
|
256
|
-
constructor(filters, config) {
|
|
257
|
-
super(filters[0].attribute, exports.FilterTypes.cascading, config);
|
|
267
|
+
constructor(filters, config, composeCode) {
|
|
268
|
+
super(filters[0].attribute, exports.FilterTypes.cascading, config, composeCode);
|
|
258
269
|
this._filters = filters;
|
|
259
270
|
}
|
|
260
271
|
/**
|
|
@@ -276,9 +287,10 @@ class CascadingFilter extends AbstractFilter {
|
|
|
276
287
|
/**
|
|
277
288
|
* Gets a serializable representation of the element
|
|
278
289
|
*/
|
|
279
|
-
|
|
280
|
-
const result = super.
|
|
281
|
-
result.
|
|
290
|
+
serialize() {
|
|
291
|
+
const result = super.serialize();
|
|
292
|
+
result.__serializable = 'CascadingFilter';
|
|
293
|
+
result._filters = this.filters.map((f) => f.serialize());
|
|
282
294
|
return result;
|
|
283
295
|
}
|
|
284
296
|
/**
|
|
@@ -304,8 +316,8 @@ exports.CascadingFilter = CascadingFilter;
|
|
|
304
316
|
* @internal
|
|
305
317
|
*/
|
|
306
318
|
class ExcludeFilter extends AbstractFilter {
|
|
307
|
-
constructor(filter, input, config) {
|
|
308
|
-
super(filter.attribute, exports.FilterTypes.exclude, config);
|
|
319
|
+
constructor(filter, input, config, composeCode) {
|
|
320
|
+
super(filter.attribute, exports.FilterTypes.exclude, config, composeCode);
|
|
309
321
|
this.input = input;
|
|
310
322
|
this.filter = filter;
|
|
311
323
|
}
|
|
@@ -322,11 +334,12 @@ class ExcludeFilter extends AbstractFilter {
|
|
|
322
334
|
/**
|
|
323
335
|
* Gets a serializable representation of the element
|
|
324
336
|
*/
|
|
325
|
-
|
|
326
|
-
const result = super.
|
|
327
|
-
result.
|
|
337
|
+
serialize() {
|
|
338
|
+
const result = super.serialize();
|
|
339
|
+
result.__serializable = 'ExcludeFilter';
|
|
340
|
+
result.filter = this.filter.serialize();
|
|
328
341
|
if (this.input) {
|
|
329
|
-
result.input = this.input.
|
|
342
|
+
result.input = this.input.serialize();
|
|
330
343
|
}
|
|
331
344
|
return result;
|
|
332
345
|
}
|
|
@@ -351,8 +364,8 @@ exports.ExcludeFilter = ExcludeFilter;
|
|
|
351
364
|
* @internal
|
|
352
365
|
*/
|
|
353
366
|
class DoubleOperatorFilter extends AbstractFilter {
|
|
354
|
-
constructor(att, filterType, operatorA, valueA, operatorB, valueB, config) {
|
|
355
|
-
super(att, filterType, config);
|
|
367
|
+
constructor(att, filterType, operatorA, valueA, operatorB, valueB, config, composeCode) {
|
|
368
|
+
super(att, filterType, config, composeCode);
|
|
356
369
|
if (operatorA && valueA !== undefined) {
|
|
357
370
|
this.valueA = valueA;
|
|
358
371
|
this.operatorA = operatorA;
|
|
@@ -378,8 +391,9 @@ class DoubleOperatorFilter extends AbstractFilter {
|
|
|
378
391
|
/**
|
|
379
392
|
* Gets a serializable representation of the element
|
|
380
393
|
*/
|
|
381
|
-
|
|
382
|
-
const result = super.
|
|
394
|
+
serialize() {
|
|
395
|
+
const result = super.serialize();
|
|
396
|
+
result.__serializable = 'DoubleOperatorFilter';
|
|
383
397
|
if (this.operatorA) {
|
|
384
398
|
result.operatorA = this.operatorA;
|
|
385
399
|
}
|
|
@@ -413,8 +427,8 @@ exports.DoubleOperatorFilter = DoubleOperatorFilter;
|
|
|
413
427
|
* @internal
|
|
414
428
|
*/
|
|
415
429
|
class MeasureFilter extends DoubleOperatorFilter {
|
|
416
|
-
constructor(att, measure, operatorA, valueA, operatorB, valueB, config) {
|
|
417
|
-
super(att, exports.FilterTypes.measure, operatorA, valueA, operatorB, valueB, config);
|
|
430
|
+
constructor(att, measure, operatorA, valueA, operatorB, valueB, config, composeCode) {
|
|
431
|
+
super(att, exports.FilterTypes.measure, operatorA, valueA, operatorB, valueB, config, composeCode);
|
|
418
432
|
this.measure = measure;
|
|
419
433
|
}
|
|
420
434
|
/**
|
|
@@ -433,9 +447,10 @@ class MeasureFilter extends DoubleOperatorFilter {
|
|
|
433
447
|
/**
|
|
434
448
|
* Gets a serializable representation of the element
|
|
435
449
|
*/
|
|
436
|
-
|
|
437
|
-
const result = super.
|
|
438
|
-
result.
|
|
450
|
+
serialize() {
|
|
451
|
+
const result = super.serialize();
|
|
452
|
+
result.__serializable = 'MeasureFilter';
|
|
453
|
+
result.measure = this.measure.serialize();
|
|
439
454
|
return result;
|
|
440
455
|
}
|
|
441
456
|
jaql(nested) {
|
|
@@ -456,8 +471,8 @@ exports.MeasureFilter = MeasureFilter;
|
|
|
456
471
|
* @internal
|
|
457
472
|
*/
|
|
458
473
|
class RankingFilter extends AbstractFilter {
|
|
459
|
-
constructor(att, measure, operator, count, config) {
|
|
460
|
-
super(att, exports.FilterTypes.ranking, config);
|
|
474
|
+
constructor(att, measure, operator, count, config, composeCode) {
|
|
475
|
+
super(att, exports.FilterTypes.ranking, config, composeCode);
|
|
461
476
|
this.count = count;
|
|
462
477
|
this.operator = operator;
|
|
463
478
|
this.measure = measure;
|
|
@@ -471,11 +486,12 @@ class RankingFilter extends AbstractFilter {
|
|
|
471
486
|
/**
|
|
472
487
|
* Gets a serializable representation of the element
|
|
473
488
|
*/
|
|
474
|
-
|
|
475
|
-
const result = super.
|
|
489
|
+
serialize() {
|
|
490
|
+
const result = super.serialize();
|
|
491
|
+
result.__serializable = 'RankingFilter';
|
|
476
492
|
result.count = this.count;
|
|
477
493
|
result.operator = this.operator;
|
|
478
|
-
result.measure = this.measure.
|
|
494
|
+
result.measure = this.measure.serialize();
|
|
479
495
|
return result;
|
|
480
496
|
}
|
|
481
497
|
/**
|
|
@@ -493,8 +509,16 @@ exports.RankingFilter = RankingFilter;
|
|
|
493
509
|
* @internal
|
|
494
510
|
*/
|
|
495
511
|
class NumericFilter extends DoubleOperatorFilter {
|
|
496
|
-
constructor(att, operatorA, valueA, operatorB, valueB, config) {
|
|
497
|
-
super(att, exports.FilterTypes.numeric, operatorA, valueA, operatorB, valueB, config);
|
|
512
|
+
constructor(att, operatorA, valueA, operatorB, valueB, config, composeCode) {
|
|
513
|
+
super(att, exports.FilterTypes.numeric, operatorA, valueA, operatorB, valueB, config, composeCode);
|
|
514
|
+
}
|
|
515
|
+
/**
|
|
516
|
+
* Gets a serializable representation of the element
|
|
517
|
+
*/
|
|
518
|
+
serialize() {
|
|
519
|
+
const result = super.serialize();
|
|
520
|
+
result.__serializable = 'NumericFilter';
|
|
521
|
+
return result;
|
|
498
522
|
}
|
|
499
523
|
}
|
|
500
524
|
exports.NumericFilter = NumericFilter;
|
|
@@ -502,8 +526,16 @@ exports.NumericFilter = NumericFilter;
|
|
|
502
526
|
* @internal
|
|
503
527
|
*/
|
|
504
528
|
class TextFilter extends DoubleOperatorFilter {
|
|
505
|
-
constructor(att, operator, value, config) {
|
|
506
|
-
super(att, exports.FilterTypes.text, operator, value, undefined, undefined, config);
|
|
529
|
+
constructor(att, operator, value, config, composeCode) {
|
|
530
|
+
super(att, exports.FilterTypes.text, operator, value, undefined, undefined, config, composeCode);
|
|
531
|
+
}
|
|
532
|
+
/**
|
|
533
|
+
* Gets a serializable representation of the element
|
|
534
|
+
*/
|
|
535
|
+
serialize() {
|
|
536
|
+
const result = super.serialize();
|
|
537
|
+
result.__serializable = 'TextFilter';
|
|
538
|
+
return result;
|
|
507
539
|
}
|
|
508
540
|
}
|
|
509
541
|
exports.TextFilter = TextFilter;
|
|
@@ -511,8 +543,8 @@ exports.TextFilter = TextFilter;
|
|
|
511
543
|
* @internal
|
|
512
544
|
*/
|
|
513
545
|
class DateRangeFilter extends DoubleOperatorFilter {
|
|
514
|
-
constructor(
|
|
515
|
-
super(
|
|
546
|
+
constructor(levelAttribute, valueFrom, valueTo, config, composeCode) {
|
|
547
|
+
super(levelAttribute, exports.FilterTypes.dateRange, exports.DateOperators.From, valueFrom, exports.DateOperators.To, valueTo, config, composeCode);
|
|
516
548
|
if (typeof valueFrom === 'object') {
|
|
517
549
|
this.valueA = valueFrom.toISOString();
|
|
518
550
|
}
|
|
@@ -535,14 +567,22 @@ class DateRangeFilter extends DoubleOperatorFilter {
|
|
|
535
567
|
filterJaql() {
|
|
536
568
|
return super.filterJaql();
|
|
537
569
|
}
|
|
570
|
+
/**
|
|
571
|
+
* Gets a serializable representation of the element
|
|
572
|
+
*/
|
|
573
|
+
serialize() {
|
|
574
|
+
const result = super.serialize();
|
|
575
|
+
result.__serializable = 'DateRangeFilter';
|
|
576
|
+
return result;
|
|
577
|
+
}
|
|
538
578
|
}
|
|
539
579
|
exports.DateRangeFilter = DateRangeFilter;
|
|
540
580
|
/**
|
|
541
581
|
* @internal
|
|
542
582
|
*/
|
|
543
583
|
class RelativeDateFilter extends AbstractFilter {
|
|
544
|
-
constructor(
|
|
545
|
-
super(
|
|
584
|
+
constructor(levelAttribute, offset, count, operator, anchor, config, composeCode) {
|
|
585
|
+
super(levelAttribute, exports.FilterTypes.relativeDate, config, composeCode);
|
|
546
586
|
if (!operator) {
|
|
547
587
|
operator = exports.DateOperators.Next;
|
|
548
588
|
}
|
|
@@ -572,13 +612,14 @@ class RelativeDateFilter extends AbstractFilter {
|
|
|
572
612
|
/**
|
|
573
613
|
* Gets a serializable representation of the element
|
|
574
614
|
*/
|
|
575
|
-
|
|
576
|
-
const result = super.
|
|
615
|
+
serialize() {
|
|
616
|
+
const result = super.serialize();
|
|
617
|
+
result.__serializable = 'RelativeDateFilter';
|
|
577
618
|
result.offset = this.offset;
|
|
578
619
|
result.count = this.count;
|
|
579
620
|
result.operator = this.operator;
|
|
580
621
|
if (this.anchor) {
|
|
581
|
-
result.anchor = this.anchor;
|
|
622
|
+
result.anchor = typeof this.anchor === 'string' ? this.anchor : this.anchor.toISOString();
|
|
582
623
|
}
|
|
583
624
|
return result;
|
|
584
625
|
}
|
|
@@ -608,8 +649,8 @@ exports.RelativeDateFilter = RelativeDateFilter;
|
|
|
608
649
|
* @internal
|
|
609
650
|
*/
|
|
610
651
|
class CustomFilter extends AbstractFilter {
|
|
611
|
-
constructor(att, jaql, config) {
|
|
612
|
-
super(att, exports.FilterTypes.advanced, config);
|
|
652
|
+
constructor(att, jaql, config, composeCode) {
|
|
653
|
+
super(att, exports.FilterTypes.advanced, config, composeCode);
|
|
613
654
|
// remove filterType from jaql as it is not needed
|
|
614
655
|
delete jaql.filterType;
|
|
615
656
|
this.jaqlExpression = jaql;
|
|
@@ -627,6 +668,15 @@ class CustomFilter extends AbstractFilter {
|
|
|
627
668
|
filterJaql() {
|
|
628
669
|
return this.jaqlExpression;
|
|
629
670
|
}
|
|
671
|
+
/**
|
|
672
|
+
* Gets a serializable representation of the element
|
|
673
|
+
*/
|
|
674
|
+
serialize() {
|
|
675
|
+
const result = super.serialize();
|
|
676
|
+
result.__serializable = 'CustomFilter';
|
|
677
|
+
result.jaqlExpression = this.jaqlExpression;
|
|
678
|
+
return result;
|
|
679
|
+
}
|
|
630
680
|
}
|
|
631
681
|
exports.CustomFilter = CustomFilter;
|
|
632
682
|
/**
|
|
@@ -103,10 +103,10 @@ export declare function withReplacedFilter(filterToReplace: Filter, newFilter: F
|
|
|
103
103
|
/**
|
|
104
104
|
* Finds a filter in an array of filters or filter relations.
|
|
105
105
|
* Returns the first filter that satisfies the provided search function.
|
|
106
|
+
*
|
|
106
107
|
* @group Filter Utilities
|
|
107
108
|
* @param filters - An array of filters or filter relations to search.
|
|
108
109
|
* @param searchFn - A function that takes a filter and returns a boolean indicating whether the filter satisfies the search criteria.
|
|
109
110
|
* @returns The first filter that satisfies the search function, or `undefined` if no filter is found.
|
|
110
|
-
*
|
|
111
111
|
*/
|
|
112
112
|
export declare function findFilter(filters: Filter[] | FilterRelations | undefined, searchFn: (filter: Filter) => boolean): Filter | undefined;
|