@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
@@ -0,0 +1,2 @@
1
+
2
+ export const DATE_YEAR_MONTHS = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
@@ -0,0 +1 @@
1
+ export const DATE_YEAR_QUARTERS = ['Q1', 'Q2', 'Q3', 'Q4'];
@@ -1,3 +1,15 @@
1
+ export * from './DATE_DAY_HOURS';
2
+ export * from './DATE_HOUR_MINUTES';
3
+ export * from './DATE_MINUTE_SECONDS';
4
+ export * from './DATE_MONTH_DAYS';
5
+ export * from './DATE_P_PROPERTIES';
6
+ export * from './DATE_P_VALUES';
1
7
  export * from './DATE_PROPERTY';
8
+ export * from './DATE_PROPERTY_VALUE';
9
+ export * from './DATE_TIME_P_VALUES';
2
10
  export * from './DATE_TIME_PROPERTIES';
3
11
  export * from './DATE_TIME_VALUES';
12
+ export * from './DATE_WEEK_DAYS';
13
+ export * from './DATE_YEAR_DAYS';
14
+ export * from './DATE_YEAR_MONTHS';
15
+ export * from './DATE_YEAR_QUARTERS';
@@ -1,4 +1,5 @@
1
1
  import { capitalize } from "../../general/index";
2
+ import { isTokenLabel } from "../../tokens";
2
3
 
3
4
  /**
4
5
  * Get date range object from a string date value
@@ -34,68 +35,75 @@ import { capitalize } from "../../general/index";
34
35
  * to: '10/31/2020 23:59:59'
35
36
  * }
36
37
  */
