@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,7 +1,7 @@
1
1
  /**
2
2
  * 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
3
+ * @param {Array} array a collection of items to delete
4
+ * @param {Number} index the position of the item to delete
5
+ * @returns a new Array or the given parameter when is empty or not an array
6
6
  */
7
- export declare function ArrayDelete(array: Array<any>, index: number): any[];
7
+ export declare function ArrayDelete<T = Array<any>>(arr: T[], index: number): T[];
@@ -1,14 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ArrayDelete = void 0;
4
+ const mix_1 = require("../mix");
4
5
  /**
5
6
  * Inmutable Array Item deletion
6
- * @param {Array} array List to loo for item to delte
7
- * @param {Number} index position of item to delete
8
- * @return new Array
7
+ * @param {Array} array a collection of items to delete
8
+ * @param {Number} index the position of the item to delete
9
+ * @returns a new Array or the given parameter when is empty or not an array
9
10
  */
10
- function ArrayDelete(array, index) {
11
- return array.slice(0, index).concat(array.slice(index + 1));
11
+ function ArrayDelete(arr, index) {
12
+ if (mix_1.isEmpty(index) || mix_1.isEmpty(arr) || !Array.isArray(arr))
13
+ return arr;
14
+ return arr.slice(0, index).concat(arr.slice(index + 1));
12
15
  }
13
16
  exports.ArrayDelete = ArrayDelete;
14
- ;
@@ -10,7 +10,7 @@ const cloneDeep_1 = require("../object/cloneDeep");
10
10
  * @param condition function callback that determines if the filter is applied on the last child node of the nested tree
11
11
  * @returns array filtered
12
12
  */
13
- function filterNestedTree(arr = [], childArrKey, condition) {
13
+ function filterNestedTree(arr, childArrKey, condition) {
14
14
  if (mix_1.isEmpty(arr))
15
15
  return [];
16
16
  return cloneDeep_1.cloneDeep(arr).filter(obj => {
@@ -3,4 +3,4 @@
3
3
  * @param arr Array to flat deeply
4
4
  * @returns flatten array
5
5
  */
6
- export declare function flattenDeep(arr: any): any;
6
+ export declare function flattenDeep(arr?: any[]): any[];
@@ -6,7 +6,9 @@ exports.flattenDeep = void 0;
6
6
  * @param arr Array to flat deeply
7
7
  * @returns flatten array
8
8
  */
9
- function flattenDeep(arr) {
10
- return arr.reduce((acc, val) => Array.isArray(val) ? acc.concat(flattenDeep(val)) : acc.concat(val), []);
9
+ function flattenDeep(arr = []) {
10
+ if (Array.isArray(arr))
11
+ return arr.reduce((acc, val) => Array.isArray(val) ? acc.concat(flattenDeep(val)) : acc.concat(val), []);
12
+ return undefined;
11
13
  }
12
14
  exports.flattenDeep = flattenDeep;
@@ -4,4 +4,4 @@
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 declare function getFirstIndexFromArray(array: any[], callback: any): number;
7
+ export declare function getFirstIndexFromArray(array?: any[], callback?: (item: any) => boolean): number;
@@ -9,11 +9,13 @@ exports.getFirstIndexFromArray = void 0;
9
9
  */
10
10
  function getFirstIndexFromArray(array = [], callback) {
11
11
  let firstArrayIndex = -1;
12
- for (let i = 0; i < array.length; i++) {
13
- const condition = callback(array[i]);
14
- if (condition) {
15
- firstArrayIndex = i;
16
- break;
12
+ if (Array.isArray(array) && callback instanceof Function) {
13
+ for (let i = 0; i < array.length; i++) {
14
+ const condition = callback(array[i]);
15
+ if (condition) {
16
+ firstArrayIndex = i;
17
+ break;
18
+ }
17
19
  }
18
20
  }
19
21
  return firstArrayIndex;
@@ -4,4 +4,4 @@
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 declare function getLastIndexFromArray(array: any[], callback: any): number;
7
+ export declare function getLastIndexFromArray(array?: any[], callback?: (item: any) => boolean): number;
@@ -9,10 +9,12 @@ exports.getLastIndexFromArray = void 0;
9
9
  */
10
10
  function getLastIndexFromArray(array = [], callback) {
11
11
  let lastArrayIndex = -1;
12
- for (let i = 0; i < array.length; i++) {
13
- const condition = callback(array[i]);
14
- if (condition) {
15
- lastArrayIndex = i;
12
+ if (Array.isArray(array) && callback instanceof Function) {
13
+ for (let i = 0; i < array.length; i++) {
14
+ const condition = callback(array[i]);
15
+ if (condition) {
16
+ lastArrayIndex = i;
17
+ }
16
18
  }
17
19
  }
18
20
  return lastArrayIndex;
@@ -4,4 +4,4 @@
4
4
  * @param {Number} time default 500ms
5
5
  * @returns {Function} debounced functions
6
6
  */
7
- export declare function debounce(fn: Function, time?: number): (...args: any) => void;
7
+ export declare function debounce(fn: any, time?: number): (...args: any) => void;
@@ -4,4 +4,4 @@
4
4
  * @param {Number} time default 500ms
5
5
  * @returns {Function} throttled function
6
6
  */
7
- export declare function throttled(fn: Function, delay?: number): (...args: any) => any;
7
+ export declare function throttled(fn: any, delay?: number): (...args: any) => any;
@@ -10,7 +10,7 @@ exports.throttled = void 0;
10
10
  function throttled(fn, delay = 500) {
11
11
  let lastCall = 0;
12
12
  return (...args) => {
13
- const now = (new Date()).getTime();
13
+ const now = new Date().getTime();
14
14
  if (now - lastCall < delay) {
15
15
  return;
16
16
  }
@@ -44,7 +44,7 @@ export declare function importScripts(scripts: TScriptItem[]): any;
44
44
  export declare function loadScript(url: string, type?: TScriptType, noModule?: boolean): Promise<void>;
45
45
  export interface IScriptItem {
46
46
  url: string;
47
- namespace?: string | Function;
47
+ namespace?: string | any;
48
48
  dependencies?: IScriptItem[];
49
49
  noModule?: boolean;
50
50
  type?: string;
@@ -1,6 +1,7 @@
1
1
  /**
2
- * return if an String, object or string is empty or not
3
- * @param {Any} obj
4
- * @returns {boolean}
2
+ * Validates if the given argument is empty
3
+ * @param variable the given variable
4
+ * @param includeFalsy flag to determine include the falsy variables into the validation
5
+ * @returns true: the given argument is empty; false: is not.
5
6
  */
6
- export declare function isEmpty(obj: object | any[] | string): boolean;
7
+ export declare function isEmpty<T = any>(variable: T, includeFalsy?: boolean): boolean;
@@ -1,13 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isEmpty = void 0;
4
- const size_1 = require("./size");
5
4
  /**
6
- * return if an String, object or string is empty or not
7
- * @param {Any} obj
8
- * @returns {boolean}
5
+ * Validates if the given argument is empty
6
+ * @param variable the given variable
7
+ * @param includeFalsy flag to determine include the falsy variables into the validation
8
+ * @returns true: the given argument is empty; false: is not.
9
9
  */
10
- function isEmpty(obj) {
11
- return size_1.size(obj) === 0;
10
+ function isEmpty(variable, includeFalsy = false) {
11
+ return typeof variable == 'undefined'
12
+ || variable == null
13
+ || (typeof variable == 'number' && includeFalsy && (Number(variable) === 0 || Object.is(variable, -0) || isNaN(variable)))
14
+ || (typeof variable == 'string' && variable === "")
15
+ || (typeof variable == 'boolean' && includeFalsy && variable === false)
16
+ || (Array.isArray(variable) && variable.length === 0)
17
+ || (variable.constructor === Object && Object.entries(variable).length === 0);
12
18
  }
13
19
  exports.isEmpty = isEmpty;
@@ -3,4 +3,4 @@
3
3
  * @param {Number} length size of the generated string. Default 8
4
4
  * @return {String}
5
5
  */
6
- export declare function randomId(length?: number): string;
6
+ export declare function randomId(_length?: number): string;
@@ -6,7 +6,7 @@ exports.randomId = void 0;
6
6
  * @param {Number} length size of the generated string. Default 8
7
7
  * @return {String}
8
8
  */
9
- function randomId(length = 8) {
9
+ function randomId(_length = 8) {
10
10
  const charSet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_';
11
11
  let id = '';
12
12
  for (let i = 0; i < 8; i++) {
@@ -16,4 +16,3 @@ function randomId(length = 8) {
16
16
  return id;
17
17
  }
18
18
  exports.randomId = randomId;
19
- ;
@@ -5,4 +5,4 @@
5
5
  * @param {Any} obj
6
6
  * @returns {Number}
7
7
  */
8
- export declare function size(obj: object | any[] | string): number;
8
+ export declare function size(obj: any): number;
@@ -1,7 +1,7 @@
1
1
  /**
2
- * A asimple deepclone function
3
- * Avoid to use this that including functions as properties
2
+ * A simple Deep Cloning function. Valid only for primivite values and object with primitive values.
3
+ * Not to use this function with inner objects and functions
4
4
  * @param obj The object
5
- * @returns The new reference object
5
+ * @returns The new reference object or the given object if the parsing is incorrect or empty
6
6
  */
7
- export declare const cloneDeep: <T = any>(obj: T) => T;
7
+ export declare function cloneDeep<T = any>(obj: T): T;
@@ -1,13 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.cloneDeep = void 0;
4
+ const mix_1 = require("../mix");
4
5
  /**
5
- * A asimple deepclone function
6
- * Avoid to use this that including functions as properties
6
+ * A simple Deep Cloning function. Valid only for primivite values and object with primitive values.
7
+ * Not to use this function with inner objects and functions
7
8
  * @param obj The object
8
- * @returns The new reference object
9
+ * @returns The new reference object or the given object if the parsing is incorrect or empty
9
10
  */
10
- const cloneDeep = (obj) => {
11
- return JSON.parse(JSON.stringify(obj));
12
- };
11
+ function cloneDeep(obj) {
12
+ if (mix_1.isEmpty(obj))
13
+ return obj;
14
+ const stringObject = JSON.stringify(obj);
15
+ if (!mix_1.isEmpty(stringObject)) {
16
+ const parsedObject = JSON.parse(stringObject);
17
+ return !mix_1.isEmpty(parsedObject) ? parsedObject : obj;
18
+ }
19
+ return obj;
20
+ }
13
21
  exports.cloneDeep = cloneDeep;
@@ -1,17 +1,49 @@
1
1
  /**
2
- * Gets the value at `path` of `obj`. If the resolved value is _undefined_, the `def` is returned in its place.
3
- * @param obj
4
- * @param path
5
- * @param def
6
- *
7
- * @example
8
- * const object = { 'a': [{ 'b': { 'c': 3 } }] };
9
- * get(object, 'a[0].b.c'); // => 3
10
- * get(object, 'a.b.c', 'default'); // => 'default'
11
- * @deprecated
12
- */
13
- export declare function get(obj: object, path: string, def?: any): any;
2
+ * Like lodash _.get.
3
+ * Gets the value at path of object. If the resolved value is undefined, the defaultValue is returned in its place.
4
+ *
5
+ * Empty arrays and empty objects are returned but the defaultValue is not
6
+ * Undefined and null values will return the defaultValue.
7
+ *
8
+ * @param baseObject The object to query
9
+ * @param path The string path or collection of string paths of the property to get.
10
+ * @param defaultValue The value returned for undefined resolved values.
11
+ *
12
+ * @example
13
+ * // returns 'Hello'
14
+ * _get({ item1: 'Hello', item2: 'World' }, 'item1')
15
+ * @example
16
+ * // returns 'A simple Hello'
17
+ * _get({ item1: 'Hello', item2: 'World' }, 'item3', 'A simple Hello')
18
+ * @example
19
+ * // returns 'Hello Again'
20
+ * _get({ item1: { item11: 'Hello Again' }, item2: {} }, 'item1.item11')
21
+ * @example
22
+ * // returns 'Hello 2'
23
+ * _get({ item1: ['Hello 1', 'Hello 2' }, item2: [] }, 'item1[1]')
24
+ * @example
25
+ * // returns 'Hello Again'
26
+ * _get({ item1: { item11: 'Hello Again' }, item2: {} }, ['item1', 'item11'])
27
+ * @returns the resolved value.
28
+ */
29
+ export declare function _get(baseObject: any, path: string | string[], defaultValue?: any): any;
14
30
  /**
15
- * Like lodash _.get
16
- */
17
- export declare const _get: (baseObject: any, key: string, fallback?: any) => any;
31
+ *
32
+ * /**
33
+ * Like lodash _.get.
34
+ * Gets the value at path of object. If the resolved value is undefined, the defaultValue is returned in its place.
35
+ * @param baseObject The object to query
36
+ * @param path The path of the property to get.
37
+ * @param defaultValue The value returned for undefined resolved values.
38
+ * @returns the resolved value.
39
+ export function get(baseObject: any, path: string, defaultValue?: any): any {
40
+ function fn() {
41
+ try {
42
+ const value = eval(`this.${path}`.replace('.[', '['));
43
+ return typeof value !== 'undefined' ? value : defaultValue;
44
+ } catch (e) { return defaultValue; }
45
+ }
46
+ return fn.apply(baseObject, null);
47
+ }
48
+
49
+ */
@@ -1,43 +1,67 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports._get = exports.get = void 0;
3
+ exports._get = void 0;
4
4
  /**
5
- * Gets the value at `path` of `obj`. If the resolved value is _undefined_, the `def` is returned in its place.
6
- * @param obj
7
- * @param path
8
- * @param def
9
- *
10
- * @example
11
- * const object = { 'a': [{ 'b': { 'c': 3 } }] };
12
- * get(object, 'a[0].b.c'); // => 3
13
- * get(object, 'a.b.c', 'default'); // => 'default'
14
- * @deprecated
15
- */
16
- function get(obj, path, def) {
17
- let out;
18
- const pathList = path.replace(/\[/g, '.').replace(/]/g, '').split('.');
19
- for (const p of pathList) {
20
- out = (out || obj)[p];
21
- if (out === undefined)
22
- return def;
5
+ * Like lodash _.get.
6
+ * Gets the value at path of object. If the resolved value is undefined, the defaultValue is returned in its place.
7
+ *
8
+ * Empty arrays and empty objects are returned but the defaultValue is not
9
+ * Undefined and null values will return the defaultValue.
10
+ *
11
+ * @param baseObject The object to query
12
+ * @param path The string path or collection of string paths of the property to get.
13
+ * @param defaultValue The value returned for undefined resolved values.
14
+ *
15
+ * @example
16
+ * // returns 'Hello'
17
+ * _get({ item1: 'Hello', item2: 'World' }, 'item1')
18
+ * @example
19
+ * // returns 'A simple Hello'
20
+ * _get({ item1: 'Hello', item2: 'World' }, 'item3', 'A simple Hello')
21
+ * @example
22
+ * // returns 'Hello Again'
23
+ * _get({ item1: { item11: 'Hello Again' }, item2: {} }, 'item1.item11')
24
+ * @example
25
+ * // returns 'Hello 2'
26
+ * _get({ item1: ['Hello 1', 'Hello 2' }, item2: [] }, 'item1[1]')
27
+ * @example
28
+ * // returns 'Hello Again'
29
+ * _get({ item1: { item11: 'Hello Again' }, item2: {} }, ['item1', 'item11'])
30
+ * @returns the resolved value.
31
+ */
32
+ function _get(baseObject, path, defaultValue) {
33
+ if (validateToReturnDefaultValue(baseObject, path))
34
+ return defaultValue;
35
+ const keys = Array.isArray(path) ? path : path.replace(/(\[(\d)\])/g, '.$2').split('.').filter(k => k.length);
36
+ baseObject = baseObject[keys[0]];
37
+ if (baseObject !== undefined && keys.length > 1) {
38
+ return _get(baseObject, keys.slice(1), defaultValue);
23
39
  }
24
- return out;
40
+ return baseObject === undefined ? defaultValue : baseObject;
25
41
  }
26
- exports.get = get;
27
- /**
28
- * Like lodash _.get
29
- */
30
- const _get = (baseObject, key, fallback) => {
31
- function fn() {
32
- try {
33
- // tslint:disable-next-line:no-eval
34
- const value = eval(`this.${key}`.replace('.[', '['));
35
- return typeof value !== 'undefined' ? value : fallback;
36
- }
37
- catch (e) {
38
- return fallback;
39
- }
40
- }
41
- return fn.apply(baseObject, null);
42
- };
43
42
  exports._get = _get;
43
+ function validateToReturnDefaultValue(baseObject, path) {
44
+ return baseObject == null ||
45
+ path == null ||
46
+ (typeof path !== 'string' && !Array.isArray(path));
47
+ }
48
+ /**
49
+ *
50
+ * /**
51
+ * Like lodash _.get.
52
+ * Gets the value at path of object. If the resolved value is undefined, the defaultValue is returned in its place.
53
+ * @param baseObject The object to query
54
+ * @param path The path of the property to get.
55
+ * @param defaultValue The value returned for undefined resolved values.
56
+ * @returns the resolved value.
57
+ export function get(baseObject: any, path: string, defaultValue?: any): any {
58
+ function fn() {
59
+ try {
60
+ const value = eval(`this.${path}`.replace('.[', '['));
61
+ return typeof value !== 'undefined' ? value : defaultValue;
62
+ } catch (e) { return defaultValue; }
63
+ }
64
+ return fn.apply(baseObject, null);
65
+ }
66
+
67
+ */
@@ -7,4 +7,4 @@
7
7
  * @example
8
8
  * getAttribute(obj, 'snake_case') //it search for: obj.snake_case || obj.snakeCase || obj.SnakeCase || obj.snakecase || obj.SNAKECASE
9
9
  */
10
- export declare function getAttribute(obj: object, key: string): any;
10
+ export declare function getAttribute(obj: any, key: string): any;
@@ -14,4 +14,4 @@
14
14
  * const obj2 = { prop1: 'hello world' }
15
15
  * _hasProperty(ob1, prop2) // false
16
16
  */
17
- export declare function _hasProperty(obj: {}, property: string): boolean;
17
+ export declare function _hasProperty(obj?: {}, property?: string): boolean;