@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
@@ -22,28 +22,42 @@ function getBackendValues(filter) {
22
22
  case "NOT_START_WITH" /* NOT_START_WITH */:
23
23
  case "ENDS_WITH" /* ENDS_WITH */:
24
24
  case "NOT_END_WITH" /* NOT_END_WITH */:
25
- return filter.values.map(value => value.value);
25
+ return filter.values.map(value => value.enabled ? value.value : undefined);
26
26
  case "BETWEEN_INCLUSIVE" /* BETWEEN_INCLUSIVE */:
27
- return filter.values.map(value => ({ lte: value.max, gte: value.min }));
27
+ return filter.values.map(value => value.enabled ?
28
+ { lte: value.max, gte: value.min }
29
+ : undefined).filter(Boolean);
28
30
  case "BETWEEN_EXCLUSIVE" /* BETWEEN_EXCLUSIVE */:
29
- return filter.values.map(value => ({ lt: value.max, gt: value.min }));
31
+ return filter.values.map(value => value.enabled ?
32
+ { lt: value.max, gt: value.min }
33
+ : undefined).filter(Boolean);
30
34
  case "BEFORE" /* BEFORE */:
31
35
  case "LESS_THAN" /* LESS_THAN */:
32
- return filter.values.map(value => ({ lt: value.max }));
36
+ return filter.values.map(value => value.enabled ?
37
+ { lt: value.max }
38
+ : undefined).filter(Boolean);
33
39
  case "BEFORE_ON" /* BEFORE_ON */:
34
40
  case "LESS_THAN_EQUAL" /* LESS_THAN_EQUAL */:
35
- return filter.values.map(value => ({ lte: value.max }));
41
+ return filter.values.map(value => value.enabled ?
42
+ { lte: value.max }
43
+ : undefined).filter(Boolean);
36
44
  case "AFTER" /* AFTER */:
37
45
  case "GREATER_THAN" /* GREATER_THAN */:
38
- return filter.values.map(value => ({ gt: value.min }));
46
+ return filter.values.map(value => value.enabled ?
47
+ { gt: value.min }
48
+ : undefined).filter(Boolean);
39
49
  case "AFTER_ON" /* AFTER_ON */:
40
50
  case "GREATER_THAN_EQUAL" /* GREATER_THAN_EQUAL */:
41
- return filter.values.map(value => ({ gte: value.min }));
51
+ return filter.values.map(value => value.enabled ?
52
+ { gte: value.min }
53
+ : undefined).filter(Boolean);
42
54
  case "IS_NULL" /* IS_NULL */:
43
- case "IS_NOT_NULL" /* IS_NOT_NULL */:
44
- return [constants_2.FILTER_VALIDATOR_VALUE[filter.validator].label];
55
+ case "IS_NOT_NULL" /* IS_NOT_NULL */: {
56
+ const addValue = filter.values.length > 0 && filter.values.every(value => value.enabled);
57
+ return addValue ? [constants_2.FILTER_VALIDATOR_VALUE[filter.validator].label] : [];
58
+ }
45
59
  case "IN" /* IN */:
46
- return filter.values;
60
+ return filter.values.map(value => value.enabled ? value : undefined).filter(Boolean);
47
61
  default:
48
62
  return [];
49
63
  }
@@ -57,13 +71,15 @@ exports.getBackendValues = getBackendValues;
57
71
  */
58
72
  function getResultValues(values, filter) {
59
73
  return values.map((value) => {
60
- if (filter.column.type === constants_1.COLUMN.IMAGE) {
61
- return value.valueid;
62
- }
63
- else {
64
- return value.value;
74
+ if (value.enabled) {
75
+ if (filter.column.type === constants_1.COLUMN.IMAGE) {
76
+ return value.valueid;
77
+ }
78
+ else {
79
+ return value.value;
80
+ }
65
81
  }
66
- }).filter(value => value);
82
+ }).filter(Boolean);
67
83
  }
68
84
  /**
69
85
  * Gets the Ranking values.
@@ -73,8 +89,8 @@ function getResultValues(values, filter) {
73
89
  */
