@qrvey/utils 1.1.0-9 → 1.1.2-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (444) hide show
  1. package/.eslintignore +5 -0
  2. package/.eslintrc.json +37 -0
  3. package/README.md +474 -285
  4. package/bitbucket-pipelines.yml +25 -0
  5. package/dist/cjs/constants/COLUMN.js +0 -1
  6. package/dist/cjs/constants/COLUMN_PROPERTY.d.ts +6 -0
  7. package/dist/cjs/constants/COLUMN_PROPERTY.js +0 -1
  8. package/dist/cjs/constants/COLUMN_PROPERTY_VALUE.js +4 -1
  9. package/dist/cjs/date/constants/DATE_DAY_HOURS.d.ts +1 -0
  10. package/dist/cjs/date/constants/DATE_DAY_HOURS.js +29 -0
  11. package/dist/cjs/date/constants/DATE_HOUR_MINUTES.d.ts +1 -0
  12. package/dist/cjs/date/constants/DATE_HOUR_MINUTES.js +65 -0
  13. package/dist/cjs/date/constants/DATE_MINUTE_SECONDS.d.ts +1 -0
  14. package/dist/cjs/date/constants/DATE_MINUTE_SECONDS.js +5 -0
  15. package/dist/cjs/date/constants/DATE_MONTH_DAYS.d.ts +1 -0
  16. package/dist/cjs/date/constants/DATE_MONTH_DAYS.js +36 -0
  17. package/dist/cjs/date/constants/DATE_PROPERTY.js +0 -1
  18. package/dist/cjs/date/constants/DATE_PROPERTY_VALUE.d.ts +8 -0
  19. package/dist/cjs/date/constants/DATE_PROPERTY_VALUE.js +17 -0
  20. package/dist/cjs/date/constants/DATE_P_PROPERTIES.d.ts +2 -0
  21. package/dist/cjs/date/constants/DATE_P_PROPERTIES.js +11 -0
  22. package/dist/cjs/date/constants/DATE_P_VALUES.d.ts +6 -0
  23. package/dist/cjs/date/constants/DATE_P_VALUES.js +8 -0
  24. package/dist/cjs/date/constants/DATE_TIME_P_VALUES.d.ts +6 -0
  25. package/dist/cjs/date/constants/DATE_TIME_P_VALUES.js +8 -0
  26. package/dist/cjs/date/constants/DATE_TIME_VALUES.js +1 -1
  27. package/dist/cjs/date/constants/DATE_WEEK_DAYS.d.ts +1 -0
  28. package/dist/cjs/date/constants/DATE_WEEK_DAYS.js +6 -0
  29. package/dist/cjs/date/constants/DATE_YEAR_DAYS.d.ts +1 -0
  30. package/dist/cjs/date/constants/DATE_YEAR_DAYS.js +370 -0
  31. package/dist/cjs/date/constants/DATE_YEAR_MONTHS.d.ts +1 -0
  32. package/dist/cjs/date/constants/DATE_YEAR_MONTHS.js +4 -0
  33. package/dist/cjs/date/constants/DATE_YEAR_QUARTERS.d.ts +1 -0
  34. package/dist/cjs/date/constants/DATE_YEAR_QUARTERS.js +4 -0
  35. package/dist/cjs/date/constants/index.d.ts +12 -0
  36. package/dist/cjs/date/constants/index.js +12 -0
  37. package/dist/cjs/date/range/getDateRange.js +26 -21
  38. package/dist/cjs/date/relative/Adapter.js +1 -1
  39. package/dist/cjs/date/relative/constants/DATE_FORMATS.d.ts +1 -1
  40. package/dist/cjs/date/relative/constants/DATE_FORMATS.js +3 -3
  41. package/dist/cjs/date/relative/helpers/formatStatement.js +6 -6
  42. package/dist/cjs/filters/adapters/FDToFlatUI.js +5 -12
  43. package/dist/cjs/filters/adapters/FDToUI.js +2 -3
  44. package/dist/cjs/filters/adapters/UIToFlatUI.js +5 -12
  45. package/dist/cjs/filters/adapters/UIToOldLogic.js +9 -1
  46. package/dist/cjs/filters/adapters/adaptFilterData.js +1 -1
  47. package/dist/cjs/filters/adapters/flatUIToFD.js +3 -7
  48. package/dist/cjs/filters/adapters/flatUIToOldLogic.js +41 -62
  49. package/dist/cjs/filters/adapters/flatUIToUI.js +2 -7
  50. package/dist/cjs/filters/adapters/logicToFlatUI.js +89 -74
  51. package/dist/cjs/filters/adapters/transformFilters.d.ts +1 -1
  52. package/dist/cjs/filters/adapters/transformFilters.js +18 -25
  53. package/dist/cjs/filters/constants/backend/FILTER_BACKEND_VALIDATOR.js +0 -1
  54. package/dist/cjs/filters/constants/common/FILTER_GROUPED_COLUMN_OPERATOR.d.ts +2 -0
  55. package/dist/cjs/filters/constants/common/FILTER_GROUPED_COLUMN_OPERATOR.js +4 -0
  56. package/dist/cjs/filters/constants/common/FILTER_OPERATOR.js +0 -1
  57. package/dist/cjs/filters/constants/common/FILTER_VALIDATOR.js +0 -1
  58. package/dist/cjs/filters/constants/common/index.d.ts +1 -0
  59. package/dist/cjs/filters/constants/common/index.js +1 -0
  60. package/dist/cjs/filters/helpers/backend/buildExpression.d.ts +6 -0
  61. package/dist/cjs/filters/helpers/backend/buildExpression.js +9 -2
  62. package/dist/cjs/filters/helpers/backend/getBackendGroupValue.js +2 -1
  63. package/dist/cjs/filters/helpers/backend/getBackendProperty.js +7 -2
  64. package/dist/cjs/filters/helpers/backend/getBackendValues.js +34 -18
  65. package/dist/cjs/filters/helpers/common/arePropertiesDateP.d.ts +8 -0
  66. package/dist/cjs/filters/helpers/common/arePropertiesDateP.js +16 -0
  67. package/dist/cjs/filters/helpers/common/getFilterColumnLabel.js +1 -1
  68. package/dist/cjs/filters/helpers/common/getFilterid.js +1 -1
  69. package/dist/cjs/filters/helpers/common/getFiltersByParams.js +5 -5
  70. package/dist/cjs/filters/helpers/common/getFiltersByVisibility.js +1 -1
  71. package/dist/cjs/filters/helpers/common/getMergeFiltersSettings.d.ts +7 -0
  72. package/dist/cjs/filters/helpers/common/getMergeFiltersSettings.js +16 -0
  73. package/dist/cjs/filters/helpers/common/getParamsToGetFilterSettings.d.ts +5 -0
  74. package/dist/cjs/filters/helpers/common/getParamsToGetFilterSettings.js +11 -1
  75. package/dist/cjs/filters/helpers/common/index.d.ts +2 -0
  76. package/dist/cjs/filters/helpers/common/index.js +2 -0
  77. package/dist/cjs/filters/helpers/common/mergeFilters.d.ts +2 -1
  78. package/dist/cjs/filters/helpers/common/mergeFilters.js +27 -10
  79. package/dist/cjs/filters/helpers/common/resolveDatasetConditions.js +1 -1
  80. package/dist/cjs/filters/helpers/common/resolveFilterConditions.js +2 -3
  81. package/dist/cjs/filters/helpers/common/resolveScopeConditions.js +1 -1
  82. package/dist/cjs/filters/helpers/getAggFiltersFromFilterData.d.ts +1 -1
  83. package/dist/cjs/filters/helpers/getAggFiltersFromFilterData.js +18 -19
  84. package/dist/cjs/filters/helpers/getScopesByHierarchy.js +2 -2
  85. package/dist/cjs/filters/helpers/ui/excludeUIFlatFiltersByScopes.d.ts +1 -1
  86. package/dist/cjs/filters/helpers/ui/excludeUIFlatFiltersByScopes.js +1 -1
  87. package/dist/cjs/filters/helpers/ui/getUIFlatFilterByParams.d.ts +1 -1
  88. package/dist/cjs/filters/helpers/ui/getUIFlatFilterByParams.js +1 -1
  89. package/dist/cjs/filters/helpers/ui/getUIFlatFiltersByParams.d.ts +1 -1
  90. package/dist/cjs/filters/helpers/ui/getUIFlatFiltersByParams.js +1 -1
  91. package/dist/cjs/filters/helpers/ui/getUIFlatFiltersByScopes.d.ts +1 -1
  92. package/dist/cjs/filters/helpers/ui/getUIFlatFiltersByScopes.js +1 -1
  93. package/dist/cjs/filters/helpers/ui/getUIValues.js +6 -5
  94. package/dist/cjs/filters/interfaces/OLD_IFilterDetail.d.ts +3 -0
  95. package/dist/cjs/filters/interfaces/common/IFSFilterExtras.d.ts +3 -0
  96. package/dist/cjs/filters/interfaces/common/IFSFilterExtrasInfo.d.ts +4 -0
  97. package/dist/cjs/filters/interfaces/common/IFSFilterExtrasInfo.js +2 -0
  98. package/dist/cjs/filters/interfaces/common/IFSMergeFiltersSettings.d.ts +7 -0
  99. package/dist/cjs/filters/interfaces/common/IFSMergeFiltersSettings.js +2 -0
  100. package/dist/cjs/filters/interfaces/common/IFSParamsToGetFilter.d.ts +2 -1
  101. package/dist/cjs/filters/interfaces/common/IFSParamsToGetFilterEnableds.d.ts +9 -0
  102. package/dist/cjs/filters/interfaces/common/IFSParamsToGetFilterEnableds.js +2 -0
  103. package/dist/cjs/filters/interfaces/common/IFSParamsToGetFilterSettings.d.ts +5 -0
  104. package/dist/cjs/filters/interfaces/common/index.d.ts +3 -0
  105. package/dist/cjs/filters/interfaces/common/index.js +3 -0
  106. package/dist/cjs/filters/interfaces/panel/IFPSettingsFilterPanelBodyScopeScope.d.ts +1 -0
  107. package/dist/cjs/filters/interfaces/panel/IFPSettingsFilterPanelHeader.d.ts +1 -0
  108. package/dist/cjs/filters/interfaces/panel/IFPSettingsFilterPanelSettings.d.ts +4 -0
  109. package/dist/cjs/filters/interfaces/panel/IFPSettingsFilterPanelSettingsScope.d.ts +7 -0
  110. package/dist/cjs/filters/interfaces/panel/IFPSettingsFilterPanelSettingsScope.js +2 -0
  111. package/dist/cjs/filters/interfaces/panel/index.d.ts +1 -0
  112. package/dist/cjs/filters/interfaces/panel/index.js +1 -0
  113. package/dist/cjs/format/definition.d.ts +3 -2
  114. package/dist/cjs/format/format.d.ts +1 -1
  115. package/dist/cjs/format/format.js +25 -26
  116. package/dist/cjs/general/array/delete.d.ts +4 -4
  117. package/dist/cjs/general/array/delete.js +8 -6
  118. package/dist/cjs/general/array/filterNestedTree.js +1 -1
  119. package/dist/cjs/general/array/flattenDeep.d.ts +1 -1
  120. package/dist/cjs/general/array/flattenDeep.js +4 -2
  121. package/dist/cjs/general/array/getFirstIndexFromArray.d.ts +1 -1
  122. package/dist/cjs/general/array/getFirstIndexFromArray.js +7 -5
  123. package/dist/cjs/general/array/getLastIndexFromArray.d.ts +1 -1
  124. package/dist/cjs/general/array/getLastIndexFromArray.js +6 -4
  125. package/dist/cjs/general/function/debounce.d.ts +1 -1
  126. package/dist/cjs/general/function/throttled.d.ts +1 -1
  127. package/dist/cjs/general/function/throttled.js +1 -1
  128. package/dist/cjs/general/mix/importScripts.d.ts +1 -1
  129. package/dist/cjs/general/mix/isEmpty.d.ts +5 -4
  130. package/dist/cjs/general/mix/isEmpty.js +12 -6
  131. package/dist/cjs/general/mix/randomId.d.ts +1 -1
  132. package/dist/cjs/general/mix/randomId.js +1 -2
  133. package/dist/cjs/general/mix/size.d.ts +1 -1
  134. package/dist/cjs/general/object/cloneDeep.d.ts +4 -4
  135. package/dist/cjs/general/object/cloneDeep.js +14 -6
  136. package/dist/cjs/general/object/get.d.ts +47 -15
  137. package/dist/cjs/general/object/get.js +61 -37
  138. package/dist/cjs/general/object/getAttribute.d.ts +1 -1
  139. package/dist/cjs/general/object/hasProperty.d.ts +1 -1
  140. package/dist/cjs/general/object/hasProperty.js +1 -1
  141. package/dist/cjs/general/object/index.d.ts +1 -0
  142. package/dist/cjs/general/object/index.js +1 -0
  143. package/dist/cjs/general/object/isObject.d.ts +6 -0
  144. package/dist/cjs/general/object/isObject.js +12 -0
  145. package/dist/cjs/general/object/mapValues.d.ts +1 -1
  146. package/dist/cjs/general/object/mapValues.js +0 -1
  147. package/dist/cjs/general/object/omit.js +1 -1
  148. package/dist/cjs/general/object/pick.js +0 -1
  149. package/dist/cjs/index.d.ts +2 -0
  150. package/dist/cjs/index.js +2 -0
  151. package/dist/cjs/qrvey/getColumnsLabel.js +4 -4
  152. package/dist/cjs/qrvey/index.d.ts +3 -0
  153. package/dist/cjs/qrvey/index.js +15 -0
  154. package/dist/cjs/tokens/index.d.ts +1 -0
  155. package/dist/cjs/tokens/index.js +13 -0
  156. package/dist/cjs/tokens/isTokenLabel.d.ts +6 -0
  157. package/dist/cjs/tokens/isTokenLabel.js +16 -0
  158. package/dist/constants/COLUMN.js +0 -1
  159. package/dist/constants/COLUMN_PROPERTY.d.ts +6 -0
  160. package/dist/constants/COLUMN_PROPERTY.js +0 -1
  161. package/dist/constants/COLUMN_PROPERTY_VALUE.js +4 -1
  162. package/dist/date/constants/DATE_DAY_HOURS.d.ts +1 -0
  163. package/dist/date/constants/DATE_DAY_HOURS.js +26 -0
  164. package/dist/date/constants/DATE_HOUR_MINUTES.d.ts +1 -0
  165. package/dist/date/constants/DATE_HOUR_MINUTES.js +62 -0
  166. package/dist/date/constants/DATE_MINUTE_SECONDS.d.ts +1 -0
  167. package/dist/date/constants/DATE_MINUTE_SECONDS.js +2 -0
  168. package/dist/date/constants/DATE_MONTH_DAYS.d.ts +1 -0
  169. package/dist/date/constants/DATE_MONTH_DAYS.js +33 -0
  170. package/dist/date/constants/DATE_PROPERTY.js +0 -1
  171. package/dist/date/constants/DATE_PROPERTY_VALUE.d.ts +8 -0
  172. package/dist/date/constants/DATE_PROPERTY_VALUE.js +14 -0
  173. package/dist/date/constants/DATE_P_PROPERTIES.d.ts +2 -0
  174. package/dist/date/constants/DATE_P_PROPERTIES.js +8 -0
  175. package/dist/date/constants/DATE_P_VALUES.d.ts +6 -0
  176. package/dist/date/constants/DATE_P_VALUES.js +5 -0
  177. package/dist/date/constants/DATE_TIME_P_VALUES.d.ts +6 -0
  178. package/dist/date/constants/DATE_TIME_P_VALUES.js +5 -0
  179. package/dist/date/constants/DATE_TIME_VALUES.js +1 -1
  180. package/dist/date/constants/DATE_WEEK_DAYS.d.ts +1 -0
  181. package/dist/date/constants/DATE_WEEK_DAYS.js +3 -0
  182. package/dist/date/constants/DATE_YEAR_DAYS.d.ts +1 -0
  183. package/dist/date/constants/DATE_YEAR_DAYS.js +367 -0
  184. package/dist/date/constants/DATE_YEAR_MONTHS.d.ts +1 -0
  185. package/dist/date/constants/DATE_YEAR_MONTHS.js +1 -0
  186. package/dist/date/constants/DATE_YEAR_QUARTERS.d.ts +1 -0
  187. package/dist/date/constants/DATE_YEAR_QUARTERS.js +1 -0
  188. package/dist/date/constants/index.d.ts +12 -0
  189. package/dist/date/constants/index.js +12 -0
  190. package/dist/date/range/getDateRange.js +26 -21
  191. package/dist/date/relative/Adapter.js +2 -2
  192. package/dist/date/relative/constants/DATE_FORMATS.d.ts +1 -1
  193. package/dist/date/relative/constants/DATE_FORMATS.js +3 -3
  194. package/dist/date/relative/helpers/formatStatement.js +7 -7
  195. package/dist/filters/adapters/FDToFlatUI.js +5 -12
  196. package/dist/filters/adapters/FDToUI.js +2 -3
  197. package/dist/filters/adapters/UIToFlatUI.js +5 -12
  198. package/dist/filters/adapters/UIToOldLogic.js +9 -1
  199. package/dist/filters/adapters/adaptFilterData.js +1 -1
  200. package/dist/filters/adapters/flatUIToFD.js +3 -7
  201. package/dist/filters/adapters/flatUIToOldLogic.js +42 -63
  202. package/dist/filters/adapters/flatUIToUI.js +3 -8
  203. package/dist/filters/adapters/logicToFlatUI.js +91 -76
  204. package/dist/filters/adapters/transformFilters.d.ts +1 -1
  205. package/dist/filters/adapters/transformFilters.js +19 -26
  206. package/dist/filters/constants/backend/FILTER_BACKEND_VALIDATOR.js +0 -1
  207. package/dist/filters/constants/common/FILTER_GROUPED_COLUMN_OPERATOR.d.ts +2 -0
  208. package/dist/filters/constants/common/FILTER_GROUPED_COLUMN_OPERATOR.js +1 -0
  209. package/dist/filters/constants/common/FILTER_OPERATOR.js +0 -1
  210. package/dist/filters/constants/common/FILTER_VALIDATOR.js +0 -1
  211. package/dist/filters/constants/common/index.d.ts +1 -0
  212. package/dist/filters/constants/common/index.js +1 -0
  213. package/dist/filters/helpers/backend/buildExpression.d.ts +6 -0
  214. package/dist/filters/helpers/backend/buildExpression.js +9 -2
  215. package/dist/filters/helpers/backend/getBackendGroupValue.js +2 -1
  216. package/dist/filters/helpers/backend/getBackendProperty.js +8 -3
  217. package/dist/filters/helpers/backend/getBackendValues.js +34 -18
  218. package/dist/filters/helpers/common/arePropertiesDateP.d.ts +8 -0
  219. package/dist/filters/helpers/common/arePropertiesDateP.js +12 -0
  220. package/dist/filters/helpers/common/getFilterColumnLabel.js +1 -1
  221. package/dist/filters/helpers/common/getFilterid.js +1 -1
  222. package/dist/filters/helpers/common/getFiltersByParams.js +6 -6
  223. package/dist/filters/helpers/common/getFiltersByVisibility.js +1 -1
  224. package/dist/filters/helpers/common/getMergeFiltersSettings.d.ts +7 -0
  225. package/dist/filters/helpers/common/getMergeFiltersSettings.js +12 -0
  226. package/dist/filters/helpers/common/getParamsToGetFilterSettings.d.ts +5 -0
  227. package/dist/filters/helpers/common/getParamsToGetFilterSettings.js +11 -1
  228. package/dist/filters/helpers/common/index.d.ts +2 -0
  229. package/dist/filters/helpers/common/index.js +2 -0
  230. package/dist/filters/helpers/common/mergeFilters.d.ts +2 -1
  231. package/dist/filters/helpers/common/mergeFilters.js +27 -10
  232. package/dist/filters/helpers/common/resolveDatasetConditions.js +1 -1
  233. package/dist/filters/helpers/common/resolveFilterConditions.js +2 -3
  234. package/dist/filters/helpers/common/resolveScopeConditions.js +1 -1
  235. package/dist/filters/helpers/getAggFiltersFromFilterData.d.ts +1 -1
  236. package/dist/filters/helpers/getAggFiltersFromFilterData.js +18 -19
  237. package/dist/filters/helpers/getScopesByHierarchy.js +2 -2
  238. package/dist/filters/helpers/ui/excludeUIFlatFiltersByScopes.d.ts +1 -1
  239. package/dist/filters/helpers/ui/excludeUIFlatFiltersByScopes.js +1 -1
  240. package/dist/filters/helpers/ui/getUIFlatFilterByParams.d.ts +1 -1
  241. package/dist/filters/helpers/ui/getUIFlatFilterByParams.js +1 -1
  242. package/dist/filters/helpers/ui/getUIFlatFiltersByParams.d.ts +1 -1
  243. package/dist/filters/helpers/ui/getUIFlatFiltersByParams.js +1 -1
  244. package/dist/filters/helpers/ui/getUIFlatFiltersByScopes.d.ts +1 -1
  245. package/dist/filters/helpers/ui/getUIFlatFiltersByScopes.js +1 -1
  246. package/dist/filters/helpers/ui/getUIValues.js +6 -5
  247. package/dist/filters/interfaces/OLD_IFilterDetail.d.ts +3 -0
  248. package/dist/filters/interfaces/common/IFSFilterExtras.d.ts +3 -0
  249. package/dist/filters/interfaces/common/IFSFilterExtrasInfo.d.ts +4 -0
  250. package/dist/filters/interfaces/common/IFSFilterExtrasInfo.js +1 -0
  251. package/dist/filters/interfaces/common/IFSMergeFiltersSettings.d.ts +7 -0
  252. package/dist/filters/interfaces/common/IFSMergeFiltersSettings.js +1 -0
  253. package/dist/filters/interfaces/common/IFSParamsToGetFilter.d.ts +2 -1
  254. package/dist/filters/interfaces/common/IFSParamsToGetFilterEnableds.d.ts +9 -0
  255. package/dist/filters/interfaces/common/IFSParamsToGetFilterEnableds.js +1 -0
  256. package/dist/filters/interfaces/common/IFSParamsToGetFilterSettings.d.ts +5 -0
  257. package/dist/filters/interfaces/common/index.d.ts +3 -0
  258. package/dist/filters/interfaces/common/index.js +3 -0
  259. package/dist/filters/interfaces/panel/IFPSettingsFilterPanelBodyScopeScope.d.ts +1 -0
  260. package/dist/filters/interfaces/panel/IFPSettingsFilterPanelHeader.d.ts +1 -0
  261. package/dist/filters/interfaces/panel/IFPSettingsFilterPanelSettings.d.ts +4 -0
  262. package/dist/filters/interfaces/panel/IFPSettingsFilterPanelSettingsScope.d.ts +7 -0
  263. package/dist/filters/interfaces/panel/IFPSettingsFilterPanelSettingsScope.js +1 -0
  264. package/dist/filters/interfaces/panel/index.d.ts +1 -0
  265. package/dist/filters/interfaces/panel/index.js +1 -0
  266. package/dist/format/definition.d.ts +3 -2
  267. package/dist/format/format.d.ts +1 -1
  268. package/dist/format/format.js +12 -13
  269. package/dist/general/array/delete.d.ts +4 -4
  270. package/dist/general/array/delete.js +8 -6
  271. package/dist/general/array/filterNestedTree.js +1 -1
  272. package/dist/general/array/flattenDeep.d.ts +1 -1
  273. package/dist/general/array/flattenDeep.js +4 -2
  274. package/dist/general/array/getFirstIndexFromArray.d.ts +1 -1
  275. package/dist/general/array/getFirstIndexFromArray.js +7 -5
  276. package/dist/general/array/getLastIndexFromArray.d.ts +1 -1
  277. package/dist/general/array/getLastIndexFromArray.js +6 -4
  278. package/dist/general/function/debounce.d.ts +1 -1
  279. package/dist/general/function/throttled.d.ts +1 -1
  280. package/dist/general/function/throttled.js +1 -1
  281. package/dist/general/mix/importScripts.d.ts +1 -1
  282. package/dist/general/mix/isEmpty.d.ts +5 -4
  283. package/dist/general/mix/isEmpty.js +12 -6
  284. package/dist/general/mix/randomId.d.ts +1 -1
  285. package/dist/general/mix/randomId.js +1 -2
  286. package/dist/general/mix/size.d.ts +1 -1
  287. package/dist/general/object/cloneDeep.d.ts +4 -4
  288. package/dist/general/object/cloneDeep.js +14 -6
  289. package/dist/general/object/get.d.ts +47 -15
  290. package/dist/general/object/get.js +59 -34
  291. package/dist/general/object/getAttribute.d.ts +1 -1
  292. package/dist/general/object/hasProperty.d.ts +1 -1
  293. package/dist/general/object/hasProperty.js +1 -1
  294. package/dist/general/object/index.d.ts +1 -0
  295. package/dist/general/object/index.js +1 -0
  296. package/dist/general/object/isObject.d.ts +6 -0
  297. package/dist/general/object/isObject.js +8 -0
  298. package/dist/general/object/mapValues.d.ts +1 -1
  299. package/dist/general/object/mapValues.js +0 -1
  300. package/dist/general/object/omit.js +1 -1
  301. package/dist/general/object/pick.js +0 -1
  302. package/dist/index.d.ts +2 -0
  303. package/dist/index.js +2 -0
  304. package/dist/qrvey/getColumnsLabel.js +5 -5
  305. package/dist/qrvey/index.d.ts +3 -0
  306. package/dist/qrvey/index.js +3 -0
  307. package/dist/tokens/index.d.ts +1 -0
  308. package/dist/tokens/index.js +1 -0
  309. package/dist/tokens/isTokenLabel.d.ts +6 -0
  310. package/dist/tokens/isTokenLabel.js +12 -0
  311. package/package.json +17 -10
  312. package/prepareToPublish.js +52 -0
  313. package/src/constants/COLUMN.ts +1 -1
  314. package/src/constants/COLUMN_PROPERTY.ts +13 -2
  315. package/src/constants/COLUMN_PROPERTY_VALUE.ts +6 -1
  316. package/src/date/constants/DATE_DAY_HOURS.ts +27 -0
  317. package/src/date/constants/DATE_HOUR_MINUTES.ts +63 -0
  318. package/src/date/constants/DATE_MINUTE_SECONDS.ts +3 -0
  319. package/src/date/constants/DATE_MONTH_DAYS.ts +34 -0
  320. package/src/date/constants/DATE_PROPERTY.ts +1 -1
  321. package/src/date/constants/DATE_PROPERTY_VALUE.ts +16 -0
  322. package/src/date/constants/DATE_P_PROPERTIES.ts +10 -0
  323. package/src/date/constants/DATE_P_VALUES.ts +7 -0
  324. package/src/date/constants/DATE_TIME_PROPERTIES.ts +0 -1
  325. package/src/date/constants/DATE_TIME_P_VALUES.ts +7 -0
  326. package/src/date/constants/DATE_TIME_VALUES.ts +1 -1
  327. package/src/date/constants/DATE_WEEK_DAYS.ts +4 -0
  328. package/src/date/constants/DATE_YEAR_DAYS.ts +368 -0
  329. package/src/date/constants/DATE_YEAR_MONTHS.ts +2 -0
  330. package/src/date/constants/DATE_YEAR_QUARTERS.ts +1 -0
  331. package/src/date/constants/index.ts +12 -0
  332. package/src/date/range/getDateRange.ts +46 -42
  333. package/src/date/relative/Adapter.ts +2 -2
  334. package/src/date/relative/constants/DATE_FORMATS.ts +3 -4
  335. package/src/date/relative/constants/RELATIVE_CURSOR_VALUE.ts +1 -1
  336. package/src/date/relative/helpers/formatStatement.ts +8 -8
  337. package/src/date/relative/index.ts +1 -1
  338. package/src/filters/adapters/FDToFlatUI.ts +7 -3
  339. package/src/filters/adapters/FDToUI.ts +5 -6
  340. package/src/filters/adapters/UIToFD.ts +1 -1
  341. package/src/filters/adapters/UIToFlatUI.ts +9 -5
  342. package/src/filters/adapters/UIToOldLogic.ts +11 -3
  343. package/src/filters/adapters/adaptFilterData.ts +1 -1
  344. package/src/filters/adapters/flatUIToFD.ts +5 -1
  345. package/src/filters/adapters/flatUIToOldLogic.ts +57 -71
  346. package/src/filters/adapters/flatUIToUI.ts +4 -1
  347. package/src/filters/adapters/logicToFlatUI.ts +101 -77
  348. package/src/filters/adapters/transformFilters.ts +22 -30
  349. package/src/filters/constants/backend/FILTER_BACKEND_VALIDATOR.ts +1 -1
  350. package/src/filters/constants/common/FILTER_GROUPED_COLUMN_OPERATOR.ts +3 -0
  351. package/src/filters/constants/common/FILTER_OPERATOR.ts +1 -1
  352. package/src/filters/constants/common/FILTER_VALIDATOR.ts +1 -1
  353. package/src/filters/constants/common/index.ts +1 -0
  354. package/src/filters/helpers/backend/buildExpression.ts +11 -3
  355. package/src/filters/helpers/backend/buildFilters.ts +2 -2
  356. package/src/filters/helpers/backend/getBackendGroupValue.ts +2 -1
  357. package/src/filters/helpers/backend/getBackendProperty.ts +6 -3
  358. package/src/filters/helpers/backend/getBackendValues.ts +27 -23
  359. package/src/filters/helpers/builder/getFilterBuilderGeneralConfig.ts +1 -1
  360. package/src/filters/helpers/common/areFiltersEquals.ts +1 -1
  361. package/src/filters/helpers/common/arePropertiesDateP.ts +14 -0
  362. package/src/filters/helpers/common/excludeFiltersByParams.ts +1 -1
  363. package/src/filters/helpers/common/getFilterColumnLabel.ts +1 -1
  364. package/src/filters/helpers/common/getFilterLabel.ts +1 -1
  365. package/src/filters/helpers/common/getFilterid.ts +1 -1
  366. package/src/filters/helpers/common/getFiltersByAggregateColumn.ts +1 -1
  367. package/src/filters/helpers/common/getFiltersByParams.ts +6 -7
  368. package/src/filters/helpers/common/getFiltersByVisibility.ts +1 -1
  369. package/src/filters/helpers/common/getMergeFiltersSettings.ts +13 -0
  370. package/src/filters/helpers/common/getParamsToGetFilterSettings.ts +11 -1
  371. package/src/filters/helpers/common/index.ts +2 -0
  372. package/src/filters/helpers/common/isInValidator.ts +1 -1
  373. package/src/filters/helpers/common/mergeFilters.ts +30 -17
  374. package/src/filters/helpers/common/resolveDatasetConditions.ts +1 -1
  375. package/src/filters/helpers/common/resolveFilterConditions.ts +2 -3
  376. package/src/filters/helpers/common/resolveScopeConditions.ts +1 -1
  377. package/src/filters/helpers/getAggFiltersFromFilterData.ts +20 -23
  378. package/src/filters/helpers/getAvailableScopesIDsByConfig.ts +1 -1
  379. package/src/filters/helpers/getScopesByHierarchy.ts +2 -2
  380. package/src/filters/helpers/ui/excludeUIFlatFiltersByScopes.ts +2 -2
  381. package/src/filters/helpers/ui/getUIFlatFilterByParams.ts +1 -1
  382. package/src/filters/helpers/ui/getUIFlatFiltersByParams.ts +1 -1
  383. package/src/filters/helpers/ui/getUIFlatFiltersByScopes.ts +1 -1
  384. package/src/filters/helpers/ui/getUIValues.ts +9 -9
  385. package/src/filters/helpers/ui/resolveUIFlatFiltersByParams.ts +1 -1
  386. package/src/filters/interfaces/OLD_IFilterDetail.ts +4 -0
  387. package/src/filters/interfaces/backend/IFBExpression.ts +1 -1
  388. package/src/filters/interfaces/common/IFSFilterExtras.ts +4 -0
  389. package/src/filters/interfaces/common/IFSFilterExtrasInfo.ts +5 -0
  390. package/src/filters/interfaces/common/IFSMergeFiltersSettings.ts +8 -0
  391. package/src/filters/interfaces/common/IFSParamsToGetFilter.ts +2 -1
  392. package/src/filters/interfaces/common/IFSParamsToGetFilterEnableds.ts +9 -0
  393. package/src/filters/interfaces/common/IFSParamsToGetFilterSettings.ts +5 -0
  394. package/src/filters/interfaces/common/index.ts +3 -0
  395. package/src/filters/interfaces/panel/IFPSettingsFilterPanelBodyScopeScope.ts +1 -0
  396. package/src/filters/interfaces/panel/IFPSettingsFilterPanelHeader.ts +1 -0
  397. package/src/filters/interfaces/panel/IFPSettingsFilterPanelSettings.ts +4 -0
  398. package/src/filters/interfaces/panel/IFPSettingsFilterPanelSettingsScope.ts +7 -0
  399. package/src/filters/interfaces/panel/IFilterPanelConfig.ts +0 -2
  400. package/src/filters/interfaces/panel/index.ts +1 -0
  401. package/src/filters/interfaces/ui/IFUFilterExtras.ts +1 -1
  402. package/src/format/definition.ts +7 -8
  403. package/src/format/format.ts +19 -22
  404. package/src/general/array/delete.ts +10 -6
  405. package/src/general/array/filterNestedTree.ts +1 -1
  406. package/src/general/array/flattenDeep.ts +3 -2
  407. package/src/general/array/getFirstIndexFromArray.ts +8 -6
  408. package/src/general/array/getLastIndexFromArray.ts +7 -5
  409. package/src/general/function/debounce.ts +2 -2
  410. package/src/general/function/throttled.ts +3 -3
  411. package/src/general/mix/importScripts.ts +1 -1
  412. package/src/general/mix/isEmpty.ts +12 -7
  413. package/src/general/mix/isNull.ts +2 -2
  414. package/src/general/mix/randomId.ts +2 -2
  415. package/src/general/mix/size.ts +1 -1
  416. package/src/general/object/cloneDeep.ts +15 -6
  417. package/src/general/object/get.ts +59 -31
  418. package/src/general/object/getAttribute.ts +1 -1
  419. package/src/general/object/hasProperty.ts +1 -1
  420. package/src/general/object/index.ts +3 -2
  421. package/src/general/object/isObject.ts +8 -0
  422. package/src/general/object/mapValues.ts +2 -2
  423. package/src/general/object/omit.ts +2 -2
  424. package/src/general/object/pick.ts +1 -1
  425. package/src/general/string/capitalize.ts +1 -1
  426. package/src/index.ts +3 -1
  427. package/src/qrvey/getColumnsLabel.ts +5 -5
  428. package/src/qrvey/index.ts +3 -0
  429. package/src/qrvey/isComplexColumn.ts +1 -1
  430. package/src/qrvey/isDateColumn.ts +1 -1
  431. package/src/stencil/decorators/Config.ts +2 -2
  432. package/src/tokens/index.ts +1 -0
  433. package/src/tokens/isTokenLabel.ts +13 -0
  434. package/src/typescript/decorators/Debounce.ts +2 -2
  435. package/src/typescript/decorators/Throttled.ts +2 -2
  436. package/test/format.test.js +97 -5
  437. package/test/general/array/delete.test.js +64 -0
  438. package/test/general/array/flattenDeep.test.js +44 -0
  439. package/test/general/array/getFirstIndexFromArray.test.js +56 -0
  440. package/test/general/array/getLastIndexFromArray.test.js +56 -0
  441. package/test/general/mix/isEmpty.test.js +144 -0
  442. package/test/general/object/cloneDeep.test.js +152 -0
  443. package/test/general/object/get.test.js +247 -0
  444. package/test/relative.test.js +24 -24