37
- export function getDateRange(value: string, dateGroupLabel = 'DAY', withTime = true) {
38
+ export function getDateRange(value: string, dateGroupLabel = 'DAY', withTime = true): { from?: string; to?: string } {
38
39
  const range: { from?: string, to?: string } = {};
39
40
  const upperCaseDateGroup = dateGroupLabel.toUpperCase();
40
- const [ timeFrom, timeTo ] = withTime ? getStringTimeRange(value, upperCaseDateGroup) : [ '', '' ]
41
- const isToken = isTokenBoxLabel(value)
41
+ const [ timeFrom, timeTo ] = withTime ? getStringTimeRange(value, upperCaseDateGroup) : [ '', '' ];
42
+ const isToken = isTokenLabel(value);
42
43
 
43
44
 
44
45
  switch (upperCaseDateGroup) {
45
- case 'YEAR':
46
+ case 'YEAR': {
46
47
  const yearRange = !isToken ? getYearRange(value) : { from: `01/01/${value}`, to: `12/31/${value}` };
47
48
  range.from = `${yearRange.from}${timeFrom}`;
48
- range.to = `${yearRange.to}${timeTo}`;
49
+ range.to = `${yearRange.to}${timeTo}`;
49
50
  break;
50
- case 'QUARTER':
51
- const quarterRange = !isToken ? getQuarterRange(value) : {from: value, to: value} ;
51
+ }
52
+ case 'QUARTER': {
53
+ const quarterRange = !isToken ? getQuarterRange(value) : { from: value, to: value };
52
54
  range.from = `${quarterRange.from}${timeFrom}`;
53
55
  range.to = `${quarterRange.to}${timeTo}`;
54
56
  break;
55
- case 'MONTH':
56
- const monthRange = monthInclideTokens(value) ? getMonthRangeWithToken(value) : getMonthRange(value);
57
+ }
58
+ case 'MONTH': {
59
+ const monthRange = monthInclideTokens(value) ? getMonthRangeWithToken(value) : getMonthRange(value);
57
60
  range.from = `${monthRange.from}${timeFrom}`;
58
61
  range.to = `${monthRange.to}${timeTo}`;
59
62
  break;
60
- case 'WEEK':
61
- const weekRange = !isToken ? getWeekRange(value) : {from: value, to: value};
63
+ }
64
+ case 'WEEK': {
65
+ const weekRange = !isToken ? getWeekRange(value) : { from: value, to: value };
62
66
  range.from = `${weekRange.from}${timeFrom}`;
63
67
  range.to = `${weekRange.to}${timeTo}`;
64
68
  break;
65
- case 'HOUR':
66
- const hourRange = !isToken ? getHourRange(value) : {from: value, to: value};
69
+ }
70
+ case 'HOUR': {
71
+ const hourRange = !isToken ? getHourRange(value) : { from: value, to: value };
67
72
  range.from = hourRange.from;
68
73
  range.to = hourRange.to;
69
74
  break;
70
- case 'MINUTE':
71
- const minuteRange = !isToken ? getMinuteRange(value) : {from: value, to: value};
75
+ }
76
+ case 'MINUTE': {
77
+ const minuteRange = !isToken ? getMinuteRange(value) : { from: value, to: value };
72
78
  range.from = minuteRange.from;
73
79
  range.to = minuteRange.to;
74
80
  break;
75
- default:
81
+ }
82
+ default: {
76
83
  const dayFrom = new Date(value);
77
84
  const dayTo = new Date(value);
78
- const includTokens = includeTokens(value, '/')
85
+ const includTokens = includeTokens(value, '/');
79
86
  range.from = `${ !includTokens ? getStringDate(dayFrom) : value }${timeFrom}`;
80
87
  range.to = `${ !includTokens ? getStringDate(dayTo) : value }${timeTo}`;
81
88
  break;
89
+ }
82
90
  }
83
91
  return range;
84
92
  }
85
93
 
86
94
  function getStringTimeRange(value: string, dateGroupLabel: string) {
87
- const addLeadingZero = (unit: number): string => `${unit < 10 ? '0': ''}${unit}`
95
+ const addLeadingZero = (unit: number): string => `${unit < 10 ? '0': ''}${unit}`;
88
96
  const dateValue = new Date(value);
89
97
  const hours = addLeadingZero(dateValue.getHours());
90
98
  const minutes = addLeadingZero(dateValue.getMinutes());
91
99
 
92
100
  switch (dateGroupLabel) {
93
101
  case 'HOUR':
94
- return [` ${hours}:00:00`, ` ${hours}:59:59`]
102
+ return [` ${hours}:00:00`, ` ${hours}:59:59`];
95
103
  case 'MINUTE':
96
- return [` ${hours}:${minutes}:00`, ` ${hours}:${minutes}:59`]
104
+ return [` ${hours}:${minutes}:00`, ` ${hours}:${minutes}:59`];
97
105
  default:
98
- return [' 00:00:00', ' 23:59:59']
106
+ return [' 00:00:00', ' 23:59:59'];
99
107
  }
100
108
  }
101
109
 
@@ -110,7 +118,7 @@ function getYearRange(value: string) {
110
118
  return {
111
119
  from: getStringDate(dateFrom),
112
120
  to: getStringDate(dateTo)
113
- }
121
+ };
114
122
  }
115
123
 
116
124
  function getQuarterRange(value: string) {
@@ -118,12 +126,12 @@ function getQuarterRange(value: string) {
118
126
  const quarterStartMonths = [0, 3, 6, 9];
119
127
  const quarterIndex = Number(capitalize(quarter).replace('Q', '')) - 1;
120
128
  const monthValue = quarterStartMonths[quarterIndex];
121
- const dateFrom = new Date(Number(year), monthValue || monthValue === 0 ? monthValue : NaN , 1);
129
+ const dateFrom = new Date(Number(year), monthValue || monthValue === 0 ? monthValue : NaN, 1);
122
130
  const dateTo = new Date(Number(year), (monthValue || monthValue === 0 ? monthValue : NaN) + 3, 0);
123
131
  return {
124
132
  from: getStringDate(dateFrom),
125
133
  to: getStringDate(dateTo)
126
- }
134
+ };
127
135
  }
128
136
 
129
137
  function getMonthRange(value: string) {
@@ -136,7 +144,7 @@ function getMonthRange(value: string) {
136
144
  return {
137
145
  from: getStringDate(dateFrom),
138
146
  to: getStringDate(dateTo)
139
- }
147
+ };
140
148
  }
141
149
 
