@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
@@ -1,4 +1,4 @@
1
- import { IFBackendValidator } from "./IFBackendValidator"
1
+ import { IFBackendValidator } from "./IFBackendValidator";
2
2
  import { IFBackendExpressionValue } from "./IFBackendExpressionValue";
3
3
  import { IFProperty } from "../IFProperty";
4
4
 
@@ -1,5 +1,6 @@
1
1
  import { IFScope } from "../IFScope";
2
2
  import { IFSection } from "../IFSection";
3
+ import { IFSFilterExtrasInfo } from "./IFSFilterExtrasInfo";
3
4
 
4
5
  /**
5
6
  * Structure for extra properties of the Filter.
@@ -10,4 +11,7 @@ export interface IFSFilterExtras {
10
11
  scope: IFScope; // Scope of the filter.
11
12
  scopeid?: string; // The scope ID. This is set depending on the scope type. Global: undefined; Tab: tabid; Page: pageid; DATA: qrveyid
12
13
  section?: IFSection; // The section when the filter is applied.
14
+ info?: IFSFilterExtrasInfo; // Extra filter info
15
+
16
+ [x: string]: any; // Specific case for those filters that need to store something else
13
17
  }
@@ -0,0 +1,5 @@
1
+ // Structure of extra info
2
+ export interface IFSFilterExtrasInfo {
3
+ icon: string; // An icon string related to the filter
4
+ label: string; // Info related to the filter
5
+ }
@@ -0,0 +1,8 @@
1
+
2
+ /**
3
+ * Structure for MergeFilters property settings
4
+ */
5
+ export interface IFSMergeFiltersSettings {
6
+ overwriteValues?: boolean;
7
+ setGroupedColumnOperator?: boolean;
8
+ }
@@ -3,6 +3,7 @@ import { IFProperty } from "../IFProperty";
3
3
  import { IFScope } from "../IFScope";
4
4
  import { IFValidator } from "../IFValidator";
5
5
  import { IFSColumn } from "./IFSColumn";
6
+ import { IFSParamsToGetFilterEnableds } from "./IFSParamsToGetFilterEnableds";
6
7
 
7
8
  /**
8
9
  * Structure for filter properties
@@ -10,7 +11,7 @@ import { IFSColumn } from "./IFSColumn";
10
11
  export interface IFSParamsToGetFilter {
11
12
  column?: IFSColumn;
12
13
  dateSection?: IFDateSection;
13
- enableds?: boolean;
14
+ enableds?: IFSParamsToGetFilterEnableds;
14
15
  linkid?: string;
15
16
  panelid?: string;
16
17
  property?: IFProperty;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Structure for filter structure enabled flags
3
+ */
4
+ export interface IFSParamsToGetFilterEnableds {
5
+ scopes?: boolean; // Flag to filter the scope enabled properties
6
+ datasets?: boolean; // Flag to filter the dataset enabled properties
7
+ filters?: boolean; // Flag to filter the filter enabled properties
8
+ values?: boolean; // Flag to filter the value enabled properties
9
+ }
@@ -12,4 +12,9 @@
12
12
  dataset?: boolean;
13
13
  filter?: boolean;
14
14
  };
15
+ filterEmptyArrays?: {
16
+ scope?: boolean;
17
+ dataset?: boolean;
18
+ filter?: boolean;
19
+ }
15
20
  }
@@ -20,7 +20,10 @@ export * from './IFSDataset';
20
20
  export * from './IFSDataStore';
21
21
  export * from './IFSFilter';
22
22
  export * from './IFSFilterExtras';
23
+ export * from './IFSFilterExtrasInfo';
24
+ export * from './IFSMergeFiltersSettings';
23
25
  export * from './IFSParamsToGetFilter';
26
+ export * from './IFSParamsToGetFilterEnableds';
24
27
  export * from './IFSParamsToGetFilterSettings';
25
28
  export * from './IFSScope';
26
29
  export * from './IFSScopeID';
