@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
@@ -85,7 +85,7 @@
85
85
 
86
86
  export interface IScriptItem {
87
87
  url: string;
88
- namespace?: string | Function;
88
+ namespace?: string | any;
89
89
  dependencies?: IScriptItem[];
90
90
  noModule?: boolean;
91
91
  type?: string;
@@ -1,10 +1,15 @@
1
- import { size } from './size';
2
-
3
1
  /**
4
- * return if an String, object or string is empty or not
5
- * @param {Any} obj
6
- * @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.
7
6
  */
8
- export function isEmpty(obj: object | any[] | string) {
9
- return size(obj) === 0;
7
+ export function isEmpty<T = any>(variable: T, includeFalsy = false): boolean {
8
+ return typeof variable == 'undefined'
9
+ || variable == null
10
+ || (typeof variable == 'number' && includeFalsy && (Number(variable) === 0 || Object.is(variable, -0) || isNaN(variable)))
11
+ || (typeof variable == 'string' && variable === "")
12
+ || (typeof variable == 'boolean' && includeFalsy && variable === false)
13
+ || (Array.isArray(variable) && variable.length === 0)
14
+ || (variable.constructor === Object && Object.entries(variable).length === 0);
10
15
  }
@@ -4,6 +4,6 @@
4
4
  * @param {any} arg
5
5
  * @returns {Boolean}
6
6
  */
7
- export function isNull(arg: any) {
7
+ export function isNull(arg: any): boolean {
8
8
  return arg === null || arg === undefined;
9
- }
9
+ }
@@ -3,7 +3,7 @@
3
3
  * @param {Number} length size of the generated string. Default 8
4
4
  * @return {String}
5
5
  */
6
- export function randomId (length = 8) {
6
+ export function randomId (_length = 8): string {
7
7
  const charSet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_';
8
8
  let id = '';
9
9
  for (let i = 0; i < 8; i++) {
@@ -11,4 +11,4 @@ export function randomId (length = 8) {
11
11
  id += charSet[randPos];
12
12
  }
13
13
  return id;
14
- };
14
+ }
@@ -5,6 +5,6 @@
5
5
  * @param {Any} obj
6
6
  * @returns {Number}
7
7
  */
8
- export function size(obj: object | any[] | string) {
8
+ export function size(obj: any): number {
9
9
  return Object.keys(obj || '').length;
10
10
  }
@@ -1,9 +1,18 @@
1
+ import { isEmpty } from "../mix";
2
+
1
3
  /**
2
- * A asimple deepclone function
3
- * Avoid to use this that including functions as properties
4
+ * A simple Deep Cloning function. Valid only for primivite values and object with primitive values.
5
+ * Not to use this function with inner objects and functions
4
6
  * @param obj The object
5
- * @returns The new reference object
7
+ * @returns The new reference object or the given object if the parsing is incorrect or empty
6
8
  */
7
- export const cloneDeep = <T = any>(obj: T) => {
8
- return JSON.parse(JSON.stringify(obj)) as T;
9
- };
9
+ export function cloneDeep<T = any>(obj: T): T {
10
+ if (isEmpty(obj)) return obj;
11
+
12
+ const stringObject = JSON.stringify(obj);
13
+ if (!isEmpty(stringObject)) {
14
+ const parsedObject = JSON.parse(stringObject) as T;
15
+ return !isEmpty(parsedObject) ? parsedObject : obj;
16
+ }
17
+ return obj;
18
+ }
@@ -1,38 +1,66 @@
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 function get(obj: object, path: string, def?: any) {
14
- let out: any;
15
- const pathList = path.replace(/\[/g, '.').replace(/]/g, '').split('.');
16
-
17
- for (const p of pathList) {
18
- out = (out || obj)[p];
19
- if (out === undefined)
20
- return def;
21
- }
1
+ /**
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 function _get(baseObject: any, path: string | string[], defaultValue?: any): any {
30
+ if (validateToReturnDefaultValue(baseObject, path)) return defaultValue;
22
31
 
23
- return out;
32
+ const keys = Array.isArray(path) ? path : path.replace(/(\[(\d)\])/g, '.$2').split('.').filter(k => k.length);
33
+ baseObject = baseObject[keys[0]];
34
+ if (baseObject !== undefined && keys.length > 1) {
35
+ return _get(baseObject, keys.slice(1), defaultValue);
24
36
  }
37
+ return baseObject === undefined ? defaultValue : baseObject;
38
+ }
25
39
 
26
- /**
27
- * Like lodash _.get
28
- */
29
- export const _get = (baseObject: any, key: string, fallback?: any) => {
40
+ function validateToReturnDefaultValue(baseObject: any, path: string | string[]): boolean {
41
+ return baseObject == null ||
42
+ path == null ||
43
+ (typeof path !== 'string' && !Array.isArray(path));
44
+ }
45
+
46
+
47
+ /**
48
+ *
49
+ * /**
50
+ * Like lodash _.get.
51
+ * Gets the value at path of object. If the resolved value is undefined, the defaultValue is returned in its place.
52
+ * @param baseObject The object to query
53
+ * @param path The path of the property to get.
54
+ * @param defaultValue The value returned for undefined resolved values.
55
+ * @returns the resolved value.
56
+ export function get(baseObject: any, path: string, defaultValue?: any): any {
30
57
  function fn() {
31
58
  try {
32
- // tslint:disable-next-line:no-eval
33
- const value = eval(`this.${key}`.replace('.[', '['));
34
- return typeof value !== 'undefined' ? value : fallback;
35
- } catch (e) { return fallback; }
59
+ const value = eval(`this.${path}`.replace('.[', '['));
60
+ return typeof value !== 'undefined' ? value : defaultValue;
61
+ } catch (e) { return defaultValue; }
36
62
  }
37
63
  return fn.apply(baseObject, null);
38
- };
64
+ }
65
+
66
+ */
@@ -8,7 +8,7 @@
8
8
  * getAttribute(obj, 'snake_case') //it search for: obj.snake_case || obj.snakeCase || obj.SnakeCase || obj.snakecase || obj.SNAKECASE
9
9
  */
10
10
 
11
- export function getAttribute(obj: object, key: string) {
11
+ export function getAttribute(obj: any, key: string) {
12
12
  // getAttr: key should be lower_underscore_case
13
13
  const camel = key.replace(/_(.)/g, (_, a) => a.toUpperCase());
14
14
  const pascal = camel.replace(/(.)/, (_, a) => a.toUpperCase());
@@ -15,6 +15,6 @@
15
15
  * _hasProperty(ob1, prop2) // false
16
16
  */
17
17
 
18
- export function _hasProperty(obj = {}, property: string): boolean {
18
+ export function _hasProperty(obj = {}, property = ''): boolean {
19
19
  return Object.prototype.hasOwnProperty.call(obj, property);
20
20
  }
@@ -1,7 +1,8 @@
1
- export * from './cloneDeep'
1
+ export * from './cloneDeep';
2
2
  export * from './get';
3
3
  export * from './getAttribute';
4
4
  export * from './hasProperty';
5
+ export * from './isObject';
5
6
  export * from './omit';
6
7
  export * from './pick';
7
- export * from './mapValues';
8
+ export * from './mapValues';
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Checks if the given argument is an object type
3
+ * @param obj the variable to check
4
+ * @returns True: It is an object; False: It is not.
5
+ */
6
+ export function isObject(obj: any): boolean {
7
+ return Object.prototype.toString.call(obj) === '[object Object]';
8
+ }
@@ -8,10 +8,10 @@ const defaultIteratee = v => v;
8
8
  * @param {Function} iteratee The executed per iteration.
9
9
  * @returns {Object} New mapped object.
10
10
  */
11
- export function mapValues(baseObject: Object, iteratee: Function) {
11
+ export function mapValues(baseObject: any, iteratee: (prop: any, i: any) => any) {
12
12
  const newObject = {};
13
13
  iteratee = typeof iteratee === 'function' ? iteratee : defaultIteratee;
14
14
  for (const key in baseObject)
15
15
  newObject[key] = iteratee(baseObject[key], key);
16
16
  return newObject;
17
- };
17
+ }
@@ -5,10 +5,10 @@
5
5
  * @returns {Object} clean object
6
6
  */
7
7
  export function omit(obj: any, props: string[]) {
8
- let out: any = {};
8
+ const out: any = {};
9
9
  for (const k in obj) {
10
10
  if (!props.includes(k))
11
11
  out[k] = obj[k];
12
12
  }
13
13
  return out;
14
- }
14
+ }
@@ -10,4 +10,4 @@ export function pick(baseObject, keys: string[]) {
10
10
  if (attr in baseObject) newObj[attr] = baseObject[attr];
11
11
  return newObj;
12
12
  }, {});
13
- };
13
+ }
@@ -3,6 +3,6 @@
3
3
  * @param {String} text
4
4
  * @returns {String}
5
5
  */
6
- export function capitalize(text: string) {
6
+ export function capitalize(text: string): string {
7
7
  return text.toLowerCase().replace(/^\w/, c => c.toUpperCase());
8
8
  }
package/src/index.ts CHANGED
@@ -3,6 +3,8 @@ export * from './date/index';
3
3
  export * from './filters/index';
4
4
  export * from './general/index';
5
5
  export * from './interfaces/index';
6
+ export * from './qrvey/index';
6
7
  export * from './stencil/index';
7
8
  export * from './typescript/index';
8
- export * from './format/index';
9
+ export * from './tokens/index';
10
+ export * from './format/index';
@@ -1,4 +1,4 @@
1
- import { get, isEmpty } from "../general/index";
1
+ import { _get, isEmpty } from "../general/index";
2
2
  import { IQrveyColumn } from "../interfaces/Qrvey.Interface";
3
3
  import { isComplexColumn } from "./isComplexColumn";
4
4
 
@@ -9,9 +9,9 @@ import { isComplexColumn } from "./isComplexColumn";
9
9
  */
10
10
  export function getColumnLabels(column: IQrveyColumn): string {
11
11
  const labels: string[] = [];
12
- if (isComplexColumn(column) && !isEmpty(get(column, 'property.abbreviation'))) labels.push(column.property.abbreviation);
13
- if (!isEmpty(get(column, 'aggregate.abbreviation'))) labels.push(column.aggregate.abbreviation);
14
- if (!isEmpty(get(column, 'calculation.abbreviation'))) labels.push(column.calculation.abbreviation);
12
+ if (isComplexColumn(column) && !isEmpty(_get(column, 'property.abbreviation'))) labels.push(column.property.abbreviation);
13
+ if (!isEmpty(_get(column, 'aggregate.abbreviation'))) labels.push(column.aggregate.abbreviation);
14
+ if (!isEmpty(_get(column, 'calculation.abbreviation'))) labels.push(column.calculation.abbreviation);
15
15
 
16
- return (labels.length) ? `(${labels.join(' - ')})` : '';
16
+ return labels.length ? `(${labels.join(' - ')})` : '';
17
17
  }
@@ -0,0 +1,3 @@
1
+ export * from './getColumnsLabel';
2
+ export * from './isDateColumn';
3
+ export * from './isComplexColumn';
@@ -2,4 +2,4 @@ import { COMPLEX_COLUMN } from "../constants/Qrvey.Const";
2
2
  import { isEmpty } from "../general/index";
3
3
  import { IQrveyColumn } from "../interfaces/Qrvey.Interface";
4
4
 
5
- export const isComplexColumn = (column: IQrveyColumn ) => !isEmpty(column) && COMPLEX_COLUMN.includes(column.type);
5
+ export const isComplexColumn = (column: IQrveyColumn): boolean => !isEmpty(column) && COMPLEX_COLUMN.includes(column.type);
@@ -1,4 +1,4 @@
1
1
  import { isEmpty } from "../general/index";
2
2
  import { IQrveyColumn } from "../interfaces/Qrvey.Interface";
3
3
 
4
- export const isDateColumn = (column: IQrveyColumn) => !isEmpty(column) && (column.type === 'DATE' || column.formulaType === 'date');
4
+ export const isDateColumn = (column: IQrveyColumn): boolean => !isEmpty(column) && (column.type === 'DATE' || column.formulaType === 'date');
@@ -21,6 +21,6 @@ export function Config() {
21
21
  target.connectedCallback = function () {
22
22
  this[prop] = new Proxy(getConfig(this[prop]), { get: getAttribute });
23
23
  connectedCallback && connectedCallback.call(this);
24
- }
25
- }
24
+ };
25
+ };
26
26
  }
@@ -0,0 +1 @@
1
+ export * from './isTokenLabel';
@@ -0,0 +1,13 @@
1
+ import { isEmpty } from "../general";
2
+
3
+ /**
4
+ * Get a text and evaluate if it matchs with a token box label.
5
+ * @param label string to evaluate
6
+ * @return True is label matchs; otherwise false
7
+ */
8
+ export function isTokenLabel(label = ''): boolean {
9
+ if (isEmpty(label) || typeof label !== 'string') return false;
10
+
11
+ const regex = new RegExp('^({{)([^{}]+)(}})$', 'gi');
12
+ return regex.test(label);
13
+ }
@@ -7,6 +7,6 @@ import { debounce } from '../../general/function/debounce';
7
7
 
8
8
  export function Debounce(time = 500) {
9
9
  return (target: any, prop: string, descriptor: PropertyDescriptor) => {
10
- descriptor.value = debounce(target[prop], time)
11
- }
10
+ descriptor.value = debounce(target[prop], time);
11
+ };
12
12
  }
@@ -7,6 +7,6 @@ import { throttled } from '../../general/function/throttled';
7
7
 
8
8
  export function Throttled(time = 500) {
9
9
  return (target: any, prop: string, descriptor: PropertyDescriptor) => {
10
- descriptor.value = throttled(target[prop], time)
11
- }
10
+ descriptor.value = throttled(target[prop], time);
11
+ };
12
12
  }
@@ -1,4 +1,4 @@
1
- const { formatValue, defineFormat } = require('../dist/cjs');
1
+ const { formatValue, defineFormat, formatAbbreviated } = require('../dist/cjs');
2
2
 
3
3
  describe('Testing format util', function () {
4
4
  test('Number formats', function () {
@@ -58,11 +58,16 @@ describe('Testing format util', function () {
58
58
 
59
59
  const ISOFormatRandom1 = formatValue('2018-01-01T00:00:00', {
60
60
  "type": "DATE",
61
- "format": "Q MMMM Do ddd X"
61
+ "format": "Q MMMM Do ddd"
62
62
  });
63
- expect(ISOFormatRandom1).toEqual('1 January 1st Mon 1514782800');
63
+ expect(ISOFormatRandom1).toEqual('1 January 1st Mon');
64
64
  });
65
65
 
66
+ test("Format Number Abbreviated", ()=>{
67
+ const numberFormasted = formatAbbreviated(4.419, 0);
68
+ expect(numberFormasted).toEqual("4.419");
69
+ })
70
+
66
71
  });
67
72
 
68
73
  describe('Define format tests', function () {
@@ -335,7 +340,7 @@ describe('Define format tests', function () {
335
340
  expect(currency).toEqual(' $1,000,000.000');
336
341
  });
337
342
 
338
- test('Structure format object | Chart selected format', function () {
343
+ test('Structure format object | Chart selected format numbers', function () {
339
344
  const column = {
340
345
  "origColumnType": "NUMERIC",
341
346
  "ignored": false,
@@ -380,7 +385,7 @@ describe('Define format tests', function () {
380
385
  expect(format).toEqual({ type: 'NUMERIC', format: 'Abbreviated', decimals: '2' });
381
386
  });
382
387
 
383
- test('Structure format object | Chart selected format default', function () {
388
+ test('Structure format object | Chart selected format default numbers', function () {
384
389
  const column = {
385
390
  "origColumnType": "NUMERIC",
386
391
  "ignored": false,
@@ -425,4 +430,91 @@ describe('Define format tests', function () {
425
430
  const format = defineFormat(column, true);
426
431
  expect(format).toEqual({ type: 'NUMERIC', format: 'Currency', decimals: '3' });
427
432
  });
433
+
434
+ test('Structure format object | Chart selected format datetime', function () {
435
+ const column = {
436
+ "fieldName": "date_6",
437
+ "type": "DATE",
438
+ "userid": "uwUahnI",
439
+ "qrveyid": "uN0GNVZcC",
440
+ "origColumnName": "L62y05ONx_Datetime Column",
441
+ "datasourceId": "L62y05ONx",
442
+ "checked": true,
443
+ "text": "Datetime Column",
444
+ "id": "1t5DIO2WFk",
445
+ "outputFormat": {
446
+ "type": "DATE",
447
+ "format": "MM/DD/YYYY HH24:MM:SS"
448
+ },
449
+ "createDate": "2021-06-15T18:35:15.263Z",
450
+ "ignored": false,
451
+ "columnLevel": 0,
452
+ "modifyDate": "2021-06-15T18:35:15.263Z",
453
+ "columnPath": "Datetime Column",
454
+ "origColumnType": "DATE",
455
+ "column": "Datetime Column",
456
+ "format": "YYYY-MM-DDTHH:mm:ss.sssZ",
457
+ "questionHash": "uwUahnI@@pJFRFAyJf@@uN0GNVZcC",
458
+ "inputFormat": {
459
+ "format": "YYYY-MM-DD",
460
+ "type": "DATE"
461
+ },
462
+ "appid": "pJFRFAyJf",
463
+ "connectionId": "yw614aWzQ",
464
+ "isArray": false,
465
+ "questionOrder": 2,
466
+ "uniqueId": false,
467
+ "selectedFormat": {
468
+ "type": "DATE",
469
+ "format": "YYYY-MM-DD"
470
+ }
471
+ };
472
+
473
+ const format = defineFormat(column, true);
474
+ expect(format).toEqual({ "type": "DATE", "format": "YYYY-MM-DD" });
475
+ });
476
+
477
+ test('Structure format object | Chart selected format default datetime', function () {
478
+ const column = {
479
+ "fieldName": "date_6",
480
+ "type": "DATE",
481
+ "userid": "uwUahnI",
482
+ "qrveyid": "uN0GNVZcC",
483
+ "origColumnName": "L62y05ONx_Datetime Column",
484
+ "datasourceId": "L62y05ONx",
485
+ "checked": true,
486
+ "text": "Datetime Column",
487
+ "id": "1t5DIO2WFk",
488
+ "outputFormat": {
489
+ "type": "DATE",
490
+ "format": "MM/DD/YYYY HH24:MM:SS"
491
+ },
492
+ "createDate": "2021-06-15T18:35:15.263Z",
493
+ "ignored": false,
494
+ "columnLevel": 0,
495
+ "modifyDate": "2021-06-15T18:35:15.263Z",
496
+ "columnPath": "Datetime Column",
497
+ "origColumnType": "DATE",
498
+ "column": "Datetime Column",
499
+ "format": "YYYY-MM-DDTHH:mm:ss.sssZ",
500
+ "questionHash": "uwUahnI@@pJFRFAyJf@@uN0GNVZcC",
501
+ "inputFormat": {
502
+ "format": "YYYY-MM-DD",
503
+ "type": "DATE"
504
+ },
505
+ "appid": "pJFRFAyJf",
506
+ "connectionId": "yw614aWzQ",
507
+ "isArray": false,
508
+ "questionOrder": 2,
509
+ "uniqueId": false,
510
+ "selectedFormat": {
511
+ "type": "DATE",
512
+ "format": "Default"
513
+ }
514
+ };
515
+
516
+ const format = defineFormat(column, true);
517
+ expect(format).toEqual({ "type": "DATE", "format": "MM/DD/YYYY HH24:MM:SS" });
518
+ });
519
+
428
520
  })