142
150
  function getWeekRange(value: string) {
@@ -164,51 +172,47 @@ function getWeek(date) {
164
172
  if (target.getDay() !== 4) {
165
173
  target.setMonth(0, 1 + ((4 - target.getDay()) + 7) % 7);
166
174
  }
167
- return 1 + Math.ceil((firstThursday - (+target)) / 604800000);
175
+ return 1 + Math.ceil((firstThursday - +target) / 604800000);
168
176
  }
169
177
 
170
178
  function getHourRange(date) {
171
179
  const target = new Date(date.valueOf());
172
- const stringDate = getStringDate(target)
180
+ const stringDate = getStringDate(target);
173
181
  const [ timeFrom, timeTo ] = getStringTimeRange(date, 'HOUR');
174
182
  return { from: `${stringDate}${timeFrom}`, to: `${stringDate}${timeTo}` };
175
183
  }
176
184
 
177
185
  function getMinuteRange(date) {
178
186
  const target = new Date(date.valueOf());
179
- const stringDate = getStringDate(target)
187
+ const stringDate = getStringDate(target);
180
188
  const [ timeFrom, timeTo ] = getStringTimeRange(date, 'MINUTE');
181
189
  return { from: `${stringDate}${timeFrom}`, to: `${stringDate}${timeTo}` };
182
190
  }
183
191
 
184
192
  function getMonthRangeWithToken(value: string) {
185
- let [month, year] = value.split(' ');
193
+ const [month, year] = value.split(' ');
194
+ let monthToReturn = month;
186
195
 
187
- if(!isTokenBoxLabel(month)) {
196
+ if(!isTokenLabel(month)) {
188
197
  const months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
189
- const monthIndex = months.indexOf(month) + 1;
190
- month = `${monthIndex <= 9 ? '0': ''}${monthIndex}`
198
+ const monthIndex = months.indexOf(monthToReturn) + 1;
199
+ monthToReturn = `${monthIndex <= 9 ? '0': ''}${monthIndex}`;
191
200
  }
192
201
 
193
202
  return {
194
- from: `${month}/01/${year}`,
195
- to: `${month}/{{LAST_DAY_MONTH}}/${year}`
196
- }
203
+ from: `${monthToReturn}/01/${year}`,
204
+ to: `${monthToReturn}/{{LAST_DAY_MONTH}}/${year}`
205
+ };
197
206
  }
198
207
 
199
208
  function monthInclideTokens(value:string) {
200
209
  const [month, year] = value.split(' ');
201
- return isTokenBoxLabel(month) || isTokenBoxLabel(year)
202
- }
203
-
204
- function isTokenBoxLabel(label: string): boolean {
205
- const regex = new RegExp('^(\{\{)([^{}]+)(\}\})$', 'gi');
206
- return regex.test(label);
210
+ return isTokenLabel(month) || isTokenLabel(year);
207
211
  }
208
212
 
209
213
  function includeTokens(date: string, separator: string) {
210
214
  const dateSeparet = date.split(separator);
211
215
  for (const iterator of dateSeparet) {
212
- if (isTokenBoxLabel(iterator)) return true;
216
+ if (isTokenLabel(iterator)) return true;
213
217
  }
214
218
  }
@@ -1,5 +1,5 @@
1
1
  import { OpUnitType } from './helpers/dayjs-module';
2
- import { get } from '../../general/object/index';
2
+ import { _get } from '../../general/object/index';
3
3
  import { parseDate, formatStatement, getStatementCase } from './helpers/index';
4
4
  import {
5
5
  COMMON_CONSTANTS,
@@ -76,7 +76,7 @@ export default class RelativeStatementAdapter {
76
76
  : this.cursor === RELATIVE_CURSOR.NEXT ? 'lte'
77
77
  : '';
78
78
 
79
- return get(value, path, new Date());
79
+ return _get(value, path, new Date());
80
80
  }
81
81
 
82
82
 
@@ -1,11 +1,10 @@
1
- export const DATETIME_FORMAT = 'MM-DD-YYYY HH:mm:ss';
1
+ export const DATETIME_FORMAT = 'MM/DD/YYYY HH:mm:ss';
2
2
 
3
3
  export const INPUT_FORMATS = [
4
+ DATETIME_FORMAT,
4
5
  'MM/DD/YYYY',
5
6
  'MM-DD-YYYY',
6
7
  'YYYY-MM-DD',
7
- 'MM/DD/YYYY HH:mm:ss',
8
+ 'MM-DD-YYYY HH:mm:ss',
8
9
  'YYYY-MM-DD HH:mm:ss',
9
- DATETIME_FORMAT
10
10
  ];
11
-
@@ -4,4 +4,4 @@ export const RELATIVE_CURSOR_VALUE = {
4
4
  [RELATIVE_CURSOR.THIS]: { label: 'This', value: 'this' },
5
5
  [RELATIVE_CURSOR.NEXT]: { label: 'The next', value: 'the next' },
6
6
  [RELATIVE_CURSOR.LAST]: { label: 'The last', value: 'the last' },
7
- }
7
+ };
@@ -1,4 +1,4 @@
1
- import { get, mapValues } from '../../../general/object/index';
1
+ import { _get, mapValues } from '../../../general/object/index';
2
2
  import { RelativeStatement } from '../interfaces/index';
3
3
  import { COMMON_CONSTANTS, RELATIVE_CURSOR } from '../constants/index';
4
4
  import { DATE_PROPERTY } from '../../constants';
@@ -11,11 +11,11 @@ import { DATE_PROPERTY } from '../../constants';
11
11
  export function formatStatement(statement: RelativeStatement): RelativeStatement {
12
12
  const loweredStatement = mapValues(statement, s => typeof s === 'string' ? s.toLowerCase() : s);
13
13
  return {
14
- cursor: get(loweredStatement, 'cursor', RELATIVE_CURSOR.THIS),
15
- unit: get(loweredStatement, 'unit', DATE_PROPERTY.DAY),
16
- number: get(loweredStatement, 'number', 0),
17
- anchor: get(loweredStatement, 'anchor', COMMON_CONSTANTS.NOW_TOKEN),
18
- isCalendarDate: get(loweredStatement, 'isCalendarDate', true),
19
- includeCurrent: get(loweredStatement, 'includeCurrent', true)
20
- }
14
+ cursor: _get(loweredStatement, 'cursor', RELATIVE_CURSOR.THIS),
15
+ unit: _get(loweredStatement, 'unit', DATE_PROPERTY.DAY),
16
+ number: _get(loweredStatement, 'number', 0),
17
+ anchor: _get(loweredStatement, 'anchor', COMMON_CONSTANTS.NOW_TOKEN),
18
+ isCalendarDate: _get(loweredStatement, 'isCalendarDate', true),
19
+ includeCurrent: _get(loweredStatement, 'includeCurrent', true)
20
+ };
21
21
  }