@@ -14,4 +14,5 @@ import { IFPSettingsFilterPanelBodyScopeScopeHeader } from "./IFPSettingsFilterP
14
14
  readonly?: boolean; // True: validates read only, any event could not be executed in the scope.
15
15
  header?: IFPSettingsFilterPanelBodyScopeScopeHeader; // Scope header options. If this object does not provide, the options of settings.filterPanel.body.scope.header would be taken
16
16
  body?: IFPSettingsFilterPanelBodyScopeScopeBody; // Opciones para el body del scope.
17
+ settingDisplayed?: boolean; // True: Display the color settings
17
18
  }
@@ -8,5 +8,6 @@ import { IFPSettingsFilterPanelHeaderMenu } from "./IFPSettingsFilterPanelHeader
8
8
  readonly?: boolean; // True: validates read only, any event could not be executed in the Filter Panel header.
9
9
  filterButtonDisplayed?: boolean; // True: Display Add Filter button.
10
10
  settingsButtonDisplayed?: boolean; // True: Display Setting button.
11
+ settingsReadonly?: boolean; // True: disable Settings section
11
12
  menu?: IFPSettingsFilterPanelHeaderMenu; // Option Menu Settings
12
13
  }
@@ -1,9 +1,13 @@
1
+ import { IFPSettingsFilterPanelSettingsScope } from "./IFPSettingsFilterPanelSettingsScope";
1
2
  import { IFPSettingsPanelView } from "./IFPSettingsPanelView";
2
3
 
3
4
  /**
4
5
  * Structure for the additional Filter Panel settings
5
6
  */
6
7
  export interface IFPSettingsFilterPanelSettings {
8
+ panelInPageViewShow?: boolean; // True: Display the option in the Filter Panel Settings section
7
9
  panelInPageViewDisplayed?: boolean; // True: Display the Filter Panel component in the Page View (End user)
8
10
  panelDefaultView?: IFPSettingsPanelView;
11
+ panelDefaultViewShow?: boolean;
12
+ scopeSettings?: IFPSettingsFilterPanelSettingsScope;
9
13
  }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Scope Settings Structure
3
+ */
4
+ export interface IFPSettingsFilterPanelSettingsScope {
5
+ displayIconDisplayed: boolean;
6
+ displayColorModeDisplayed: boolean;
7
+ }
@@ -1,7 +1,5 @@
1
1
  import { IFilterBuilderConfig } from "../builder";
2
- import { IFUData } from "../ui";
3
2
  import { IFUDataStore } from "../ui/IFUDataStore";
4
- import { IFPSettings } from "./IFPSettings";
5
3
 