74
90
  function getRankingValues(values, rankingGroupIndex) {
75
91
  const flattenValues = rankingGroupIndex == null ? general_1.flattenDeep(values) : values[rankingGroupIndex];
76
- return flattenValues.map(rankingValue => ({
92
+ return flattenValues.map(rankingValue => rankingValue.enabled ? {
77
93
  position: rankingValue.position - 1,
78
94
  value: rankingValue.value.value
79
- }));
95
+ } : undefined).filter(Boolean);
80
96
  }
@@ -0,0 +1,8 @@
1
+ import { IFProperty, IFSColumn, IFUColumn } from "../../interfaces";
2
+ /**
3
+ * Determines if the filter column and property is a distinct group dates type
4
+ * @param column The filter column
5
+ * @param property The filter property
6
+ * @returns True if the given property is included from distinct group dates type
7
+ */
8
+ export declare function arePropertiesDateP(column: IFUColumn | IFSColumn, property: IFProperty): boolean;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.arePropertiesDateP = void 0;
4
+ const date_1 = require("../../../date");
5
+ const general_1 = require("../../../general");
6
+ const isDateColumn_1 = require("../../../qrvey/isDateColumn");
7
+ /**
8
+ * Determines if the filter column and property is a distinct group dates type
9
+ * @param column The filter column
10
+ * @param property The filter property
11
+ * @returns True if the given property is included from distinct group dates type
12
+ */
13
+ function arePropertiesDateP(column, property) {
14
+ return isDateColumn_1.isDateColumn(column) && general_1.isEmpty(column.aggregate) && date_1.DATE_P_PROPERTIES.includes(property);
15
+ }
16
+ exports.arePropertiesDateP = arePropertiesDateP;
@@ -16,6 +16,6 @@ function getFilterColumnLabel(column) {
16
16
  labels.push(column.aggregate);
17
17
  if (column.calculation != null)
18
18
  labels.push(column.calculation);
19
- return (labels.length > 0) ? `(${labels.join(' - ')})` : '';
19
+ return labels.length > 0 ? `(${labels.join(' - ')})` : '';
20
20
  }
21
21
  exports.getFilterColumnLabel = getFilterColumnLabel;
@@ -38,6 +38,6 @@ function getFilterid(filter, index) {
38
38
  filterid.push((_h = filter.column) === null || _h === void 0 ? void 0 : _h.calculation);
39
39
  if (index != null)
40
40
  filterid.push(index.toString());
41
- return (filterid.length > 0) ? filterid.join('|') : '';
41
+ return filterid.length > 0 ? filterid.join('|') : '';
42
42
  }
43
43
  exports.getFilterid = getFilterid;
@@ -38,22 +38,22 @@ function getFiltersByParams(filterData, params, settings) {
38
38
  if (Array.isArray(value) && value.length > 0) {
39
39
  const rankingValues = value;
40
40
  rankingValues.map(rValue => {
41
- if (params.enableds == null || params.enableds === rValue.enabled)
41
+ if (!general_1._hasProperty(params, 'enableds') || !general_1._hasProperty(params.enableds, 'values') || params.enableds.values === rValue.enabled)
42
42
  return rValue;
43
43
  }).filter(Boolean);
44
44
  }
45
45
  else {
46
46
  value = value;
47
- if (params.enableds == null || params.enableds === value.enabled)
47
+ if (!general_1._hasProperty(params, 'enableds') || !general_1._hasProperty(params.enableds, 'values') || params.enableds.values === value.enabled)
48
48
  return value;
49
49
  }
50
50
  }).filter(Boolean) });
51
51
  }
52
- }).filter(filter => !general_1.isEmpty(filter) && filter.values.length > 0) });
52
+ }).filter(filter => !general_1.isEmpty(filter) && (!settings.filterEmptyArrays.filter || filter.values.length > 0)) });
53
53
  }
54
- }).filter(dataset => !general_1.isEmpty(dataset) && dataset.filters.length > 0) });
54
+ }).filter(dataset => !general_1.isEmpty(dataset) && (!settings.filterEmptyArrays.dataset || dataset.filters.length > 0)) });
55
55
  }
