@qrvey/utils 1.1.0-9 → 1.1.2-1

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 (444) hide show
  1. package/.eslintignore +5 -0
  2. package/.eslintrc.json +37 -0
  3. package/README.md +474 -285
  4. package/bitbucket-pipelines.yml +25 -0
  5. package/dist/cjs/constants/COLUMN.js +0 -1
  6. package/dist/cjs/constants/COLUMN_PROPERTY.d.ts +6 -0
  7. package/dist/cjs/constants/COLUMN_PROPERTY.js +0 -1
  8. package/dist/cjs/constants/COLUMN_PROPERTY_VALUE.js +4 -1
  9. package/dist/cjs/date/constants/DATE_DAY_HOURS.d.ts +1 -0
  10. package/dist/cjs/date/constants/DATE_DAY_HOURS.js +29 -0
  11. package/dist/cjs/date/constants/DATE_HOUR_MINUTES.d.ts +1 -0
  12. package/dist/cjs/date/constants/DATE_HOUR_MINUTES.js +65 -0
  13. package/dist/cjs/date/constants/DATE_MINUTE_SECONDS.d.ts +1 -0
  14. package/dist/cjs/date/constants/DATE_MINUTE_SECONDS.js +5 -0
  15. package/dist/cjs/date/constants/DATE_MONTH_DAYS.d.ts +1 -0
  16. package/dist/cjs/date/constants/DATE_MONTH_DAYS.js +36 -0
  17. package/dist/cjs/date/constants/DATE_PROPERTY.js +0 -1
  18. package/dist/cjs/date/constants/DATE_PROPERTY_VALUE.d.ts +8 -0
  19. package/dist/cjs/date/constants/DATE_PROPERTY_VALUE.js +17 -0
  20. package/dist/cjs/date/constants/DATE_P_PROPERTIES.d.ts +2 -0
  21. package/dist/cjs/date/constants/DATE_P_PROPERTIES.js +11 -0
  22. package/dist/cjs/date/constants/DATE_P_VALUES.d.ts +6 -0
  23. package/dist/cjs/date/constants/DATE_P_VALUES.js +8 -0
  24. package/dist/cjs/date/constants/DATE_TIME_P_VALUES.d.ts +6 -0
  25. package/dist/cjs/date/constants/DATE_TIME_P_VALUES.js +8 -0
  26. package/dist/cjs/date/constants/DATE_TIME_VALUES.js +1 -1
  27. package/dist/cjs/date/constants/DATE_WEEK_DAYS.d.ts +1 -0
  28. package/dist/cjs/date/constants/DATE_WEEK_DAYS.js +6 -0
  29. package/dist/cjs/date/constants/DATE_YEAR_DAYS.d.ts +1 -0
  30. package/dist/cjs/date/constants/DATE_YEAR_DAYS.js +370 -0
  31. package/dist/cjs/date/constants/DATE_YEAR_MONTHS.d.ts +1 -0
  32. package/dist/cjs/date/constants/DATE_YEAR_MONTHS.js +4 -0
  33. package/dist/cjs/date/constants/DATE_YEAR_QUARTERS.d.ts +1 -0
  34. package/dist/cjs/date/constants/DATE_YEAR_QUARTERS.js +4 -0
  35. package/dist/cjs/date/constants/index.d.ts +12 -0
  36. package/dist/cjs/date/constants/index.js +12 -0
  37. package/dist/cjs/date/range/getDateRange.js +26 -21
  38. package/dist/cjs/date/relative/Adapter.js +1 -1
  39. package/dist/cjs/date/relative/constants/DATE_FORMATS.d.ts +1 -1
  40. package/dist/cjs/date/relative/constants/DATE_FORMATS.js +3 -3
  41. package/dist/cjs/date/relative/helpers/formatStatement.js +6 -6
  42. package/dist/cjs/filters/adapters/FDToFlatUI.js +5 -12
  43. package/dist/cjs/filters/adapters/FDToUI.js +2 -3
  44. package/dist/cjs/filters/adapters/UIToFlatUI.js +5 -12
  45. package/dist/cjs/filters/adapters/UIToOldLogic.js +9 -1
  46. package/dist/cjs/filters/adapters/adaptFilterData.js +1 -1
  47. package/dist/cjs/filters/adapters/flatUIToFD.js +3 -7
  48. package/dist/cjs/filters/adapters/flatUIToOldLogic.js +41 -62
  49. package/dist/cjs/filters/adapters/flatUIToUI.js +2 -7
  50. package/dist/cjs/filters/adapters/logicToFlatUI.js +89 -74
  51. package/dist/cjs/filters/adapters/transformFilters.d.ts +1 -1
  52. package/dist/cjs/filters/adapters/transformFilters.js +18 -25
  53. package/dist/cjs/filters/constants/backend/FILTER_BACKEND_VALIDATOR.js +0 -1
  54. package/dist/cjs/filters/constants/common/FILTER_GROUPED_COLUMN_OPERATOR.d.ts +2 -0
  55. package/dist/cjs/filters/constants/common/FILTER_GROUPED_COLUMN_OPERATOR.js +4 -0
  56. package/dist/cjs/filters/constants/common/FILTER_OPERATOR.js +0 -1
  57. package/dist/cjs/filters/constants/common/FILTER_VALIDATOR.js +0 -1
  58. package/dist/cjs/filters/constants/common/index.d.ts +1 -0
  59. package/dist/cjs/filters/constants/common/index.js +1 -0
  60. package/dist/cjs/filters/helpers/backend/buildExpression.d.ts +6 -0
  61. package/dist/cjs/filters/helpers/backend/buildExpression.js +9 -2
  62. package/dist/cjs/filters/helpers/backend/getBackendGroupValue.js +2 -1
  63. package/dist/cjs/filters/helpers/backend/getBackendProperty.js +7 -2
  64. package/dist/cjs/filters/helpers/backend/getBackendValues.js +34 -18
  65. package/dist/cjs/filters/helpers/common/arePropertiesDateP.d.ts +8 -0
  66. package/dist/cjs/filters/helpers/common/arePropertiesDateP.js +16 -0
  67. package/dist/cjs/filters/helpers/common/getFilterColumnLabel.js +1 -1
  68. package/dist/cjs/filters/helpers/common/getFilterid.js +1 -1
  69. package/dist/cjs/filters/helpers/common/getFiltersByParams.js +5 -5
  70. package/dist/cjs/filters/helpers/common/getFiltersByVisibility.js +1 -1
  71. package/dist/cjs/filters/helpers/common/getMergeFiltersSettings.d.ts +7 -0
  72. package/dist/cjs/filters/helpers/common/getMergeFiltersSettings.js +16 -0
  73. package/dist/cjs/filters/helpers/common/getParamsToGetFilterSettings.d.ts +5 -0
  74. package/dist/cjs/filters/helpers/common/getParamsToGetFilterSettings.js +11 -1
  75. package/dist/cjs/filters/helpers/common/index.d.ts +2 -0
  76. package/dist/cjs/filters/helpers/common/index.js +2 -0
  77. package/dist/cjs/filters/helpers/common/mergeFilters.d.ts +2 -1
  78. package/dist/cjs/filters/helpers/common/mergeFilters.js +27 -10
  79. package/dist/cjs/filters/helpers/common/resolveDatasetConditions.js +1 -1
  80. package/dist/cjs/filters/helpers/common/resolveFilterConditions.js +2 -3
  81. package/dist/cjs/filters/helpers/common/resolveScopeConditions.js +1 -1
  82. package/dist/cjs/filters/helpers/getAggFiltersFromFilterData.d.ts +1 -1
  83. package/dist/cjs/filters/helpers/getAggFiltersFromFilterData.js +18 -19
  84. package/dist/cjs/filters/helpers/getScopesByHierarchy.js +2 -2
  85. package/dist/cjs/filters/helpers/ui/excludeUIFlatFiltersByScopes.d.ts +1 -1
  86. package/dist/cjs/filters/helpers/ui/excludeUIFlatFiltersByScopes.js +1 -1
  87. package/dist/cjs/filters/helpers/ui/getUIFlatFilterByParams.d.ts +1 -1
  88. package/dist/cjs/filters/helpers/ui/getUIFlatFilterByParams.js +1 -1
  89. package/dist/cjs/filters/helpers/ui/getUIFlatFiltersByParams.d.ts +1 -1
  90. package/dist/cjs/filters/helpers/ui/getUIFlatFiltersByParams.js +1 -1
  91. package/dist/cjs/filters/helpers/ui/getUIFlatFiltersByScopes.d.ts +1 -1
  92. package/dist/cjs/filters/helpers/ui/getUIFlatFiltersByScopes.js +1 -1
  93. package/dist/cjs/filters/helpers/ui/getUIValues.js +6 -5
  94. package/dist/cjs/filters/interfaces/OLD_IFilterDetail.d.ts +3 -0
  95. package/dist/cjs/filters/interfaces/common/IFSFilterExtras.d.ts +3 -0
  96. package/dist/cjs/filters/interfaces/common/IFSFilterExtrasInfo.d.ts +4 -0
  97. package/dist/cjs/filters/interfaces/common/IFSFilterExtrasInfo.js +2 -0
  98. package/dist/cjs/filters/interfaces/common/IFSMergeFiltersSettings.d.ts +7 -0
  99. package/dist/cjs/filters/interfaces/common/IFSMergeFiltersSettings.js +2 -0
  100. package/dist/cjs/filters/interfaces/common/IFSParamsToGetFilter.d.ts +2 -1
  101. package/dist/cjs/filters/interfaces/common/IFSParamsToGetFilterEnableds.d.ts +9 -0
  102. package/dist/cjs/filters/interfaces/common/IFSParamsToGetFilterEnableds.js +2 -0
  103. package/dist/cjs/filters/interfaces/common/IFSParamsToGetFilterSettings.d.ts +5 -0
  104. package/dist/cjs/filters/interfaces/common/index.d.ts +3 -0
  105. package/dist/cjs/filters/interfaces/common/index.js +3 -0
  106. package/dist/cjs/filters/interfaces/panel/IFPSettingsFilterPanelBodyScopeScope.d.ts +1 -0
  107. package/dist/cjs/filters/interfaces/panel/IFPSettingsFilterPanelHeader.d.ts +1 -0
  108. package/dist/cjs/filters/interfaces/panel/IFPSettingsFilterPanelSettings.d.ts +4 -0
  109. package/dist/cjs/filters/interfaces/panel/IFPSettingsFilterPanelSettingsScope.d.ts +7 -0
  110. package/dist/cjs/filters/interfaces/panel/IFPSettingsFilterPanelSettingsScope.js +2 -0
  111. package/dist/cjs/filters/interfaces/panel/index.d.ts +1 -0
  112. package/dist/cjs/filters/interfaces/panel/index.js +1 -0
  113. package/dist/cjs/format/definition.d.ts +3 -2
  114. package/dist/cjs/format/format.d.ts +1 -1
  115. package/dist/cjs/format/format.js +25 -26
  116. package/dist/cjs/general/array/delete.d.ts +4 -4
  117. package/dist/cjs/general/array/delete.js +8 -6
  118. package/dist/cjs/general/array/filterNestedTree.js +1 -1
  119. package/dist/cjs/general/array/flattenDeep.d.ts +1 -1
  120. package/dist/cjs/general/array/flattenDeep.js +4 -2
  121. package/dist/cjs/general/array/getFirstIndexFromArray.d.ts +1 -1
  122. package/dist/cjs/general/array/getFirstIndexFromArray.js +7 -5
  123. package/dist/cjs/general/array/getLastIndexFromArray.d.ts +1 -1
  124. package/dist/cjs/general/array/getLastIndexFromArray.js +6 -4
  125. package/dist/cjs/general/function/debounce.d.ts +1 -1
  126. package/dist/cjs/general/function/throttled.d.ts +1 -1
  127. package/dist/cjs/general/function/throttled.js +1 -1
  128. package/dist/cjs/general/mix/importScripts.d.ts +1 -1
  129. package/dist/cjs/general/mix/isEmpty.d.ts +5 -4
  130. package/dist/cjs/general/mix/isEmpty.js +12 -6
  131. package/dist/cjs/general/mix/randomId.d.ts +1 -1
  132. package/dist/cjs/general/mix/randomId.js +1 -2
  133. package/dist/cjs/general/mix/size.d.ts +1 -1
  134. package/dist/cjs/general/object/cloneDeep.d.ts +4 -4
  135. package/dist/cjs/general/object/cloneDeep.js +14 -6
  136. package/dist/cjs/general/object/get.d.ts +47 -15
  137. package/dist/cjs/general/object/get.js +61 -37
  138. package/dist/cjs/general/object/getAttribute.d.ts +1 -1
  139. package/dist/cjs/general/object/hasProperty.d.ts +1 -1
  140. package/dist/cjs/general/object/hasProperty.js +1 -1
  141. package/dist/cjs/general/object/index.d.ts +1 -0
  142. package/dist/cjs/general/object/index.js +1 -0
  143. package/dist/cjs/general/object/isObject.d.ts +6 -0
  144. package/dist/cjs/general/object/isObject.js +12 -0
  145. package/dist/cjs/general/object/mapValues.d.ts +1 -1
  146. package/dist/cjs/general/object/mapValues.js +0 -1
  147. package/dist/cjs/general/object/omit.js +1 -1
  148. package/dist/cjs/general/object/pick.js +0 -1
  149. package/dist/cjs/index.d.ts +2 -0
  150. package/dist/cjs/index.js +2 -0
  151. package/dist/cjs/qrvey/getColumnsLabel.js +4 -4
  152. package/dist/cjs/qrvey/index.d.ts +3 -0
  153. package/dist/cjs/qrvey/index.js +15 -0
  154. package/dist/cjs/tokens/index.d.ts +1 -0
  155. package/dist/cjs/tokens/index.js +13 -0
  156. package/dist/cjs/tokens/isTokenLabel.d.ts +6 -0
  157. package/dist/cjs/tokens/isTokenLabel.js +16 -0
  158. package/dist/constants/COLUMN.js +0 -1
  159. package/dist/constants/COLUMN_PROPERTY.d.ts +6 -0
  160. package/dist/constants/COLUMN_PROPERTY.js +0 -1
  161. package/dist/constants/COLUMN_PROPERTY_VALUE.js +4 -1
  162. package/dist/date/constants/DATE_DAY_HOURS.d.ts +1 -0
  163. package/dist/date/constants/DATE_DAY_HOURS.js +26 -0
  164. package/dist/date/constants/DATE_HOUR_MINUTES.d.ts +1 -0
  165. package/dist/date/constants/DATE_HOUR_MINUTES.js +62 -0
  166. package/dist/date/constants/DATE_MINUTE_SECONDS.d.ts +1 -0
  167. package/dist/date/constants/DATE_MINUTE_SECONDS.js +2 -0
  168. package/dist/date/constants/DATE_MONTH_DAYS.d.ts +1 -0
  169. package/dist/date/constants/DATE_MONTH_DAYS.js +33 -0
  170. package/dist/date/constants/DATE_PROPERTY.js +0 -1
  171. package/dist/date/constants/DATE_PROPERTY_VALUE.d.ts +8 -0
  172. package/dist/date/constants/DATE_PROPERTY_VALUE.js +14 -0
  173. package/dist/date/constants/DATE_P_PROPERTIES.d.ts +2 -0
  174. package/dist/date/constants/DATE_P_PROPERTIES.js +8 -0
  175. package/dist/date/constants/DATE_P_VALUES.d.ts +6 -0
  176. package/dist/date/constants/DATE_P_VALUES.js +5 -0
  177. package/dist/date/constants/DATE_TIME_P_VALUES.d.ts +6 -0
  178. package/dist/date/constants/DATE_TIME_P_VALUES.js +5 -0
  179. package/dist/date/constants/DATE_TIME_VALUES.js +1 -1
  180. package/dist/date/constants/DATE_WEEK_DAYS.d.ts +1 -0
  181. package/dist/date/constants/DATE_WEEK_DAYS.js +3 -0
  182. package/dist/date/constants/DATE_YEAR_DAYS.d.ts +1 -0
  183. package/dist/date/constants/DATE_YEAR_DAYS.js +367 -0
  184. package/dist/date/constants/DATE_YEAR_MONTHS.d.ts +1 -0
  185. package/dist/date/constants/DATE_YEAR_MONTHS.js +1 -0
  186. package/dist/date/constants/DATE_YEAR_QUARTERS.d.ts +1 -0
  187. package/dist/date/constants/DATE_YEAR_QUARTERS.js +1 -0
  188. package/dist/date/constants/index.d.ts +12 -0
  189. package/dist/date/constants/index.js +12 -0
  190. package/dist/date/range/getDateRange.js +26 -21
  191. package/dist/date/relative/Adapter.js +2 -2
  192. package/dist/date/relative/constants/DATE_FORMATS.d.ts +1 -1
  193. package/dist/date/relative/constants/DATE_FORMATS.js +3 -3
  194. package/dist/date/relative/helpers/formatStatement.js +7 -7
  195. package/dist/filters/adapters/FDToFlatUI.js +5 -12
  196. package/dist/filters/adapters/FDToUI.js +2 -3
  197. package/dist/filters/adapters/UIToFlatUI.js +5 -12
  198. package/dist/filters/adapters/UIToOldLogic.js +9 -1
  199. package/dist/filters/adapters/adaptFilterData.js +1 -1
  200. package/dist/filters/adapters/flatUIToFD.js +3 -7
  201. package/dist/filters/adapters/flatUIToOldLogic.js +42 -63
  202. package/dist/filters/adapters/flatUIToUI.js +3 -8
  203. package/dist/filters/adapters/logicToFlatUI.js +91 -76
  204. package/dist/filters/adapters/transformFilters.d.ts +1 -1
  205. package/dist/filters/adapters/transformFilters.js +19 -26
  206. package/dist/filters/constants/backend/FILTER_BACKEND_VALIDATOR.js +0 -1
  207. package/dist/filters/constants/common/FILTER_GROUPED_COLUMN_OPERATOR.d.ts +2 -0
  208. package/dist/filters/constants/common/FILTER_GROUPED_COLUMN_OPERATOR.js +1 -0
  209. package/dist/filters/constants/common/FILTER_OPERATOR.js +0 -1
  210. package/dist/filters/constants/common/FILTER_VALIDATOR.js +0 -1
  211. package/dist/filters/constants/common/index.d.ts +1 -0
  212. package/dist/filters/constants/common/index.js +1 -0
  213. package/dist/filters/helpers/backend/buildExpression.d.ts +6 -0
  214. package/dist/filters/helpers/backend/buildExpression.js +9 -2
  215. package/dist/filters/helpers/backend/getBackendGroupValue.js +2 -1
  216. package/dist/filters/helpers/backend/getBackendProperty.js +8 -3
  217. package/dist/filters/helpers/backend/getBackendValues.js +34 -18
  218. package/dist/filters/helpers/common/arePropertiesDateP.d.ts +8 -0
  219. package/dist/filters/helpers/common/arePropertiesDateP.js +12 -0
  220. package/dist/filters/helpers/common/getFilterColumnLabel.js +1 -1
  221. package/dist/filters/helpers/common/getFilterid.js +1 -1
  222. package/dist/filters/helpers/common/getFiltersByParams.js +6 -6
  223. package/dist/filters/helpers/common/getFiltersByVisibility.js +1 -1
  224. package/dist/filters/helpers/common/getMergeFiltersSettings.d.ts +7 -0
  225. package/dist/filters/helpers/common/getMergeFiltersSettings.js +12 -0
  226. package/dist/filters/helpers/common/getParamsToGetFilterSettings.d.ts +5 -0
  227. package/dist/filters/helpers/common/getParamsToGetFilterSettings.js +11 -1
  228. package/dist/filters/helpers/common/index.d.ts +2 -0
  229. package/dist/filters/helpers/common/index.js +2 -0
  230. package/dist/filters/helpers/common/mergeFilters.d.ts +2 -1
  231. package/dist/filters/helpers/common/mergeFilters.js +27 -10
  232. package/dist/filters/helpers/common/resolveDatasetConditions.js +1 -1
  233. package/dist/filters/helpers/common/resolveFilterConditions.js +2 -3
  234. package/dist/filters/helpers/common/resolveScopeConditions.js +1 -1
  235. package/dist/filters/helpers/getAggFiltersFromFilterData.d.ts +1 -1
  236. package/dist/filters/helpers/getAggFiltersFromFilterData.js +18 -19
  237. package/dist/filters/helpers/getScopesByHierarchy.js +2 -2
  238. package/dist/filters/helpers/ui/excludeUIFlatFiltersByScopes.d.ts +1 -1
  239. package/dist/filters/helpers/ui/excludeUIFlatFiltersByScopes.js +1 -1
  240. package/dist/filters/helpers/ui/getUIFlatFilterByParams.d.ts +1 -1
  241. package/dist/filters/helpers/ui/getUIFlatFilterByParams.js +1 -1
  242. package/dist/filters/helpers/ui/getUIFlatFiltersByParams.d.ts +1 -1
  243. package/dist/filters/helpers/ui/getUIFlatFiltersByParams.js +1 -1
  244. package/dist/filters/helpers/ui/getUIFlatFiltersByScopes.d.ts +1 -1
  245. package/dist/filters/helpers/ui/getUIFlatFiltersByScopes.js +1 -1
  246. package/dist/filters/helpers/ui/getUIValues.js +6 -5
  247. package/dist/filters/interfaces/OLD_IFilterDetail.d.ts +3 -0
  248. package/dist/filters/interfaces/common/IFSFilterExtras.d.ts +3 -0
  249. package/dist/filters/interfaces/common/IFSFilterExtrasInfo.d.ts +4 -0
  250. package/dist/filters/interfaces/common/IFSFilterExtrasInfo.js +1 -0
  251. package/dist/filters/interfaces/common/IFSMergeFiltersSettings.d.ts +7 -0
  252. package/dist/filters/interfaces/common/IFSMergeFiltersSettings.js +1 -0
  253. package/dist/filters/interfaces/common/IFSParamsToGetFilter.d.ts +2 -1
  254. package/dist/filters/interfaces/common/IFSParamsToGetFilterEnableds.d.ts +9 -0
  255. package/dist/filters/interfaces/common/IFSParamsToGetFilterEnableds.js +1 -0
  256. package/dist/filters/interfaces/common/IFSParamsToGetFilterSettings.d.ts +5 -0
  257. package/dist/filters/interfaces/common/index.d.ts +3 -0
  258. package/dist/filters/interfaces/common/index.js +3 -0
  259. package/dist/filters/interfaces/panel/IFPSettingsFilterPanelBodyScopeScope.d.ts +1 -0
  260. package/dist/filters/interfaces/panel/IFPSettingsFilterPanelHeader.d.ts +1 -0
  261. package/dist/filters/interfaces/panel/IFPSettingsFilterPanelSettings.d.ts +4 -0
  262. package/dist/filters/interfaces/panel/IFPSettingsFilterPanelSettingsScope.d.ts +7 -0
  263. package/dist/filters/interfaces/panel/IFPSettingsFilterPanelSettingsScope.js +1 -0
  264. package/dist/filters/interfaces/panel/index.d.ts +1 -0
  265. package/dist/filters/interfaces/panel/index.js +1 -0
  266. package/dist/format/definition.d.ts +3 -2
  267. package/dist/format/format.d.ts +1 -1
  268. package/dist/format/format.js +12 -13
  269. package/dist/general/array/delete.d.ts +4 -4
  270. package/dist/general/array/delete.js +8 -6
  271. package/dist/general/array/filterNestedTree.js +1 -1
  272. package/dist/general/array/flattenDeep.d.ts +1 -1
  273. package/dist/general/array/flattenDeep.js +4 -2
  274. package/dist/general/array/getFirstIndexFromArray.d.ts +1 -1
  275. package/dist/general/array/getFirstIndexFromArray.js +7 -5
  276. package/dist/general/array/getLastIndexFromArray.d.ts +1 -1
  277. package/dist/general/array/getLastIndexFromArray.js +6 -4
  278. package/dist/general/function/debounce.d.ts +1 -1
  279. package/dist/general/function/throttled.d.ts +1 -1
  280. package/dist/general/function/throttled.js +1 -1
  281. package/dist/general/mix/importScripts.d.ts +1 -1
  282. package/dist/general/mix/isEmpty.d.ts +5 -4
  283. package/dist/general/mix/isEmpty.js +12 -6
  284. package/dist/general/mix/randomId.d.ts +1 -1
  285. package/dist/general/mix/randomId.js +1 -2
  286. package/dist/general/mix/size.d.ts +1 -1
  287. package/dist/general/object/cloneDeep.d.ts +4 -4
  288. package/dist/general/object/cloneDeep.js +14 -6
  289. package/dist/general/object/get.d.ts +47 -15
  290. package/dist/general/object/get.js +59 -34
  291. package/dist/general/object/getAttribute.d.ts +1 -1
  292. package/dist/general/object/hasProperty.d.ts +1 -1
  293. package/dist/general/object/hasProperty.js +1 -1
  294. package/dist/general/object/index.d.ts +1 -0
  295. package/dist/general/object/index.js +1 -0
  296. package/dist/general/object/isObject.d.ts +6 -0
  297. package/dist/general/object/isObject.js +8 -0
  298. package/dist/general/object/mapValues.d.ts +1 -1
  299. package/dist/general/object/mapValues.js +0 -1
  300. package/dist/general/object/omit.js +1 -1
  301. package/dist/general/object/pick.js +0 -1
  302. package/dist/index.d.ts +2 -0
  303. package/dist/index.js +2 -0
  304. package/dist/qrvey/getColumnsLabel.js +5 -5
  305. package/dist/qrvey/index.d.ts +3 -0
  306. package/dist/qrvey/index.js +3 -0
  307. package/dist/tokens/index.d.ts +1 -0
  308. package/dist/tokens/index.js +1 -0
  309. package/dist/tokens/isTokenLabel.d.ts +6 -0
  310. package/dist/tokens/isTokenLabel.js +12 -0
  311. package/package.json +17 -10
  312. package/prepareToPublish.js +52 -0
  313. package/src/constants/COLUMN.ts +1 -1
  314. package/src/constants/COLUMN_PROPERTY.ts +13 -2
  315. package/src/constants/COLUMN_PROPERTY_VALUE.ts +6 -1
  316. package/src/date/constants/DATE_DAY_HOURS.ts +27 -0
  317. package/src/date/constants/DATE_HOUR_MINUTES.ts +63 -0
  318. package/src/date/constants/DATE_MINUTE_SECONDS.ts +3 -0
  319. package/src/date/constants/DATE_MONTH_DAYS.ts +34 -0
  320. package/src/date/constants/DATE_PROPERTY.ts +1 -1
  321. package/src/date/constants/DATE_PROPERTY_VALUE.ts +16 -0
  322. package/src/date/constants/DATE_P_PROPERTIES.ts +10 -0
  323. package/src/date/constants/DATE_P_VALUES.ts +7 -0
  324. package/src/date/constants/DATE_TIME_PROPERTIES.ts +0 -1
  325. package/src/date/constants/DATE_TIME_P_VALUES.ts +7 -0
  326. package/src/date/constants/DATE_TIME_VALUES.ts +1 -1
  327. package/src/date/constants/DATE_WEEK_DAYS.ts +4 -0
  328. package/src/date/constants/DATE_YEAR_DAYS.ts +368 -0
  329. package/src/date/constants/DATE_YEAR_MONTHS.ts +2 -0
  330. package/src/date/constants/DATE_YEAR_QUARTERS.ts +1 -0
  331. package/src/date/constants/index.ts +12 -0
  332. package/src/date/range/getDateRange.ts +46 -42
  333. package/src/date/relative/Adapter.ts +2 -2
  334. package/src/date/relative/constants/DATE_FORMATS.ts +3 -4
  335. package/src/date/relative/constants/RELATIVE_CURSOR_VALUE.ts +1 -1
  336. package/src/date/relative/helpers/formatStatement.ts +8 -8
  337. package/src/date/relative/index.ts +1 -1
  338. package/src/filters/adapters/FDToFlatUI.ts +7 -3
  339. package/src/filters/adapters/FDToUI.ts +5 -6
  340. package/src/filters/adapters/UIToFD.ts +1 -1
  341. package/src/filters/adapters/UIToFlatUI.ts +9 -5
  342. package/src/filters/adapters/UIToOldLogic.ts +11 -3
  343. package/src/filters/adapters/adaptFilterData.ts +1 -1
  344. package/src/filters/adapters/flatUIToFD.ts +5 -1
  345. package/src/filters/adapters/flatUIToOldLogic.ts +57 -71
  346. package/src/filters/adapters/flatUIToUI.ts +4 -1
  347. package/src/filters/adapters/logicToFlatUI.ts +101 -77
  348. package/src/filters/adapters/transformFilters.ts +22 -30
  349. package/src/filters/constants/backend/FILTER_BACKEND_VALIDATOR.ts +1 -1
  350. package/src/filters/constants/common/FILTER_GROUPED_COLUMN_OPERATOR.ts +3 -0
  351. package/src/filters/constants/common/FILTER_OPERATOR.ts +1 -1
  352. package/src/filters/constants/common/FILTER_VALIDATOR.ts +1 -1
  353. package/src/filters/constants/common/index.ts +1 -0
  354. package/src/filters/helpers/backend/buildExpression.ts +11 -3
  355. package/src/filters/helpers/backend/buildFilters.ts +2 -2
  356. package/src/filters/helpers/backend/getBackendGroupValue.ts +2 -1
  357. package/src/filters/helpers/backend/getBackendProperty.ts +6 -3
  358. package/src/filters/helpers/backend/getBackendValues.ts +27 -23
  359. package/src/filters/helpers/builder/getFilterBuilderGeneralConfig.ts +1 -1
  360. package/src/filters/helpers/common/areFiltersEquals.ts +1 -1
  361. package/src/filters/helpers/common/arePropertiesDateP.ts +14 -0
  362. package/src/filters/helpers/common/excludeFiltersByParams.ts +1 -1
  363. package/src/filters/helpers/common/getFilterColumnLabel.ts +1 -1
  364. package/src/filters/helpers/common/getFilterLabel.ts +1 -1
  365. package/src/filters/helpers/common/getFilterid.ts +1 -1
  366. package/src/filters/helpers/common/getFiltersByAggregateColumn.ts +1 -1
  367. package/src/filters/helpers/common/getFiltersByParams.ts +6 -7
  368. package/src/filters/helpers/common/getFiltersByVisibility.ts +1 -1
  369. package/src/filters/helpers/common/getMergeFiltersSettings.ts +13 -0
  370. package/src/filters/helpers/common/getParamsToGetFilterSettings.ts +11 -1
  371. package/src/filters/helpers/common/index.ts +2 -0
  372. package/src/filters/helpers/common/isInValidator.ts +1 -1
  373. package/src/filters/helpers/common/mergeFilters.ts +30 -17
  374. package/src/filters/helpers/common/resolveDatasetConditions.ts +1 -1
  375. package/src/filters/helpers/common/resolveFilterConditions.ts +2 -3
  376. package/src/filters/helpers/common/resolveScopeConditions.ts +1 -1
  377. package/src/filters/helpers/getAggFiltersFromFilterData.ts +20 -23
  378. package/src/filters/helpers/getAvailableScopesIDsByConfig.ts +1 -1
  379. package/src/filters/helpers/getScopesByHierarchy.ts +2 -2
  380. package/src/filters/helpers/ui/excludeUIFlatFiltersByScopes.ts +2 -2
  381. package/src/filters/helpers/ui/getUIFlatFilterByParams.ts +1 -1
  382. package/src/filters/helpers/ui/getUIFlatFiltersByParams.ts +1 -1
  383. package/src/filters/helpers/ui/getUIFlatFiltersByScopes.ts +1 -1
  384. package/src/filters/helpers/ui/getUIValues.ts +9 -9
  385. package/src/filters/helpers/ui/resolveUIFlatFiltersByParams.ts +1 -1
  386. package/src/filters/interfaces/OLD_IFilterDetail.ts +4 -0
  387. package/src/filters/interfaces/backend/IFBExpression.ts +1 -1
  388. package/src/filters/interfaces/common/IFSFilterExtras.ts +4 -0
  389. package/src/filters/interfaces/common/IFSFilterExtrasInfo.ts +5 -0
  390. package/src/filters/interfaces/common/IFSMergeFiltersSettings.ts +8 -0
  391. package/src/filters/interfaces/common/IFSParamsToGetFilter.ts +2 -1
  392. package/src/filters/interfaces/common/IFSParamsToGetFilterEnableds.ts +9 -0
  393. package/src/filters/interfaces/common/IFSParamsToGetFilterSettings.ts +5 -0
  394. package/src/filters/interfaces/common/index.ts +3 -0
  395. package/src/filters/interfaces/panel/IFPSettingsFilterPanelBodyScopeScope.ts +1 -0
  396. package/src/filters/interfaces/panel/IFPSettingsFilterPanelHeader.ts +1 -0
  397. package/src/filters/interfaces/panel/IFPSettingsFilterPanelSettings.ts +4 -0
  398. package/src/filters/interfaces/panel/IFPSettingsFilterPanelSettingsScope.ts +7 -0
  399. package/src/filters/interfaces/panel/IFilterPanelConfig.ts +0 -2
  400. package/src/filters/interfaces/panel/index.ts +1 -0
  401. package/src/filters/interfaces/ui/IFUFilterExtras.ts +1 -1
  402. package/src/format/definition.ts +7 -8
  403. package/src/format/format.ts +19 -22
  404. package/src/general/array/delete.ts +10 -6
  405. package/src/general/array/filterNestedTree.ts +1 -1
  406. package/src/general/array/flattenDeep.ts +3 -2
  407. package/src/general/array/getFirstIndexFromArray.ts +8 -6
  408. package/src/general/array/getLastIndexFromArray.ts +7 -5
  409. package/src/general/function/debounce.ts +2 -2
  410. package/src/general/function/throttled.ts +3 -3
  411. package/src/general/mix/importScripts.ts +1 -1
  412. package/src/general/mix/isEmpty.ts +12 -7
  413. package/src/general/mix/isNull.ts +2 -2
  414. package/src/general/mix/randomId.ts +2 -2
  415. package/src/general/mix/size.ts +1 -1
  416. package/src/general/object/cloneDeep.ts +15 -6
  417. package/src/general/object/get.ts +59 -31
  418. package/src/general/object/getAttribute.ts +1 -1
  419. package/src/general/object/hasProperty.ts +1 -1
  420. package/src/general/object/index.ts +3 -2
  421. package/src/general/object/isObject.ts +8 -0
  422. package/src/general/object/mapValues.ts +2 -2
  423. package/src/general/object/omit.ts +2 -2
  424. package/src/general/object/pick.ts +1 -1
  425. package/src/general/string/capitalize.ts +1 -1
  426. package/src/index.ts +3 -1
  427. package/src/qrvey/getColumnsLabel.ts +5 -5
  428. package/src/qrvey/index.ts +3 -0
  429. package/src/qrvey/isComplexColumn.ts +1 -1
  430. package/src/qrvey/isDateColumn.ts +1 -1
  431. package/src/stencil/decorators/Config.ts +2 -2
  432. package/src/tokens/index.ts +1 -0
  433. package/src/tokens/isTokenLabel.ts +13 -0
  434. package/src/typescript/decorators/Debounce.ts +2 -2
  435. package/src/typescript/decorators/Throttled.ts +2 -2
  436. package/test/format.test.js +97 -5
  437. package/test/general/array/delete.test.js +64 -0
  438. package/test/general/array/flattenDeep.test.js +44 -0
  439. package/test/general/array/getFirstIndexFromArray.test.js +56 -0
  440. package/test/general/array/getLastIndexFromArray.test.js +56 -0
  441. package/test/general/mix/isEmpty.test.js +144 -0
  442. package/test/general/object/cloneDeep.test.js +152 -0
  443. package/test/general/object/get.test.js +247 -0
  444. package/test/relative.test.js +24 -24
