@qrvey/utils 1.5.0-9 → 1.5.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 (292) hide show
  1. package/README.md +1 -1
  2. package/dist/charts/adapters/endpointData.js +27 -25
  3. package/dist/charts/adapters/endpointDataGet.js +15 -16
  4. package/dist/cjs/charts/adapters/endpointData.js +27 -25
  5. package/dist/cjs/charts/adapters/endpointDataGet.js +15 -16
  6. package/dist/cjs/column_format/helpers/columnTypeByChart.js +1 -2
  7. package/dist/cjs/column_format/helpers/defineTableChartFormat.js +3 -3
  8. package/dist/cjs/column_format/helpers/defineXYChartFormat.js +10 -17
  9. package/dist/cjs/columns/constants/COLUMN.js +1 -1
  10. package/dist/cjs/columns/constants/COLUMN_PROPERTY.js +2 -2
  11. package/dist/cjs/columns/helpers/getDatasetColumn.d.ts +9 -1
  12. package/dist/cjs/columns/helpers/getDatasetColumn.js +31 -4
  13. package/dist/cjs/columns/helpers/getDatasetColumnByDatasets.d.ts +6 -5
  14. package/dist/cjs/columns/helpers/getDatasetColumnByDatasets.js +22 -8
  15. package/dist/cjs/columns/helpers/getModelColumn.d.ts +4 -4
  16. package/dist/cjs/columns/helpers/getModelColumn.js +9 -19
  17. package/dist/cjs/columns/helpers/isComplexColumn.d.ts +5 -0
  18. package/dist/cjs/columns/helpers/isComplexColumn.js +5 -0
  19. package/dist/cjs/columns/helpers/isDateColumn.d.ts +5 -0
  20. package/dist/cjs/columns/helpers/isDateColumn.js +8 -1
  21. package/dist/cjs/columns/helpers/isNumericalColumn.d.ts +5 -0
  22. package/dist/cjs/columns/helpers/isNumericalColumn.js +7 -1
  23. package/dist/cjs/dates/adapters/dateToHms.d.ts +1 -1
  24. package/dist/cjs/dates/adapters/dateToHms.js +6 -8
  25. package/dist/cjs/dates/adapters/dateToMdyDate.js +6 -9
  26. package/dist/cjs/dates/adapters/dateToMonthYear.js +6 -4
  27. package/dist/cjs/dates/adapters/dateToQuarterYear.d.ts +2 -2
  28. package/dist/cjs/dates/adapters/dateToQuarterYear.js +8 -6
  29. package/dist/cjs/dates/adapters/dateToWeekYear.js +5 -3
  30. package/dist/cjs/dates/adapters/dateToYear.d.ts +1 -1
  31. package/dist/cjs/dates/adapters/dateToYear.js +6 -4
  32. package/dist/cjs/dates/adapters/weekYearToDate.js +1 -6
  33. package/dist/cjs/dates/constants/DATE_DISTINCT_PROPERTY.js +1 -1
  34. package/dist/cjs/dates/constants/DATE_FORMAT.js +7 -7
  35. package/dist/cjs/dates/constants/DATE_FORMATS.d.ts +1 -0
  36. package/dist/cjs/dates/constants/DATE_FORMATS.js +22 -0
  37. package/dist/cjs/dates/constants/DATE_GROUPING_ALL_PROPERTIES.d.ts +1 -0
  38. package/dist/cjs/dates/constants/DATE_GROUPING_ALL_PROPERTIES.js +9 -0
  39. package/dist/cjs/dates/constants/DATE_REGULAR_EXPRESSIONS.d.ts +1 -0
  40. package/dist/cjs/dates/constants/DATE_REGULAR_EXPRESSIONS.js +23 -0
  41. package/dist/cjs/dates/constants/DATE_REGULAR_EXPRESSION_ARRAY_BY_FORMAT.d.ts +3 -0
  42. package/dist/cjs/dates/constants/DATE_REGULAR_EXPRESSION_ARRAY_BY_FORMAT.js +40 -0
  43. package/dist/cjs/dates/constants/index.d.ts +4 -0
  44. package/dist/cjs/dates/constants/index.js +4 -0
  45. package/dist/cjs/dates/helpers/{includeDateTokens.d.ts → areIncludedDateTokens.d.ts} +1 -1
  46. package/dist/cjs/dates/helpers/{includeDateTokens.js → areIncludedDateTokens.js} +5 -4
  47. package/dist/cjs/dates/helpers/getDateFormatRegularExpressionInArray.d.ts +2 -2
  48. package/dist/cjs/dates/helpers/getDateFormatRegularExpressionInArray.js +9 -42
  49. package/dist/{dates/range → cjs/dates/helpers}/getDateRange.d.ts +3 -3
  50. package/dist/cjs/dates/{range → helpers}/getDateRange.js +73 -69
  51. package/dist/cjs/dates/helpers/getFormattedDateByFormat.d.ts +1 -0
  52. package/dist/cjs/dates/helpers/getFormattedDateByFormat.js +17 -17
  53. package/dist/cjs/dates/helpers/getSeparatorByDateFormat.d.ts +1 -1
  54. package/dist/cjs/dates/helpers/getSeparatorByDateFormat.js +1 -1
  55. package/dist/cjs/dates/helpers/getWeek.d.ts +6 -4
  56. package/dist/cjs/dates/helpers/getWeek.js +6 -3
  57. package/dist/cjs/dates/helpers/index.d.ts +4 -1
  58. package/dist/cjs/dates/helpers/index.js +4 -1
  59. package/dist/cjs/dates/helpers/isValidPotentialDate.d.ts +6 -0
  60. package/dist/cjs/dates/helpers/isValidPotentialDate.js +18 -0
  61. package/dist/cjs/dates/index.d.ts +0 -1
  62. package/dist/cjs/dates/index.js +0 -1
  63. package/dist/cjs/dates/relative/constants/RELATIVE_UNIT_INFO_LIST.js +5 -5
  64. package/dist/cjs/filters/adapters/FDToFlatUI.js +4 -4
  65. package/dist/cjs/filters/adapters/FDToUI.js +3 -3
  66. package/dist/cjs/filters/adapters/UIToFD.js +3 -3
  67. package/dist/cjs/filters/adapters/UIToFlatUI.js +3 -3
  68. package/dist/cjs/filters/adapters/UIToOldLogic.js +6 -6
  69. package/dist/cjs/filters/adapters/adaptFilterData.js +7 -7
  70. package/dist/cjs/filters/adapters/flatUIToFD.js +24 -24
  71. package/dist/cjs/filters/adapters/flatUIToOldLogic.js +42 -49
  72. package/dist/cjs/filters/adapters/flatUIToUI.js +29 -29
  73. package/dist/cjs/filters/adapters/index.d.ts +0 -1
  74. package/dist/cjs/filters/adapters/index.js +0 -1
  75. package/dist/cjs/filters/adapters/logicToFlatUI.js +6 -8
  76. package/dist/cjs/filters/constants/common/FILTER_TOKENS_STRUCTURE_TYPE.d.ts +2 -1
  77. package/dist/cjs/filters/constants/common/FILTER_TOKENS_STRUCTURE_TYPE.js +1 -0
  78. package/dist/cjs/filters/helpers/OLD_getAggFilters.js +5 -4
  79. package/dist/cjs/filters/helpers/backend/buildExpression.js +1 -1
  80. package/dist/cjs/filters/helpers/backend/buildFilters.js +6 -16
  81. package/dist/cjs/filters/helpers/backend/getBackendValidator.js +1 -1
  82. package/dist/cjs/filters/helpers/backend/getBackendValues.js +1 -3
  83. package/dist/cjs/filters/helpers/backend/getLogicByDatasets.js +2 -2
  84. package/dist/cjs/filters/helpers/backend/getLogicByDatasetsColumns.js +2 -2
  85. package/dist/cjs/filters/helpers/backend/getLogicByScopes.js +2 -2
  86. package/dist/cjs/filters/helpers/backend/getLogicByScopesHierarchy.js +0 -2
  87. package/dist/cjs/filters/helpers/common/excludeFiltersByAggregateColumn.js +3 -3
  88. package/dist/cjs/filters/helpers/common/excludeFiltersByParams.js +7 -9
  89. package/dist/cjs/filters/helpers/common/excludeFiltersByScopes.js +3 -3
  90. package/dist/cjs/filters/helpers/common/getFilterLabel.js +1 -1
  91. package/dist/cjs/filters/helpers/common/getFiltersByAggregateColumn.js +3 -3
  92. package/dist/cjs/filters/helpers/common/getFiltersByParams.js +15 -17
  93. package/dist/cjs/filters/helpers/common/getFiltersByScopes.js +3 -3
  94. package/dist/cjs/filters/helpers/common/getFiltersByScopesIds.js +4 -4
  95. package/dist/cjs/filters/helpers/common/getFiltersByVisibility.js +4 -4
  96. package/dist/cjs/filters/helpers/common/mergeFilters.js +23 -19
  97. package/dist/cjs/filters/helpers/common/mergeValues.js +2 -2
  98. package/dist/cjs/filters/helpers/filtersTokensToString.js +4 -1
  99. package/dist/cjs/filters/helpers/getAggFiltersFromFilterData.js +2 -2
  100. package/dist/cjs/filters/helpers/getTokensFromFilters.js +17 -3
  101. package/dist/cjs/filters/helpers/ui/excludeUIFiltersByAggregate.js +2 -2
  102. package/dist/cjs/filters/helpers/ui/excludeUIFlatFiltersByScopes.js +2 -2
  103. package/dist/cjs/filters/helpers/ui/getUIFlatFilterByParams.js +3 -3
  104. package/dist/cjs/filters/helpers/ui/getUIFlatFiltersByParams.js +2 -2
  105. package/dist/cjs/filters/helpers/ui/getUIFlatFiltersByScopes.js +2 -2
  106. package/dist/cjs/filters/helpers/ui/getUIValues.js +9 -11
  107. package/dist/cjs/filters/helpers/ui/transformFilterValues.js +1 -3
  108. package/dist/cjs/filters/services/Filters.api.d.ts +4 -4
  109. package/dist/cjs/filters/services/Filters.api.js +7 -7
  110. package/dist/cjs/filters/services/UChartApi.d.ts +11 -11
  111. package/dist/cjs/filters/services/UChartApi.js +176 -185
  112. package/dist/cjs/filters/services/UChartPaginationApi.d.ts +13 -13
  113. package/dist/cjs/filters/services/UChartPaginationApi.js +198 -212
  114. package/dist/cjs/format/duration/addDurationFormat.d.ts +1 -1
  115. package/dist/cjs/format/duration/addDurationFormat.js +2 -2
  116. package/dist/cjs/format/duration/durationFormatter.d.ts +1 -1
  117. package/dist/cjs/format/duration/durationFormatter.js +7 -6
  118. package/dist/cjs/format/format.js +38 -33
  119. package/dist/cjs/format/localization.js +1 -2
  120. package/dist/cjs/general/mix/importScripts.js +8 -14
  121. package/dist/cjs/general/mix/randomId.js +11 -10
  122. package/dist/cjs/general/object/get.js +4 -4
  123. package/dist/cjs/general/object/getAttribute.js +1 -1
  124. package/dist/cjs/general/object/mapValues.js +2 -2
  125. package/dist/cjs/general/object/mergeDeep.js +6 -4
  126. package/dist/cjs/general/object/serialize.js +3 -3
  127. package/dist/cjs/general/string/padLeadingZeros.js +2 -2
  128. package/dist/cjs/globalization/helpers/getI18nDateGroupLabel.js +13 -10
  129. package/dist/cjs/globalization/helpers/getReverseI18nGroupLabel.js +12 -9
  130. package/dist/cjs/globalization/interfaces/II18nResource.d.ts +1 -1
  131. package/dist/cjs/globalization/interfaces/chart_builder/II18nChartBuilderAxisStyle.d.ts +9 -0
  132. package/dist/cjs/globalization/interfaces/chart_builder/II18nChartBuilderDurationParts.d.ts +1 -0
  133. package/dist/cjs/globalization/interfaces/common/II18nCommon.d.ts +2 -0
  134. package/dist/cjs/globalization/interfaces/filters/II18nTokenBox.d.ts +1 -0
  135. package/dist/cjs/globalization/labels/I18N_DEFAULT.js +1 -1
  136. package/dist/cjs/globalization/labels/chart_builder/I18N_CHART_BUILDER.js +1 -0
  137. package/dist/cjs/globalization/labels/chart_builder/I18N_CHART_BUILDER_STYLE_OPTIONS.js +13 -4
  138. package/dist/cjs/globalization/labels/common/I18N_COMMON.js +4 -0
  139. package/dist/cjs/qrvey/helpers/getLookupAnswers.js +4 -6
  140. package/dist/cjs/qrvey/helpers/getValueWithSuffixes.js +1 -1
  141. package/dist/cjs/services/adapters/index.d.ts +2 -1
  142. package/dist/cjs/services/adapters/index.js +2 -1
  143. package/dist/cjs/services/api/getAllDatasets.api.js +6 -8
  144. package/dist/cjs/services/helpers/Request.js +5 -4
  145. package/dist/column_format/helpers/columnTypeByChart.js +1 -2
  146. package/dist/column_format/helpers/defineTableChartFormat.js +4 -4
  147. package/dist/column_format/helpers/defineXYChartFormat.js +10 -17
  148. package/dist/columns/constants/COLUMN.js +1 -1
  149. package/dist/columns/constants/COLUMN_PROPERTY.js +2 -2
  150. package/dist/columns/helpers/getDatasetColumn.d.ts +9 -1
  151. package/dist/columns/helpers/getDatasetColumn.js +31 -4
  152. package/dist/columns/helpers/getDatasetColumnByDatasets.d.ts +6 -5
  153. package/dist/columns/helpers/getDatasetColumnByDatasets.js +22 -8
  154. package/dist/columns/helpers/getModelColumn.d.ts +4 -4
  155. package/dist/columns/helpers/getModelColumn.js +9 -19
  156. package/dist/columns/helpers/isComplexColumn.d.ts +5 -0
  157. package/dist/columns/helpers/isComplexColumn.js +5 -0
  158. package/dist/columns/helpers/isDateColumn.d.ts +5 -0
  159. package/dist/columns/helpers/isDateColumn.js +8 -1
  160. package/dist/columns/helpers/isNumericalColumn.d.ts +5 -0
  161. package/dist/columns/helpers/isNumericalColumn.js +7 -1
  162. package/dist/dates/adapters/dateToHms.d.ts +1 -1
  163. package/dist/dates/adapters/dateToHms.js +6 -8
  164. package/dist/dates/adapters/dateToMdyDate.js +6 -9
  165. package/dist/dates/adapters/dateToMonthYear.js +6 -4
  166. package/dist/dates/adapters/dateToQuarterYear.d.ts +2 -2
  167. package/dist/dates/adapters/dateToQuarterYear.js +8 -6
  168. package/dist/dates/adapters/dateToWeekYear.js +5 -3
  169. package/dist/dates/adapters/dateToYear.d.ts +1 -1
  170. package/dist/dates/adapters/dateToYear.js +6 -4
  171. package/dist/dates/adapters/weekYearToDate.js +1 -6
  172. package/dist/dates/constants/DATE_DISTINCT_PROPERTY.js +1 -1
  173. package/dist/dates/constants/DATE_FORMAT.js +7 -7
  174. package/dist/dates/constants/DATE_FORMATS.d.ts +1 -0
  175. package/dist/dates/constants/DATE_FORMATS.js +19 -0
  176. package/dist/dates/constants/DATE_GROUPING_ALL_PROPERTIES.d.ts +1 -0
  177. package/dist/dates/constants/DATE_GROUPING_ALL_PROPERTIES.js +6 -0
  178. package/dist/dates/constants/DATE_REGULAR_EXPRESSIONS.d.ts +1 -0
  179. package/dist/dates/constants/DATE_REGULAR_EXPRESSIONS.js +20 -0
  180. package/dist/dates/constants/DATE_REGULAR_EXPRESSION_ARRAY_BY_FORMAT.d.ts +3 -0
  181. package/dist/dates/constants/DATE_REGULAR_EXPRESSION_ARRAY_BY_FORMAT.js +37 -0
  182. package/dist/dates/constants/index.d.ts +4 -0
  183. package/dist/dates/constants/index.js +4 -0
  184. package/dist/dates/helpers/{includeDateTokens.d.ts → areIncludedDateTokens.d.ts} +1 -1
  185. package/dist/dates/helpers/{includeDateTokens.js → areIncludedDateTokens.js} +3 -2
  186. package/dist/dates/helpers/getDateFormatRegularExpressionInArray.d.ts +2 -2
  187. package/dist/dates/helpers/getDateFormatRegularExpressionInArray.js +9 -42
  188. package/dist/{cjs/dates/range → dates/helpers}/getDateRange.d.ts +3 -3
  189. package/dist/dates/{range → helpers}/getDateRange.js +73 -69
  190. package/dist/dates/helpers/getFormattedDateByFormat.d.ts +1 -0
  191. package/dist/dates/helpers/getFormattedDateByFormat.js +17 -17
  192. package/dist/dates/helpers/getSeparatorByDateFormat.d.ts +1 -1
  193. package/dist/dates/helpers/getSeparatorByDateFormat.js +1 -1
  194. package/dist/dates/helpers/getWeek.d.ts +6 -4
  195. package/dist/dates/helpers/getWeek.js +6 -3
  196. package/dist/dates/helpers/index.d.ts +4 -1
  197. package/dist/dates/helpers/index.js +4 -1
  198. package/dist/dates/helpers/isValidPotentialDate.d.ts +6 -0
  199. package/dist/dates/helpers/isValidPotentialDate.js +14 -0
  200. package/dist/dates/index.d.ts +0 -1
  201. package/dist/dates/index.js +0 -1
  202. package/dist/dates/relative/constants/RELATIVE_UNIT_INFO_LIST.js +5 -5
  203. package/dist/filters/adapters/FDToFlatUI.js +4 -4
  204. package/dist/filters/adapters/FDToUI.js +3 -3
  205. package/dist/filters/adapters/UIToFD.js +3 -3
  206. package/dist/filters/adapters/UIToFlatUI.js +3 -3
  207. package/dist/filters/adapters/UIToOldLogic.js +6 -6
  208. package/dist/filters/adapters/adaptFilterData.js +7 -7
  209. package/dist/filters/adapters/flatUIToFD.js +24 -24
  210. package/dist/filters/adapters/flatUIToOldLogic.js +42 -49
  211. package/dist/filters/adapters/flatUIToUI.js +29 -29
  212. package/dist/filters/adapters/index.d.ts +0 -1
  213. package/dist/filters/adapters/index.js +0 -1
  214. package/dist/filters/adapters/logicToFlatUI.js +6 -8
  215. package/dist/filters/constants/common/FILTER_TOKENS_STRUCTURE_TYPE.d.ts +2 -1
  216. package/dist/filters/constants/common/FILTER_TOKENS_STRUCTURE_TYPE.js +1 -0
  217. package/dist/filters/helpers/OLD_getAggFilters.js +5 -4
  218. package/dist/filters/helpers/backend/buildExpression.js +1 -1
  219. package/dist/filters/helpers/backend/buildFilters.js +6 -16
  220. package/dist/filters/helpers/backend/getBackendValidator.js +1 -1
  221. package/dist/filters/helpers/backend/getBackendValues.js +1 -3
  222. package/dist/filters/helpers/backend/getLogicByDatasets.js +2 -2
  223. package/dist/filters/helpers/backend/getLogicByDatasetsColumns.js +2 -2
  224. package/dist/filters/helpers/backend/getLogicByScopes.js +2 -2
  225. package/dist/filters/helpers/backend/getLogicByScopesHierarchy.js +0 -2
  226. package/dist/filters/helpers/common/excludeFiltersByAggregateColumn.js +3 -3
  227. package/dist/filters/helpers/common/excludeFiltersByParams.js +7 -9
  228. package/dist/filters/helpers/common/excludeFiltersByScopes.js +3 -3
  229. package/dist/filters/helpers/common/getFilterLabel.js +1 -1
  230. package/dist/filters/helpers/common/getFiltersByAggregateColumn.js +3 -3
  231. package/dist/filters/helpers/common/getFiltersByParams.js +15 -17
  232. package/dist/filters/helpers/common/getFiltersByScopes.js +3 -3
  233. package/dist/filters/helpers/common/getFiltersByScopesIds.js +4 -4
  234. package/dist/filters/helpers/common/getFiltersByVisibility.js +4 -4
  235. package/dist/filters/helpers/common/mergeFilters.js +23 -19
  236. package/dist/filters/helpers/common/mergeValues.js +2 -2
  237. package/dist/filters/helpers/filtersTokensToString.js +4 -1
  238. package/dist/filters/helpers/getAggFiltersFromFilterData.js +2 -2
  239. package/dist/filters/helpers/getTokensFromFilters.js +17 -3
  240. package/dist/filters/helpers/ui/excludeUIFiltersByAggregate.js +2 -2
  241. package/dist/filters/helpers/ui/excludeUIFlatFiltersByScopes.js +2 -2
  242. package/dist/filters/helpers/ui/getUIFlatFilterByParams.js +3 -3
  243. package/dist/filters/helpers/ui/getUIFlatFiltersByParams.js +2 -2
  244. package/dist/filters/helpers/ui/getUIFlatFiltersByScopes.js +2 -2
  245. package/dist/filters/helpers/ui/getUIValues.js +9 -11
  246. package/dist/filters/helpers/ui/transformFilterValues.js +1 -3
  247. package/dist/filters/services/Filters.api.d.ts +4 -4
  248. package/dist/filters/services/Filters.api.js +7 -7
  249. package/dist/filters/services/UChartApi.d.ts +11 -11
  250. package/dist/filters/services/UChartApi.js +176 -185
  251. package/dist/filters/services/UChartPaginationApi.d.ts +13 -13
  252. package/dist/filters/services/UChartPaginationApi.js +198 -212
  253. package/dist/format/duration/addDurationFormat.d.ts +1 -1
  254. package/dist/format/duration/addDurationFormat.js +2 -2
  255. package/dist/format/duration/durationFormatter.d.ts +1 -1
  256. package/dist/format/duration/durationFormatter.js +7 -6
  257. package/dist/format/format.js +38 -33
  258. package/dist/format/localization.js +1 -2
  259. package/dist/general/mix/importScripts.js +8 -14
  260. package/dist/general/mix/randomId.js +11 -10
  261. package/dist/general/object/get.js +4 -4
  262. package/dist/general/object/getAttribute.js +1 -1
  263. package/dist/general/object/mapValues.js +2 -2
  264. package/dist/general/object/mergeDeep.js +6 -4
  265. package/dist/general/object/serialize.js +3 -3
  266. package/dist/general/string/padLeadingZeros.js +2 -2
  267. package/dist/globalization/helpers/getI18nDateGroupLabel.js +13 -10
  268. package/dist/globalization/helpers/getReverseI18nGroupLabel.js +12 -9
  269. package/dist/globalization/interfaces/II18nResource.d.ts +1 -1
  270. package/dist/globalization/interfaces/chart_builder/II18nChartBuilderAxisStyle.d.ts +9 -0
  271. package/dist/globalization/interfaces/chart_builder/II18nChartBuilderDurationParts.d.ts +1 -0
  272. package/dist/globalization/interfaces/common/II18nCommon.d.ts +2 -0
  273. package/dist/globalization/interfaces/filters/II18nTokenBox.d.ts +1 -0
  274. package/dist/globalization/labels/I18N_DEFAULT.js +2 -2
  275. package/dist/globalization/labels/chart_builder/I18N_CHART_BUILDER.js +1 -0
  276. package/dist/globalization/labels/chart_builder/I18N_CHART_BUILDER_STYLE_OPTIONS.js +13 -4
  277. package/dist/globalization/labels/common/I18N_COMMON.js +4 -0
  278. package/dist/qrvey/helpers/getLookupAnswers.js +4 -6
  279. package/dist/qrvey/helpers/getValueWithSuffixes.js +1 -1
  280. package/dist/services/adapters/index.d.ts +2 -1
  281. package/dist/services/adapters/index.js +2 -1
  282. package/dist/services/api/getAllDatasets.api.js +6 -8
  283. package/dist/services/helpers/Request.js +5 -4
  284. package/package.json +5 -5
  285. package/dist/cjs/dates/range/index.d.ts +0 -1
  286. package/dist/cjs/dates/range/index.js +0 -17
  287. package/dist/cjs/filters/adapters/transformFilters.d.ts +0 -60
  288. package/dist/cjs/filters/adapters/transformFilters.js +0 -427
  289. package/dist/dates/range/index.d.ts +0 -1
  290. package/dist/dates/range/index.js +0 -1
  291. package/dist/filters/adapters/transformFilters.d.ts +0 -60
  292. package/dist/filters/adapters/transformFilters.js +0 -423