56
- }).filter(scope => !general_1.isEmpty(scope) && scope.datasets.length > 0);
56
+ }).filter(scope => !general_1.isEmpty(scope) && (!settings.filterEmptyArrays.scope || scope.datasets.length > 0));
57
57
  return filterData.scopes.length > 0 ? filterData : undefined;
58
58
  }
59
59
  exports.getFiltersByParams = getFiltersByParams;
@@ -15,7 +15,7 @@ function getFiltersByVisibility(filterData, scopes) {
15
15
  return;
16
16
  filterData = general_1.cloneDeep(filterData);
17
17
  filterData = getFiltersByScopesIds_1.getFiltersByScopesIds(filterData, scopes);
18
- filterData = getFiltersByParams_1.getFiltersByParams(filterData, { enableds: true });
18
+ filterData = getFiltersByParams_1.getFiltersByParams(filterData, { enableds: { datasets: true, scopes: true, values: true } }, { filterEmptyArrays: { filter: false } });
19
19
  return filterData;
20
20
  }
21
21
  exports.getFiltersByVisibility = getFiltersByVisibility;
@@ -0,0 +1,7 @@
1
+ import { IFSMergeFiltersSettings } from "../../interfaces/common/IFSMergeFiltersSettings";
2
+ /**
3
+ * Transforms the given MergeFilters settings object. Adds the missing properties if they do not exist.
4
+ * @param settings an object to the MergeFilters settings
5
+ * @returns a new MergeFilters settings object.
6
+ */
7
+ export declare function getMergeFiltersSettings(settings?: IFSMergeFiltersSettings): IFSMergeFiltersSettings;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getMergeFiltersSettings = void 0;
4
+ /**
5
+ * Transforms the given MergeFilters settings object. Adds the missing properties if they do not exist.
6
+ * @param settings an object to the MergeFilters settings
7
+ * @returns a new MergeFilters settings object.
8
+ */
9
+ function getMergeFiltersSettings(settings) {
10
+ var _a, _b;
11
+ return {
12
+ overwriteValues: (_a = settings === null || settings === void 0 ? void 0 : settings.overwriteValues) !== null && _a !== void 0 ? _a : false,
13
+ setGroupedColumnOperator: (_b = settings === null || settings === void 0 ? void 0 : settings.setGroupedColumnOperator) !== null && _b !== void 0 ? _b : true
14
+ };
15
+ }
16
+ exports.getMergeFiltersSettings = getMergeFiltersSettings;
@@ -1,2 +1,7 @@
1
1
  import { IFSParamsToGetFilterSettings } from "../../interfaces";
2
+ /**
3
+ * Transforms the given ParamsToGetFilter settings object. Adds the missing properties if they do not exist.
4
+ * @param settings an object to the ParamsToGetFilter settings
5
+ * @returns a new ParamsToGetFilter settings object.
6
+ */
2
7
  export declare function getParamsToGetFilterSettings(settings?: IFSParamsToGetFilterSettings): IFSParamsToGetFilterSettings;