6
4
  /**
7
5
  * Structure for the Filter Panel Config
@@ -36,5 +36,6 @@ export * from './IFPSettingsFilterPanelBodyDatasetHeader';
36
36
  export * from './IFPSettingsFilterPanelBodyFilter';
37
37
  export * from './IFPSettingsFilterPanelBodyFilterMenu';
38
38
  export * from './IFPSettingsFilterPanelBodyOperator';
39
+ export * from './IFPSettingsFilterPanelSettingsScope';
39
40
 
40
41
  export * from './IFPSettingsPanelView';
@@ -1,5 +1,5 @@
1
1
  import { IQrveyDataset } from "../../../interfaces/Qrvey.Interface";
2
- import { IFSDataset, IFSFilterExtras, IFSScope } from "../common";
2
+ import { IFSFilterExtras } from "../common";
3
3
  import { IFUDataset } from "./IFUDataset";
4
4
  import { IFUScope } from "./IFUScope";
5
5
 
@@ -1,5 +1,6 @@
1
1
 
2
2
  import { COLUMN, CHART_TYPE } from '../constants';
3
+ import { ChartType } from '../interfaces';
3
4
 
4
5
  export const textFields: string[] = [COLUMN.TEXTFIELD, COLUMN.TEXT_CATEGORY, COLUMN.TEXT_LABEL, COLUMN.TEXT_CATEGORY];
5
6
 
@@ -28,15 +29,15 @@ export const QUESTION_FORMAT_SUPPORT = [
28
29
  ];
29
30
  export const DATEGROUP_FORMATTING_UNSUPPORT = ['YEAR', 'QUARTER', 'MONTH', 'WEEK'];
30
31
 
31
- export const appliesFormatting = (columnType) => QUESTION_FORMAT_SUPPORT.includes(columnType);
32
+ export const appliesFormatting = (columnType): boolean => QUESTION_FORMAT_SUPPORT.includes(columnType);
32
33
 
33
- export const hasfileSizeProperty = (column: any = {}) => isComplexColumn(column) && column.property && (column.property.value || column.property).includes('fileSize');
34
+ export const hasfileSizeProperty = (column: any = {}): boolean => isComplexColumn(column) && column.property && (column.property.value || column.property).includes('fileSize');
34
35
 
35
- export const isComplexColumn = (column: any = {}) => complexFields.includes(column.type);
36
+ export const isComplexColumn = (column: any = {}): boolean => complexFields.includes(column.type);
36
37
 
37
- export const isNumericalColumn = (column: any = {}) => numericalFields.includes(column.type) || column.formulaType === 'number';
38
+ export const isNumericalColumn = (column: any = {}): boolean => numericalFields.includes(column.type) || column.formulaType === 'number';
38
39
 
39
- export function supportNumericFormatting(chartType): boolean {
40
+ export function supportNumericFormatting(chartType: ChartType): boolean {
40
41
  const supportedCharts = [
41
42
  CHART_TYPE.TABLE_CHART,
42
43
  CHART_TYPE.CROSSTAB_CHART,
@@ -52,6 +53,4 @@ export function supportNumericFormatting(chartType): boolean {
52
53
  return supportedCharts.includes(chartType);
53
54
  }
54
55
 
55
- export const isTextColumn = (column: any) => textFields.includes(column.type) || column.formulaType === 'string' || column.formulaType === 'boolean';
56
-
57
-
56
+ export const isTextColumn = (column: any): boolean => textFields.includes(column.type) || column.formulaType === 'string' || column.formulaType === 'boolean';
@@ -1,32 +1,28 @@
1
1
  import { format as d3Format } from 'd3';
2
2
  import dayjs from 'dayjs';
3
3
  import { COLUMN, FORMULA_TYPES } from '../constants';
4
- import { _get } from '../general/object/get';
5
4
  import { DATEGROUP_FORMATTING_UNSUPPORT, appliesFormatting, hasfileSizeProperty, isTextColumn } from './definition';
6
5
  import advancedFormat from 'dayjs/plugin/advancedFormat';
6
+ import { isEmpty, _get } from '../general';
7
7
 
8
8
  dayjs.extend(advancedFormat); // Add support to advanced formats https://day.js.org/docs/en/plugin/advanced-format
9
9
 
10
- export const isEmptyValue = (variable: any): boolean => {
11
- return variable === undefined || variable === null || variable === '';
12
- }
13
-
14
10
  /**
15
11
  * Apply to the given date format to a date value
16
12
  * @param bytes type number
17
13
  */
18
14
  function isValidDateString(dateString = '') {
19
15
  return /^\d{2}\/\d{2}\/\d{4}/.test(dateString) // MM/DD/YYY OR DD/MM/YYYY
20
- || /^\d{4}\-\d{2}\-\d{2}/.test(dateString); // YYYY-MM-DD
16
+ || /^\d{4}-\d{2}-\d{2}/.test(dateString); // YYYY-MM-DD
21
17
  }
22
18
 
23
19
  export function formatDate(dateString, format) {
24
- if (isEmptyValue(dateString) || !isNaN(dateString) || format === 'Default') return dateString;
20
+ if (isEmpty(dateString) || !isNaN(dateString) || format === 'Default') return dateString;
25
21
  if (!isValidDateString(dateString)) return dateString;
26
22
  return dayjs(dateString.split('.')[0]).format(format.replace('HH24:', 'HH:').replace('MI:SS', 'mm:ss').replace('MM:SS', 'mm:ss'));
27
23
  }
28
24
 