@@ -86,6 +86,7 @@ function buildDataset(uFilter) {
86
86
  * @returns an filter structure
87
87
  */
88
88
  function buildFilter(uFilter) {
89
+ const info = !general_1.isEmpty(uFilter.extras.info) ? { icon: uFilter.extras.info.icon, label: uFilter.extras.info.label } : undefined;
89
90
  return {
90
91
  collapsed: uFilter.collapsed,
91
92
  column: {
@@ -107,13 +108,7 @@ function buildFilter(uFilter) {
107
108
  displayed: uFilter.displayed,
108
109
  filterid: uFilter.filterid,
109
110
  enabled: uFilter.enabled,
110
- extras: {
111
- panelid: uFilter.extras.panelid,
112
- filterLabel: uFilter.extras.filterLabel,
113
- scope: uFilter.extras.scope,
114
- scopeid: uFilter.extras.scopeid,
115
- section: uFilter.extras.section,
116
- },
111
+ extras: Object.assign(Object.assign({}, uFilter.extras), { panelid: uFilter.extras.panelid, filterLabel: uFilter.extras.filterLabel, info, scope: uFilter.extras.scope, scopeid: uFilter.extras.scopeid, section: uFilter.extras.section }),
117
112
  lookupDisplayIndex: uFilter.lookupDisplayIndex,
118
113
  nullValues: uFilter.nullValues,
119
114
  operator: uFilter.operator,
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
5
5
  exports.logicToFlatUI = void 0;
6
6
  const constants_1 = require("../../constants");
7
7
  const general_1 = require("../../general");
8
+ const constants_2 = require("../constants");
8
9
  const helpers_1 = require("../helpers");
9
10
  /**
10
11
  * Adapts the Old logic structure (v2.0) to the flattened UI filter Structure.
@@ -14,87 +15,101 @@ const helpers_1 = require("../helpers");
14
15
  function logicToFlatUI(logics = []) {
15
16
  if (general_1.isEmpty(logics))
16
17
  return [];
17
- let uFilters = [];
18
+ const uFilters = [];
18
19
  logics.forEach(scopeItem => {
19
20
  if (scopeItem.filters.length > 0) {
20
21
  scopeItem.filters.forEach(filterItem => {
21
- filterItem.expressions[0].expressions.forEach(expression => {
22
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
23
- const uiExtras = expression.uiExtras;
24
- const index = uiExtras.column.type === constants_1.COLUMN.RANKING ? getFilter(uFilters, expression.uiExtras, true) : -1;
25
- if (index === -1 && (!uiExtras.nullValues || expression.validationType !== "IS_EMPTY" /* IS_NULL */)) {
26
- const scopeid = scopeItem.scope !== "GLOBAL" /* GLOBAL */ ? general_1._get(scopeItem, 'uiExtras.scopeid') : undefined;
27
- const uFilter = {
28
- collapsed: uiExtras.collapsed,
29
- column: {
30
- id: (_a = uiExtras.column) === null || _a === void 0 ? void 0 : _a.id,
31
- formulaType: (_b = uiExtras.column) === null || _b === void 0 ? void 0 : _b.formulaType,
32
- linkid: (_c = uiExtras.column) === null || _c === void 0 ? void 0 : _c.linkid,
33
- linked: (_d = uiExtras.column) === null || _d === void 0 ? void 0 : _d.linked,
34
- qrveyid: (_e = uiExtras.column) === null || _e === void 0 ? void 0 : _e.qrveyid,
35
- aggregate: (_g = (_f = uiExtras.column) === null || _f === void 0 ? void 0 : _f.aggregate) === null || _g === void 0 ? void 0 : _g.label,
36
- calculation: (_j = (_h = uiExtras.column) === null || _h === void 0 ? void 0 : _h.calculation) === null || _j === void 0 ? void 0 : _j.value,
37
- label: (_k = uiExtras.column) === null || _k === void 0 ? void 0 : _k.text,
38
- property: uiExtras.column.property,
39
- sorting: uiExtras.column.sorting,
40
- outputFormat: (_l = uiExtras.column) === null || _l === void 0 ? void 0 : _l.outputFormat,
41
- type: (_m = uiExtras.column) === null || _m === void 0 ? void 0 : _m.type,
42
- },
43
- dateSection: uiExtras.dateSection,
44
- displayed: true,
45
- enabled: expression.enabled,
46
- extras: {
47
- panelid: uiExtras.panelid,
48
- filterLabel: uiExtras.panelName,
49
- scopeid,
50
- scope: scopeItem.scope,
51
- section: uiExtras.section,
52
- scopeInfo: {
53
- collapsed: false,
54
- enabled: scopeItem.enabled,
55
- displayed: true,
56
- scope: scopeItem.scope,
57
- scopeid,
58
- },
59
- dataset: {
60
- collapsed: false,
61
- enabled: true,
62
- displayed: true,
63
- qrveyid: (_o = uiExtras.column) === null || _o === void 0 ? void 0 : _o.qrveyid,
64
- label: (_q = (_p = uiExtras.column) === null || _p === void 0 ? void 0 : _p.dataset) === null || _q === void 0 ? void 0 : _q.name,
65
- linkid: (_r = uiExtras.column) === null || _r === void 0 ? void 0 : _r.linkid,
66
- },
67
- },
68
- filterid: undefined,
69
- lookupDisplayIndex: uiExtras.lookupDisplayIndex,
70
- nullValues: uiExtras.nullValues,
71
- operator: uiExtras.operator,
72
- property: uiExtras.property,
73
- uiValues: helpers_1.getUIValues(uiExtras),
74
- validator: uiExtras.validator,
75
- values: uiExtras.column.type !== constants_1.COLUMN.RANKING || !general_1.isEmpty(uiExtras.column.aggregate)
76
- ? (uiExtras.values || []).map((v, i) => (Object.assign(Object.assign({}, v), { enabled: uiExtras.uiValue[i].enabled != null ? uiExtras.uiValue[i].enabled : true }))) : [],
77
- };
78
- uFilter.filterid = helpers_1.getFilterid(uFilter);
79
- uFilters.push(uFilter);
80
- }
81
- if (uiExtras.column.type === constants_1.COLUMN.RANKING && general_1.isEmpty(uiExtras.column.aggregate)) {
82
- // Restore uiExtras.values array into single IFilterDetail object values array
83
- if (index > -1)
84
- uFilters[index].values.push(uiExtras.values[0]);
85
- const refinedRankingValues = refineRankingValues((index > -1 ? uFilters[index].values : uiExtras.values), uiExtras.uiValue);
86
- if (index > -1)
87
- uFilters[index].values = refinedRankingValues;
88
- else
89
- uFilters[uFilters.length - 1].values = refinedRankingValues;
90
- }
22
+ filterItem.expressions.forEach((expression1) => {
23
+ general_1._hasProperty(expression1, 'expressions') ? expression1.expressions.forEach((expression2) => {
24
+ buildFilterByExpression(expression2, scopeItem, uFilters);
25
+ }) : buildFilterByExpression(expression1, scopeItem, uFilters);
91
26
  });
27
+ // (filterItem.expressions[0].expressions as OLD_IFilterExpression[]).forEach((expression: OLD_IFilterExpression) => {
28
+ // buildFilterByExpression(expression, scopeItem, uFilters);
29
+ // });
92
30
  });
93
31
  }