@@ -0,0 +1,64 @@
1
+ const { ArrayDelete } = require('../../../dist/cjs');
2
+
3
+ describe('Non-array variables', function () {
4
+ const emptyVariable = undefined;
5
+ const emptyArray = [];
6
+ const unexpectedVariable1 = 1;
7
+ const unexpectedVariable2 = 'Hello World';
8
+ const unexpectedVariable3 = { tag1: 'Hello', tag2: 'World' };
9
+
10
+ test('Undefined variable', function () {
11
+ const undefinedVariable = ArrayDelete(emptyVariable, 0);
12
+ expect(undefinedVariable).toBeUndefined();
13
+ });
14
+
15
+ test('Empty array', function () {
16
+ const aDEmptyArray = ArrayDelete(emptyArray, 0);
17
+ expect(aDEmptyArray).toBe(emptyArray);
18
+ });
19
+
20
+ test('Numeric value', function () {
21
+ const aDUnexpectedVariable1 = ArrayDelete(unexpectedVariable1, 0);
22
+ expect(aDUnexpectedVariable1).toBe(unexpectedVariable1);
23
+ });
24
+
25
+ test('String value', function () {
26
+ const aDUnexpectedVariable2 = ArrayDelete(unexpectedVariable2, 0);
27
+ expect(aDUnexpectedVariable2).toBe(unexpectedVariable2);
28
+ });
29
+
30
+ test('Object value', function () {
31
+ const aDUnexpectedVariable3 = ArrayDelete(unexpectedVariable3, 0);
32
+ expect(aDUnexpectedVariable3).toBe(unexpectedVariable3);
33
+ });
34
+
35
+ test('Non-array variable and undefined index', function () {
36
+ const aDUnexpectedVariable3 = ArrayDelete(unexpectedVariable3);
37
+ expect(aDUnexpectedVariable3).toBe(unexpectedVariable3);
38
+ });
39
+ });
40
+
41
+ describe('Deleting Array item', function () {
42
+ const array1 = [1, 'hello', true, '2', 'world'];
43
+ const indexToDelete = 1;
44
+ const itemToDelete = array1[indexToDelete];
45
+
46
+ const aDUArray1 = ArrayDelete(array1, indexToDelete);
47
+
48
+ test('Delete an item of the array and compare the original array', function () {
49
+ expect(aDUArray1).not.toEqual(array1);
50
+ });
51
+
52
+ test('Delete an item of the array and compare if the deleted value is there', function () {
53
+ expect(aDUArray1).not.toEqual(expect.arrayContaining([itemToDelete]));
54
+ });
55
+
56
+ test('Delete an item of the array and compare the arrays lengths', function () {
57
+ expect(aDUArray1.length).toBe(array1.length - 1);
58
+ });
59
+
60
+ test('Array variable and undefined index', function () {
61
+ const aDUArray1 = ArrayDelete(array1);
62
+ expect(aDUArray1).toBe(array1);
63
+ });
64
+ });
@@ -0,0 +1,44 @@
1
+ const { flattenDeep } = require('../../../dist/cjs');
2
+
3
+ describe('Flatting the Array', function () {
4
+ const array1 = [1, 'hello', true, '2', 'world'];
5
+ const array2 = [1, 'hello', true, '2', undefined, 'world'];
6
+ const array3 = [{name: 'Jose', lastName: 'Gonzalez'}, 'hello', 'world', [{ compraId: '1' }, { compraId: 2 }, [1, 2, [3, 4]]]];
7
+ const array4 = [{name: 'Jose'}, {name: 'David'}, {name: 'Eduardo'}];
8
+ const array5 = [1, [[[2]], 3, [4, 5, [6, 7, 8], 9], [[[10, 11]], 12]]];
9
+
10
+ test('Undefined array', function () {
11
+ const undefinedVariable = flattenDeep(undefined);
12
+ expect([]).toEqual(undefinedVariable);
13
+ });
14
+
15
+ test('Non-array type', function () {
16
+ const objectVariable = flattenDeep({no: 'array'});
17
+ expect(undefined).toEqual(objectVariable);
18
+ });
19
+
20
+ test('1-level array with primitive data type', function () {
21
+ const flattenedArray = flattenDeep(array1);
22
+ expect(array1).toEqual(flattenedArray)
23
+ });
24
+
25
+ test('1-level array including undefined items', function () {
26
+ const flattenedArray = flattenDeep(array2);
27
+ expect(array2).toEqual(flattenedArray)
28
+ });
29
+
30
+ test('n-level array', function () {
31
+ const flattenedArray = flattenDeep(array3);
32
+ expect([{ "name": "Jose", "lastName": "Gonzalez"}, "hello", "world", { "compraId": "1" }, { "compraId": 2 }, 1, 2, 3, 4]).toEqual(flattenedArray);
33
+ });
34
+
35
+ test('Just an object array', function () {
36
+ const flattenedArray = flattenDeep(array4);
37
+ expect(array4).toEqual(flattenedArray);
38
+ });
39
+
40
+ test('Definitive test', function () {
41
+ const flattenedArray = flattenDeep(array5);
42
+ expect([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]).toEqual(flattenedArray);
43
+ });
44
+ });
@@ -0,0 +1,56 @@
1
+ const { getFirstIndexFromArray } = require('../../../dist/cjs');
2
+
3
+ const array1 = [{ name: 'jose', age: 30 }, { name: 'david', age: 30}, { name: 'eduardo', age: 29 }];
4
+ const array1Callback = (item) => item.age === 30;
5
+
6
+ const array2 = [0, 1, 2, 2, 3, 4, 4, 4, 5];
7
+ const array2Callback = (item) => item === 4;
8
+
9
+ describe('Get the -1 index', function () {
10
+ const expectedIndex = -1;
11
+ const array1CallbackNoMatch = (item) => item.age === 31;
12
+
13
+ test('Undefined arguments', function () {
14
+ const index = getFirstIndexFromArray();
15
+ expect(expectedIndex).toEqual(index);
16
+ });
17
+
18
+ test('non-undefined first argument', function () {
19
+ const index = getFirstIndexFromArray(array1);
20
+ expect(expectedIndex).toEqual(index);
21
+ });
22
+
23
+ test('non-undefined second argument', function () {
24
+ const index1 = getFirstIndexFromArray(undefined, array1Callback);
25
+ const index2 = getFirstIndexFromArray([], array1Callback);
26
+ expect(expectedIndex).toEqual(index1);
27
+ expect(expectedIndex).toEqual(index2);
28
+ });
29
+
30
+ test('Different type first argument', function () {
31
+ const index = getFirstIndexFromArray(1, array1Callback);
32
+ expect(expectedIndex).toEqual(index);
33
+ });
34
+
35
+ test('Different type second argument', function () {
36
+ const index = getFirstIndexFromArray(array1, 'Hello World');
37
+ expect(expectedIndex).toEqual(index);
38
+ });
39
+
40
+ test('Regular scenario, no records to match', function () {
41
+ const index = getFirstIndexFromArray(array1, array1CallbackNoMatch);
42
+ expect(expectedIndex).toEqual(index);
43
+ });
44
+ });
45
+
46
+ describe('Regular scenario', function () {
47
+ test('Regular scenario', function () {
48
+ const index = getFirstIndexFromArray(array1, array1Callback);
49
+ expect(0).toEqual(index);
50
+ });
51
+
52
+ test('Regular scenario with primitive types', function () {
53
+ const index = getFirstIndexFromArray(array2, array2Callback);
54
+ expect(5).toEqual(index);
55
+ });
56
+ });
@@ -0,0 +1,56 @@
1
+ const { getLastIndexFromArray } = require('../../../dist/cjs');
2
+
3
+ const array1 = [{ name: 'jose', age: 30 }, { name: 'david', age: 30}, { name: 'eduardo', age: 29 }];
4
+ const array1Callback = (item) => item.age === 30;
5
+
6
+ const array2 = [0, 1, 2, 2, 3, 4, 4, 4, 5];
7
+ const array2Callback = (item) => item === 4;
8
+
9
+ describe('Get the -1 index', function () {
10
+ const expectedIndex = -1;
11
+ const array1CallbackNoMatch = (item) => item.age === 31;
12
+
13
+ test('Undefined arguments', function () {
14
+ const index = getLastIndexFromArray();
15
+ expect(expectedIndex).toEqual(index);
16
+ });
17
+
18
+ test('non-undefined first argument', function () {
19
+ const index = getLastIndexFromArray(array1);
20
+ expect(expectedIndex).toEqual(index);
21
+ });
22
+
23
+ test('non-undefined second argument', function () {
24
+ const index1 = getLastIndexFromArray(undefined, array1Callback);
25
+ const index2 = getLastIndexFromArray([], array1Callback);
26
+ expect(expectedIndex).toEqual(index1);
27
+ expect(expectedIndex).toEqual(index2);
28
+ });
29
+
30
+ test('Different type first argument', function () {
31
+ const index = getLastIndexFromArray(1, array1Callback);
32
+ expect(expectedIndex).toEqual(index);
33
+ });
34
+
35
+ test('Different type second argument', function () {
36
+ const index = getLastIndexFromArray(array1, 'Hello World');
37
+ expect(expectedIndex).toEqual(index);
38
+ });
39
+
40
+ test('Regular scenario, no records to match', function () {
41
+ const index = getLastIndexFromArray(array1, array1CallbackNoMatch);
42
+ expect(expectedIndex).toEqual(index);
43
+ });
44
+ });
45
+
46
+ describe('Regular scenario', function () {
47
+ test('Regular scenario with objects', function () {
48
+ const index = getLastIndexFromArray(array1, array1Callback);
49
+ expect(1).toEqual(index);
50
+ });
51
+
52
+ test('Regular scenario with primitive types', function () {
53
+ const index = getLastIndexFromArray(array2, array2Callback);
54
+ expect(7).toEqual(index);
55
+ });
56
+ });
@@ -0,0 +1,144 @@
1
+ const { isEmpty } = require('../../../dist/cjs');
2
+
3
+ describe('Validating the emptyness of the given argument', function () {
4
+ const empty1 = undefined;
5
+ const empty2 = null;
6
+ const empty3 = '';
7
+ const empty4 = [];
8
+ const empty5 = {};
9
+
10
+ test('Undefined', function () {
11
+ const empty = isEmpty(empty1);
12
+ expect(true).toEqual(empty);
13
+ });
14
+
15
+ test('Null type', function () {
16
+ const empty = isEmpty(empty2);
17
+ expect(true).toEqual(empty);
18
+ });
19
+
20
+ test('Empty string', function () {
21
+ const empty = isEmpty(empty3);
22
+ expect(true).toEqual(empty);
23
+ });
24
+
25
+ test('Array without items', function () {
26
+ const empty = isEmpty(empty4);
27
+ expect(true).toEqual(empty);
28
+ });
29
+
30
+ test('Object wihtout properties', function () {
31
+ const empty = isEmpty(empty5);
32
+ expect(true).toEqual(empty);
33
+ });
34
+ });
35
+
36
+ describe('Validating falsy arguments', function () {
37
+ const falsyEmpty1 = 0;
38
+ const falsyEmpty2 = 0.0;
39
+ const falsyEmpty3 = -0;
40
+ const falsyEmpty4 = NaN;
41
+
42
+ const falsyEmpty5 = true;
43
+ const falsyEmpty6 = false;
44
+
45
+ test('Zero number', function () {
46
+ const empty = isEmpty(falsyEmpty1);
47
+ expect(false).toEqual(empty);
48
+ });
49
+
50
+ test('Zero number with Falsy', function () {
51
+ const empty = isEmpty(falsyEmpty1, true);
52
+ expect(true).toEqual(empty);
53
+ });
54
+
55
+ test('Zero floating number', function () {
56
+ const empty = isEmpty(falsyEmpty2);
57
+ expect(false).toEqual(empty);
58
+ });
59
+
60
+ test('Zero floating number with Falsy', function () {
61
+ const empty = isEmpty(falsyEmpty2, true);
62
+ expect(true).toEqual(empty);
63
+ });
64
+
65
+ test('Negative Zero number', function () {
66
+ const empty = isEmpty(falsyEmpty3);
67
+ expect(false).toEqual(empty);
68
+ });
69
+
70
+ test('Negative Zero number with Falsy', function () {
71
+ const empty = isEmpty(falsyEmpty3, true);
72
+ expect(true).toEqual(empty);
73
+ });
74
+
75
+ test('NaN', function () {
76
+ const empty = isEmpty(falsyEmpty4);
77
+ expect(false).toEqual(empty);
78
+ });
79
+
80
+ test('NaN with Falsy', function () {
81
+ const empty = isEmpty(falsyEmpty4, true);
82
+ expect(true).toEqual(empty);
83
+ });
84
+
85
+
86
+ test('Affirmative Boolean', function () {
87
+ const empty = isEmpty(falsyEmpty5);
88
+ expect(false).toEqual(empty);
89
+ });
90
+
91
+ test('Affirmative Boolean with Falsy', function () {
92
+ const empty = isEmpty(falsyEmpty5, true);
93
+ expect(false).toEqual(empty);
94
+ });
95
+
96
+ test('Negative Boolean', function () {
97
+ const empty = isEmpty(falsyEmpty6);
98
+ expect(false).toEqual(empty);
99
+ });
100
+
101
+ test('Negative Boolean with Falsy', function () {
102
+ const empty = isEmpty(falsyEmpty6, true);
103
+ expect(true).toEqual(empty);
104
+ });
105
+ });
106
+
107
+ describe('Validating non-empty arguments', function () {
108
+ const notEmpty1 = 'Hello World';
109
+ const notEmpty2 = ['Hello', 'World'];
110
+ const notEmpty3 = { tag1: 'Hello', tag2: 'World' };
111
+ const notEmpty4 = 1;
112
+ const notEmpty5 = "0";
113
+ const notEmpty6 = (dig1 = 1, dig2 = 2) => dig1 + dig2;
114
+
115
+ test('String type', function () {
116
+ const empty = isEmpty(notEmpty1);
117
+ expect(false).toEqual(empty);
118
+ });
119
+
120
+ test('Array type', function () {
121
+ const empty = isEmpty(notEmpty2);
122
+ expect(false).toEqual(empty);
123
+ });
124
+
125
+ test('Object type', function () {
126
+ const empty = isEmpty(notEmpty3);
127
+ expect(false).toEqual(empty);
128
+ });
129
+
130
+ test('Number different to zero', function () {
131
+ const empty = isEmpty(notEmpty4);
132
+ expect(false).toEqual(empty);
133
+ });
134
+
135
+ test('Zero Number in string', function () {
136
+ const empty = isEmpty(notEmpty5);
137
+ expect(false).toEqual(empty);
138
+ });
139
+
140
+ test('Function type', function () {
141
+ const empty = isEmpty(notEmpty6);
142
+ expect(false).toEqual(empty);
143
+ });
144
+ });
@@ -0,0 +1,152 @@
1
+ const { cloneDeep, isEmpty, _hasProperty } = require('../../../dist/cjs');
2
+
3
+ describe('Returning an undefined with empty variables', function () {
4
+ const empty1 = undefined;
5
+ const empty2 = [];
6
+ const empty3 = {};
7
+
8
+ test('Undefined variable', function () {
9
+ const empty = cloneDeep(empty1);
10
+ expect(empty).toBeUndefined();
11
+ });
12
+
13
+ test('Empty Array variable', function () {
14
+ const empty = cloneDeep(empty2);
15
+ expect(empty).toStrictEqual([]);
16
+ });
17
+
18
+ test('Empty Object variable', function () {
19
+ const empty = cloneDeep(empty3);
20
+ expect(empty).toStrictEqual({});
21
+ });
22
+
23
+ });
24
+
25
+ describe('No new references with primitive variables', function () {
26
+ const variable1 = 'Hello World';
27
+ const variable2 = 1;
28
+ const variable3 = true;
29
+
30
+ test('String variable', function () {
31
+ const cDVariable1 = cloneDeep(variable1);
32
+ expect(cDVariable1).toStrictEqual(variable1);
33
+ });
34
+
35
+ test('Numeric variable', function () {
36
+ const cDVariable2 = cloneDeep(variable2);
37
+ expect(cDVariable2).toStrictEqual(variable2);
38
+ });
39
+
40
+ test('Boolean variable', function () {
41
+ const cDVariable3 = cloneDeep(variable3);
42
+ expect(cDVariable3).toStrictEqual(variable3);
43
+ });
44
+ });
45
+
46
+
47
+ describe('Creating an new reference by object/array variables', function () {
48
+ const spanishSalutation = 'Hola';
49
+ const variable1 = ['Hello', 'World'];
50
+ const variable2 = { tag1: 'Hello', tag2: 'World' };
51
+ const variable3 = [{ tag1: 'Hello1', tag2: 'World1' }, { tag1: 'Hello2', tag2: 'World2' }];
52
+
53
+ const cDVariable1 = cloneDeep(variable1);
54
+ const cDVariable2 = cloneDeep(variable2);
55
+ const cDVariable3 = cloneDeep(variable3);
56
+
57
+ test('Compare the arrays as object instances', function () {
58
+ expect(cDVariable1).not.toBe(variable1);
59
+ });
60
+
61
+ test('Compare the arrays values', function () {
62
+ expect(cDVariable1).toEqual(variable1);
63
+ });
64
+
65
+ test('Edit a cloned array value and compare' , function () {
66
+ cDVariable1[0] = spanishSalutation;
67
+ expect(cDVariable1).not.toEqual(variable1);
68
+ });
69
+
70
+ test('Compare the objects as object instances' , function () {
71
+ expect(cDVariable2).not.toBe(variable2);
72
+ });
73
+
74
+ test('Compare the object properties', function () {
75
+ expect(cDVariable2).toEqual(variable2);
76
+ });
77
+
78
+ test('Edit a cloned object property and compare' , function () {
79
+ cDVariable2.tag1 = spanishSalutation;
80
+ expect(cDVariable2).not.toEqual(variable2);
81
+ });
82
+
83
+ test('Compare the object-item arrays as object instances' , function () {
84
+ expect(cDVariable3).not.toBe(variable3);
85
+ });
86
+
87
+ test('Compare the arrays object-items', function () {
88
+ expect(cDVariable3).toEqual(variable3);
89
+ });
90
+
91
+ test('Edit a cloned object-item array property and compare' , function () {
92
+ cDVariable3[0].tag1 = spanishSalutation;
93
+ expect(cDVariable3).not.toEqual(variable3);
94
+ });
95
+ });
96
+
97
+ describe('Problems creating a new object reference with inner objects and functions', function () {
98
+ const variable1 = Number;
99
+ const variable2 = NaN;
100
+ const variable3 = Infinity;
101
+ const variable4 = new Date('12/01/1991');
102
+ const variable5 = undefined;
103
+ const variable6 = (dig1 = 1, dig2 = 2) => dig1 + dig2;
104
+ const object1 = { a: variable1, b: variable2, c: variable3, d: variable4, e: variable5, f: variable6 };
105
+
106
+ test('Number-constructor variable', function () {
107
+ const cDVariable1 = cloneDeep(variable1);
108
+ expect(cDVariable1).toStrictEqual(variable1);
109
+ });
110
+
111
+ test('NaN variable', function () {
112
+ const cDVariable2 = cloneDeep(variable2);
113
+ expect(cDVariable2).toStrictEqual(variable2);
114
+ });
115
+
116
+ test('Infinity variable', function () {
117
+ const cDVariable3 = cloneDeep(variable3);
118
+ expect(cDVariable3).toStrictEqual(variable3);
119
+ });
120
+
121
+ test('Date variable', function () {
122
+ const cDVariable4 = cloneDeep(variable4);
123
+ expect(cDVariable4).toBe(variable4.toISOString());
124
+ });
125
+
126
+ test('Function variable', function () {
127
+ const cDVariable6 = cloneDeep(variable6);
128
+ expect(cDVariable6).toStrictEqual(variable6);
129
+ });
130
+
131
+ test('An object with inner objects', function () {
132
+ const cDObject1 = cloneDeep(object1);
133
+
134
+ const emptyA = _hasProperty(cDObject1, 'a');
135
+ const emptyB = isEmpty(cDObject1.b);
136
+ const emptyC = isEmpty(cDObject1.c);
137
+ const emptyD1 = cDObject1.d instanceof Date;
138
+ const emptyD2 = Date.parse(cDObject1.d);
139
+ const emptyE = isEmpty(cDObject1.e);
140
+ const emptyF = isEmpty(cDObject1.f);
141
+
142
+ expect(emptyA).toBeFalsy();
143
+ expect(emptyB).toBeTruthy();
144
+ expect(emptyC).toBeTruthy();
145
+ expect(emptyD1).toBeFalsy();
146
+ expect(emptyD2).toBeTruthy();
147
+ expect(emptyE).toBeTruthy();
148
+ expect(emptyF).toBeTruthy();
149
+
150
+ expect(cDObject1).not.toEqual(object1);
151
+ });
152
+ });