@@ -3,4 +3,4 @@ export * from './relative';
3
3
 
4
4
  export * from './constants/index';
5
5
  export * from './helpers/index';
6
- export * from './interfaces/index'
6
+ export * from './interfaces/index';
@@ -30,7 +30,7 @@ import { IFSData, IFSScope, IFUFlattenedFilter } from "../interfaces";
30
30
  * @returns a flattened UI filters array
31
31
  */
32
32
  function FD21ToFlatUI(scopes: IFSScope[] = [], datasetsInfo: IQrveyDataset[] = []): IFUFlattenedFilter[] {
33
- let uFilters: IFUFlattenedFilter[] = [];
33
+ const uFilters: IFUFlattenedFilter[] = [];
34
34
  if (scopes.length === 0) return uFilters;
35
35
  scopes.forEach(scope => {
36
36
  if (scope.datasets.length > 0) {
@@ -40,6 +40,8 @@ function FD21ToFlatUI(scopes: IFSScope[] = [], datasetsInfo: IQrveyDataset[] = [
40
40
  const datasetInfo: IQrveyDataset = datasetsInfo.find(dInfo => dInfo.qrveyid === dataset.qrveyid && dInfo.linkid === dataset.linkid);
41
41
  let columnInfo: IQrveyColumn;
42
42
  if (!isEmpty(datasetInfo)) columnInfo = datasetInfo.options.find(cInfo => cInfo.id === filter.column.id && cInfo.qrveyid === filter.column.qrveyid && cInfo.linkid === filter.column.linkid);
43
+ const info = !isEmpty(filter.extras.info) ? { icon: filter.extras.info.icon, label: filter.extras.info.label } : undefined;
44
+
43
45
  const uFilter: IFUFlattenedFilter = {
44
46
  collapsed: filter.collapsed,
45
47
  column: {
@@ -58,8 +60,10 @@ function FD21ToFlatUI(scopes: IFSScope[] = [], datasetsInfo: IQrveyDataset[] = [
58
60
  displayed: filter.displayed,
59
61
  enabled: filter.enabled,
60
62
  extras: {
63
+ ...filter.extras,
61
64
  panelid: filter.extras.panelid,
62
65
  filterLabel: filter.extras.filterLabel,
66
+ info,
63
67
  scope: filter.extras.scope,
64
68
  scopeid: filter.extras.scopeid,
65
69
  section: filter.extras.section,
@@ -88,9 +92,9 @@ function FD21ToFlatUI(scopes: IFSScope[] = [], datasetsInfo: IQrveyDataset[] = [
88
92
  uiValues: getUIValues(filter),
89
93
  validator: filter.validator,
90
94
  values: filter.values,
91
- }
95
+ };
92
96
  uFilters.push(uFilter);
93
- })
97
+ });
94
98
  }
95
99
  });
96
100
  }
@@ -32,11 +32,10 @@ import { IFSData, IFSection, IFSScope, IFUData, IFUScope } from "../interfaces";
32
32
  * @param datasetsInfo Collection of datasets information
33
33
  * @returns a UI filter Structure
34
34
  */
35
- function FD21ToUI(scopes: IFSScope[] = [], section: IFSection = FILTER_SECTION.ANYWHERE , enabled = true, datasetsInfo: IQrveyDataset[] = [], version = FILTER_STRUCTURE_VERSION): IFUData {
36
- let ufData: IFUData;
37
- if (scopes.length === 0) return ufData;
35
+ function FD21ToUI(scopes: IFSScope[] = [], section: IFSection = FILTER_SECTION.ANYWHERE, enabled = true, datasetsInfo: IQrveyDataset[] = [], version = FILTER_STRUCTURE_VERSION): IFUData {
36
+ if (scopes.length === 0) return;
38
37
 
39
- ufData = {
38
+ const ufData: IFUData = {
40
39
  enabled,
41
40
  section,
42
41
  version,
@@ -67,9 +66,9 @@ import { IFSData, IFSection, IFSScope, IFUData, IFUScope } from "../interfaces";
67
66
  type: columnInfo?.type || filter.column.type,
68
67
  },
69
68
  uiValues: getUIValues(filter),
70
- }
69
+ };
71
70
  })
72
- }
71
+ };
73
72
  })