29
- function formatAbbreviated(num, decimals) {
25
+ export function formatAbbreviated(num, decimals) {
30
26
  if (num == 0) return 0;
31
27
 
32
28
  const absValue = Math.abs(num);
@@ -35,17 +31,17 @@ function formatAbbreviated(num, decimals) {
35
31
  if (exp < 0 && exp >= -3)
36
32
  return decimals ? num.toFixed(decimals) : num;
37
33
 
38
- return d3Format((num > -100 && num < 100) ? '.s' : '.3s')(num);
34
+ return d3Format(num > -100 && num < 100 ? '' : '.3s')(num);
39
35
  }
40
36
 
41
- function formatNumber(num, outputFormat, config?) {
37
+ function formatNumber(num, outputFormat, _config?) {
42
38
  try {
43
39
  num = +(num || 0);
44
40
  } catch (e) {
45
41
  num = 0;
46
42
  }
47
43
  if (isNaN(num)) num = 0;
48
- const num_decimals = !isEmptyValue(outputFormat.decimals) && outputFormat.format !== 'Abbreviated' ? outputFormat.decimals : 0;
44
+ const num_decimals = !isEmpty(outputFormat.decimals) && outputFormat.format !== 'Abbreviated' ? outputFormat.decimals : 0;
49
45
 
50
46
  switch (outputFormat.format) {
51
47
  case 'Abbreviated':
@@ -57,12 +53,12 @@ function formatNumber(num, outputFormat, config?) {
57
53
 
58
54
  const currency = `${num < 0 ? '-' : ''} ${_get(outputFormat, 'currency.label', '$')}`;
59
55
  const absNum = Math.abs(num);
60
- return currency + d3Format(`,.${num_decimals}f`)(absNum).replace(/\.(%*)$/, '$1')
56
+ return currency + d3Format(`,.${num_decimals}f`)(absNum).replace(/\.(%*)$/, '$1');
61
57
  }
62
58
  case 'Percentage':
63
- return `${d3Format(`,.${num_decimals}f`)(num).replace(/\.(%*)$/, '$1')}%`
59
+ return `${d3Format(`,.${num_decimals}f`)(num).replace(/\.(%*)$/, '$1')}%`;
64
60
  case 'Scientific':
65
- return Number(num).toExponential(num_decimals).replace('.00', '').replace('e+0', '')
61
+ return Number(num).toExponential(num_decimals).replace('.00', '').replace('e+0', '');
66
62
  default:
67
63
  return `${num}`;
68
64
  }
@@ -72,7 +68,7 @@ function formatNumber(num, outputFormat, config?) {
72
68
  * Set convert Bytes into MB
73
69
  * @param bytes type number
74
70
  */
75
- export function formatFileSize(bytes: number) {
71
+ export function formatFileSize(bytes: number): string {
76
72
  const fixDecimals = (num) => {
77
73
  return parseFloat(`${(num * 100) / 100}`).toFixed(2);
78
74
  };
@@ -85,14 +81,15 @@ export function formatFileSize(bytes: number) {
85
81
  }
86
82
 
87
83
  export const formatValue = (value: any, outputFormat: any = 'None', config?): any => {
88
- if (isEmptyValue(value) || typeof value === 'object' && isEmptyValue(value[0])) return value;
84
+ if (isEmpty(value) || typeof value === 'object' && isEmpty(value[0])) return value;
89
85
  switch (outputFormat.type) {
90
86
  case 'DATE':
91
87
  case 'DATETIME':
92
88
  return formatDate(value, outputFormat.format);
93
- case 'NUMERIC':
89
+ case 'NUMERIC': {
94
90
  const parse = parseFloat(value);
95
91
  return isNaN(parse) ? value : formatNumber(parse, outputFormat, config);
92
+ }
96
93
  case 'IMAGEUPLOAD':
97
94
  case 'FILEUPLOAD':
98
95
  return formatFileSize(parseFloat(value));
@@ -135,7 +132,7 @@ export const defineFormat = (column: any = {}, isSimpleTable = false, isCategory
135
132
  format: 'Abbreviated'
136
133
  };
137
134
 
138
- const dateGroupLabel = _get(column, 'dateGroup.label') || column.dateGroup
135
+ const dateGroupLabel = _get(column, 'dateGroup.label') || column.dateGroup;
139
136
  switch (columnType) {
140
137
  case COLUMN.YES_NO:
141
138
  case COLUMN.PHONE:
@@ -147,7 +144,7 @@ export const defineFormat = (column: any = {}, isSimpleTable = false, isCategory
147
144
  case COLUMN.EMAIL_FORM:
148
145
  case COLUMN.IMAGE:
149
146
  case COLUMN.TEXT_LABEL:
150
- if (isTable) return 'None'
147
+ if (isTable) return 'None';
151
148
  if (outputFormat) {
152
149
  if (isNumericDefaultOutput) return defaultAbbreviated;
153
150
  return column.outputFormat;
@@ -156,6 +153,7 @@ export const defineFormat = (column: any = {}, isSimpleTable = false, isCategory
156
153
  if (isNumericDefaultSelected) return defaultAbbreviated;
157
154
  return column.selectedFormat;
158
155
  }
156
+ break;
159
157
  case COLUMN.DATE:
160
158
  if ((!isTable && column.isSummary) || column.isXY) {
161
159
  if (isCategoryDimension && outputFormat !== 'Default') return column.outputFormat;
@@ -165,7 +163,7 @@ export const defineFormat = (column: any = {}, isSimpleTable = false, isCategory
165
163
  if ((isCategoryDimension || isTable) && DATEGROUP_FORMATTING_UNSUPPORT.includes(dateGroupLabel)) return 'None';
166
164
  if ((isCategoryDimension || isTable) && selectType == 'NUMERIC' && dateGroupLabel && outputType === 'DATE') return column.outputFormat;
167
165
  if ((isCategoryDimension || isTable) && selectType == 'NUMERIC' && dateGroupLabel && outputType === 'NUMERIC') return _get(column, 'defaultFormat');
168
- if (selectedFormat) {
166
+ if (selectedFormat && selectedFormat != 'Default') {
169
167
  if (isNumericDefaultSelected) return defaultAbbreviated;
170
168
  return column.selectedFormat;
171
169
  }
@@ -182,7 +180,6 @@ export const defineFormat = (column: any = {}, isSimpleTable = false, isCategory
182
180
  type: columnType,
183
181
  format: 'MM/DD/YYYY'
184
182
  };
185
-
186
183
  case COLUMN.NUMERIC:
187
184
  case COLUMN.RATING:
188
185
  case COLUMN.SLIDEBAR: {
@@ -272,7 +269,7 @@ export const defineFormat = (column: any = {}, isSimpleTable = false, isCategory
272
269
  ((column.selectedFormat &&
273
270
  column.selectedFormat.format !== "Default") ||
274
271
  (!isSimpleTable && column.isSummary)) &&
275
- _get(column, "outputFormat.format")
272
+ _get(column, "outputFormat.format")
276
273
  )
277
274
  return column.outputFormat;
278
275
  break;
@@ -1,9 +1,13 @@
1
+ import { isEmpty } from "../mix";
2
+
1
3
  /**
2
4
  * Inmutable Array Item deletion
3
- * @param {Array} array List to loo for item to delte
4
- * @param {Number} index position of item to delete
5
- * @return new Array
5
+ * @param {Array} array a collection of items to delete
6
+ * @param {Number} index the position of the item to delete
7
+ * @returns a new Array or the given parameter when is empty or not an array
6
8
  */
7
- export function ArrayDelete (array: Array<any>, index: number) {
8
- return array.slice(0, index).concat(array.slice(index + 1));
9
- };
9
+ export function ArrayDelete<T = Array<any>> (arr: T[], index: number): T[] {
10
+ if (isEmpty(index) || isEmpty(arr) || !Array.isArray(arr)) return arr;
11
+
12
+ return arr.slice(0, index).concat(arr.slice(index + 1));
13
+ }
@@ -8,7 +8,7 @@ import { cloneDeep } from "../object/cloneDeep";
8
8
  * @param condition function callback that determines if the filter is applied on the last child node of the nested tree
9
9
  * @returns array filtered
10
10
  */
11
- export function filterNestedTree(arr: any[] = [], childArrKey: string, condition: any) {
11
+ export function filterNestedTree(arr: any[], childArrKey: string, condition: any): any[] {
12
12
  if (isEmpty(arr)) return [];
13
13
 
14
14
  return cloneDeep(arr).filter(obj => {
@@ -3,6 +3,7 @@
3
3
  * @param arr Array to flat deeply
4
4
  * @returns flatten array
5
5
  */
6
- export function flattenDeep(arr) {
7
- return arr.reduce((acc, val) => Array.isArray(val) ? acc.concat(flattenDeep(val)) : acc.concat(val), []);
6
+ export function flattenDeep(arr = []): any[] {
7
+ if (Array.isArray(arr)) return arr.reduce((acc, val) => Array.isArray(val) ? acc.concat(flattenDeep(val)) : acc.concat(val), []);
8
+ return undefined;
8
9
  }
@@ -4,13 +4,15 @@
4
4
  * @param callback function callback
5
5
  * @returns the first index of the array. -1 when the condition is not satisfied
6
6
  */
7
- export function getFirstIndexFromArray(array = [], callback): number {
7
+ export function getFirstIndexFromArray(array: any[] = [], callback?: (item: any) => boolean): number {
8
8
  let firstArrayIndex = -1;
9
- for(let i = 0; i < array.length; i++) {
10
- const condition = callback(array[i]);
11
- if (condition) {
12
- firstArrayIndex = i;
13
- break;
9
+ if (Array.isArray(array) && callback instanceof Function) {
10
+ for(let i = 0; i < array.length; i++) {
11
+ const condition = callback(array[i]);
12
+ if (condition) {
13
+ firstArrayIndex = i;
14
+ break;
15
+ }
14
16
  }
15
17
  }
16
18
  return firstArrayIndex;
@@ -4,12 +4,14 @@
4
4
  * @param callback function callback
5
5
  * @returns the last index of the array. -1 when the condition is not satisfied
6
6
  */
7
- export function getLastIndexFromArray(array = [], callback): number {
7
+ export function getLastIndexFromArray(array: any[] = [], callback?: (item: any) => boolean): number {
8
8
  let lastArrayIndex = -1;
9
- for(let i = 0; i < array.length; i++) {
10
- const condition = callback(array[i]);
11
- if (condition) {
12
- lastArrayIndex = i;
9
+ if (Array.isArray(array) && callback instanceof Function) {
10
+ for(let i = 0; i < array.length; i++) {
11
+ const condition = callback(array[i]);
12
+ if (condition) {
13
+ lastArrayIndex = i;
14
+ }
13
15
  }
14
16
  }
15
17
  return lastArrayIndex;
@@ -4,7 +4,7 @@
4
4
  * @param {Number} time default 500ms
5
5
  * @returns {Function} debounced functions
6
6
  */
7
- export function debounce(fn: Function, time = 500) {
7
+ export function debounce(fn, time = 500) {
8
8
  let timeout;
9
9
 
10
10
  return function (...args: any) {
@@ -12,5 +12,5 @@ export function debounce(fn: Function, time = 500) {
12
12
 
13
13
  clearTimeout(timeout);
14
14
  timeout = setTimeout(functionCall, time);
15
- }
15
+ };
16
16
  }
@@ -4,14 +4,14 @@
4
4
  * @param {Number} time default 500ms
5
5
  * @returns {Function} throttled function
6
6
  */
7
- export function throttled(fn: Function, delay = 500) {
7
+ export function throttled(fn, delay = 500) {
8
8
  let lastCall = 0;
9
9
  return (...args: any) => {
10
- const now = (new Date()).getTime();
10
+ const now = new Date().getTime();
11
11
  if (now - lastCall < delay) {
12
12
  return;
13
13
  }
14
14
  lastCall = now;
15
15
  return fn(...args);
16
- }
16
+ };
17
17
  }