@@ -1,8 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getParamsToGetFilterSettings = void 0;
4
+ /**
5
+ * Transforms the given ParamsToGetFilter settings object. Adds the missing properties if they do not exist.
6
+ * @param settings an object to the ParamsToGetFilter settings
7
+ * @returns a new ParamsToGetFilter settings object.
8
+ */
4
9
  function getParamsToGetFilterSettings(settings) {
5
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
10
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
6
11
  return {
7
12
  letPassUndefinedParams: {
8
13
  dataset: (_b = (_a = settings === null || settings === void 0 ? void 0 : settings.letPassUndefinedParams) === null || _a === void 0 ? void 0 : _a.dataset) !== null && _b !== void 0 ? _b : true,
@@ -13,6 +18,11 @@ function getParamsToGetFilterSettings(settings) {
13
18
  dataset: (_h = (_g = settings === null || settings === void 0 ? void 0 : settings.letPassUndefinedProperties) === null || _g === void 0 ? void 0 : _g.dataset) !== null && _h !== void 0 ? _h : false,
14
19
  filter: (_k = (_j = settings === null || settings === void 0 ? void 0 : settings.letPassUndefinedProperties) === null || _j === void 0 ? void 0 : _j.filter) !== null && _k !== void 0 ? _k : false,
15
20
  scope: (_m = (_l = settings === null || settings === void 0 ? void 0 : settings.letPassUndefinedProperties) === null || _l === void 0 ? void 0 : _l.scope) !== null && _m !== void 0 ? _m : false,
21
+ },
22
+ filterEmptyArrays: {
23
+ dataset: (_p = (_o = settings === null || settings === void 0 ? void 0 : settings.filterEmptyArrays) === null || _o === void 0 ? void 0 : _o.dataset) !== null && _p !== void 0 ? _p : true,
24
+ filter: (_r = (_q = settings === null || settings === void 0 ? void 0 : settings.filterEmptyArrays) === null || _q === void 0 ? void 0 : _q.filter) !== null && _r !== void 0 ? _r : true,
25
+ scope: (_t = (_s = settings === null || settings === void 0 ? void 0 : settings.filterEmptyArrays) === null || _s === void 0 ? void 0 : _s.scope) !== null && _t !== void 0 ? _t : true,
16
26
  }
17
27
  };
18
28
  }
@@ -1,4 +1,5 @@
1
1
  export * from './areFiltersEquals';
2
+ export * from './arePropertiesDateP';
2
3
  export * from './excludeFiltersByAggregateColumn';
3
4
  export * from './excludeFiltersByParams';
4
5
  export * from './excludeFiltersByScopes';
@@ -10,6 +11,7 @@ export * from './getFiltersByParams';
10
11
  export * from './getFiltersByScopes';
11
12
  export * from './getFiltersByScopesIds';
12
13
  export * from './getFiltersByVisibility';
14
+ export * from './getMergeFiltersSettings';
13
15
  export * from './getParamsToGetFilterSettings';
14
16
  export * from './haveFiltersByDataset';
15
17
  export * from './isBetweenValidator';
@@ -11,6 +11,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
11
11
  };
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  __exportStar(require("./areFiltersEquals"), exports);
14
+ __exportStar(require("./arePropertiesDateP"), exports);
14
15
  __exportStar(require("./excludeFiltersByAggregateColumn"), exports);
15
16
  __exportStar(require("./excludeFiltersByParams"), exports);
16
17
  __exportStar(require("./excludeFiltersByScopes"), exports);
@@ -22,6 +23,7 @@ __exportStar(require("./getFiltersByParams"), exports);
22
23
  __exportStar(require("./getFiltersByScopes"), exports);
23
24
  __exportStar(require("./getFiltersByScopesIds"), exports);
24
25
  __exportStar(require("./getFiltersByVisibility"), exports);
26
+ __exportStar(require("./getMergeFiltersSettings"), exports);
25
27
  __exportStar(require("./getParamsToGetFilterSettings"), exports);
26
28
  __exportStar(require("./haveFiltersByDataset"), exports);
27
29
  __exportStar(require("./isBetweenValidator"), exports);
@@ -1,4 +1,5 @@
1
1
  import { IFSData, IFUData } from "../../interfaces";
2
+ import { IFSMergeFiltersSettings } from "../../interfaces/common/IFSMergeFiltersSettings";
2
3
  /**
3
4
  * Merge filter data structures in a new one. The first Filter Data passed in the argument has the priority
4
5
  * @param filterData1 The target filter data
@@ -6,4 +7,4 @@ import { IFSData, IFUData } from "../../interfaces";
6
7
  * @param overwriteValues Flag to overwrite or not the filter values
7
8
  * @returns a new filter data structure
8
9
  */
9
- export declare function mergeFilters(filterData1: IFSData | IFUData, filterData2: IFSData | IFUData, overwriteValues?: boolean): IFSData | IFUData;
10
+ export declare function mergeFilters(filterData1: IFSData | IFUData, filterData2: IFSData | IFUData, settings?: IFSMergeFiltersSettings): IFSData | IFUData;
@@ -2,6 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.mergeFilters = void 0;
4
4
  const general_1 = require("../../../general");
