@qrvey/filters 0.0.44 → 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 +33 -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 +33 -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 -268
  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 -821
  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
@@ -1,267 +0,0 @@
1
- import { COLUMN, FORMULA, IDTimezone } from "@qrvey/utils";
2
-
3
- import { FilterResources } from "../../src/classes/FilterResources";
4
- import { IFilter } from "../../src/resources";
5
- import {
6
- FILTER_GROUPING,
7
- FILTER_GROUPING_INFO,
8
- FILTER_GROUPING_INFO_BY_COLUMN_TYPE,
9
- FILTER_GROUPING_INFO_BY_DATE_TIME,
10
- FILTER_GROUPING_INFO_BY_DISTINCT_DATE,
11
- FILTER_GROUPING_INFO_BY_DISTINCT_DATE_TIME,
12
- FILTER_GROUPING_INFO_LIST,
13
- FILTER_GROUPINGS,
14
- } from "../../src/resources/filter-grouping.resources";
15
- import {
16
- FILTER_VALIDATOR,
17
- FILTER_VALIDATOR_INFO,
18
- FILTER_VALIDATOR_INFO_LIST,
19
- FILTER_VALIDATORS,
20
- FILTER_VALIDATORS_INFO_BY_COLUMN_TYPE,
21
- } from "../../src/resources/filter-validators.resources";
22
- import {
23
- __mockFilter10,
24
- __mockFilter11,
25
- __mockFilter9,
26
- __mockFilters4,
27
- } from "../mock/filters.mock";
28
-
29
- describe("Testing Filter Resources - Grouping", () => {
30
- test("getGroupingInfo", () => {
31
- expect(FilterResources.getGroupingInfo(FILTER_GROUPING.DAY)).toEqual(
32
- FILTER_GROUPING_INFO.day,
33
- );
34
- });
35
-
36
- test("getGroupingInfoListByColumnType - Undefined", () => {
37
- expect(
38
- FilterResources.getGroupingInfoListByColumnType({ type: COLUMN.BUCKET }),
39
- ).toBeUndefined();
40
- });
41
-
42
- test("getGroupingInfoListByColumnType - Expression", () => {
43
- expect(
44
- FilterResources.getGroupingInfoListByColumnType({
45
- type: COLUMN.EXPRESSION,
46
- }),
47
- ).toEqual([]);
48
- });
49
-
50
- test("getGroupingInfoListByColumnType - Date", () => {
51
- expect(
52
- FilterResources.getGroupingInfoListByColumnType({
53
- type: COLUMN.DATE_FORMULA,
54
- }),
55
- ).toEqual(FILTER_GROUPING_INFO_BY_COLUMN_TYPE.DATE_FORMULA);
56
- });
57
-
58
- test("getGroupingInfoListByColumnType - Formula Date", () => {
59
- expect(
60
- FilterResources.getGroupingInfoListByColumnType({
61
- type: COLUMN.FORMULA,
62
- formulaType: FORMULA.DATE,
63
- }),
64
- ).toEqual(FILTER_GROUPING_INFO_BY_COLUMN_TYPE.DATE_FORMULA);
65
- });
66
-
67
- test("getGroupingInfoListByColumnType - Name", () => {
68
- expect(
69
- FilterResources.getGroupingInfoListByColumnType({ type: COLUMN.NAME }),
70
- ).toEqual(FILTER_GROUPING_INFO_BY_COLUMN_TYPE.NAME);
71
- });
72
-
73
- test("getGroupingInfoListByColumnTypes - Name, Address", () => {
74
- expect(
75
- FilterResources.getGroupingInfoListByColumnTypes([
76
- { type: COLUMN.NAME },
77
- { type: COLUMN.ADDRESS },
78
- ]),
79
- ).toEqual([]);
80
- });
81
-
82
- test("getGroupingInfoListByColumnTypes - File Upload, Image upload", () => {
83
- expect(
84
- FilterResources.getGroupingInfoListByColumnTypes([
85
- { type: COLUMN.FILEUPLOAD },
86
- { type: COLUMN.IMAGEUPLOAD },
87
- ]),
88
- ).toEqual([FILTER_GROUPING_INFO.fileSize, FILTER_GROUPING_INFO.fileType]);
89
- });
90
-
91
- test("getGroupingInfoListOnDates - empty settings", () => {
92
- expect(
93
- FilterResources.getGroupingInfoListOnDates(
94
- FILTER_GROUPING_INFO_BY_COLUMN_TYPE.DATE,
95
- {},
96
- ),
97
- ).toEqual(FILTER_GROUPING_INFO_BY_COLUMN_TYPE.DATE);
98
- });
99
-
100
- test("getGroupingInfoListOnDates - additional settings", () => {
101
- expect(
102
- FilterResources.getGroupingInfoListOnDates(
103
- FILTER_GROUPING_INFO_BY_COLUMN_TYPE.DATE,
104
- {
105
- hasDateTime: true,
106
- hasDistinctDate: true,
107
- hasDistinctDateTime: true,
108
- },
109
- ),
110
- ).toEqual([
111
- ...FILTER_GROUPING_INFO_BY_COLUMN_TYPE.DATE,
112
- ...FILTER_GROUPING_INFO_BY_DATE_TIME,
113
- ...FILTER_GROUPING_INFO_BY_DISTINCT_DATE,
114
- ...FILTER_GROUPING_INFO_BY_DISTINCT_DATE_TIME,
115
- ]);
116
- });
117
-
118
- test("getGroupingInfoListOnExpressions - empty settings", () => {
119
- expect(
120
- FilterResources.getGroupingInfoListOnExpressions(
121
- FILTER_GROUPING_INFO_BY_COLUMN_TYPE.EXPRESSION,
122
- {},
123
- ),
124
- ).toEqual([]);
125
- });
126
-
127
- test("getGroupingInfoListOnExpressions - additional settings", () => {
128
- expect(
129
- FilterResources.getGroupingInfoListOnExpressions(
130
- FILTER_GROUPING_INFO_BY_COLUMN_TYPE.EXPRESSION,
131
- {
132
- isExpressionCategorizable: true,
133
- },
134
- ),
135
- ).toEqual(FILTER_GROUPING_INFO_BY_COLUMN_TYPE.EXPRESSION);
136
- });
137
-
138
- test("getGroupingInfoListOnImageUploads - empty settings", () => {
139
- expect(
140
- FilterResources.getGroupingInfoListOnImageUploads(
141
- FILTER_GROUPING_INFO_BY_COLUMN_TYPE.IMAGEUPLOAD,
142
- {},
143
- ),
144
- ).toEqual([FILTER_GROUPING_INFO.fileSize, FILTER_GROUPING_INFO.fileType]);
145
- });
146
-
147
- test("getGroupingInfoListOnImageUploads - additional settings", () => {
148
- expect(
149
- FilterResources.getGroupingInfoListOnImageUploads(
150
- FILTER_GROUPING_INFO_BY_COLUMN_TYPE.IMAGEUPLOAD,
151
- {
152
- hasImageUploadAnalysis: true,
153
- },
154
- ),
155
- ).toEqual(FILTER_GROUPING_INFO_BY_COLUMN_TYPE.IMAGEUPLOAD);
156
- });
157
-
158
- test("getGroupings", () => {
159
- expect(FilterResources.getGroupings()).toEqual(FILTER_GROUPINGS);
160
- });
161
-
162
- test("getGroupingsInfoList", () => {
163
- expect(FilterResources.getGroupingsInfoList()).toEqual(
164
- FILTER_GROUPING_INFO_LIST,
165
- );
166
- });
167
- });
168
-
169
- describe("Testing Filter Resources - Validator", () => {
170
- test("getValidatorInfo", () => {
171
- expect(FilterResources.getValidatorInfo(FILTER_VALIDATOR.EQUALS)).toEqual(
172
- FILTER_VALIDATOR_INFO.EQUALS,
173
- );
174
- });
175
-
176
- test("getValidatorInfoList", () => {
177
- expect(FilterResources.getValidatorInfoList()).toEqual(
178
- FILTER_VALIDATOR_INFO_LIST,
179
- );
180
- });
181
-
182
- test("getValidatorInfoListByColumnType - Date", () => {
183
- expect(
184
- FilterResources.getValidatorInfoListByColumnType({ type: COLUMN.DATE }),
185
- ).toEqual(FILTER_VALIDATORS_INFO_BY_COLUMN_TYPE.DATE);
186
- });
187
-
188
- test("getValidatorInfoListByColumnType - Formula Numeric", () => {
189
- expect(
190
- FilterResources.getValidatorInfoListByColumnType({
191
- type: COLUMN.FORMULA,
192
- formulaType: FORMULA.NUMBER,
193
- }),
194
- ).toEqual(FILTER_VALIDATORS_INFO_BY_COLUMN_TYPE.NUMERIC);
195
- });
196
-
197
- test("getValidatorInfoListByColumnTypes", () => {
198
- expect(
199
- FilterResources.getValidatorInfoListByColumnTypes([
200
- { type: COLUMN.DATE },
201
- { type: COLUMN.NUMERIC },
202
- ]),
203
- ).toEqual([
204
- FILTER_VALIDATOR_INFO.EQUALS,
205
- FILTER_VALIDATOR_INFO.NOT_EQUAL,
206
- FILTER_VALIDATOR_INFO.BETWEEN_INCLUSIVE,
207
- FILTER_VALIDATOR_INFO.BETWEEN_EXCLUSIVE,
208
- ]);
209
- });
210
-
211
- test("getValidators", () => {
212
- expect(FilterResources.getValidators()).toEqual(FILTER_VALIDATORS);
213
- });
214
- });
215
-
216
- describe("Testing Filter Resources - Timezone", () => {
217
- const timezone1: IDTimezone = { offset: "+00:00" };
218
- const timezone2: IDTimezone = { offset: "-05:00" };
219
-
220
- test("getFiltersByTimezone - Empty", () => {
221
- const newFilters = FilterResources.getFiltersByTimezone([], timezone1);
222
- expect(newFilters).toEqual([]);
223
- });
224
- test("getFiltersByTimezone - Filters", () => {
225
- const newFilters = FilterResources.getFiltersByTimezone(
226
- __mockFilters4,
227
- timezone2,
228
- );
229
-
230
- const newMockFilter9: IFilter = {
231
- ...__mockFilter9,
232
- values: [
233
- {
234
- ...__mockFilter9.values![0],
235
- anchor: "02/11/2024 19:00:00",
236
- },
237
- ],
238
- };
239
-
240
- const newMockFilter10: IFilter = {
241
- ...__mockFilter10,
242
- values: [
243
- {
244
- ...__mockFilter10.values![0],
245
- value: "02/11/2024 19:00:00",
246
- },
247
- ],
248
- };
249
-
250
- const newMockFilter11: IFilter = {
251
- ...__mockFilter11,
252
- values: [
253
- {
254
- ...__mockFilter11.values![0],
255
- min: "02/11/2024 19:00:00",
256
- max: "02/12/2024 19:00:00",
257
- },
258
- ],
259
- };
260
-
261
- expect(newFilters).toEqual([
262
- newMockFilter9,
263
- newMockFilter10,
264
- newMockFilter11,
265
- ]);
266
- });
267
- });
@@ -1,188 +0,0 @@
1
- import { AGGREGATE, COLUMN } from "@qrvey/utils";
2
-
3
- import { FilterSearcher } from "../../src/classes/FilterSearcher";
4
- import {
5
- __mockFilter1,
6
- __mockFilter4,
7
- __mockFilters1,
8
- } from "../mock/filters.mock";
9
-
10
- describe("Testing wrong arguments", () => {
11
- test("Undefined argument", () => {
12
- const searcher = new FilterSearcher(undefined);
13
- expect(searcher.getFilters()).toEqual([]);
14
- });
15
-
16
- test("Null argument", () => {
17
- // @ts-expect-error: Expected wrong params
18
- const searcher = new FilterSearcher(null);
19
- expect(searcher.getFilters()).toEqual([]);
20
- });
21
-
22
- test("Boolean argument", () => {
23
- // @ts-expect-error: Expected wrong params
24
- const searcher = new FilterSearcher(false);
25
- expect(searcher.getFilters()).toEqual([]);
26
- });
27
-
28
- test("Numeric argument", () => {
29
- // @ts-expect-error: Expected wrong params
30
- const searcher = new FilterSearcher(0);
31
- expect(searcher.getFilters()).toEqual([]);
32
- });
33
-
34
- test("String argument", () => {
35
- // @ts-expect-error: Expected wrong params
36
- const searcher = new FilterSearcher("Sales");
37
- expect(searcher.getFilters()).toEqual([]);
38
- });
39
-
40
- test("Function-like argument", () => {
41
- // @ts-expect-error: Expected wrong params
42
- const searcher = new FilterSearcher(() => "Hola");
43
- expect(searcher.getFilters()).toEqual([]);
44
- });
45
- });
46
-
47
- describe("Testing Filter Searcher - Empty Filters", () => {
48
- let searcher: FilterSearcher;
49
- beforeEach(() => {
50
- searcher = new FilterSearcher([]);
51
- });
52
-
53
- test("Getting Empty Filters", () => {
54
- expect(searcher.getFilters()).toEqual([]);
55
- });
56
-
57
- test("Filtering by Params", () => {
58
- expect(searcher.filterByParams({ columnId: "123" })).toEqual([]);
59
- });
60
-
61
- test("Filtering Indexes by Params", () => {
62
- expect(searcher.filterIndexesByParams({ columnId: "123" })).toEqual([]);
63
- });
64
-
65
- test("Finding by Params", () => {
66
- expect(searcher.findByParams({ columnId: "123" })).toBeUndefined();
67
- });
68
-
69
- test("Finding Index by Params", () => {
70
- expect(searcher.findIndexByParams({ columnId: "123" })).toBe(-1);
71
- });
72
-
73
- test("Excluding Index by Params", () => {
74
- expect(searcher.excludeByParams({ columnId: "123" })).toEqual([]);
75
- });
76
- });
77
-
78
- describe("Testing Filter Searcher - Setting Filters", () => {
79
- let searcher: FilterSearcher;
80
- beforeEach(() => {
81
- searcher = new FilterSearcher([]);
82
- });
83
-
84
- test("Setting Filters", () => {
85
- searcher.setFilters(__mockFilters1);
86
- expect(searcher.getFilters()).toEqual(__mockFilters1);
87
- });
88
- });
89
-
90
- describe("Testing Filter Searcher - With Filters", () => {
91
- let searcher: FilterSearcher;
92
- beforeEach(() => {
93
- searcher = new FilterSearcher(__mockFilters1);
94
- });
95
-
96
- test("Filtering by Params - No results", () => {
97
- expect(searcher.filterByParams({ columnId: "123" })).toEqual([]);
98
- });
99
-
100
- test("Filtering by Params - Results", () => {
101
- expect(searcher.filterByParams({ columnId: "C123" })).toEqual([
102
- __mockFilters1[0],
103
- ]);
104
- });
105
-
106
- test("Filtering Indexes by Params - No results", () => {
107
- expect(searcher.filterIndexesByParams({ datasetId: "123" })).toEqual([]);
108
- });
109
-
110
- test("Filtering Indexes by Params - No results", () => {
111
- expect(searcher.filterIndexesByParams({ datasetId: "D123" })).toEqual([
112
- 0, 1,
113
- ]);
114
- });
115
-
116
- test("Finding by Params - No results", () => {
117
- expect(
118
- searcher.findByParams({ columnType: COLUMN.YES_NO }),
119
- ).toBeUndefined();
120
- });
121
-
122
- test("Finding by Params - Results", () => {
123
- expect(searcher.findByParams({ columnType: COLUMN.DATE })).toEqual(
124
- __mockFilters1[1],
125
- );
126
- });
127
-
128
- test("Finding Index by Params - No results", () => {
129
- expect(searcher.findIndexByParams({ aggregateType: AGGREGATE.SUM })).toBe(
130
- -1,
131
- );
132
- });
133
-
134
- test("Finding Index by Params - Results", () => {
135
- expect(searcher.findIndexByParams({ aggregateType: undefined })).toBe(0);
136
- });
137
-
138
- test("Excluding Index by Params", () => {
139
- expect(searcher.excludeByParams({ datasetId: "D123" })).toEqual([
140
- __mockFilters1[2],
141
- ]);
142
- });
143
-
144
- test("Finding the last Index by Filters", () => {
145
- expect(searcher.findLastIndexByFilter(__mockFilter1)).toEqual({
146
- index: 0,
147
- nextToColumnFilter: true,
148
- nextToDatasetFilter: false,
149
- nextToScopeFilter: false,
150
- });
151
- });
152
-
153
- test("Finding the last Index by Filters - With Custom Index", () => {
154
- expect(searcher.findLastIndexByFilter(__mockFilter1, 1)).toEqual({
155
- index: 1,
156
- nextToColumnFilter: false,
157
- nextToDatasetFilter: false,
158
- nextToScopeFilter: false,
159
- });
160
- });
161
-
162
- test("Finding the last Index by Filters - No Match", () => {
163
- expect(searcher.findLastIndexByFilter(__mockFilter4)).toEqual({
164
- index: -1,
165
- nextToColumnFilter: false,
166
- nextToDatasetFilter: false,
167
- nextToScopeFilter: false,
168
- });
169
- });
170
-
171
- test("Finding the last Index by Filters - Out of bounds 1", () => {
172
- expect(searcher.findLastIndexByFilter(__mockFilter1, -2)).toEqual({
173
- index: 0,
174
- nextToColumnFilter: true,
175
- nextToDatasetFilter: false,
176
- nextToScopeFilter: false,
177
- });
178
- });
179
-
180
- test("Finding the last Index by Filters - Out of bounds 2", () => {
181
- expect(searcher.findLastIndexByFilter(__mockFilter1, 10)).toEqual({
182
- index: 2,
183
- nextToColumnFilter: false,
184
- nextToDatasetFilter: false,
185
- nextToScopeFilter: false,
186
- });
187
- });
188
- });
@@ -1,54 +0,0 @@
1
- import { FilterValidation } from "../../src/classes/FilterValidation";
2
- import {
3
- __mockFilter2,
4
- __mockFilter3,
5
- __mockFilter4,
6
- __mockFilter5,
7
- __mockFilter7,
8
- __mockFilter8,
9
- __mockFilters1,
10
- __mockFilters3,
11
- } from "../mock/filters.mock";
12
-
13
- describe("Testing Filter Duplications", () => {
14
- test("Empty Params", () => {
15
- // @ts-expect-error: Expected wrong params
16
- expect(FilterValidation.isDuplicated()).toBeFalsy();
17
- });
18
-
19
- test("No Duplicated - Range", () => {
20
- expect(
21
- FilterValidation.isDuplicated(__mockFilters1, __mockFilter4),
22
- ).toBeFalsy();
23
- });
24
-
25
- test("Duplicated - Range", () => {
26
- expect(
27
- FilterValidation.isDuplicated(__mockFilters1, __mockFilter3),
28
- ).toBeTruthy();
29
- });
30
-
31
- test("No Duplicated - Regular", () => {
32
- expect(
33
- FilterValidation.isDuplicated(__mockFilters1, __mockFilter5),
34
- ).toBeFalsy();
35
- });
36
-
37
- test("Duplicated - Regular", () => {
38
- expect(
39
- FilterValidation.isDuplicated(__mockFilters1, __mockFilter2),
40
- ).toBeTruthy();
41
- });
42
-
43
- test("No Duplicated - Relative", () => {
44
- expect(
45
- FilterValidation.isDuplicated(__mockFilters3, __mockFilter8),
46
- ).toBeFalsy();
47
- });
48
-
49
- test("Duplicated - Relative", () => {
50
- expect(
51
- FilterValidation.isDuplicated(__mockFilters3, __mockFilter7),
52
- ).toBeTruthy();
53
- });
54
- });
@@ -1,121 +0,0 @@
1
- import { getFilterId } from "../../src/helpers/getFilterId";
2
- import { FILTER_GROUPING } from "../../src/resources/filter-grouping.resources";
3
- import { FILTER_OPERATOR } from "../../src/resources/filter-operators.resources";
4
- import { FILTER_SCOPE } from "../../src/resources/filter-scopes.resources";
5
- import { FILTER_VALIDATOR } from "../../src/resources/filter-validators.resources";
6
- import { IFilter } from "../../src/resources/filters.resources";
7
-
8
- describe("Undefined/empty arguments", () => {
9
- test("Undefined argument", () => {
10
- // @ts-expect-error: Expected wrong params
11
- const result = getFilterId();
12
- expect(result).toBe("");
13
- });
14
-
15
- test("Undefined argument", () => {
16
- // @ts-expect-error: Expected wrong params
17
- const result = getFilterId(undefined);
18
- expect(result).toBe("");
19
- });
20
-
21
- test("Null argument", () => {
22
- // @ts-expect-error: Expected wrong params
23
- const result = getFilterId(null);
24
- expect(result).toBe("");
25
- });
26
-
27
- test("Empty array argument", () => {
28
- // @ts-expect-error: Expected wrong params
29
- const result = getFilterId([]);
30
- expect(result).toBe("");
31
- });
32
- });
33
-
34
- describe("Different argument type", () => {
35
- test("Boolean argument", () => {
36
- // @ts-expect-error: Expected wrong params
37
- const result = getFilterId(false);
38
- expect(result).toBe("");
39
- });
40
-
41
- test("Numeric argument", () => {
42
- // @ts-expect-error: Expected wrong params
43
- const result = getFilterId(0);
44
- expect(result).toBe("");
45
- });
46
-
47
- test("String argument", () => {
48
- // @ts-expect-error: Expected wrong params
49
- const result = getFilterId("Sales");
50
- expect(result).toBe("");
51
- });
52
-
53
- test("Function-like argument", () => {
54
- // @ts-expect-error: Expected wrong params
55
- const result = getFilterId(() => "Hola");
56
- expect(result).toBe("");
57
- });
58
- });
59
-
60
- describe("Wrong Object type", () => {
61
- test("Date Object", () => {
62
- const param1 = new Date();
63
- // @ts-expect-error: Expected wrong params
64
- const result = getFilterId(param1);
65
- expect(result).toBe("");
66
- });
67
-
68
- test("Empty but valid object", () => {
69
- // @ts-expect-error: Expected wrong params
70
- const result = getFilterId({});
71
- expect(result).toBe("");
72
- });
73
-
74
- test("Non-empty but valid object", () => {
75
- // @ts-expect-error: Expected wrong params
76
- const result = getFilterId({ Hello: "world" });
77
- expect(result).toBe("");
78
- });
79
- });
80
-
81
- describe("Correct Object type", () => {
82
- const filter: IFilter = {
83
- collapsed: false,
84
- // @ts-expect-error: No need the type
85
- columnType: "TEXT_LABEL",
86
- deletable: true,
87
- displayed: true,
88
- editable: true,
89
- enableable: true,
90
- enabled: true,
91
- id: "F123",
92
- operator: FILTER_OPERATOR.AND,
93
- scope: FILTER_SCOPE.GLOBAL,
94
- scopeId: "S123",
95
- datasetId: "D123",
96
- columnId: "C123",
97
- validator: FILTER_VALIDATOR.EQUALS,
98
- };
99
-
100
- const filter2: IFilter = {
101
- ...filter,
102
- // @ts-expect-error: No need the type
103
- aggregateType: "SUM",
104
- grouping: FILTER_GROUPING.DAY,
105
- };
106
-
107
- test("Filter 1", () => {
108
- const result = getFilterId(filter);
109
- expect(result).toBe("global|S123|D123|C123|equals");
110
- });
111
-
112
- test("Filter with Grouping and Aggregate", () => {
113
- const result = getFilterId(filter2);
114
- expect(result).toBe("global|S123|D123|C123|equals|day|sum");
115
- });
116
-
117
- test("With index", () => {
118
- const result = getFilterId(filter2, 4);
119
- expect(result).toBe("global|S123|D123|C123|equals|day|sum|4");
120
- });
121
- });
@@ -1,61 +0,0 @@
1
- import { COLUMN, FORMULA, IDataset } from "@qrvey/utils";
2
-
3
- export const __dataset1: IDataset = {
4
- qrveyid: "D123",
5
- label: "Dataset 123",
6
- options: [
7
- {
8
- id: "C123",
9
- label: "Column 123",
10
- qrveyid: "D123",
11
- type: COLUMN.TEXT_LABEL,
12
- },
13
- {
14
- id: "C456",
15
- label: "Column 456",
16
- qrveyid: "D123",
17
- type: COLUMN.DATE,
18
- },
19
- {
20
- id: "C789",
21
- label: "Column 789",
22
- qrveyid: "D123",
23
- type: COLUMN.DATE,
24
- },
25
- ],
26
- };
27
-
28
- export const __dataset2: IDataset = {
29
- qrveyid: "D456",
30
- label: "Dataset 456",
31
- options: [
32
- {
33
- id: "C987",
34
- label: "Column 987",
35
- qrveyid: "D456",
36
- type: COLUMN.NUMERIC,
37
- },
38
- {
39
- id: "C654",
40
- label: "Column 654",
41
- qrveyid: "D456",
42
- type: COLUMN.FORMULA,
43
- formulaType: FORMULA.NUMBER,
44
- },
45
- ],
46
- };
47
-
48
- export const __dataset3: IDataset = {
49
- qrveyid: "D789",
50
- label: "Dataset 789",
51
- options: [
52
- {
53
- id: "C135",
54
- label: "Column 135",
55
- qrveyid: "D789",
56
- type: COLUMN.BUCKET,
57
- },
58
- ],
59
- };
60
-
61
- export const __datasets1: IDataset[] = [__dataset1, __dataset2, __dataset3];