94
32
  });
95
33
  return uFilters;
96
34
  }
97
35
  exports.logicToFlatUI = logicToFlatUI;
36
+ function buildFilterByExpression(expression, scopeItem, uFilters) {
37
+ const uiExtras = expression.uiExtras;
38
+ const index = uiExtras.column.type === constants_1.COLUMN.RANKING ? getFilter(uFilters, expression.uiExtras, true) : -1;
39
+ if (index === -1 && (!uiExtras.nullValues || expression.validationType !== "IS_EMPTY" /* IS_NULL */)) {
40
+ const uFilter = getFilterByExpression(expression, scopeItem);
41
+ uFilter.filterid = helpers_1.getFilterid(uFilter);
42
+ uFilters.push(uFilter);
43
+ }
44
+ if (uiExtras.column.type === constants_1.COLUMN.RANKING && general_1.isEmpty(uiExtras.column.aggregate)) {
45
+ // Restore uiExtras.values array into single IFilterDetail object values array
46
+ if (index > -1)
47
+ uFilters[index].values.push(uiExtras.values[0]);
48
+ const refinedRankingValues = refineRankingValues((index > -1 ? uFilters[index].values : uiExtras.values), uiExtras.uiValue);
49
+ if (index > -1)
50
+ uFilters[index].values = refinedRankingValues;
51
+ else
52
+ uFilters[uFilters.length - 1].values = refinedRankingValues;
53
+ }
54
+ }
55
+ function getFilterByExpression(expression, scopeItem) {
56
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
57
+ const uiExtras = expression.uiExtras;
58
+ const scopeid = scopeItem.scope !== "GLOBAL" /* GLOBAL */ ? general_1._get(scopeItem, 'uiExtras.scopeid') : undefined;
59
+ const info = !general_1.isEmpty(uiExtras.info) ? { icon: uiExtras.info.icon, label: uiExtras.info.label } : undefined;
60
+ return {
61
+ collapsed: uiExtras.collapsed,
62
+ column: {
63
+ id: (_a = uiExtras.column) === null || _a === void 0 ? void 0 : _a.id,
64
+ formulaType: (_b = uiExtras.column) === null || _b === void 0 ? void 0 : _b.formulaType,
65
+ linkid: (_c = uiExtras.column) === null || _c === void 0 ? void 0 : _c.linkid,
66
+ linked: (_d = uiExtras.column) === null || _d === void 0 ? void 0 : _d.linked,
67
+ qrveyid: (_e = uiExtras.column) === null || _e === void 0 ? void 0 : _e.qrveyid,
68
+ aggregate: (_g = (_f = uiExtras.column) === null || _f === void 0 ? void 0 : _f.aggregate) === null || _g === void 0 ? void 0 : _g.label,
69
+ calculation: (_j = (_h = uiExtras.column) === null || _h === void 0 ? void 0 : _h.calculation) === null || _j === void 0 ? void 0 : _j.value,
70
+ label: (_k = uiExtras.column) === null || _k === void 0 ? void 0 : _k.text,
71
+ property: uiExtras.column.property,
72
+ sorting: uiExtras.column.sorting,
73
+ outputFormat: (_l = uiExtras.column) === null || _l === void 0 ? void 0 : _l.outputFormat,
74
+ type: (_m = uiExtras.column) === null || _m === void 0 ? void 0 : _m.type,
75
+ },
76
+ dateSection: uiExtras.dateSection,
77
+ displayed: true,
78
+ enabled: expression.enabled,
79
+ extras: Object.assign(Object.assign({}, uiExtras.extras), { panelid: uiExtras.panelid, filterLabel: uiExtras.panelName, info,
80
+ scopeid, scope: scopeItem.scope, section: uiExtras.section, scopeInfo: {
81
+ collapsed: (_o = scopeItem.uiExtras) === null || _o === void 0 ? void 0 : _o.collapsed,
82
+ enabled: scopeItem.enabled,
83
+ displayed: true,
84
+ scope: scopeItem.scope,
85
+ scopeid,
86
+ }, dataset: {
87
+ collapsed: false,
88
+ enabled: true,
89
+ displayed: true,
90
+ qrveyid: (_p = uiExtras.column) === null || _p === void 0 ? void 0 : _p.qrveyid,
91
+ label: (_r = (_q = uiExtras.column) === null || _q === void 0 ? void 0 : _q.dataset) === null || _r === void 0 ? void 0 : _r.name,
92
+ linkid: (_s = uiExtras.column) === null || _s === void 0 ? void 0 : _s.linkid,
93
+ } }),
94
+ filterid: undefined,
95
+ lookupDisplayIndex: uiExtras.lookupDisplayIndex,
96
+ nullValues: uiExtras.nullValues,
97
+ operator: uiExtras.operator,
98
+ property: uiExtras.property,
99
+ uiValues: helpers_1.getUIValues(uiExtras),
100
+ validator: uiExtras.validator,
101
+ values: getValues(uiExtras),
102
+ };
103
+ }
104
+ function getValues(uiExtras) {
105
+ if (helpers_1.isNullValidator(uiExtras.validator) && general_1.isEmpty(uiExtras.values)) {
106
+ return [{ value: constants_2.FILTER_VALIDATOR_VALUE[uiExtras.validator].label, enabled: uiExtras.uiValue[0].enabled != null ? uiExtras.uiValue[0].enabled : true }];
107
+ }
108
+ if (uiExtras.column.type !== constants_1.COLUMN.RANKING || !general_1.isEmpty(uiExtras.column.aggregate)) {
109
+ return uiExtras.values;
110
+ }
111
+ return [];
112
+ }
98
113
  /**
99
114
  * Get the filter or the index of the given array, validating an old filter structure.
100
115
  * @param filters The array of UI filters
@@ -103,7 +118,7 @@ exports.logicToFlatUI = logicToFlatUI;
103
118
  * @returns the index or the UI filter object
104
119
  */