74
73
  }));
75
74
  return ufData;
@@ -47,5 +47,5 @@ function UI21ToFD(uFilterData: IFUData, version): IFSData {
47
47
  scopes.push(scope);
48
48
  return scopes;
49
49
  }, [] as IFSScope[])
50
- }
50
+ };
51
51
  }
@@ -1,7 +1,7 @@
1
- import { cloneDeep, isEmpty, _get } from "../../general";
1
+ import { cloneDeep, isEmpty } from "../../general";
2
2
  import { IQrveyColumn, IQrveyDataset } from "../../interfaces/Qrvey.Interface";
3
3
  import { getUIValues } from "../helpers";
4
- import { IFSData, IFSScope, IFUData, IFUFlattenedFilter, IFUScope } from "../interfaces";
4
+ import { IFUData, IFUFlattenedFilter, IFUScope } from "../interfaces";
5
5
 
6
6
  /**
7
7
  * Generates a Flattened UI filter structure from UI Filter Data structure.
@@ -29,7 +29,7 @@ import { IFSData, IFSScope, IFUData, IFUFlattenedFilter, IFUScope } from "../int
29
29
  * @returns a flattened UI filters array
30
30
  */
31
31
  function UI21ToFlatUI(scopes: IFUScope[] = [], datasetsInfo: IQrveyDataset[] = []): IFUFlattenedFilter[] {
32
- let uFilters: IFUFlattenedFilter[] = [];
32
+ const uFilters: IFUFlattenedFilter[] = [];
33
33
  if (scopes.length === 0) return uFilters;
34
34
  scopes.forEach(scope => {
35
35
  if (scope.datasets.length > 0) {
@@ -39,6 +39,8 @@ function UI21ToFlatUI(scopes: IFUScope[] = [], datasetsInfo: IQrveyDataset[] = [
39
39
  const datasetInfo: IQrveyDataset = datasetsInfo.find(dInfo => dInfo.qrveyid === dataset.qrveyid && dInfo.linkid === dataset.linkid);
40
40
  let columnInfo: IQrveyColumn;
41
41
  if (!isEmpty(datasetInfo)) columnInfo = datasetInfo.options.find(cInfo => cInfo.id === filter.column.id && cInfo.qrveyid === filter.column.qrveyid && cInfo.linkid === filter.column.linkid);
42
+ const info = !isEmpty(filter.extras.info) ? { icon: filter.extras.info.icon, label: filter.extras.info.label } : undefined;
43
+
42
44
  const uFilter: IFUFlattenedFilter = {
43
45
  collapsed: filter.collapsed,
44
46
  column: {
@@ -57,8 +59,10 @@ function UI21ToFlatUI(scopes: IFUScope[] = [], datasetsInfo: IQrveyDataset[] = [
57
59
  displayed: filter.displayed,
58
60
  enabled: filter.enabled,
59
61
  extras: {
62
+ ...filter.extras,
60
63
  panelid: filter.extras.panelid,
61
64
  filterLabel: filter.extras.filterLabel,
65
+ info,
62
66
  scope: filter.extras.scope,
63
67
  scopeid: filter.extras.scopeid,
64
68
  section: filter.extras.section,
@@ -87,9 +91,9 @@ function UI21ToFlatUI(scopes: IFUScope[] = [], datasetsInfo: IQrveyDataset[] = [
87
91
  uiValues: getUIValues(filter),
88
92
  validator: filter.validator,
89
93
  values: filter.values,
90
- }
94
+ };
91
95
  uFilters.push(uFilter);
92
- })
96
+ });
93
97
  }
94
98
  });
95
99
  }
@@ -25,7 +25,7 @@ function UI21ToOldLogic(uFilterData: IFUData): OLD_IFilterData {
25
25
  enabled: true,
26
26
  section: uFilterData.section,
27
27
  logic: buildLogics(uFilterData.scopes, uFilterData.section),
28
- }
28
+ };
29
29
  }
30
30
 
31
31
  function buildLogics(scopeSection: IFUScope[], section: IFSection): OLD_IFilterLogic[] {
@@ -39,7 +39,7 @@ function buildLogics(scopeSection: IFUScope[], section: IFSection): OLD_IFilterL
39
39
  collapsed: scope.collapsed,
40
40
  section: section
41
41
  }
42
- }
42
+ };
43
43
  logics.push(logic);
