@qrvey/filters 0.0.45 → 0.1.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.
Files changed (279) hide show
  1. package/README.md +63 -1
  2. package/dist/cjs/classes/FilterAdapter.js +1 -80
  3. package/dist/cjs/classes/FilterBuilder.js +32 -251
  4. package/dist/cjs/classes/FilterManager.js +7 -64
  5. package/dist/cjs/classes/FilterResources.js +3 -116
  6. package/dist/cjs/classes/FilterSearcher.js +0 -77
  7. package/dist/cjs/classes/FilterValidation.js +0 -93
  8. package/dist/cjs/classes/FilterValues.js +0 -24
  9. package/dist/cjs/classes/index.js +8 -21
  10. package/dist/cjs/helpers/filter-adapt.helpers.js +3 -46
  11. package/dist/cjs/helpers/filter-adapt.legacy.helpers.js +6 -53
  12. package/dist/cjs/helpers/filter-adapt.logic.helpers.js +7 -128
  13. package/dist/cjs/helpers/filter-builder.helpers.js +1 -8
  14. package/dist/cjs/helpers/filter-settings.helpers.js +6 -41
  15. package/dist/cjs/helpers/filter-validators.helpers.js +15 -9
  16. package/dist/cjs/helpers/filter-verbose.helpers.js +211 -0
  17. package/dist/cjs/helpers/getAggregateFilters.js +11 -0
  18. package/dist/cjs/helpers/getFilterId.js +1 -17
  19. package/dist/cjs/helpers/getFilterType.js +1 -8
  20. package/dist/cjs/helpers/index.js +12 -20
  21. package/dist/cjs/helpers/isDateDistinctGrouping.js +15 -0
  22. package/dist/cjs/helpers/isRankingFilter.js +10 -0
  23. package/dist/cjs/helpers/resolveFilterConditions.js +2 -10
  24. package/dist/cjs/helpers/utils.helpers.js +2 -19
  25. package/dist/cjs/index.js +5 -18
  26. package/dist/cjs/models/index.js +4 -17
  27. package/dist/cjs/resources/filter-grouping.resources.js +0 -18
  28. package/dist/cjs/resources/filter-logic.resources.js +0 -3
  29. package/dist/cjs/resources/filter-scopes.resources.js +10 -27
  30. package/dist/cjs/resources/filter-validators.resources.js +0 -3
  31. package/dist/cjs/resources/filter-verbose.resources.js +13 -0
  32. package/dist/cjs/resources/filters.resources.js +0 -12
  33. package/dist/cjs/resources/index.js +12 -24
  34. package/dist/classes/FilterAdapter.d.ts +0 -80
  35. package/dist/classes/FilterAdapter.js +1 -80
  36. package/dist/classes/FilterBuilder.d.ts +2 -177
  37. package/dist/classes/FilterBuilder.js +32 -251
  38. package/dist/classes/FilterManager.d.ts +7 -62
  39. package/dist/classes/FilterManager.js +7 -64
  40. package/dist/classes/FilterResources.d.ts +1 -115
  41. package/dist/classes/FilterResources.js +3 -116
  42. package/dist/classes/FilterSearcher.d.ts +2 -77
  43. package/dist/classes/FilterSearcher.js +0 -77
  44. package/dist/classes/FilterValidation.d.ts +1 -47
  45. package/dist/classes/FilterValidation.js +0 -93
  46. package/dist/classes/FilterValues.d.ts +0 -25
  47. package/dist/classes/FilterValues.js +0 -24
  48. package/dist/classes/index.d.ts +0 -1
  49. package/dist/helpers/filter-adapt.helpers.d.ts +0 -15
  50. package/dist/helpers/filter-adapt.helpers.js +1 -43
  51. package/dist/helpers/filter-adapt.legacy.helpers.d.ts +0 -20
  52. package/dist/helpers/filter-adapt.legacy.helpers.js +3 -49
  53. package/dist/helpers/filter-adapt.logic.helpers.d.ts +0 -22
  54. package/dist/helpers/filter-adapt.logic.helpers.js +3 -123
  55. package/dist/helpers/filter-builder.helpers.d.ts +0 -7
  56. package/dist/helpers/filter-builder.helpers.js +0 -6
  57. package/dist/helpers/filter-settings.helpers.d.ts +0 -35
  58. package/dist/helpers/filter-settings.helpers.js +0 -34
  59. package/dist/helpers/filter-validators.helpers.d.ts +3 -6
  60. package/dist/helpers/filter-validators.helpers.js +11 -7
  61. package/dist/helpers/filter-verbose.helpers.d.ts +6 -0
  62. package/dist/helpers/filter-verbose.helpers.js +206 -0
  63. package/dist/helpers/getAggregateFilters.d.ts +3 -0
  64. package/dist/helpers/getAggregateFilters.js +7 -0
  65. package/dist/helpers/getFilterId.d.ts +0 -16
  66. package/dist/helpers/getFilterId.js +0 -15
  67. package/dist/helpers/getFilterType.d.ts +0 -7
  68. package/dist/helpers/getFilterType.js +0 -6
  69. package/dist/helpers/index.d.ts +5 -1
  70. package/dist/helpers/index.js +5 -0
  71. package/dist/helpers/isDateDistinctGrouping.d.ts +2 -0
  72. package/dist/helpers/isDateDistinctGrouping.js +12 -0
  73. package/dist/helpers/isRankingFilter.d.ts +2 -0
  74. package/dist/helpers/isRankingFilter.js +7 -0
  75. package/dist/helpers/resolveFilterConditions.d.ts +0 -8
  76. package/dist/helpers/resolveFilterConditions.js +1 -8
  77. package/dist/helpers/utils.helpers.d.ts +0 -17
  78. package/dist/helpers/utils.helpers.js +0 -16
  79. package/dist/index.d.ts +0 -1
  80. package/dist/models/filter-builder.models.d.ts +0 -156
  81. package/dist/models/filter-resources.models.d.ts +0 -53
  82. package/dist/models/filter-searcher.models.d.ts +5 -34
  83. package/dist/models/filter-validation.models.d.ts +0 -40
  84. package/dist/models/index.d.ts +0 -1
  85. package/dist/resources/filter-functions.resources.d.ts +0 -49
  86. package/dist/resources/filter-grouping.resources.d.ts +0 -7
  87. package/dist/resources/filter-grouping.resources.js +0 -18
  88. package/dist/resources/filter-logic.resources.d.ts +0 -79
  89. package/dist/resources/filter-logic.resources.js +0 -3
  90. package/dist/resources/filter-operators.resources.d.ts +0 -1
  91. package/dist/resources/filter-panel.interfaces.d.ts +0 -49
  92. package/dist/resources/filter-scopes.resources.d.ts +2 -25
  93. package/dist/resources/filter-scopes.resources.js +10 -27
  94. package/dist/resources/filter-validation.resources.d.ts +0 -1
  95. package/dist/resources/filter-validators.resources.d.ts +0 -1
  96. package/dist/resources/filter-validators.resources.js +0 -3
  97. package/dist/resources/filter-values.resources.d.ts +0 -13
  98. package/dist/resources/filter-verbose.resources.d.ts +23 -0
  99. package/dist/resources/filter-verbose.resources.js +10 -0
  100. package/dist/resources/filter-visual.resources.d.ts +0 -50
  101. package/dist/resources/filters.resources.d.ts +1 -102
  102. package/dist/resources/filters.resources.js +0 -12
  103. package/dist/resources/index.d.ts +1 -1
  104. package/dist/resources/index.js +1 -0
  105. package/package.json +59 -44
  106. package/.eslintignore +0 -6
  107. package/.eslintrc.json +0 -122
  108. package/.husky/pre-commit +0 -4
  109. package/.lintstagedrc +0 -7
  110. package/.prettierignore +0 -6
  111. package/.prettierrc.json +0 -1
  112. package/CHANGELOG.md +0 -274
  113. package/CODE_OF_CONDUCT.md +0 -132
  114. package/bitbucket-pipelines.yml +0 -92
  115. package/dist/cjs/classes/FilterAdapter.d.ts +0 -107
  116. package/dist/cjs/classes/FilterAdapter.d.ts.map +0 -1
  117. package/dist/cjs/classes/FilterBuilder.d.ts +0 -206
  118. package/dist/cjs/classes/FilterBuilder.d.ts.map +0 -1
  119. package/dist/cjs/classes/FilterManager.d.ts +0 -84
  120. package/dist/cjs/classes/FilterManager.d.ts.map +0 -1
  121. package/dist/cjs/classes/FilterResources.d.ts +0 -139
  122. package/dist/cjs/classes/FilterResources.d.ts.map +0 -1
  123. package/dist/cjs/classes/FilterSearcher.d.ts +0 -90
  124. package/dist/cjs/classes/FilterSearcher.d.ts.map +0 -1
  125. package/dist/cjs/classes/FilterValidation.d.ts +0 -58
  126. package/dist/cjs/classes/FilterValidation.d.ts.map +0 -1
  127. package/dist/cjs/classes/FilterValues.d.ts +0 -33
  128. package/dist/cjs/classes/FilterValues.d.ts.map +0 -1
  129. package/dist/cjs/classes/index.d.ts +0 -8
  130. package/dist/cjs/classes/index.d.ts.map +0 -1
  131. package/dist/cjs/helpers/filter-adapt.helpers.d.ts +0 -21
  132. package/dist/cjs/helpers/filter-adapt.helpers.d.ts.map +0 -1
  133. package/dist/cjs/helpers/filter-adapt.legacy.helpers.d.ts +0 -26
  134. package/dist/cjs/helpers/filter-adapt.legacy.helpers.d.ts.map +0 -1
  135. package/dist/cjs/helpers/filter-adapt.logic.helpers.d.ts +0 -29
  136. package/dist/cjs/helpers/filter-adapt.logic.helpers.d.ts.map +0 -1
  137. package/dist/cjs/helpers/filter-builder.helpers.d.ts +0 -11
  138. package/dist/cjs/helpers/filter-builder.helpers.d.ts.map +0 -1
  139. package/dist/cjs/helpers/filter-settings.helpers.d.ts +0 -42
  140. package/dist/cjs/helpers/filter-settings.helpers.d.ts.map +0 -1
  141. package/dist/cjs/helpers/filter-validators.helpers.d.ts +0 -8
  142. package/dist/cjs/helpers/filter-validators.helpers.d.ts.map +0 -1
  143. package/dist/cjs/helpers/getFilterId.d.ts +0 -18
  144. package/dist/cjs/helpers/getFilterId.d.ts.map +0 -1
  145. package/dist/cjs/helpers/getFilterType.d.ts +0 -11
  146. package/dist/cjs/helpers/getFilterType.d.ts.map +0 -1
  147. package/dist/cjs/helpers/index.d.ts +0 -7
  148. package/dist/cjs/helpers/index.d.ts.map +0 -1
  149. package/dist/cjs/helpers/resolveFilterConditions.d.ts +0 -11
  150. package/dist/cjs/helpers/resolveFilterConditions.d.ts.map +0 -1
  151. package/dist/cjs/helpers/utils.helpers.d.ts +0 -26
  152. package/dist/cjs/helpers/utils.helpers.d.ts.map +0 -1
  153. package/dist/cjs/index.d.ts +0 -5
  154. package/dist/cjs/index.d.ts.map +0 -1
  155. package/dist/cjs/models/filter-builder.models.d.ts +0 -203
  156. package/dist/cjs/models/filter-builder.models.d.ts.map +0 -1
  157. package/dist/cjs/models/filter-resources.models.d.ts +0 -71
  158. package/dist/cjs/models/filter-resources.models.d.ts.map +0 -1
  159. package/dist/cjs/models/filter-searcher.models.d.ts +0 -42
  160. package/dist/cjs/models/filter-searcher.models.d.ts.map +0 -1
  161. package/dist/cjs/models/filter-validation.models.d.ts +0 -59
  162. package/dist/cjs/models/filter-validation.models.d.ts.map +0 -1
  163. package/dist/cjs/models/index.d.ts +0 -4
  164. package/dist/cjs/models/index.d.ts.map +0 -1
  165. package/dist/cjs/resources/filter-functions.resources.d.ts +0 -94
  166. package/dist/cjs/resources/filter-functions.resources.d.ts.map +0 -1
  167. package/dist/cjs/resources/filter-grouping.resources.d.ts +0 -103
  168. package/dist/cjs/resources/filter-grouping.resources.d.ts.map +0 -1
  169. package/dist/cjs/resources/filter-logic.resources.d.ts +0 -135
  170. package/dist/cjs/resources/filter-logic.resources.d.ts.map +0 -1
  171. package/dist/cjs/resources/filter-operators.resources.d.ts +0 -16
  172. package/dist/cjs/resources/filter-operators.resources.d.ts.map +0 -1
  173. package/dist/cjs/resources/filter-panel.interfaces.d.ts +0 -80
  174. package/dist/cjs/resources/filter-panel.interfaces.d.ts.map +0 -1
  175. package/dist/cjs/resources/filter-scopes.resources.d.ts +0 -62
  176. package/dist/cjs/resources/filter-scopes.resources.d.ts.map +0 -1
  177. package/dist/cjs/resources/filter-validation.resources.d.ts +0 -20
  178. package/dist/cjs/resources/filter-validation.resources.d.ts.map +0 -1
  179. package/dist/cjs/resources/filter-validators.resources.d.ts +0 -80
  180. package/dist/cjs/resources/filter-validators.resources.d.ts.map +0 -1
  181. package/dist/cjs/resources/filter-values.resources.d.ts +0 -40
  182. package/dist/cjs/resources/filter-values.resources.d.ts.map +0 -1
  183. package/dist/cjs/resources/filter-visual.resources.d.ts +0 -77
  184. package/dist/cjs/resources/filter-visual.resources.d.ts.map +0 -1
  185. package/dist/cjs/resources/filters.resources.d.ts +0 -168
  186. package/dist/cjs/resources/filters.resources.d.ts.map +0 -1
  187. package/dist/cjs/resources/index.d.ts +0 -11
  188. package/dist/cjs/resources/index.d.ts.map +0 -1
  189. package/dist/classes/FilterAdapter.d.ts.map +0 -1
  190. package/dist/classes/FilterBuilder.d.ts.map +0 -1
  191. package/dist/classes/FilterManager.d.ts.map +0 -1
  192. package/dist/classes/FilterResources.d.ts.map +0 -1
  193. package/dist/classes/FilterSearcher.d.ts.map +0 -1
  194. package/dist/classes/FilterValidation.d.ts.map +0 -1
  195. package/dist/classes/FilterValues.d.ts.map +0 -1
  196. package/dist/classes/index.d.ts.map +0 -1
  197. package/dist/helpers/filter-adapt.helpers.d.ts.map +0 -1
  198. package/dist/helpers/filter-adapt.legacy.helpers.d.ts.map +0 -1
  199. package/dist/helpers/filter-adapt.logic.helpers.d.ts.map +0 -1
  200. package/dist/helpers/filter-builder.helpers.d.ts.map +0 -1
  201. package/dist/helpers/filter-settings.helpers.d.ts.map +0 -1
  202. package/dist/helpers/filter-validators.helpers.d.ts.map +0 -1
  203. package/dist/helpers/getFilterId.d.ts.map +0 -1
  204. package/dist/helpers/getFilterType.d.ts.map +0 -1
  205. package/dist/helpers/index.d.ts.map +0 -1
  206. package/dist/helpers/resolveFilterConditions.d.ts.map +0 -1
  207. package/dist/helpers/utils.helpers.d.ts.map +0 -1
  208. package/dist/index.d.ts.map +0 -1
  209. package/dist/models/filter-builder.models.d.ts.map +0 -1
  210. package/dist/models/filter-resources.models.d.ts.map +0 -1
  211. package/dist/models/filter-searcher.models.d.ts.map +0 -1
  212. package/dist/models/filter-validation.models.d.ts.map +0 -1
  213. package/dist/models/index.d.ts.map +0 -1
  214. package/dist/resources/filter-functions.resources.d.ts.map +0 -1
  215. package/dist/resources/filter-grouping.resources.d.ts.map +0 -1
  216. package/dist/resources/filter-logic.resources.d.ts.map +0 -1
  217. package/dist/resources/filter-operators.resources.d.ts.map +0 -1
  218. package/dist/resources/filter-panel.interfaces.d.ts.map +0 -1
  219. package/dist/resources/filter-scopes.resources.d.ts.map +0 -1
  220. package/dist/resources/filter-validation.resources.d.ts.map +0 -1
  221. package/dist/resources/filter-validators.resources.d.ts.map +0 -1
  222. package/dist/resources/filter-values.resources.d.ts.map +0 -1
  223. package/dist/resources/filter-visual.resources.d.ts.map +0 -1
  224. package/dist/resources/filters.resources.d.ts.map +0 -1
  225. package/dist/resources/index.d.ts.map +0 -1
  226. package/jest.config.js +0 -10
  227. package/jsdoc.config.json +0 -14
  228. package/scripts/clean-build/index.js +0 -62
  229. package/sonar-project.properties +0 -2
  230. package/src/classes/FilterAdapter.ts +0 -208
  231. package/src/classes/FilterBuilder.ts +0 -822
  232. package/src/classes/FilterManager.ts +0 -126
  233. package/src/classes/FilterResources.ts +0 -411
  234. package/src/classes/FilterSearcher.ts +0 -243
  235. package/src/classes/FilterValidation.ts +0 -221
  236. package/src/classes/FilterValues.ts +0 -89
  237. package/src/classes/index.ts +0 -7
  238. package/src/helpers/filter-adapt.helpers.ts +0 -204
  239. package/src/helpers/filter-adapt.legacy.helpers.ts +0 -298
  240. package/src/helpers/filter-adapt.logic.helpers.ts +0 -631
  241. package/src/helpers/filter-builder.helpers.ts +0 -28
  242. package/src/helpers/filter-settings.helpers.ts +0 -133
  243. package/src/helpers/filter-validators.helpers.ts +0 -15
  244. package/src/helpers/getFilterId.ts +0 -35
  245. package/src/helpers/getFilterType.ts +0 -23
  246. package/src/helpers/index.ts +0 -6
  247. package/src/helpers/resolveFilterConditions.ts +0 -29
  248. package/src/helpers/utils.helpers.ts +0 -37
  249. package/src/index.ts +0 -4
  250. package/src/models/filter-builder.models.ts +0 -256
  251. package/src/models/filter-resources.models.ts +0 -89
  252. package/src/models/filter-searcher.models.ts +0 -61
  253. package/src/models/filter-validation.models.ts +0 -71
  254. package/src/models/index.ts +0 -3
  255. package/src/resources/filter-functions.resources.ts +0 -132
  256. package/src/resources/filter-grouping.resources.ts +0 -531
  257. package/src/resources/filter-logic.resources.ts +0 -148
  258. package/src/resources/filter-operators.resources.ts +0 -40
  259. package/src/resources/filter-panel.interfaces.ts +0 -86
  260. package/src/resources/filter-scopes.resources.ts +0 -152
  261. package/src/resources/filter-validation.resources.ts +0 -90
  262. package/src/resources/filter-validators.resources.ts +0 -411
  263. package/src/resources/filter-values.resources.ts +0 -57
  264. package/src/resources/filter-visual.resources.ts +0 -86
  265. package/src/resources/filters.resources.ts +0 -232
  266. package/src/resources/index.ts +0 -10
  267. package/tests/classes/FilterAdapter.test.ts +0 -124
  268. package/tests/classes/FilterBuilder.test.ts +0 -903
  269. package/tests/classes/FilterResources.test.ts +0 -267
  270. package/tests/classes/FilterSearcher.test.ts +0 -188
  271. package/tests/classes/FilterValidation.test.ts +0 -54
  272. package/tests/helpers/getFilterId.test.ts +0 -121
  273. package/tests/mock/datasets.mock.ts +0 -61
  274. package/tests/mock/filters-adapter.mock.ts +0 -646
  275. package/tests/mock/filters-interactive-table.mock.ts +0 -59
  276. package/tests/mock/filters.mock.ts +0 -277
  277. package/tsconfig.doc.json +0 -4
  278. package/tsconfig.eslint.json +0 -4
  279. package/tsconfig.json +0 -113