105
120
  function getFilter(filters, filter, getIndex = false) {
106
- const validator = (f) => (f.validator === filter.validator &&
121
+ const validator = (f) => f.validator === filter.validator &&
107
122
  f.column.id === filter.column.id &&
108
123
  f.column.qrveyid === filter.column.qrveyid &&
109
124
  f.column.linkid === filter.column.linkid &&
@@ -111,7 +126,7 @@ function getFilter(filters, filter, getIndex = false) {
111
126
  f.extras.scope === filter.scope &&
112
127
  f.extras.scopeid === filter.scopeid &&
113
128
  f.property === filter.property &&
114
- f.extras.panelid === filter.panelid);
129
+ f.extras.panelid === filter.panelid;
115
130
  return getIndex ? filters.findIndex(validator) : filters.find(validator);
116
131
  }
117
132
  /**
@@ -120,7 +135,7 @@ function getFilter(filters, filter, getIndex = false) {
120
135
  * @param uiValues Object with additional info about the values of the filter.
121
136
  * @returns the array of Ranking values
122
137
  */
123
- function refineRankingValues(values = [], uiValues) {
138
+ function refineRankingValues(values = [], uiValues = []) {
124
139
  return values.map(valueGroup => {
125
140
  return [
126
141
  ...valueGroup.map(value => {
@@ -53,7 +53,7 @@
53
53
  *
54
54
  * const filterData = transformFilters(oldPreferenceFilters, 'ANALYZE');
55
55
  */
56
- export declare function transformFilters(oldFiltersObj?: object, section?: string): {
56
+ export declare function transformFilters(oldFiltersObj?: {}, section?: string): {
57
57
  enabled: boolean;
58
58
  logic: any[];
59
59
  section: string;
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.transformFilters = void 0;
4
4
  const index_1 = require("../../general/index");
5
- const get_1 = require("../../general/object/get");
5
+ const isTokenLabel_1 = require("../../tokens/isTokenLabel");
6
6
  /**
7
7
  * Transform the old filters structure into the new one
8
8
  *
@@ -218,14 +218,14 @@ function getValidator(oldValidation) {
218
218
  function getProperty(filterObjItem, validationKey) {
219
219
  if (filterObjItem.type === 'IMAGE')
220
220
  return 'answer_id';
221
- const value = get_1.get(filterObjItem, `values[0]['${validationKey}'][0]`, {});
221
+ const value = index_1._get(filterObjItem, `values[0]['${validationKey}'][0]`, {});
222
222
  const property = filterObjItem.property || value.property || value.targetFilter;
223
223
  return property && property.toUpperCase();
224
224
  }
225
225
  function getDateProperty(validationKey, columnType, formulaType) {
226
226
  if (![columnType, formulaType].includes('DATE'))
227
227
  return;
228
- return (['MONTH_YEAR', 'YEAR', 'QUARTER', 'WEEK', 'HOUR', 'MINUTE', 'SECOND'].includes(validationKey)) ? validationKey.split('_')[0].toLowerCase() : 'day';
228
+ return ['MONTH_YEAR', 'YEAR', 'QUARTER', 'WEEK', 'HOUR', 'MINUTE', 'SECOND'].includes(validationKey) ? validationKey.split('_')[0].toLowerCase() : 'day';
229
229
  }
230
230
  function getFilterRangeValue(range, minProp = 'min', maxProp = 'max', extras = {}) {
231
231
  return Object.assign({ [minProp]: range.from || range.gte, [maxProp]: range.to || range.lte }, extras);
@@ -256,45 +256,47 @@ function getValues(values, columnType, oldValidation = 'EQUAL', destination = 'v
256
256
  case 'BETWEEN':
257
257
  case 'YEAR':
258
258
  case 'MONTH_YEAR':
259
- return (destination === 'value')
259
+ return destination === 'value'
260
260
  ? values.map(val => getFilterRangeValue(val.value.range || val.value, 'gte', 'lte'))
261
- : (destination === 'uiValue')
261
+ : destination === 'uiValue'
262
262
  ? values.map(val => getFilterRangeValue(val.value.range || val.value, 'min', 'max', { enabled: val.enabled, value: getUiRangeValue(val.value), validationLabel: oldValidation }))
263
263
  : ['YEAR', 'MONTH_YEAR', 'QUARTER'].includes(oldValidation)
264
264
  ? values.map(item => ({ value: getUiRangeValue(item.value) }))
265
265
  : values.map(val => getFilterRangeValue(val.value.range || val.value));
266
266
  case 'LESS_THAN':
267
- case 'GREATER_THAN':
267
+ case 'GREATER_THAN': {
268
268
  const prop = oldValidation === 'LESS_THAN' ? 'lte' : 'gte';
269
- return (destination === 'value')
269
+ return destination === 'value'
270
270
  ? values.map(val => getFilterRangeValue({ [prop]: val.value }, 'gte', 'lte'))
271
- : (destination === 'uiValue')
271
+ : destination === 'uiValue'
272
272
  ? values.map(val => getFilterRangeValue({ [prop]: val.value }, 'min', 'max', { enabled: val.enabled, value: val.value }))
273
273
  : values.map(val => getFilterRangeValue({ [prop]: val.value }));
274
+ }
274
275
  case 'IS_EMPTY':
275
- case 'IS_NOT_EMPTY':
276
+ case 'IS_NOT_EMPTY': {
276
277
  const valueClean = getValidator(oldValidation).toLowerCase().split('_').map(v => index_1.capitalize(v)).join(' ');
277
- return (destination === 'value')
278
+ return destination === 'value'
278
279
  ? [valueClean]
279
- : (destination === 'uiValue')
280
+ : destination === 'uiValue'
280
281
  ? values.map(val => ({ value: valueClean, enabled: val.enabled }))
281
282
  : [];
283
+ }
282
284
  default:
283
285
  return getFilterEqualValues(values, columnType, destination, formulaType);
284
286
  }
285
287
  }
286
288
  function getFilterEqualValues(values, columnType, destination = 'value', formulaType) {
287
289
  if (columnType === 'RANKING') {
288
- return (destination === 'value')
290
+ return destination === 'value'
289
291
  ? values.map(item => ({ position: +item.position, value: item.value }))
290
- : (destination === 'uiValue')
292
+ : destination === 'uiValue'
291
293
  ? values.map(item => ({ value: getUiRangeValue({ from: item.value, to: +item.position + 1 }), enabled: true }))
292
294
  : getRankingFBvalues(values);
293
295
  }
294
- const formattedValues = (destination === 'value')
296
+ const formattedValues = destination === 'value'
295
297
  ? values.map(item => {
296
298
  let value = item.value;
297
- if ([columnType, formulaType].includes('DATE') && !isTokenBoxLabel(value)) {
299
+ if ([columnType, formulaType].includes('DATE') && !isTokenLabel_1.isTokenLabel(value)) {
298
300
  value = getFilterRangeValue(item.value.range || item.value, 'gte', 'lte');
299
301
  }
300
302
  else if (columnType === 'YES_NO') {
@@ -308,7 +310,7 @@ function getFilterEqualValues(values, columnType, destination = 'value', formula
308
310
  }
309
311
  return value;
310
312
  })
311
- : values.map(item => ({ value: columnType === 'YES_NO' ? item.value.toLowerCase() : ([columnType, formulaType].includes('DATE') ? item.value.label || item.value : String(item.value)), valueid: columnType === 'EXPRESSION' ? undefined : item.id || item.answerid, enabled: item.enabled || true }));
313
+ : values.map(item => ({ value: columnType === 'YES_NO' ? item.value.toLowerCase() : [columnType, formulaType].includes('DATE') ? item.value.label || item.value : String(item.value), valueid: columnType === 'EXPRESSION' ? undefined : item.id || item.answerid, enabled: item.enabled || true }));
312
314
  return formattedValues;
313
315
  }
314
316
  function getFormulaType(oldFiltersItem) {
@@ -366,12 +368,3 @@ function getExpressions(oldFiltersItem, validations, scopeLabel, scopeid, sectio
366
368
  });
367
369
  return expressions;
368
370
  }
369
- /**
370
- * Get a text and evaluate if it matchs with a token box label.
371
- * @param label string to evaluate
372
- * @return True is label matchs; otherwise false
373
- */
374
- function isTokenBoxLabel(label) {
375
- const regex = new RegExp('^(\{\{)([^{}]+)(\}\})$', 'gi');
376
- return regex.test(label);
377
- }
@@ -1,3 +1,2 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- ;
@@ -0,0 +1,2 @@
1
+ import { FILTER_OPERATOR } from "./FILTER_OPERATOR";
2
+ export declare const FILTER_GROUPED_COLUMN_OPERATOR = FILTER_OPERATOR.OR;
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FILTER_GROUPED_COLUMN_OPERATOR = void 0;
4
+ exports.FILTER_GROUPED_COLUMN_OPERATOR = "OR" /* OR */;
@@ -1,3 +1,2 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- ;
@@ -1,3 +1,2 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- ;
@@ -1,5 +1,6 @@
1
1
  export * from './FILTER_DATE_SECTION';
2
2
  export * from './FILTER_DATE_SECTIONS';
3
+ export * from './FILTER_GROUPED_COLUMN_OPERATOR';
3
4
  export * from './FILTER_OPERATOR';
4
5
  export * from './FILTER_SCOPE_LABEL';
5
6
  export * from './FILTER_SCOPE';
@@ -12,6 +12,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  __exportStar(require("./FILTER_DATE_SECTION"), exports);
14
14
  __exportStar(require("./FILTER_DATE_SECTIONS"), exports);
15
+ __exportStar(require("./FILTER_GROUPED_COLUMN_OPERATOR"), exports);
15
16
  __exportStar(require("./FILTER_OPERATOR"), exports);
16
17
  __exportStar(require("./FILTER_SCOPE_LABEL"), exports);
17
18
  __exportStar(require("./FILTER_SCOPE"), exports);
@@ -1,2 +1,8 @@
1
1
  import { IFBExpression, IFSFilter } from "../../interfaces";
2
+ /**
3
+ * Builds filter expression by the filter data.
4
+ * - If the resulting value array is empty the enabled property will be false.
5
+ * @param filter The filter to transform
6
+ * @returns a filter expression
7
+ */
2
8
  export declare function buildExpression(filter: IFSFilter): IFBExpression;
@@ -5,9 +5,14 @@ const getBackendGroupValue_1 = require("./getBackendGroupValue");
5
5
  const getBackendProperty_1 = require("./getBackendProperty");
6
6
  const getBackendValidator_1 = require("./getBackendValidator");
7
7
  const getBackendValues_1 = require("./getBackendValues");
8
+ /**
9
+ * Builds filter expression by the filter data.
10
+ * - If the resulting value array is empty the enabled property will be false.
11
+ * @param filter The filter to transform
12
+ * @returns a filter expression
13
+ */
8
14
  function buildExpression(filter) {
9
- return {
10
- enabled: filter.enabled,
15
+ const expression = {
11
16
  groupValue: getBackendGroupValue_1.getBackendGroupValue(filter),
12
17
  questionid: filter.column.id,
13
18
  questionType: filter.column.type,
@@ -15,5 +20,7 @@ function buildExpression(filter) {
15
20
  validationType: getBackendValidator_1.getBackendValidator(filter.validator),
16
21
  value: getBackendValues_1.getBackendValues(filter),
17
22
  };
23
+ expression['enabled'] = expression.value.length > 0 ? filter.enabled : false;
24
+ return expression;
18
25
  }
19
26
  exports.buildExpression = buildExpression;
@@ -3,13 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getBackendGroupValue = void 0;
4
4
  const general_1 = require("../../../general");
5
5
  const isDateColumn_1 = require("../../../qrvey/isDateColumn");
6
+ const common_1 = require("../common");
6
7
  /**
7
8
  * Gets a group value for the backend logic structure
8
9
  * @param filter The filter
9
10
  * @returns a property
10
11
  */
11
12
  function getBackendGroupValue(filter) {
12
- if (general_1.isEmpty(filter.column.aggregate) && isDateColumn_1.isDateColumn(filter.column) && filter.property != null) {
13
+ if (!common_1.arePropertiesDateP(filter.column, filter.property) && general_1.isEmpty(filter.column.aggregate) && isDateColumn_1.isDateColumn(filter.column) && filter.property != null) {
13
14
  return filter.property;
14
15
  }
15
16
  }
@@ -11,10 +11,15 @@ const common_1 = require("../common");
11
11
  * @returns a property
12
12
  */
13
13
  function getBackendProperty(filter) {
14
+ var _a;
14
15
  if (general_1.isEmpty(filter.column.aggregate)) {
15
- if ((isDateColumn_1.isDateColumn(filter.column) && filter.property != null) || common_1.isNullValidator(filter.validator))
16
+ if (common_1.isNullValidator(filter.validator)) {
16
17
  return undefined;
17
- if ((filter.column.type === constants_1.COLUMN.EXPRESSION && filter.property != null)) {
18
+ }
19
+ else if (isDateColumn_1.isDateColumn(filter.column)) {
20
+ return common_1.arePropertiesDateP(filter.column, filter.property) ? (_a = filter.property) === null || _a === void 0 ? void 0 : _a.split('p&')[1] : undefined;
21
+ }
22
+ else if (filter.column.type === constants_1.COLUMN.EXPRESSION && filter.property != null) {
18
23
  return undefined;
19
24
  }
20
25
  else if (filter.column.type === constants_1.COLUMN.LOOKUP && filter.property === "display" /* LOOKUP_DISPLAY */ && filter.lookupDisplayIndex != null) {