@@ -1,423 +0,0 @@
1
- import { isTokenLabel } from "../../tokens/isTokenLabel";
2
- import { FILTER_VALIDATOR } from "../constants/common/FILTER_VALIDATOR";
3
- import { FILTER_SCOPE } from "../constants/common/FILTER_SCOPE";
4
- import { FILTER_SECTION } from "../constants/common/FILTER_SECTION";
5
- import { FILTER_BACKEND_VALIDATOR } from "../constants/backend/FILTER_BACKEND_VALIDATOR";
6
- import { _get } from "../../general/object/get";
7
- import { capitalize } from "../../general/string/capitalize";
8
- /**
9
- * Transform the old filters structure into the new one
10
- *
11
- * @param {Object} oldFiltersObj an object with the old filters structure
12
- * @param {String} section could be 'ANALYZE', 'PB', 'UM' or any other value. Deafult is 'ANYWHERE'
13
- *
14
- * @returns {Object} an object with the new filters structure
15
- *
16
- * @example
17
- *
18
- * const oldPreferenceFilters = {
19
- * "WWXHAULtR-_-xYOQAdpqT__ENABLED": true,
20
- * "WWXHAULtR-_-xYOQAdpqT__ALL--ENABLED": true,
21
- * "WWXHAULtR-_-xYOQAdpqT__COLLAPSED": false,
22
- * "WWXHAULtR-_-xYOQAdpqT__LABEL": "GLOBAL",
23
- * "WWXHAULtR-_-xYOQAdpqT-_-AK4M8UV2": {
24
- * "formulaId": null,
25
- * "panelId": null,
26
- * "values": [
27
- * {
28
- * "EQUALS": [
29
- * {
30
- * "id": "AK4M8UV2a0",
31
- * "value": "A",
32
- * "enabled": true,
33
- * "imageUrl": null
34
- * },
35
- * {
36
- * "id": "AK4M8UV2a1",
37
- * "value": "B",
38
- * "enabled": true,
39
- * "imageUrl": null
40
- * }
41
- * ]
42
- * }
43
- * ],
44
- * "bucketId": null,
45
- * "text": "MC",
46
- * "title": "MC",
47
- * "type": "SINGLE_CHOICE",
48
- * "qid": "AK4M8UV2",
49
- * "dataset": {
50
- * "sourceid": "xYOQAdpqT",
51
- * "name": "Form All Questions",
52
- * "qrveyid": "xYOQAdpqT",
53
- * "text": "Form All Questions",
54
- * "linkid": 0
55
- * },
56
- * "enabled": true,
57
- * "linked": null
58
- * }
59
- * };
60
- *
61
- * const filterData = transformFilters(oldPreferenceFilters, 'ANALYZE');
62
- */
63
- export function transformFilters(oldFiltersObj = {}, section = FILTER_SECTION.ANYWHERE) {
64
- const filterData = { enabled: true, logic: [], section };
65
- const tempScopes = {};
66
- Object.keys(oldFiltersObj).forEach((key) => {
67
- if (key.endsWith("__ALL--ENABLED"))
68
- filterData.enabled = oldFiltersObj[key];
69
- if (!key.endsWith("ENABLED") &&
70
- !key.endsWith("LABEL") &&
71
- !key.endsWith("COLLAPSED")) {
72
- const filterSeparator = "-_-";
73
- const keyArray = key.split(filterSeparator);
74
- const tempArray = [...keyArray];
75
- tempArray.pop();
76
- let enabledKey = "__ENABLED";
77
- let collapsedKey = "__COLLAPSED";
78
- let labelKey = "__LABEL";
79
- if (keyArray.length === 5) {
80
- tempArray.pop();
81
- enabledKey = "__PANELS--ENABLED";
82
- collapsedKey = "__PANELS--COLLAPSED";
83
- labelKey = "__PANELS--LABEL";
84
- }
85
- const keyBase = tempArray.join(filterSeparator);
86
- const scopeLabel = getScopeLabel(oldFiltersObj[keyBase + labelKey]);
87
- const scopeId = tempArray[tempArray.length - 1] !== "VIEW"
88
- ? tempArray[tempArray.length - 1]
89
- : undefined;
90
- const scopeKey = `${scopeLabel}|${scopeId}`;
91
- if (!tempScopes[scopeKey]) {
92
- tempScopes[scopeKey] = {
93
- enabled: oldFiltersObj[keyBase + enabledKey],
94
- scope: scopeLabel,
95
- filters: [],
96
- uiExtras: {
97
- scopeid: scopeId,
98
- collapsed: oldFiltersObj[keyBase + collapsedKey],
99
- section,
100
- },
101
- };
102
- }
103
- const filtersObj = validateComplexTypes(oldFiltersObj[key], Object.keys(oldFiltersObj[key].values[0]));
104
- const validations = Object.keys(filtersObj.values[0]);
105
- tempScopes[scopeKey].filters.push({
106
- operator: "AND",
107
- expressions: [
108
- {
109
- operator: "OR",
110
- uiExtras: {
111
- expressionid: `${filtersObj.qid}|${scopeId}|${filtersObj.panelid || ""}`,
112
- },
113
- expressions: getExpressions(filtersObj, validations, scopeLabel, scopeId, section),
114
- },
115
- ],
116
- });
117
- }
118
- });
119
- filterData.logic = Object.values(tempScopes);
120
- return filterData;
121
- }
122
- function validateComplexTypes(oldFiltersItem, validations) {
123
- if (![
124
- "IMAGEUPLOAD",
125
- "TEXTFIELD",
126
- "LONGTEXT",
127
- "NAME",
128
- "ADDRESS",
129
- "USADDRESS",
130
- ].includes(oldFiltersItem.type))
131
- return oldFiltersItem;
132
- const complexFiltersItem = Object.assign(Object.assign({}, oldFiltersItem), { values: [{}] });
133
- validations.forEach((valKey) => {
134
- oldFiltersItem.values[0][valKey].forEach((value) => {
135
- const newKey = `${valKey}|${(value.targetFilter || value.property || "")
136
- .toLowerCase()
137
- .replace("_text", "")
138
- .replace("_type", "type")}`;
139
- if (!complexFiltersItem.values[0][newKey]) {
140
- complexFiltersItem.values[0][newKey] = [value];
141
- }
142
- else {
143
- complexFiltersItem.values[0][newKey].push(value);
144
- }
145
- });
146
- });
147
- return complexFiltersItem;
148
- }
149
- function getScopeLabel(oldScopeLabel) {
150
- switch (oldScopeLabel) {
151
- case "GLOBAL":
152
- return FILTER_SCOPE.GLOBAL;
153
- case "PAGE":
154
- return FILTER_SCOPE.PAGE;
155
- case "TAB":
156
- return FILTER_SCOPE.TAB;
157
- case "PANEL":
158
- return FILTER_SCOPE.CHART;
159
- default:
160
- return oldScopeLabel;
161
- }
162
- }
163
- function getValidationType(oldValidation, columnType, formulaType) {
164
- switch (oldValidation) {
165
- case "EQUALS":
166
- case "EQUAL":
167
- return FILTER_VALIDATOR.EQUALS;
168
- case "NOT_EQUALS":
169
- case "NOT_EQUAL":
170
- return FILTER_VALIDATOR.NOT_EQUAL;
171
- case "CONTAINS":
172
- case "CONTAIN":
173
- return FILTER_VALIDATOR.CONTAINS;
174
- case "NOT_CONTAINS":
175
- case "NOT_CONTAIN":
176
- return FILTER_VALIDATOR.NOT_CONTAIN;
177
- case "LESS_THAN":
178
- case "LESS_THAN_OR_EQUAL":
179
- return FILTER_VALIDATOR.LESS_THAN_EQUAL;
180
- case "GREATER_THAN":
181
- case "GREATER_THAN_OR_EQUAL":
182
- return FILTER_VALIDATOR.GREATER_THAN_EQUAL;
183
- case "BETWEEN":
184
- case "YEAR":
185
- case "MONTH_YEAR":
186
- case "QUARTER":
187
- case "WEEK":
188
- case "SECOND":
189
- case "MINUTE":
190
- case "HOUR":
191
- case "DAY":
192
- return ![columnType, formulaType].includes("DATE")
193
- ? FILTER_VALIDATOR.BETWEEN_INCLUSIVE
194
- : FILTER_BACKEND_VALIDATOR.RANGE;
195
- default:
196
- return oldValidation;
197
- }
198
- }
199
- function getValidator(oldValidation) {
200
- switch (oldValidation) {
201
- case "EQUALS":
202
- case "EQUAL":
203
- case "YEAR":
204
- case "MONTH_YEAR":
205
- case "QUARTER":
206
- case "WEEK":
207
- case "SECOND":
208
- case "MINUTE":
209
- case "HOUR":
210
- case "DAY":
211
- return FILTER_VALIDATOR.EQUALS;
212
- case "NOT_EQUALS":
213
- case "NOT_EQUAL":
214
- return FILTER_VALIDATOR.NOT_EQUAL;
215
- case "CONTAINS":
216
- case "CONTAIN":
217
- return FILTER_VALIDATOR.CONTAINS;
218
- case "NOT_CONTAINS":
219
- case "NOT_CONTAIN":
220
- return FILTER_VALIDATOR.NOT_CONTAIN;
221
- case "BETWEEN":
222
- return FILTER_VALIDATOR.BETWEEN_INCLUSIVE;
223
- case "LESS_THAN":
224
- case "LESS_THAN_OR_EQUAL":
225
- return FILTER_VALIDATOR.LESS_THAN_EQUAL;
226
- case "GREATER_THAN":
227
- case "GREATER_THAN_OR_EQUAL":
228
- return FILTER_VALIDATOR.GREATER_THAN_EQUAL;
229
- case "IS_EMPTY":
230
- return FILTER_VALIDATOR.IS_NULL;
231
- case "IS_NOT_EMPTY":
232
- return FILTER_VALIDATOR.IS_NOT_NULL;
233
- default:
234
- return oldValidation;
235
- }
236
- }
237
- function getProperty(filterObjItem, validationKey) {
238
- if (filterObjItem.type === "IMAGE")
239
- return "answer_id";
240
- const value = _get(filterObjItem, `values[0]['${validationKey}'][0]`, {});
241
- const property = filterObjItem.property || value.property || value.targetFilter;
242
- return property && property.toUpperCase();
243
- }
244
- function getDateProperty(validationKey, columnType, formulaType) {
245
- if (![columnType, formulaType].includes("DATE"))
246
- return;
247
- return [
248
- "MONTH_YEAR",
249
- "YEAR",
250
- "QUARTER",
251
- "WEEK",
252
- "HOUR",
253
- "MINUTE",
254
- "SECOND",
255
- ].includes(validationKey)
256
- ? validationKey.split("_")[0].toLowerCase()
257
- : "day";
258
- }
259
- function getFilterRangeValue(range, minProp = "min", maxProp = "max", extras = {}) {
260
- return Object.assign({ [minProp]: range.from || range.gte, [maxProp]: range.to || range.lte }, extras);
261
- }
262
- function getUiRangeValue(oldValue) {
263
- if (oldValue.label)
264
- return (oldValue.label + "").replace("-", " ");
265
- const range = oldValue.range || oldValue;
266
- return `${range.from || range.gte} - ${range.to || range.lte}`;
267
- }
268
- function getRankingFBvalues(values) {
269
- const returnValues = [];
270
- values
271
- .map((vItem) => (Object.assign(Object.assign({}, vItem), { position: +vItem.position + 1 })))
272
- .forEach((vItem) => {
273
- const groupIndex = returnValues.findIndex((group) => group.every((groupItem) => groupItem.value.value !== vItem.value) &&
274
- group.every((groupItem) => groupItem.position !== vItem.position));
275
- const returnItem = {
276
- position: vItem.position,
277
- value: { enabled: vItem.enabled, value: vItem.value },
278
- };
279
- if (groupIndex === -1)
280
- returnValues.push([returnItem]);
281
- else
282
- returnValues[groupIndex].push(returnItem);
283
- });
284
- return returnValues;
285
- }
286
- function getValues(values, columnType, oldValidation = "EQUAL", destination = "value", formulaType) {
287
- switch (oldValidation) {
288
- case "BETWEEN":
289
- case "YEAR":
290
- case "MONTH_YEAR":
291
- return destination === "value"
292
- ? values.map((val) => getFilterRangeValue(val.value.range || val.value, "gte", "lte"))
293
- : destination === "uiValue"
294
- ? values.map((val) => getFilterRangeValue(val.value.range || val.value, "min", "max", {
295
- enabled: val.enabled,
296
- value: getUiRangeValue(val.value),
297
- validationLabel: oldValidation,
298
- }))
299
- : ["YEAR", "MONTH_YEAR", "QUARTER"].includes(oldValidation)
300
- ? values.map((item) => ({ value: getUiRangeValue(item.value) }))
301
- : values.map((val) => getFilterRangeValue(val.value.range || val.value));
302
- case "LESS_THAN":
303
- case "GREATER_THAN": {
304
- const prop = oldValidation === "LESS_THAN" ? "lte" : "gte";
305
- return destination === "value"
306
- ? values.map((val) => getFilterRangeValue({ [prop]: val.value }, "gte", "lte"))
307
- : destination === "uiValue"
308
- ? values.map((val) => getFilterRangeValue({ [prop]: val.value }, "min", "max", {
309
- enabled: val.enabled,
310
- value: val.value,
311
- }))
312
- : values.map((val) => getFilterRangeValue({ [prop]: val.value }));
313
- }
314
- case "IS_EMPTY":
315
- case "IS_NOT_EMPTY": {
316
- const valueClean = getValidator(oldValidation)
317
- .toLowerCase()
318
- .split("_")
319
- .map((v) => capitalize(v))
320
- .join(" ");
321
- return destination === "value"
322
- ? [valueClean]
323
- : destination === "uiValue"
324
- ? values.map((val) => ({ value: valueClean, enabled: val.enabled }))
325
- : [];
326
- }
327
- default:
328
- return getFilterEqualValues(values, columnType, destination, formulaType);
329
- }
330
- }
331
- function getFilterEqualValues(values, columnType, destination = "value", formulaType) {
332
- if (columnType === "RANKING") {
333
- return destination === "value"
334
- ? values.map((item) => ({ position: +item.position, value: item.value }))
335
- : destination === "uiValue"
336
- ? values.map((item) => ({
337
- value: getUiRangeValue({ from: item.value, to: +item.position + 1 }),
338
- enabled: true,
339
- }))
340
- : getRankingFBvalues(values);
341
- }
342
- return destination === "value"
343
- ? values.map((item) => {
344
- let value = item.value;
345
- if ([columnType, formulaType].includes("DATE") &&
346
- !isTokenLabel(value)) {
347
- value = getFilterRangeValue(item.value.range || item.value, "gte", "lte");
348
- }
349
- else if (columnType === "YES_NO") {
350
- value = item.value.toLowerCase();
351
- }
352
- else if (columnType === "IMAGE") {
353
- value = item.id || item.answerid || item.answer_id;
354
- }
355
- else {
356
- value = String(item.value);
357
- }
358
- return value;
359
- })
360
- : values.map((item) => ({
361
- value: columnType === "YES_NO"
362
- ? item.value.toLowerCase()
363
- : [columnType, formulaType].includes("DATE")
364
- ? item.value.label || item.value
365
- : String(item.value),
366
- valueid: columnType === "EXPRESSION" ? undefined : item.id || item.answerid,
367
- enabled: item.enabled || true,
368
- }));
369
- }
370
- function getFormulaType(oldFiltersItem) {
371
- if (oldFiltersItem.formulaType)
372
- return oldFiltersItem.formulaType;
373
- if (oldFiltersItem.formulaId)
374
- return oldFiltersItem.type === "NUMERIC"
375
- ? "number"
376
- : oldFiltersItem.type === "DATE"
377
- ? "date"
378
- : "string";
379
- }
380
- function getExpressions(oldFiltersItem, validations, scopeLabel, scopeid, section) {
381
- const expressions = [];
382
- validations.forEach((valKey) => {
383
- const valKeyArray = valKey.split("|");
384
- const validationKey = valKeyArray[0];
385
- const property = valKeyArray[1] || getProperty(oldFiltersItem, validationKey);
386
- const formulaType = getFormulaType(oldFiltersItem);
387
- const questionType = formulaType ? "FORMULA" : oldFiltersItem.type;
388
- const expressionItem = {
389
- enabled: oldFiltersItem.enabled,
390
- property: property,
391
- qrveyid: oldFiltersItem.dataset.qrveyid,
392
- questionid: oldFiltersItem.qid,
393
- formulaType: formulaType,
394
- questionType: questionType,
395
- type: questionType,
396
- validationType: getValidationType(validationKey, questionType, formulaType && formulaType.toUpperCase()),
397
- uiExtras: {
398
- column: {
399
- dataset: {
400
- qrveyid: oldFiltersItem.dataset.qrveyid,
401
- name: oldFiltersItem.dataset.name,
402
- },
403
- formulaType: formulaType,
404
- id: oldFiltersItem.qid,
405
- qrveyid: oldFiltersItem.dataset.qrveyid,
406
- text: oldFiltersItem.text,
407
- type: questionType,
408
- },
409
- operator: "AND",
410
- property: getDateProperty(validationKey, questionType, formulaType && formulaType.toUpperCase()) || property,
411
- validator: getValidator(validationKey),
412
- panelid: oldFiltersItem.panelId,
413
- panelName: oldFiltersItem.panelId ? oldFiltersItem.title : undefined,
414
- uiHidden: false,
415
- scope: scopeLabel,
416
- scopeid,
417
- section,
418
- },
419
- };
420
- expressions.push(Object.assign(Object.assign({}, expressionItem), { value: getValues(oldFiltersItem.values[0][valKey], questionType, validationKey, "value", formulaType && formulaType.toUpperCase()), uiExtras: Object.assign(Object.assign({}, expressionItem.uiExtras), { values: getValues(oldFiltersItem.values[0][valKey], questionType, validationKey, "values", formulaType && formulaType.toUpperCase()), uiValue: getValues(oldFiltersItem.values[0][valKey], questionType, validationKey, "uiValue", formulaType && formulaType.toUpperCase()) }) }));
421
- });
422
- return expressions;
423
- }