@@ -7,22 +7,12 @@ import { FILTER_LOGIC_VALIDATOR, } from "../resources/filter-logic.resources";
7
7
  import { FILTER_OPERATOR, } from "../resources/filter-operators.resources";
8
8
  import { FILTER_LOGIC_VALIDATOR_BY_VALIDATOR, FILTER_VALIDATOR, } from "../resources/filter-validators.resources";
9
9
  import { FILTER_TYPE } from "../resources/filters.resources";
10
- /**
11
- * Generates a Logic structure from the filter collection
12
- * @param filters the filter collection
13
- * @returns the logic structure
14
- */
15
10
  export function filterToLogic(filters) {
16
11
  if (isEmpty(filters))
17
12
  return [];
18
13
  const visual = filterToVisual(filters);
19
14
  return visualToLogic(visual);
20
15
  }
21
- /**
22
- * Generates a Logic structure from the visual filter structure
23
- * @param visual the visual filter structure
24
- * @returns the logic structure
25
- */
26
16
  export function visualToLogic(visual) {
27
17
  return visual.scopes.reduce((logics, scope) => {
28
18
  const logic = buildLogic(scope);
@@ -37,11 +27,6 @@ export function visualToLogic(visual) {
37
27
  return logics;
38
28
  }, []);
39
29
  }
40
- /**
41
- * Gets the Logic structure for the given scope
42
- * @param scope the visual filter scope object
43
- * @returns a logic structure
44
- */
45
30
  function buildLogic(scope) {
46
31
  return {
47
32
  filters: [],
@@ -49,13 +34,7 @@ function buildLogic(scope) {
49
34
  scopeid: scope.id,
50
35
  };
51
36
  }
52
- /**
53
- * Gets the Logic Filters collection based on filters
54
- * @param filters the filter collection
55
- * @param groupColumns a flag to know if the
56
- * @returns the logic filter collection
57
- */
58
- function buildLogicFilters(filters, groupColumns = false) {
37
+ function buildLogicFilters(filters, groupColumns) {
59
38
  const expression = numericExpression(filters, groupColumns);
60
39
  const orOperators = expression.split("+");
61
40
  const getFilter = (fi) => {
@@ -97,11 +76,6 @@ function buildLogicFilters(filters, groupColumns = false) {
97
76
  },
98
77
  ];
99
78
  }
100
- /**
101
- *
102
- * @param group
103
- * @param getFilter
104
- */
105
79
  function getColumnExpressions(group, getFilter) {
106
80
  const columnOrOperators = group.split("/");
107
81
  if (columnOrOperators.length > 1) {
@@ -114,23 +88,13 @@ function getColumnExpressions(group, getFilter) {
114
88
  }
115
89
  return getFilter(group);
116
90
  }
117
- /**
118
- *
119
- * @param operator
120
- * @param priority
121
- */
122
- function logicToNumeric(operator, priority = false) {
91
+ function logicToNumeric(operator, priority) {
123
92
  if (operator === FILTER_OPERATOR.AND) {
124
93
  return "*";
125
94
  }
126
95
  return priority ? "/" : "+";
127
96
  }
128
- /**
129
- *
130
- * @param filters
131
- * @param groupColumns
132
- */
133
- function numericExpression(filters, groupColumns = false) {
97
+ function numericExpression(filters, groupColumns) {
134
98
  let expression = "";
135
99
  filters.forEach((item, index) => {
136
100
  const filter = filters[index + 1] || {};
@@ -139,12 +103,6 @@ function numericExpression(filters, groupColumns = false) {
139
103
  });
140
104
  return expression.substring(0, expression.length - 1);
141
105
  }
142
- /**
143
- * Builds filter expression by the filter data.
144
- * - If the resulting value array is empty the enabled property will be false.
145
- * @param filter The filter to transform
146
- * @returns a filter expression
147
- */
148
106
  export function buildLogicExpression(filter) {
149
107
  const expression = {
150
108
  enabled: filter.enabled,
@@ -158,11 +116,6 @@ export function buildLogicExpression(filter) {
158
116
  filter.selectAll || expression.value.length > 0 ? filter.enabled : false;
159
117
  return expression;
160
118
  }
161
- /**
162
- * Gets a group value for the backend logic structure
163
- * @param filter The filter object
164
- * @returns the group value
165
- */
166
119
  function getLogicExpressionGroupValue(filter) {
167
120
  if (filter.aggregateType == null &&
168
121
  isDateColumn({
@@ -176,11 +129,6 @@ function getLogicExpressionGroupValue(filter) {
176
129
  }
177
130
  return undefined;
178
131
  }
179
- /**
180
- * Gets a property for the logic expression structure
181
- * @param filter The filter
182
- * @returns a property
183
- */
184
132
  function getLogicExpressionProperty(filter) {
185
133
  if (isEmpty(filter.aggregateType)) {
186
134
  if (isNullValidator(filter.validator) ||
@@ -211,11 +159,6 @@ function getLogicExpressionProperty(filter) {
211
159
  }
212
160
  return filter.grouping;
213
161
  }
214
- /**
215
- * Gets the filter logic Validator
216
- * @param filter the filter object
217
- * @returns the Filter Logic Validator
218
- */
219
162
  function getLogicExpressionValidator(filter) {
220
163
  let logicValidator = FILTER_LOGIC_VALIDATOR_BY_VALIDATOR[filter.validator];
221
164
  if (filter.selectAll && filter.validator === FILTER_VALIDATOR.EQUALS)
@@ -224,11 +167,6 @@ function getLogicExpressionValidator(filter) {
224
167
  logicValidator = FILTER_LOGIC_VALIDATOR.EQUALS;
225
168
  return logicValidator;
226
169
  }
227
- /**
228
- * Gets the expresion values in the logic format
229
- * @param filter The filter structure
230
- * @returns A collection of backend expression value
231
- */
232
170
  export function getFilterLogicValues(filter) {
233
171
  const values = filter.values || [];
234
172
  switch (filter.validator) {
@@ -269,11 +207,6 @@ export function getFilterLogicValues(filter) {
269
207
  return [];
270
208
  }
271
209
  }
272
- /**
273
- * Gets the expression values for Exclusive Ranges
274
- * @param values the collection of values
275
- * @returns the logic expression values
276
- */
277
210
  function getExclusiveRange(values) {
278
211
  return values.reduce((expressionValues, value) => {
279
212
  const expressionValue = getValue(value, {
@@ -285,11 +218,6 @@ function getExclusiveRange(values) {
285
218
  return expressionValues;
286
219
  }, []);
287
220
  }
288
- /**
289
- * Gets the expression values for Inclusive Ranges
290
- * @param values the collection of values
291
- * @returns the logic expression values
292
- */
293
221
  function getInclusiveRange(values) {
294
222
  return values.reduce((expressionValues, value) => {
295
223
  const expressionValue = getValue(value, {
@@ -301,11 +229,6 @@ function getInclusiveRange(values) {
301
229
  return expressionValues;
302
230
  }, []);
303
231
  }
304
- /**
305
- * Gets the expression values for Before Ranges
306
- * @param values the collection of values
307
- * @returns the logic expression values
308
- */
309
232
  function getBeforeValues(values) {
310
233
  return values.reduce((expressionValues, value) => {
311
234
  const expressionValue = getValue(value, {
@@ -316,11 +239,6 @@ function getBeforeValues(values) {
316
239
  return expressionValues;
317
240
  }, []);
318
241
  }
319
- /**
320
- * Gets the expression values for BeforeOn Ranges
321
- * @param values the collection of values
322
- * @returns the logic expression values
323
- */
324
242
  function getBeforeOnValues(values) {
325
243
  return values.reduce((expressionValues, value) => {
326
244
  const expressionValue = getValue(value, {
@@ -331,11 +249,6 @@ function getBeforeOnValues(values) {
331
249
  return expressionValues;
332
250
  }, []);
333
251
  }
334
- /**
335
- * Gets the expression values for After Ranges
336
- * @param values the collection of values
337
- * @returns the logic expression values
338
- */
339
252
  function getAfterValues(values) {
340
253
  return values.reduce((expressionValues, value) => {
341
254
  const expressionValue = getValue(value, {
@@ -346,11 +259,6 @@ function getAfterValues(values) {
346
259
  return expressionValues;
347
260
  }, []);
348
261
  }
349
- /**
350
- * Gets the expression values for AfterOn Ranges
351
- * @param values the collection of values
352
- * @returns the logic expression values
353
- */
354
262
  function getAfterOnValues(values) {
355
263
  return values.reduce((expressionValues, value) => {
356
264
  const expressionValue = getValue(value, {
@@ -361,21 +269,10 @@ function getAfterOnValues(values) {
361
269
  return expressionValues;
362
270
  }, []);
363
271
  }
364
- /**
365
- * Gets the expression values for Nulls
366
- * @param values the collection of values
367
- * @param filter the filter structure
368
- * @returns the logic expression values
369
- */
370
272
  function getNullValues(values, filter) {
371
273
  const addValue = values.length > 0 && values.every((value) => value.enabled);
372
274
  return addValue ? [filter.validator] : [];
373
275
  }
374
- /**
375
- * Gets the expression values for Relative Dates
376
- * @param values the collection of values
377
- * @returns the logic expression values
378
- */
379
276
  function getInValues(values) {
380
277
  return values.reduce((expressionValues, value) => {
381
278
  const expressionValue = getValue(value, value);
@@ -384,21 +281,9 @@ function getInValues(values) {
384
281
  return expressionValues;
385
282
  }, []);
386
283
  }
387
- /**
388
- * Gets the value on the filter values
389
- * @param objectValue The filter structure
390
- * @param value The filter structure
391
- * @returns the value
392
- */
393
284
  function getValue(objectValue, value) {
394
285
  return objectValue.enabled ? value : undefined;
395
286
  }
396
- /**
397
- * Gets the expression values. Depending on the column type
398
- * @param values a collection of filter values
399
- * @param filter The filter structure
400
- * @returns Expression values
401
- */
402
287
  function getResultValues(values, filter) {
403
288
  return values.reduce((expressionValues, value) => {
404
289
  let expressionValue = "";
@@ -413,11 +298,6 @@ function getResultValues(values, filter) {
413
298
  return expressionValues;
414
299
  }, []);
415
300
  }
416
- /**
417
- * Gets the Ranking values.
418
- * @param values a collection of filter values in the ranking structure
419
- * @returns Expression values for ranking
420
- */
421
301
  function getRankingValues(values) {
422
302
  const flattenValues = flattenDeep(values);
423
303
  return flattenValues.reduce((expressionValues, value) => {
@@ -1,11 +1,4 @@
1
1
  import { IFilterFilterGroupingSettings } from "../resources/filter-functions.resources";
2
2
  import { IFilterGrouping } from "../resources/filter-grouping.resources";
3
3
  import { IFilter } from "../resources/filters.resources";
4
- /**
5
- * Gets the filter grouping for a given filter.
6
- * @param filter The filter to get the grouping for.
7
- * @param settings Settings for the filter grouping.
8
- * @returns The filter grouping.
9
- */
10
4
  export declare function getFilterGrouping(filter: Partial<IFilter>, settings?: IFilterFilterGroupingSettings): IFilterGrouping | undefined;
11
- //# sourceMappingURL=filter-builder.helpers.d.ts.map
@@ -1,11 +1,5 @@
1
1
  import { FilterResources } from "../classes/FilterResources";
2
2
  import { DEFAULT_FILTER } from "../resources/filters.resources";
3
- /**
4
- * Gets the filter grouping for a given filter.
5
- * @param filter The filter to get the grouping for.
6
- * @param settings Settings for the filter grouping.
7
- * @returns The filter grouping.
8
- */
9
3
  export function getFilterGrouping(filter, settings) {
10
4
  return ((settings?.strictValidation
11
5
  ? FilterResources.getGroupingInfoByColumnType({
@@ -1,42 +1,7 @@
1
1
  import { IFilterAddSettings, IFilterBuilderEditSettings, IFilterCreateSettings, IFilterGroupingInfoListByColumnSettings, IFilterParamSettings, IFilterReplaceParamSettings } from "../resources/filter-functions.resources";
2
- /**
3
- * Gets a complete settings for the edit filters settings
4
- * - Fills the missing properties with default ones
5
- * @param settings the settings
6
- * @returns the complete settings
7
- */
8
2
  export declare function getEditFiltersSettings(settings?: IFilterBuilderEditSettings): IFilterBuilderEditSettings;
9
- /**
10
- * Gets a complete settings for the filter-create settings
11
- * @param settings the filter-create settings
12
- * @returns the complete filter-create settings
13
- */
14
3
  export declare function getFilterAddSettings(settings?: IFilterAddSettings): IFilterAddSettings;
15
- /**
16
- * Gets a complete settings for the filter-create settings
17
- * @param settings the filter-create settings
18
- * @returns the complete filter-create settings
19
- */
20
4
  export declare function getFilterCreateSettings(settings?: IFilterCreateSettings): IFilterCreateSettings;
21
- /**
22
- * Gets a complete settings for the info grouping by column settings
23
- * - Fills the missing properties with default ones
24
- * @param settings the settings
25
- * @returns the complete settings
26
- */
27
5
  export declare function getInfoGroupingsByColumnTypeSettings(settings?: IFilterGroupingInfoListByColumnSettings): IFilterGroupingInfoListByColumnSettings;
28
- /**
29
- * Gets a complete settings for the param settings
30
- * - Fills the missing properties with default ones
31
- * @param settings the settings
32
- * @returns the complete settings
33
- */
34
6
  export declare function getParamFiltersSettings(settings?: IFilterParamSettings): IFilterParamSettings;
35
- /**
36
- * Gets a complete settings for the replaceByParams settings
37
- * - Fills the missing properties with default ones
38
- * @param settings the settings
39
- * @returns the complete settings
40
- */
41
7
  export declare function getReplaceByParamsSettings(settings?: IFilterReplaceParamSettings): IFilterReplaceParamSettings;
42
- //# sourceMappingURL=filter-settings.helpers.d.ts.map
@@ -1,10 +1,4 @@
1
1
  import { DEFAULT_FILTER_ADD_SETTINGS, DEFAULT_FILTER_CREATE_SETTINGS, DEFAULT_FILTERS_EDIT_SETTINGS, DEFAULT_FILTERS_GROUPING_INFO_BY_COLUMN_SETTINGS, DEFAULT_FILTERS_PARAM_SETTINGS, } from "../resources/filter-functions.resources";
2
- /**
3
- * Gets a complete settings for the edit filters settings
4
- * - Fills the missing properties with default ones
5
- * @param settings the settings
6
- * @returns the complete settings
7
- */
8
2
  export function getEditFiltersSettings(settings) {
9
3
  return {
10
4
  automaticId: settings?.automaticId ?? DEFAULT_FILTERS_EDIT_SETTINGS.automaticId,
@@ -12,11 +6,6 @@ export function getEditFiltersSettings(settings) {
12
6
  DEFAULT_FILTERS_EDIT_SETTINGS.strictValidation,
13
7
  };
14
8
  }
15
- /**
16
- * Gets a complete settings for the filter-create settings
17
- * @param settings the filter-create settings
18
- * @returns the complete filter-create settings
19
- */
20
9
  export function getFilterAddSettings(settings) {
21
10
  return {
22
11
  automaticId: settings?.automaticId ?? DEFAULT_FILTER_ADD_SETTINGS.automaticId,
@@ -24,11 +13,6 @@ export function getFilterAddSettings(settings) {
24
13
  DEFAULT_FILTER_ADD_SETTINGS.automaticOperator,
25
14
  };
26
15
  }
27
- /**
28
- * Gets a complete settings for the filter-create settings
29
- * @param settings the filter-create settings
30
- * @returns the complete filter-create settings
31
- */
32
16
  export function getFilterCreateSettings(settings) {
33
17
  return {
34
18
  automaticId: settings?.automaticId ?? DEFAULT_FILTER_CREATE_SETTINGS.automaticId,
@@ -38,12 +22,6 @@ export function getFilterCreateSettings(settings) {
38
22
  ...getInfoGroupingsByColumnTypeSettings(settings),
39
23
  };
40
24
  }
41
- /**
42
- * Gets a complete settings for the info grouping by column settings
43
- * - Fills the missing properties with default ones
44
- * @param settings the settings
45
- * @returns the complete settings
46
- */
47
25
  export function getInfoGroupingsByColumnTypeSettings(settings) {
48
26
  return {
49
27
  hasDateTime: settings?.hasDateTime ??
@@ -58,12 +36,6 @@ export function getInfoGroupingsByColumnTypeSettings(settings) {
58
36
  DEFAULT_FILTERS_GROUPING_INFO_BY_COLUMN_SETTINGS.isExpressionCategorizable,
59
37
  };
60
38
  }
61
- /**
62
- * Gets a complete settings for the param settings
63
- * - Fills the missing properties with default ones
64
- * @param settings the settings
65
- * @returns the complete settings
66
- */
67
39
  export function getParamFiltersSettings(settings) {
68
40
  return {
69
41
  letPassUndefinedParams: settings?.letPassUndefinedParams ??
@@ -74,12 +46,6 @@ export function getParamFiltersSettings(settings) {
74
46
  DEFAULT_FILTERS_PARAM_SETTINGS.removeEmptyArrays,
75
47
  };
76
48
  }
77
- /**
78
- * Gets a complete settings for the replaceByParams settings
79
- * - Fills the missing properties with default ones
80
- * @param settings the settings
81
- * @returns the complete settings
82
- */
83
49
  export function getReplaceByParamsSettings(settings) {
84
50
  return {
85
51
  ...settings,
@@ -1,8 +1,5 @@
1
1
  import { IFilterValidator } from "../resources/filter-validators.resources";
2
- /**
3
- * Checks if the given validator is a Null type.
4
- * @param validator The Filter Validator
5
- * @returns True: It is a Null Validator
6
- */
7
2
  export declare function isNullValidator(validator: IFilterValidator): boolean;
8
- //# sourceMappingURL=filter-validators.helpers.d.ts.map
3
+ export declare function isRegularValidator(validator: IFilterValidator): boolean;
4
+ export declare function isRangeValidator(validator: IFilterValidator): boolean;
5
+ export declare function isInValidator(validator: IFilterValidator): boolean;
@@ -1,9 +1,13 @@
1
- import { FILTER_VALIDATOR, } from "../resources/filter-validators.resources";
2
- /**
3
- * Checks if the given validator is a Null type.
4
- * @param validator The Filter Validator
5
- * @returns True: It is a Null Validator
6
- */
1
+ import { FILTER_TYPE, FILTER_TYPE_BY_VALIDATOR, } from "../resources/filters.resources";
7
2
  export function isNullValidator(validator) {
8
- return [FILTER_VALIDATOR.IS_NOT_NULL, FILTER_VALIDATOR.IS_NULL].includes(validator);
3
+ return FILTER_TYPE_BY_VALIDATOR[validator] === FILTER_TYPE.NULL;
4
+ }
5
+ export function isRegularValidator(validator) {
6
+ return FILTER_TYPE_BY_VALIDATOR[validator] === FILTER_TYPE.REGULAR;
7
+ }
8
+ export function isRangeValidator(validator) {
9
+ return FILTER_TYPE_BY_VALIDATOR[validator] === FILTER_TYPE.RANGE;
10
+ }
11
+ export function isInValidator(validator) {
12
+ return FILTER_TYPE_BY_VALIDATOR[validator] === FILTER_TYPE.RELATIVE;
9
13
  }
@@ -0,0 +1,6 @@
1
+ import { IDataset } from "@qrvey/utils";
2
+ import { IFilterToken, IFilterTokenSettings } from "../resources/filter-verbose.resources";
3
+ import { IFilter } from "../resources/filters.resources";
4
+ export declare function getVerboseFilter(filters: IFilter[], datasets?: IDataset[], settings?: IFilterTokenSettings): string;
5
+ export declare function getTokensFromFilters(filters: IFilter[], datasets?: IDataset[], settings?: IFilterTokenSettings): IFilterToken[];
6
+ export declare function filtersTokensToString(tokens: IFilterToken[]): string;
@@ -0,0 +1,206 @@
1
+ import { isEmpty, RELATIVE_CURSOR, RELATIVE_CURSOR_INFO, } from "@qrvey/utils";
2
+ import { filterToVisual } from "./filter-adapt.helpers";
3
+ import { isInValidator, isNullValidator, isRangeValidator, } from "./filter-validators.helpers";
4
+ import { isRankingFilter } from "./isRankingFilter";
5
+ import { FILTER_GROUPING_INFO } from "../resources/filter-grouping.resources";
6
+ import { FILTER_OPERATOR_INFO } from "../resources/filter-operators.resources";
7
+ import { FILTER_SCOPE, FILTER_SCOPE_INFO, } from "../resources/filter-scopes.resources";
8
+ import { FILTER_VALIDATOR_INFO, } from "../resources/filter-validators.resources";
9
+ import { FILTER_TOKEN_TYPE, } from "../resources/filter-verbose.resources";
10
+ export function getVerboseFilter(filters, datasets = [], settings) {
11
+ const tokens = getTokensFromFilters(filters, datasets, settings);
12
+ return filtersTokensToString(tokens);
13
+ }
14
+ export function getTokensFromFilters(filters, datasets = [], settings = {}) {
15
+ const visual = filterToVisual(filters, datasets);
16
+ if (!visual)
17
+ return [];
18
+ const t = buildTranslator(settings.translate);
19
+ const tokens = [];
20
+ for (const scope of visual.scopes) {
21
+ if (scope.datasets.length === 0)
22
+ continue;
23
+ if (settings.showScope) {
24
+ const scopeInfo = FILTER_SCOPE_INFO[scope.scope];
25
+ tokens.push({
26
+ token: `${t(`filter.scope_title.${scope.scope.toLowerCase()}`, scopeInfo?.label ?? scope.scope)}:`,
27
+ type: FILTER_TOKEN_TYPE.SCOPE,
28
+ });
29
+ }
30
+ let hasFiltersWithValues = false;
31
+ for (const dataset of scope.datasets) {
32
+ if (dataset.filters.length === 0)
33
+ continue;
34
+ if (settings.showDataset) {
35
+ tokens.push({
36
+ token: `${dataset.label}:`,
37
+ type: FILTER_TOKEN_TYPE.DATABASE_NAME,
38
+ });
39
+ }
40
+ for (let i = 0; i < dataset.filters.length; i++) {
41
+ const filter = dataset.filters[i];
42
+ if (!filter.enabled) {
43
+ if (tokens[tokens.length - 1]?.type ===
44
+ FILTER_TOKEN_TYPE.LOGICAL_OPERATOR) {
45
+ tokens.pop();
46
+ }
47
+ continue;
48
+ }
49
+ hasFiltersWithValues = true;
50
+ if (settings.showChart && filter.scope === FILTER_SCOPE.CHART) {
51
+ const chartLabel = filter.customLabel ?? "";
52
+ const existing = tokens.find((tok) => tok.token === `${chartLabel}:` && tok.id === filter.scopeId);
53
+ if (!existing) {
54
+ if (tokens[tokens.length - 1]?.type ===
55
+ FILTER_TOKEN_TYPE.LOGICAL_OPERATOR) {
56
+ tokens.pop();
57
+ }
58
+ tokens.push({
59
+ token: `${chartLabel}:`,
60
+ type: FILTER_TOKEN_TYPE.CHART_NAME,
61
+ id: filter.scopeId,
62
+ });
63
+ }
64
+ }
65
+ let columnLabel = filter.columnLabel || filter.columnId;
66
+ if (!isEmpty(filter.aggregateType)) {
67
+ const aggLabel = t(`common.aggregate_labels.${filter.aggregateType.toLowerCase()}`, String(filter.aggregateType));
68
+ columnLabel += ` (${aggLabel})`;
69
+ }
70
+ tokens.push({
71
+ token: `${columnLabel}:`,
72
+ type: FILTER_TOKEN_TYPE.COLUMN_NAME,
73
+ });
74
+ const validatorInfo = FILTER_VALIDATOR_INFO[filter.validator];
75
+ const validatorLabel = t(`filter.validators.${filter.validator.toLowerCase()}_label`, validatorInfo?.label ?? filter.validator);
76
+ const groupingLabel = !isEmpty(filter.grouping)
77
+ ? (FILTER_GROUPING_INFO[filter.grouping]?.label ?? "")
78
+ : "";
79
+ tokens.push({
80
+ token: validatorLabel + (groupingLabel ? ` (${groupingLabel})` : ""),
81
+ type: FILTER_TOKEN_TYPE.VALIDATOR,
82
+ });
83
+ tokens.push({
84
+ token: buildValueLabel(filter, settings, t),
85
+ type: FILTER_TOKEN_TYPE.VALUE,
86
+ });
87
+ if (i < dataset.filters.length - 1) {
88
+ const opInfo = FILTER_OPERATOR_INFO[filter.operator];
89
+ const opLabel = t(`filter.operators.${filter.operator.toLowerCase()}`, opInfo?.label ?? filter.operator);
90
+ tokens.push({
91
+ token: opLabel,
92
+ type: FILTER_TOKEN_TYPE.LOGICAL_OPERATOR,
93
+ });
94
+ }
95
+ }
96
+ if (!hasFiltersWithValues && settings.showDataset) {
97
+ tokens.pop();
98
+ }
99
+ }
100
+ if (!hasFiltersWithValues && settings.showScope) {
101
+ tokens.pop();
102
+ }
103
+ }
104
+ return tokens;
105
+ }
106
+ export function filtersTokensToString(tokens) {
107
+ let str = "";
108
+ for (const token of tokens) {
109
+ if ([FILTER_TOKEN_TYPE.SCOPE, FILTER_TOKEN_TYPE.CHART_NAME].includes(token.type)) {
110
+ str += "\n";
111
+ }
112
+ str += `${token.token} `;
113
+ }
114
+ return str.trim();
115
+ }
116
+ function buildTranslator(translate) {
117
+ if (translate) {
118
+ return (key, fallback) => translate(key) || fallback;
119
+ }
120
+ return (_key, fallback) => fallback;
121
+ }
122
+ function buildValueLabel(filter, settings, t) {
123
+ const values = filter.values ?? [];
124
+ let labels;
125
+ if (isNullValidator(filter.validator)) {
126
+ const validatorInfo = FILTER_VALIDATOR_INFO[filter.validator];
127
+ labels = [
128
+ t(`filter.validators.${filter.validator.toLowerCase()}_label`, validatorInfo?.label ?? filter.validator),
129
+ ];
130
+ }
131
+ else if (isRangeValidator(filter.validator)) {
132
+ labels = getRangeLabels(values, filter.validator, settings, t);
133
+ }
134
+ else if (isInValidator(filter.validator)) {
135
+ labels = getRelativeLabels(values, t);
136
+ }
137
+ else if (isRankingFilter(filter)) {
138
+ labels = getRankingLabels(values);
139
+ }
140
+ else {
141
+ labels = getRegularLabels(values);
142
+ }
143
+ const filtered = labels.filter((l) => !isEmpty(l));
144
+ let result = filtered.join(", ");
145
+ if (filter.selectAll) {
146
+ result = isEmpty(result)
147
+ ? t("filter_panel.card_all_selected", "All selected")
148
+ : `${t("filter_panel.card_all_except", "All except")} ${result}`;
149
+ }
150
+ else if (isEmpty(result)) {
151
+ result = t("filter_panel.card_none_selected", "None selected");
152
+ }
153
+ return result;
154
+ }
155
+ function getRegularLabels(values) {
156
+ return values
157
+ .filter((v) => (v.displayed ?? true) && (v.enabled ?? true))
158
+ .map((v) => v.value ?? "");
159
+ }
160
+ function getRangeLabels(values, validator, settings, t) {
161
+ const sep = settings.rangeSeparator ?? t("filter.range_separator", "-");
162
+ return values
163
+ .filter((v) => (v.displayed ?? true) && (v.enabled ?? true))
164
+ .map((v) => {
165
+ switch (validator) {
166
+ case "AFTER":
167
+ case "AFTER_ON":
168
+ case "GREATER_THAN":
169
+ case "GREATER_THAN_EQUAL":
170
+ return v.min ?? "";
171
+ case "BEFORE":
172
+ case "BEFORE_ON":
173
+ case "LESS_THAN":
174
+ case "LESS_THAN_EQUAL":
175
+ return v.max ?? "";
176
+ default:
177
+ return `${v.min ?? ""} ${sep} ${v.max ?? ""}`;
178
+ }
179
+ });
180
+ }
181
+ function getRelativeLabels(values, t) {
182
+ return values
183
+ .filter((v) => (v.displayed ?? true) && (v.enabled ?? true))
184
+ .map((v) => {
185
+ const cursorInfo = RELATIVE_CURSOR_INFO[v.cursor];
186
+ const cursorLabel = t(cursorInfo.i18nLabelPath, cursorInfo.label);
187
+ const isThis = v.cursor === RELATIVE_CURSOR.THIS;
188
+ const number = !isThis && v.number != null && v.number > 1 ? `${v.number} ` : "";
189
+ const unit = t(`common.units.${v.unit}`, String(v.unit));
190
+ const pluralUnit = !isThis && v.number != null && v.number > 1 ? `${unit}s` : unit;
191
+ if (isThis) {
192
+ return `${cursorLabel} ${pluralUnit}`.trim();
193
+ }
194
+ const fromLabel = t("filter.relative_container.from_label", "from");
195
+ const anchorLabel = typeof v.anchor === "string" && !isEmpty(v.anchor)
196
+ ? v.anchor
197
+ : t("filter.relative_container.current_date", "Current Date");
198
+ return `${cursorLabel} ${number}${pluralUnit} ${fromLabel} ${anchorLabel}`.trim();
199
+ });
200
+ }
201
+ function getRankingLabels(values) {
202
+ return values
203
+ .flat()
204
+ .filter((v) => (v.displayed ?? true) && (v.enabled ?? true))
205
+ .map((v) => `${v.value ?? ""} - ${v.position}`);
206
+ }
@@ -0,0 +1,3 @@
1
+ import { IFilter } from "../resources/filters.resources";
2
+ export declare function getAggregateFilters(filters?: IFilter[]): IFilter[];
3
+ export declare function excludeAggregateFilters(filters?: IFilter[]): IFilter[];
@@ -0,0 +1,7 @@
1
+ import { isEmpty } from "@qrvey/utils";
2
+ export function getAggregateFilters(filters = []) {
3
+ return filters.filter((filter) => !isEmpty(filter.aggregateType));
4
+ }
5
+ export function excludeAggregateFilters(filters = []) {
6
+ return filters.filter((filter) => isEmpty(filter.aggregateType));
7
+ }