44
44
  return logics;
45
45
  }, [] as OLD_IFilterLogic[]);
@@ -83,7 +83,7 @@ function buildExpressions(filterSection: IFUFilter[], scope: IFUScope, dataset:
83
83
  }
84
84
 
85
85
  const getFilterDetail = (filter: IFUFilter, scope: IFUScope, dataset: IFUDataset): OLD_IFilterDetail => {
86
- let aggregate, calculation;
86
+ let aggregate, calculation, info;
87
87
  if (filter.column.aggregate != null) {
88
88
  aggregate = {
89
89
  abbreviation: undefined, // CANNOT ADD AT THIS SCOPE
@@ -101,6 +101,12 @@ const getFilterDetail = (filter: IFUFilter, scope: IFUScope, dataset: IFUDataset
101
101
  value: filter.column.calculation,
102
102
  };
103
103
  }
104
+ if (!isEmpty(filter.extras.info)) {
105
+ info = {
106
+ icon: filter.extras.info.icon,
107
+ label: filter.extras.info.label,
108
+ };
109
+ }
104
110
  return {
105
111
  collapsed: filter.collapsed,
106
112
  column: {
@@ -123,6 +129,8 @@ const getFilterDetail = (filter: IFUFilter, scope: IFUScope, dataset: IFUDataset
123
129
  },
124
130
  dateSection: filter.dateSection,
125
131
  enabled: filter.enabled,
132
+ extras: filter.extras,
133
+ info,
126
134
  lookupDisplayIndex: filter.lookupDisplayIndex,
127
135
  nullValues: filter.nullValues,
128
136
  operator: filter.operator,