5
+ const FILTER_GROUPED_COLUMN_OPERATOR_1 = require("../../constants/common/FILTER_GROUPED_COLUMN_OPERATOR");
6
+ const getMergeFiltersSettings_1 = require("./getMergeFiltersSettings");
7
+ const isInValidator_1 = require("./isInValidator");
8
+ const isNullValidator_1 = require("./isNullValidator");
5
9
  const isRangeValidator_1 = require("./isRangeValidator");
6
10
  const isRegularValidator_1 = require("./isRegularValidator");
7
11
  const resolveDatasetConditions_1 = require("./resolveDatasetConditions");
@@ -14,7 +18,7 @@ const resolveScopeConditions_1 = require("./resolveScopeConditions");
14
18
  * @param overwriteValues Flag to overwrite or not the filter values
15
19
  * @returns a new filter data structure
16
20
  */
17
- function mergeFilters(filterData1, filterData2, overwriteValues = false) {
21
+ function mergeFilters(filterData1, filterData2, settings) {
18
22
  if (general_1.isEmpty(filterData1) || general_1.isEmpty(filterData1.scopes)) {
19
23
  if (general_1.isEmpty(filterData2) || general_1.isEmpty(filterData2.scopes))
20
24
  return;
@@ -24,9 +28,10 @@ function mergeFilters(filterData1, filterData2, overwriteValues = false) {
24
28
  return filterData1;
25
29
  filterData1 = general_1.cloneDeep(filterData1);
26
30
  filterData2 = general_1.cloneDeep(filterData2);
31
+ settings = getMergeFiltersSettings_1.getMergeFiltersSettings(settings);
27
32
  return {
28
33
  enabled: filterData1.enabled,
29
- scopes: mergeScopes(filterData1.scopes, filterData2.scopes, overwriteValues),
34
+ scopes: mergeScopes(filterData1.scopes, filterData2.scopes, settings),
30
35
  section: filterData1.section,
31
36
  version: filterData1.version
32
37
  };
@@ -39,11 +44,11 @@ exports.mergeFilters = mergeFilters;
39
44
  * @param overwriteValues Flag to overwrite or not the filter values
40
45
  * @returns a new scope structure array
41
46
  */
42
- function mergeScopes(scopes1 = [], scopes2 = [], overwriteValues = false) {
47
+ function mergeScopes(scopes1 = [], scopes2 = [], settings) {
43
48
  let newScopes = scopes1.reduce((scopes, scope1) => {
44
49
  const scope2Index = scopes2.findIndex(scope2 => resolveScopeConditions_1.resolveScopeConditions(scope2, { scope: scope1.scope, scopeid: scope1.scopeid }));
45
50
  if (scope2Index > -1) {
46
- scope1 = Object.assign(Object.assign({}, scope1), { datasets: mergeDatasets(scope1.datasets, scopes2[scope2Index].datasets, overwriteValues) });
51
+ scope1 = Object.assign(Object.assign({}, scope1), { datasets: mergeDatasets(scope1.datasets, scopes2[scope2Index].datasets, settings) });
47
52
  scopes2.splice(scope2Index, 1);
48
53
  }
49
54
  scopes.push(scope1);
@@ -60,11 +65,11 @@ function mergeScopes(scopes1 = [], scopes2 = [], overwriteValues = false) {
60
65
  * @param overwriteValues Flag to overwrite or not the filter values
61
66
  * @returns a new dataset structure array
62
67
  */
63
- function mergeDatasets(datasets1 = [], datasets2 = [], overwriteValues = false) {
68
+ function mergeDatasets(datasets1 = [], datasets2 = [], settings) {
64
69
  let newDatasets = datasets1.reduce((datasets, dataset1) => {
65
70
  const dataset2Index = datasets2.findIndex(dataset2 => resolveDatasetConditions_1.resolveDatasetConditions(dataset2, { qrveyid: dataset1.qrveyid, linkid: dataset1.linkid }));
66
71
  if (dataset2Index > -1) {
67
- dataset1 = Object.assign(Object.assign({}, dataset1), { filters: mergeFilterss(dataset1.filters, datasets2[dataset2Index].filters, overwriteValues) });
72
+ dataset1 = Object.assign(Object.assign({}, dataset1), { filters: mergeFilterss(dataset1.filters, datasets2[dataset2Index].filters, settings) });
68
73
  datasets2.splice(dataset2Index, 1);
69
74
  }
70
75
  datasets.push(dataset1);
@@ -81,13 +86,16 @@ function mergeDatasets(datasets1 = [], datasets2 = [], overwriteValues = false)
81
86
  * @param overwriteValues Flag to overwrite or not the filter values
82
87
  * @returns a new filter structure array
83
88
  */
84
- function mergeFilterss(filters1 = [], filters2 = [], overwriteValues = false) {
89
+ function mergeFilterss(filters1 = [], filters2 = [], settings) {
85
90
  let newFilters = filters1.reduce((filters, filter1) => {
86
91
  const filter2Index = filters2.findIndex(filter2 => resolveFilterConditions_1.resolveFilterConditions(filter2, { column: filter1.column, dateSection: filter1.dateSection, panelid: filter1.extras.panelid, property: filter1.property, validator: filter1.validator }));
87
92
  if (filter2Index > -1) {
88
- filter1 = Object.assign(Object.assign({}, filter1), { values: mergeValues(filter1, filters2[filter2Index], overwriteValues) });
93
+ filter1 = Object.assign(Object.assign({}, filter1), { values: mergeValues(filter1, filters2[filter2Index], settings.overwriteValues) });
89
94
  filters2.splice(filter2Index, 1);
90
95
  }
96
+ else {
97
+ filter1 = Object.assign(Object.assign({}, filter1), { operator: settings.setGroupedColumnOperator ? FILTER_GROUPED_COLUMN_OPERATOR_1.FILTER_GROUPED_COLUMN_OPERATOR : filter1.operator });
98
+ }
91
99
  filters.push(filter1);
92
100
  return filters;
93
101
  }, []);
@@ -107,7 +115,16 @@ function mergeValues(filter1, filter2, overwrite = false) {
107
115
  return [];
108
116
  let newValues = [];
109
117
  if (!overwrite) {
110
- if (isRangeValidator_1.isRangeValidator(filter1.validator)) {
118
+ if (isInValidator_1.isInValidator(filter1.validator)) {
119
+ newValues = filter1.values.reduce((values, value1) => {
120
+ const value2Index = filter2.values.findIndex(value2 => value2.anchor === value1.anchor && value2.cursor === value1.cursor && value2.includeCurrent === value1.includeCurrent && value2.isCalendarDate === value1.isCalendarDate && value2.number === value1.number && value2.unit === value1.unit);
121
+ if (value2Index === -1) {
122
+ values.push(filter2.values[value2Index]);
123
+ }
124
+ return values;
125
+ }, filter1.values);
126
+ }
127
+ else if (isRangeValidator_1.isRangeValidator(filter1.validator)) {
111
128
  newValues = filter1.values.reduce((values, value1) => {
112
129
  const value2Index = filter2.values.findIndex(value2 => value2.max === value1.max && value2.min === value1.min);
113
130
  if (value2Index === -1) {
@@ -116,7 +133,7 @@ function mergeValues(filter1, filter2, overwrite = false) {
116
133
  return values;
117
134
  }, filter1.values);
118
135
  }
119
- else if (isRegularValidator_1.isRegularValidator(filter1.validator)) {
136
+ else if (isRegularValidator_1.isRegularValidator(filter1.validator) || isNullValidator_1.isNullValidator(filter1.validator)) {
120
137
  newValues = filter1.values.reduce((values, value1) => {
121
138
  const value2Index = filter2.values.findIndex(value2 => value2.imageUrl === value1.imageUrl && value2.value === value1.value);
122
139
  if (value2Index === -1) {
@@ -11,7 +11,7 @@ const general_1 = require("../../../general");
11
11
  * @returns true: the condition is satisfied
12
12
  */
13
13
  function resolveDatasetConditions(dataset, params, letPassUndefinedProperties = false, letPassUndefinedParams = true) {
14
- return (!general_1._hasProperty(params, 'enableds') || (letPassUndefinedProperties && dataset.enabled == null) || (letPassUndefinedParams && params.enableds == null) || params.enableds === dataset.enabled) &&
14
+ return (!general_1._hasProperty(params, 'enableds') || !general_1._hasProperty(params.enableds, 'datasets') || (letPassUndefinedProperties && dataset.enabled == null) || (letPassUndefinedParams && params.enableds.datasets == null) || params.enableds.datasets === dataset.enabled) &&
15
15
  (!general_1._hasProperty(params, 'qrveyid') || (letPassUndefinedProperties && dataset.qrveyid == null) || (letPassUndefinedParams && general_1.isEmpty(params.qrveyid)) || params.qrveyid === dataset.qrveyid) &&
16
16
  (!general_1._hasProperty(params, 'linkid') || (letPassUndefinedProperties && dataset.linkid == null) || (letPassUndefinedParams && general_1.isEmpty(params.linkid)) || params.linkid === dataset.linkid) &&
17
17
  dataset.filters.length > 0;
@@ -12,7 +12,7 @@ const general_1 = require("../../../general");
12
12
  */
13
13
  function resolveFilterConditions(filter, params, letPassUndefinedProperties = false, letPassUndefinedParams = true) {
14
14
  var _a, _b, _c, _d;
15
- return (!general_1._hasProperty(params, 'enableds') || (letPassUndefinedProperties && filter.enabled == null) || (letPassUndefinedParams && params.enableds == null) || params.enableds === filter.enabled) &&
15
+ return (!general_1._hasProperty(params, 'enableds') || !general_1._hasProperty(params.enableds, 'filters') || (letPassUndefinedProperties && filter.enabled == null) || (letPassUndefinedParams && params.enableds.filters == null) || params.enableds.filters === filter.enabled) &&
16
16
  (!general_1._hasProperty(params, 'dateSection') || (letPassUndefinedProperties && filter.dateSection == null) || (letPassUndefinedParams && general_1.isEmpty(params.dateSection)) || params.dateSection === filter.dateSection) &&
17
17
  (!general_1._hasProperty(params, 'panelid') || (letPassUndefinedProperties && filter.extras.panelid == null) || (letPassUndefinedParams && general_1.isEmpty(params.panelid)) || params.panelid === filter.extras.panelid) &&
18
18
  (!general_1._hasProperty(params, 'property') || (letPassUndefinedProperties && filter.property == null) || (letPassUndefinedParams && general_1.isEmpty(params.property)) || params.property === filter.property) &&
@@ -20,7 +20,6 @@ function resolveFilterConditions(filter, params, letPassUndefinedProperties = fa
20
20
  (!general_1._hasProperty(params, 'column') || (letPassUndefinedProperties && filter.column == null) || (letPassUndefinedParams && general_1.isEmpty(params.column)) || (((_a = params.column) === null || _a === void 0 ? void 0 : _a.id) === filter.column.id &&
21
21
  ((_b = params.column) === null || _b === void 0 ? void 0 : _b.qrveyid) === filter.column.qrveyid &&
22
22
  ((_c = params.column) === null || _c === void 0 ? void 0 : _c.linkid) === filter.column.linkid &&
23
- ((_d = params.column) === null || _d === void 0 ? void 0 : _d.aggregate) === filter.column.aggregate)) &&
24
- filter.values.length > 0;
23
+ ((_d = params.column) === null || _d === void 0 ? void 0 : _d.aggregate) === filter.column.aggregate));
25
24
  }
26
25
  exports.resolveFilterConditions = resolveFilterConditions;
@@ -11,7 +11,7 @@ const general_1 = require("../../../general");
11
11
  * @returns true: the condition is satisfied
12
12
  */
13
13
  function resolveScopeConditions(scope, params, letPassUndefinedProperties = false, letPassUndefinedParams = true) {
14
- return (!general_1._hasProperty(params, 'enableds') || (letPassUndefinedProperties && scope.enabled == null) || (letPassUndefinedParams && params.enableds == null) || params.enableds === scope.enabled) &&
14
+ return (!general_1._hasProperty(params, 'enableds') || !general_1._hasProperty(params.enableds, 'scopes') || (letPassUndefinedProperties && scope.enabled == null) || (letPassUndefinedParams && params.enableds.scopes == null) || params.enableds.scopes === scope.enabled) &&
15
15
  (!general_1._hasProperty(params, 'scope') || (letPassUndefinedProperties && scope.scope == null) || (letPassUndefinedParams && general_1.isEmpty(params.scope)) || scope.scope === params.scope) &&
16
16
  (!general_1._hasProperty(params, 'scopeid') || (letPassUndefinedProperties && scope.scopeid == null) || (letPassUndefinedParams && general_1.isEmpty(params.scopeid)) || scope.scopeid === params.scopeid) &&
17
17
  scope.datasets.filter.length > 0;
@@ -5,4 +5,4 @@ import { IFBFilterAggregate, IFSData } from "../interfaces";
5
5
  * @param summaries
6
6
  * @returns
7
7
  */
8
- export declare function getAggFiltersFromFilterData(filterData: IFSData, summaries: any[]): IFBFilterAggregate;
8
+ export declare function getAggFiltersFromFilterData(filterData: IFSData, _summaries: any[]): IFBFilterAggregate;
@@ -2,9 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getAggFiltersFromFilterData = void 0;
4
4
  const general_1 = require("../../general");
5
- const backend_1 = require("./backend");
6
5
  const common_1 = require("./common");
7
- const adapters_1 = require("../adapters");
8
6
  /**
9
7
  *
10
8
  * @param logics
@@ -12,26 +10,27 @@ const adapters_1 = require("../adapters");
12
10
  * @returns
13
11
  */
14
12
  // [TODO: FILTERS - FIX AGGREGATE FILTERS]
15
- function getAggFiltersFromFilterData(filterData, summaries) {
13
+ function getAggFiltersFromFilterData(filterData, _summaries) {
16
14
  filterData = Object.assign({}, common_1.getFiltersByAggregateColumn(filterData));
17
15
  if (general_1.isEmpty(filterData))
18
16
  return;
19
- const uFilters = adapters_1.FDToFlatUI(filterData);
20
- const aggFilters = uFilters.map(uFilter => {
21
- const summaryIndex = summaries.findIndex(summary => uFilter.column.id === summary.questionid &&
22
- uFilter.column.qrveyid === summary.qrveyid &&
23
- uFilter.column.linkid === summary.linkid &&
24
- uFilter.column.aggregate === summary.aggregate);
25
- if (summaryIndex > -1) {
26
- return {
27
- enabled: uFilter.enabled,
28
- summaryIndex,
29
- validationType: backend_1.getBackendValidator(uFilter.validator),
30
- value: backend_1.getBackendValues(uFilter),
31
- };
32
- }
33
- }).filter(Boolean);
34
- debugger;
17
+ // const uFilters = FDToFlatUI(filterData);
18
+ // const aggFilters: IFBExpressionAggregate[] = uFilters.map(uFilter => {
19
+ // const summaryIndex = summaries.findIndex(summary =>
20
+ // uFilter.column.id === summary.questionid &&
21
+ // uFilter.column.qrveyid === summary.qrveyid &&
22
+ // uFilter.column.linkid === summary.linkid &&
23
+ // uFilter.column.aggregate === summary.aggregate
24
+ // );
25
+ // if (summaryIndex > -1) {
26
+ // return {
27
+ // enabled: uFilter.enabled,
28
+ // summaryIndex,
29
+ // validationType: getBackendValidator(uFilter.validator),
30
+ // value: getBackendValues(uFilter),
31
+ // };
32
+ // }
33
+ // }).filter(Boolean);
35
34
  // // [TODO: FILTERS - Adapt filter.validator and filter.values in the backend format]
36
35
  // const aggFilters: IFBFilterAggregate[] = filterData.scopes.map((scope) => {
37
36
  // scope.datasets.forEach(dataset => {