@qrvey/utils 1.3.0-11 → 1.3.0-12

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 (787) hide show
  1. package/README.md +1815 -339
  2. package/dist/charts/constants/index.d.ts +1 -0
  3. package/dist/charts/constants/index.js +1 -0
  4. package/dist/cjs/charts/constants/index.d.ts +1 -0
  5. package/dist/cjs/charts/constants/index.js +1 -0
  6. package/dist/cjs/columns/constants/COLUMN_IMAGE_UPLOAD_OPTION.d.ts +5 -0
  7. package/dist/cjs/columns/constants/COLUMN_IMAGE_UPLOAD_OPTION.js +9 -0
  8. package/dist/cjs/columns/constants/COLUMN_IMAGE_UPLOAD_OPTION_LIST.d.ts +2 -0
  9. package/dist/cjs/columns/constants/COLUMN_IMAGE_UPLOAD_OPTION_LIST.js +9 -0
  10. package/dist/cjs/columns/constants/index.d.ts +4 -0
  11. package/dist/cjs/columns/constants/index.js +4 -0
  12. package/dist/{qrvey → cjs/columns}/helpers/getColumnsLabel.d.ts +1 -1
  13. package/dist/cjs/{qrvey → columns}/helpers/getColumnsLabel.js +2 -0
  14. package/dist/cjs/columns/helpers/getDatasetByColumn.d.ts +3 -0
  15. package/dist/cjs/columns/helpers/getDatasetByColumn.js +10 -0
  16. package/dist/cjs/columns/helpers/getDatasetColumn.d.ts +3 -0
  17. package/dist/cjs/columns/helpers/getDatasetColumn.js +16 -0
  18. package/dist/cjs/columns/helpers/getDatasetColumnyDatasets.d.ts +3 -0
  19. package/dist/cjs/columns/helpers/getDatasetColumnyDatasets.js +12 -0
  20. package/dist/cjs/columns/helpers/getModelColumn.d.ts +9 -0
  21. package/dist/cjs/columns/helpers/getModelColumn.js +30 -0
  22. package/dist/cjs/columns/helpers/index.d.ts +5 -0
  23. package/dist/cjs/columns/helpers/index.js +5 -0
  24. package/dist/cjs/columns/interfaces/IBColumAnswer.d.ts +6 -0
  25. package/dist/cjs/{filters/interfaces/builder/IFilterBuilderGeneralConfig.js → columns/interfaces/IBColumAnswer.js} +0 -0
  26. package/dist/cjs/columns/interfaces/IBColumn.d.ts +10 -3
  27. package/dist/cjs/columns/interfaces/IBColumnAnswerExpression.d.ts +5 -0
  28. package/dist/cjs/{filters/interfaces/common/IFSMergeFiltersSettings.js → columns/interfaces/IBColumnAnswerExpression.js} +0 -0
  29. package/dist/cjs/columns/interfaces/IBColumnAnswerExpressionCategory.d.ts +6 -0
  30. package/dist/cjs/{filters/interfaces/common/IFSParamsToGetFilterSettings.js → columns/interfaces/IBColumnAnswerExpressionCategory.js} +0 -0
  31. package/dist/cjs/columns/interfaces/IBColumnAnswerExpressionWord.d.ts +3 -0
  32. package/dist/cjs/{interfaces/general/IGeneralWidgetConfig.js → columns/interfaces/IBColumnAnswerExpressionWord.js} +0 -0
  33. package/dist/cjs/columns/interfaces/IBColumnAnswerGeneral.d.ts +4 -0
  34. package/dist/cjs/{qrvey/interfaces/IGetValueWithSuffixesSettings.js → columns/interfaces/IBColumnAnswerGeneral.js} +0 -0
  35. package/dist/cjs/columns/interfaces/IBColumnAnswerImages.d.ts +5 -0
  36. package/dist/cjs/columns/interfaces/IBColumnAnswerImages.js +2 -0
  37. package/dist/cjs/columns/interfaces/IBColumnAnswerLookupAnswer.d.ts +5 -0
  38. package/dist/cjs/columns/interfaces/IBColumnAnswerLookupAnswer.js +2 -0
  39. package/dist/cjs/columns/interfaces/IBColumnAnswerLookupAnswerAnswer.d.ts +6 -0
  40. package/dist/cjs/columns/interfaces/IBColumnAnswerLookupAnswerAnswer.js +2 -0
  41. package/dist/cjs/columns/interfaces/IBColumnAnswerLookupValue.d.ts +4 -0
  42. package/dist/cjs/columns/interfaces/IBColumnAnswerLookupValue.js +2 -0
  43. package/dist/cjs/columns/interfaces/IBColumnAnswerLookupValueValue.d.ts +7 -0
  44. package/dist/cjs/columns/interfaces/IBColumnAnswerLookupValueValue.js +2 -0
  45. package/dist/cjs/columns/interfaces/IBColumnAnswerSlidebar.d.ts +3 -0
  46. package/dist/cjs/columns/interfaces/IBColumnAnswerSlidebar.js +2 -0
  47. package/dist/cjs/columns/interfaces/IColumn.d.ts +9 -1
  48. package/dist/cjs/columns/interfaces/IColumnImageUploadOption.d.ts +2 -0
  49. package/dist/cjs/columns/interfaces/IColumnImageUploadOption.js +2 -0
  50. package/dist/cjs/columns/interfaces/index.d.ts +11 -0
  51. package/dist/cjs/columns/interfaces/index.js +11 -0
  52. package/dist/cjs/dates/constants/index.d.ts +1 -0
  53. package/dist/cjs/dates/constants/index.js +1 -0
  54. package/dist/cjs/dates/index.d.ts +1 -1
  55. package/dist/cjs/dates/index.js +1 -1
  56. package/dist/cjs/dates/relative/constants/RELATIVE_CURSOR_INFO_LIST.d.ts +1 -1
  57. package/dist/cjs/filters/adapters/FDToFlatUI.js +1 -0
  58. package/dist/cjs/filters/adapters/UIToFD.js +2 -1
  59. package/dist/cjs/filters/adapters/UIToFlatUI.js +1 -0
  60. package/dist/cjs/filters/adapters/UIToOldLogic.js +5 -3
  61. package/dist/cjs/filters/adapters/adaptDateGroupingProperty.d.ts +2 -2
  62. package/dist/cjs/filters/adapters/adaptDateGroupingProperty.js +2 -2
  63. package/dist/cjs/filters/adapters/adaptFilterValues.js +3 -3
  64. package/dist/cjs/filters/adapters/flatUIToFD.js +1 -0
  65. package/dist/cjs/filters/adapters/flatUIToOldLogic.js +45 -25
  66. package/dist/cjs/filters/adapters/flatUIToUI.js +1 -0
  67. package/dist/cjs/filters/adapters/index.d.ts +2 -0
  68. package/dist/cjs/filters/adapters/index.js +2 -0
  69. package/dist/cjs/filters/adapters/logicToFlatUI.js +10 -9
  70. package/dist/cjs/filters/adapters/modelAnswerToFilterValue.d.ts +8 -0
  71. package/dist/cjs/filters/adapters/modelAnswerToFilterValue.js +16 -0
  72. package/dist/cjs/filters/constants/builder/FILTER_BUILDER_SCOPE_LABEL.js +4 -4
  73. package/dist/cjs/filters/constants/builder/STATIC_OPTION_COLUMNS.d.ts +2 -2
  74. package/dist/cjs/filters/constants/builder/index.d.ts +1 -0
  75. package/dist/cjs/filters/constants/builder/index.js +1 -0
  76. package/dist/cjs/filters/helpers/OLD_getAggFilters.d.ts +9 -0
  77. package/dist/cjs/filters/helpers/OLD_getAggFilters.js +88 -0
  78. package/dist/cjs/filters/helpers/applyHierarchyForAggFilters.d.ts +3 -3
  79. package/dist/cjs/filters/helpers/applyHierarchyForAggFilters.js +3 -3
  80. package/dist/cjs/filters/helpers/backend/buildExpression.js +3 -2
  81. package/dist/cjs/filters/helpers/backend/getAggFiltersBySummaryIndex.d.ts +5 -3
  82. package/dist/cjs/filters/helpers/backend/getAggFiltersBySummaryIndex.js +5 -3
  83. package/dist/cjs/filters/helpers/backend/getBackendValidator.d.ts +2 -2
  84. package/dist/cjs/filters/helpers/backend/getBackendValidator.js +4 -4
  85. package/dist/cjs/filters/helpers/backend/getBackendValues.js +16 -13
  86. package/dist/cjs/filters/helpers/backend/index.d.ts +1 -1
  87. package/dist/cjs/filters/helpers/backend/index.js +2 -1
  88. package/dist/cjs/filters/helpers/builder/getFilterBuilderGeneralConfig.d.ts +2 -2
  89. package/dist/cjs/filters/helpers/common/excludeFiltersByParams.js +4 -4
  90. package/dist/cjs/filters/helpers/common/getFiltersByParams.d.ts +2 -2
  91. package/dist/cjs/filters/helpers/common/getFiltersByParams.js +2 -2
  92. package/dist/cjs/filters/helpers/common/getMergeFiltersSettings.d.ts +2 -2
  93. package/dist/cjs/filters/helpers/common/getMergeFiltersSettings.js +4 -3
  94. package/dist/cjs/filters/helpers/common/getMergeValuesSettings.d.ts +7 -0
  95. package/dist/cjs/filters/helpers/common/getMergeValuesSettings.js +15 -0
  96. package/dist/cjs/filters/helpers/common/getParamsToGetFilterSettings.d.ts +2 -2
  97. package/dist/cjs/filters/helpers/common/getValuesFromDataset.d.ts +8 -0
  98. package/dist/cjs/filters/helpers/common/getValuesFromDataset.js +20 -0
  99. package/dist/cjs/filters/helpers/common/getValuesFromModel.d.ts +8 -0
  100. package/dist/cjs/filters/helpers/common/getValuesFromModel.js +20 -0
  101. package/dist/cjs/filters/helpers/common/index.d.ts +4 -1
  102. package/dist/cjs/filters/helpers/common/index.js +5 -1
  103. package/dist/cjs/filters/helpers/common/mergeFilters.d.ts +3 -3
  104. package/dist/cjs/filters/helpers/common/mergeFilters.js +17 -53
  105. package/dist/cjs/filters/helpers/common/mergeValues.d.ts +11 -0
  106. package/dist/cjs/filters/helpers/common/mergeValues.js +95 -0
  107. package/dist/cjs/filters/helpers/getAggFiltersFromFilterData.d.ts +5 -4
  108. package/dist/cjs/filters/helpers/getAggFiltersFromFilterData.js +5 -5
  109. package/dist/cjs/filters/helpers/index.d.ts +1 -0
  110. package/dist/cjs/filters/helpers/index.js +2 -0
  111. package/dist/cjs/filters/helpers/ui/getUIFlatFilterByParams.js +2 -2
  112. package/dist/cjs/filters/helpers/ui/getUIFlatFiltersByParams.js +2 -2
  113. package/dist/cjs/filters/helpers/ui/getUIValues.d.ts +3 -3
  114. package/dist/cjs/filters/helpers/ui/getUIValues.js +26 -18
  115. package/dist/cjs/filters/helpers/ui/index.d.ts +1 -0
  116. package/dist/cjs/filters/helpers/ui/index.js +1 -0
  117. package/dist/cjs/filters/helpers/ui/{resolveUIFlatFiltersByParams.d.ts → resolveUIFlatFilterByParams.d.ts} +2 -1
  118. package/dist/cjs/filters/helpers/ui/{resolveUIFlatFiltersByParams.js → resolveUIFlatFilterByParams.js} +7 -7
  119. package/dist/cjs/filters/helpers/ui/transformFilterValues.d.ts +2 -2
  120. package/dist/cjs/filters/helpers/ui/transformFilterValues.js +4 -3
  121. package/dist/cjs/filters/index.d.ts +1 -0
  122. package/dist/cjs/filters/index.js +1 -0
  123. package/dist/cjs/filters/interfaces/OLD_IFilterDetail.d.ts +4 -1
  124. package/dist/cjs/filters/interfaces/backend/IFBData.d.ts +5 -0
  125. package/dist/cjs/filters/interfaces/backend/IFBData.js +2 -0
  126. package/dist/cjs/filters/interfaces/backend/index.d.ts +1 -0
  127. package/dist/cjs/filters/interfaces/backend/index.js +1 -0
  128. package/dist/cjs/filters/interfaces/builder/IFilterBuilderConfig.d.ts +2 -2
  129. package/dist/cjs/filters/interfaces/builder/index.d.ts +0 -1
  130. package/dist/cjs/filters/interfaces/builder/index.js +0 -1
  131. package/dist/cjs/filters/interfaces/common/IFSColumn.d.ts +1 -1
  132. package/dist/cjs/filters/interfaces/common/IFSFilter.d.ts +2 -1
  133. package/dist/cjs/filters/interfaces/common/IFSFilterExtras.d.ts +2 -0
  134. package/dist/cjs/filters/interfaces/common/IFSGetDataValues.d.ts +2 -0
  135. package/dist/cjs/filters/interfaces/common/IFSGetDataValues.js +2 -0
  136. package/dist/cjs/filters/interfaces/common/IFSParamsToGetFilter.d.ts +2 -0
  137. package/dist/cjs/filters/interfaces/common/IFSValue.d.ts +1 -0
  138. package/dist/cjs/filters/interfaces/common/IFSValueRange.d.ts +1 -0
  139. package/dist/cjs/filters/interfaces/common/IFSValueRanking.d.ts +1 -0
  140. package/dist/cjs/filters/interfaces/common/IFSValueRelativeDate.d.ts +1 -0
  141. package/dist/cjs/filters/interfaces/common/IFilterConfig.d.ts +2 -0
  142. package/dist/cjs/filters/interfaces/common/IFilterConfig.js +2 -0
  143. package/dist/cjs/filters/interfaces/common/index.d.ts +2 -2
  144. package/dist/cjs/filters/interfaces/common/index.js +2 -2
  145. package/dist/cjs/filters/interfaces/functions/IFFiltersGetData.d.ts +17 -0
  146. package/dist/cjs/filters/interfaces/functions/IFFiltersGetData.js +2 -0
  147. package/dist/cjs/filters/interfaces/functions/IFFiltersGetValuesFromDataset.d.ts +10 -0
  148. package/dist/cjs/filters/interfaces/functions/IFFiltersGetValuesFromDataset.js +2 -0
  149. package/dist/cjs/filters/interfaces/functions/IFFiltersGetValuesFromModel.d.ts +10 -0
  150. package/dist/cjs/filters/interfaces/functions/IFFiltersGetValuesFromModel.js +2 -0
  151. package/dist/cjs/filters/interfaces/functions/IFFiltersMergeFilters.d.ts +8 -0
  152. package/dist/cjs/filters/interfaces/functions/IFFiltersMergeFilters.js +2 -0
  153. package/dist/cjs/filters/interfaces/functions/IFFiltersMergeValues.d.ts +3 -0
  154. package/dist/cjs/filters/interfaces/functions/IFFiltersMergeValues.js +2 -0
  155. package/dist/cjs/filters/interfaces/{common/IFSParamsToGetFilterSettings.d.ts → functions/IFFiltersParamsToGetFilter.d.ts} +1 -1
  156. package/dist/cjs/filters/interfaces/functions/IFFiltersParamsToGetFilter.js +2 -0
  157. package/dist/cjs/filters/interfaces/functions/index.d.ts +6 -0
  158. package/dist/cjs/filters/interfaces/functions/index.js +22 -0
  159. package/dist/cjs/filters/interfaces/ui/IFUColumn.d.ts +2 -2
  160. package/dist/cjs/filters/interfaces/ui/IFUValue.d.ts +1 -0
  161. package/dist/cjs/filters/interfaces/ui/index.d.ts +1 -1
  162. package/dist/cjs/filters/interfaces/ui/index.js +1 -1
  163. package/dist/cjs/filters/services/Filters.api.d.ts +52 -0
  164. package/dist/cjs/filters/services/Filters.api.js +137 -0
  165. package/dist/cjs/filters/services/UChartApi.d.ts +86 -0
  166. package/dist/cjs/filters/services/UChartApi.js +250 -0
  167. package/dist/cjs/filters/services/UChartPaginationApi.d.ts +114 -0
  168. package/dist/cjs/filters/services/UChartPaginationApi.js +295 -0
  169. package/dist/cjs/filters/services/index.d.ts +3 -0
  170. package/dist/cjs/filters/services/index.js +19 -0
  171. package/dist/cjs/general/array/getArrayByProperty.d.ts +7 -0
  172. package/dist/cjs/general/array/getArrayByProperty.js +19 -0
  173. package/dist/cjs/general/array/getUniqueArray.d.ts +9 -0
  174. package/dist/cjs/general/array/getUniqueArray.js +15 -0
  175. package/dist/cjs/general/array/index.d.ts +1 -0
  176. package/dist/cjs/general/array/index.js +1 -0
  177. package/dist/cjs/general/object/get.d.ts +0 -20
  178. package/dist/cjs/general/object/get.js +0 -20
  179. package/dist/cjs/globalization/interfaces/filters/II18nFilterPanel.d.ts +3 -0
  180. package/dist/cjs/globalization/interfaces/filters/II18nValueContainer.d.ts +3 -2
  181. package/dist/cjs/globalization/labels/chart_builder/I18N_CHART_BUILDER.d.ts +1 -1
  182. package/dist/cjs/globalization/labels/chart_builder/I18N_CHART_BUILDER_COMPARISION_OPTIONS.d.ts +1 -1
  183. package/dist/cjs/globalization/labels/chart_builder/I18N_CHART_BUILDER_FORMAT_OPTIONS.d.ts +1 -1
  184. package/dist/cjs/globalization/labels/chart_builder/I18N_CHART_BUILDER_GENERAL_OPTIONS.d.ts +1 -1
  185. package/dist/cjs/globalization/labels/chart_builder/I18N_CHART_BUILDER_LAYER_OPTIONS.d.ts +1 -1
  186. package/dist/cjs/globalization/labels/chart_builder/I18N_CHART_BUILDER_STYLE_OPTIONS.d.ts +1 -1
  187. package/dist/cjs/globalization/labels/filters/I18N_FILTER_PANEL.js +3 -0
  188. package/dist/cjs/globalization/labels/filters/I18N_VALUE_CONTAINER.js +2 -1
  189. package/dist/cjs/interfaces/general/IWidgetConfig.d.ts +10 -0
  190. package/dist/cjs/interfaces/general/IWidgetConfig.js +2 -0
  191. package/dist/cjs/interfaces/general/index.d.ts +1 -1
  192. package/dist/cjs/interfaces/general/index.js +1 -1
  193. package/dist/cjs/qrvey/constants/APP_DATASET_TYPE_LIST.d.ts +6 -0
  194. package/dist/cjs/qrvey/constants/APP_DATASET_TYPE_LIST.js +16 -0
  195. package/dist/cjs/qrvey/constants/APP_FORM_TYPE_LIST.d.ts +6 -0
  196. package/dist/cjs/qrvey/constants/APP_FORM_TYPE_LIST.js +14 -0
  197. package/dist/cjs/qrvey/constants/APP_STATUS.d.ts +5 -0
  198. package/dist/cjs/qrvey/constants/APP_STATUS.js +9 -0
  199. package/dist/cjs/qrvey/constants/APP_STATUS_LIST.d.ts +6 -0
  200. package/dist/cjs/qrvey/constants/APP_STATUS_LIST.js +13 -0
  201. package/dist/cjs/qrvey/constants/APP_TYPE.d.ts +16 -0
  202. package/dist/cjs/qrvey/constants/APP_TYPE.js +20 -0
  203. package/dist/cjs/qrvey/constants/index.d.ts +6 -0
  204. package/dist/cjs/qrvey/constants/index.js +6 -0
  205. package/dist/cjs/qrvey/helpers/areStaticColumnValues.d.ts +8 -0
  206. package/dist/cjs/qrvey/helpers/areStaticColumnValues.js +17 -0
  207. package/dist/cjs/qrvey/helpers/getCategorizableExpression.d.ts +11 -0
  208. package/dist/cjs/qrvey/helpers/getCategorizableExpression.js +22 -0
  209. package/dist/cjs/qrvey/helpers/getDataAnswersByColumn.d.ts +13 -0
  210. package/dist/cjs/qrvey/helpers/getDataAnswersByColumn.js +54 -0
  211. package/dist/cjs/qrvey/helpers/getDropdownAnswers.d.ts +9 -0
  212. package/dist/cjs/qrvey/helpers/getDropdownAnswers.js +14 -0
  213. package/dist/cjs/qrvey/helpers/getExpressionAnswers.d.ts +10 -0
  214. package/dist/cjs/qrvey/helpers/getExpressionAnswers.js +22 -0
  215. package/dist/cjs/qrvey/helpers/getImageAnswers.d.ts +8 -0
  216. package/dist/cjs/qrvey/helpers/getImageAnswers.js +17 -0
  217. package/dist/cjs/qrvey/helpers/getImageUploadHasAnalysis.d.ts +10 -0
  218. package/dist/cjs/qrvey/helpers/getImageUploadHasAnalysis.js +23 -0
  219. package/dist/cjs/qrvey/helpers/getLookupAnswers.d.ts +4 -0
  220. package/dist/cjs/qrvey/helpers/getLookupAnswers.js +15 -0
  221. package/dist/cjs/qrvey/helpers/getLookupDisplays.d.ts +4 -0
  222. package/dist/cjs/qrvey/helpers/getLookupDisplays.js +9 -0
  223. package/dist/cjs/qrvey/helpers/getRatingAnswers.d.ts +7 -0
  224. package/dist/cjs/qrvey/helpers/getRatingAnswers.js +12 -0
  225. package/dist/cjs/qrvey/helpers/getSlidebarAnswers.d.ts +8 -0
  226. package/dist/cjs/qrvey/helpers/getSlidebarAnswers.js +18 -0
  227. package/dist/cjs/qrvey/helpers/getSuffixTranslateByColumn.d.ts +7 -0
  228. package/dist/cjs/qrvey/helpers/getSuffixTranslateByColumn.js +17 -0
  229. package/dist/cjs/qrvey/helpers/getValueWithSuffixes.d.ts +2 -2
  230. package/dist/cjs/qrvey/helpers/getValueWithSuffixes.js +1 -1
  231. package/dist/cjs/qrvey/helpers/getYesNoAnswers.d.ts +9 -0
  232. package/dist/cjs/qrvey/helpers/getYesNoAnswers.js +13 -0
  233. package/dist/cjs/qrvey/helpers/index.d.ts +15 -1
  234. package/dist/cjs/qrvey/helpers/index.js +15 -1
  235. package/dist/cjs/qrvey/helpers/isDataset.d.ts +2 -0
  236. package/dist/cjs/qrvey/helpers/isDataset.js +8 -0
  237. package/dist/cjs/qrvey/helpers/isForm.d.ts +2 -0
  238. package/dist/cjs/qrvey/helpers/isForm.js +8 -0
  239. package/dist/cjs/qrvey/interfaces/IAppStatus.d.ts +2 -0
  240. package/dist/cjs/qrvey/interfaces/IAppStatus.js +2 -0
  241. package/dist/cjs/qrvey/interfaces/IAppType.d.ts +2 -0
  242. package/dist/cjs/qrvey/interfaces/IAppType.js +2 -0
  243. package/dist/cjs/qrvey/interfaces/IBModel.d.ts +19 -0
  244. package/dist/cjs/qrvey/interfaces/IBModel.js +2 -0
  245. package/dist/cjs/qrvey/interfaces/IBModelBranchesMap.d.ts +5 -0
  246. package/dist/cjs/qrvey/interfaces/IBModelBranchesMap.js +2 -0
  247. package/dist/cjs/qrvey/interfaces/IBModelBranchesMapBranch.d.ts +4 -0
  248. package/dist/cjs/qrvey/interfaces/IBModelBranchesMapBranch.js +2 -0
  249. package/dist/cjs/qrvey/interfaces/IBModelData.d.ts +4 -0
  250. package/dist/cjs/qrvey/interfaces/IBModelData.js +2 -0
  251. package/dist/cjs/qrvey/interfaces/IFunctionGetDataAnswersByColumn.d.ts +11 -0
  252. package/dist/cjs/qrvey/interfaces/IFunctionGetDataAnswersByColumn.js +2 -0
  253. package/dist/{qrvey/interfaces/IGetValueWithSuffixesSettings.d.ts → cjs/qrvey/interfaces/IFunctionGetValueWithSuffixes.d.ts} +3 -3
  254. package/dist/cjs/qrvey/interfaces/IFunctionGetValueWithSuffixes.js +2 -0
  255. package/dist/cjs/qrvey/interfaces/IModel.d.ts +10 -0
  256. package/dist/cjs/qrvey/interfaces/IModel.js +2 -0
  257. package/dist/cjs/qrvey/interfaces/IModelAnswer.d.ts +5 -0
  258. package/dist/cjs/qrvey/interfaces/IModelAnswer.js +2 -0
  259. package/dist/cjs/qrvey/interfaces/IModelBranchesMap.d.ts +5 -0
  260. package/dist/cjs/qrvey/interfaces/IModelBranchesMap.js +2 -0
  261. package/dist/cjs/qrvey/interfaces/IModelBranchesMapBranch.d.ts +4 -0
  262. package/dist/cjs/qrvey/interfaces/IModelBranchesMapBranch.js +2 -0
  263. package/dist/cjs/qrvey/interfaces/IModelColumn.d.ts +23 -0
  264. package/dist/cjs/qrvey/interfaces/IModelColumn.js +2 -0
  265. package/dist/cjs/qrvey/interfaces/IModelDataset.d.ts +7 -0
  266. package/dist/cjs/qrvey/interfaces/IModelDataset.js +2 -0
  267. package/dist/cjs/qrvey/interfaces/index.d.ts +12 -1
  268. package/dist/cjs/qrvey/interfaces/index.js +12 -1
  269. package/dist/cjs/services/adapters/BBranchesMapToUIBranchesMap.adapter.d.ts +8 -0
  270. package/dist/cjs/services/adapters/BBranchesMapToUIBranchesMap.adapter.js +21 -0
  271. package/dist/cjs/services/adapters/BColumnsToUIColumns.adapter.js +8 -0
  272. package/dist/cjs/services/adapters/BModelToUIModel.adapter.d.ts +3 -0
  273. package/dist/cjs/services/adapters/BModelToUIModel.adapter.js +26 -0
  274. package/dist/cjs/services/adapters/index.d.ts +1 -0
  275. package/dist/cjs/services/adapters/index.js +1 -0
  276. package/dist/cjs/services/api/Charts.api.d.ts +15 -0
  277. package/dist/cjs/services/api/Charts.api.js +37 -0
  278. package/dist/cjs/services/api/getAllDatasets.api.d.ts +9 -5
  279. package/dist/cjs/services/api/getAllDatasets.api.js +24 -15
  280. package/dist/cjs/services/api/getAllQrveys.api.d.ts +1 -1
  281. package/dist/cjs/services/api/getAllQrveys.api.js +1 -1
  282. package/dist/cjs/services/api/getDatasetColumns.api.d.ts +3 -3
  283. package/dist/cjs/services/api/getDatasetColumns.api.js +5 -4
  284. package/dist/cjs/services/api/getDatasetsByIds.api.d.ts +8 -0
  285. package/dist/cjs/services/api/getDatasetsByIds.api.js +30 -0
  286. package/dist/cjs/services/api/getModel.api.d.ts +1 -0
  287. package/dist/cjs/services/api/getModel.api.js +16 -0
  288. package/dist/cjs/services/api/index.d.ts +2 -0
  289. package/dist/cjs/services/api/index.js +2 -0
  290. package/dist/cjs/services/constants/MODEL_ENDPOINT.d.ts +2 -0
  291. package/dist/cjs/services/constants/MODEL_ENDPOINT.js +7 -0
  292. package/dist/cjs/services/constants/QUESTION_LIST_BULK_ENDPOINT.d.ts +2 -0
  293. package/dist/cjs/services/constants/QUESTION_LIST_BULK_ENDPOINT.js +7 -0
  294. package/dist/cjs/services/constants/UCHART_ENDPOINT.d.ts +2 -0
  295. package/dist/cjs/services/constants/UCHART_ENDPOINT.js +7 -0
  296. package/dist/cjs/services/constants/UCHART_PAGINATION_ENDPOINT.d.ts +2 -0
  297. package/dist/cjs/services/constants/UCHART_PAGINATION_ENDPOINT.js +7 -0
  298. package/dist/cjs/services/constants/index.d.ts +4 -0
  299. package/dist/cjs/services/constants/index.js +4 -0
  300. package/dist/cjs/services/helpers/getDefaultQuestionListOptionsAttributes.d.ts +1 -0
  301. package/dist/cjs/services/helpers/getDefaultQuestionListOptionsAttributes.js +28 -0
  302. package/dist/cjs/services/helpers/index.d.ts +1 -0
  303. package/dist/cjs/services/helpers/index.js +1 -0
  304. package/dist/columns/constants/COLUMN_IMAGE_UPLOAD_OPTION.d.ts +5 -0
  305. package/dist/columns/constants/COLUMN_IMAGE_UPLOAD_OPTION.js +6 -0
  306. package/dist/columns/constants/COLUMN_IMAGE_UPLOAD_OPTION_LIST.d.ts +2 -0
  307. package/dist/columns/constants/COLUMN_IMAGE_UPLOAD_OPTION_LIST.js +6 -0
  308. package/dist/columns/constants/index.d.ts +4 -0
  309. package/dist/columns/constants/index.js +4 -0
  310. package/dist/{cjs/qrvey → columns}/helpers/getColumnsLabel.d.ts +1 -1
  311. package/dist/{qrvey → columns}/helpers/getColumnsLabel.js +2 -0
  312. package/dist/columns/helpers/getDatasetByColumn.d.ts +3 -0
  313. package/dist/columns/helpers/getDatasetByColumn.js +6 -0
  314. package/dist/columns/helpers/getDatasetColumn.d.ts +3 -0
  315. package/dist/columns/helpers/getDatasetColumn.js +12 -0
  316. package/dist/columns/helpers/getDatasetColumnyDatasets.d.ts +3 -0
  317. package/dist/columns/helpers/getDatasetColumnyDatasets.js +8 -0
  318. package/dist/columns/helpers/getModelColumn.d.ts +9 -0
  319. package/dist/columns/helpers/getModelColumn.js +26 -0
  320. package/dist/columns/helpers/index.d.ts +5 -0
  321. package/dist/columns/helpers/index.js +5 -0
  322. package/dist/columns/interfaces/IBColumAnswer.d.ts +6 -0
  323. package/dist/{filters/interfaces/builder/IFilterBuilderGeneralConfig.js → columns/interfaces/IBColumAnswer.js} +0 -0
  324. package/dist/columns/interfaces/IBColumn.d.ts +10 -3
  325. package/dist/columns/interfaces/IBColumnAnswerExpression.d.ts +5 -0
  326. package/dist/{filters/interfaces/common/IFSMergeFiltersSettings.js → columns/interfaces/IBColumnAnswerExpression.js} +0 -0
  327. package/dist/columns/interfaces/IBColumnAnswerExpressionCategory.d.ts +6 -0
  328. package/dist/{filters/interfaces/common/IFSParamsToGetFilterSettings.js → columns/interfaces/IBColumnAnswerExpressionCategory.js} +0 -0
  329. package/dist/columns/interfaces/IBColumnAnswerExpressionWord.d.ts +3 -0
  330. package/dist/{interfaces/general/IGeneralWidgetConfig.js → columns/interfaces/IBColumnAnswerExpressionWord.js} +0 -0
  331. package/dist/columns/interfaces/IBColumnAnswerGeneral.d.ts +4 -0
  332. package/dist/{qrvey/interfaces/IGetValueWithSuffixesSettings.js → columns/interfaces/IBColumnAnswerGeneral.js} +0 -0
  333. package/dist/columns/interfaces/IBColumnAnswerImages.d.ts +5 -0
  334. package/dist/columns/interfaces/IBColumnAnswerImages.js +1 -0
  335. package/dist/columns/interfaces/IBColumnAnswerLookupAnswer.d.ts +5 -0
  336. package/dist/columns/interfaces/IBColumnAnswerLookupAnswer.js +1 -0
  337. package/dist/columns/interfaces/IBColumnAnswerLookupAnswerAnswer.d.ts +6 -0
  338. package/dist/columns/interfaces/IBColumnAnswerLookupAnswerAnswer.js +1 -0
  339. package/dist/columns/interfaces/IBColumnAnswerLookupValue.d.ts +4 -0
  340. package/dist/columns/interfaces/IBColumnAnswerLookupValue.js +1 -0
  341. package/dist/columns/interfaces/IBColumnAnswerLookupValueValue.d.ts +7 -0
  342. package/dist/columns/interfaces/IBColumnAnswerLookupValueValue.js +1 -0
  343. package/dist/columns/interfaces/IBColumnAnswerSlidebar.d.ts +3 -0
  344. package/dist/columns/interfaces/IBColumnAnswerSlidebar.js +1 -0
  345. package/dist/columns/interfaces/IColumn.d.ts +9 -1
  346. package/dist/columns/interfaces/IColumnImageUploadOption.d.ts +2 -0
  347. package/dist/columns/interfaces/IColumnImageUploadOption.js +1 -0
  348. package/dist/columns/interfaces/index.d.ts +11 -0
  349. package/dist/columns/interfaces/index.js +11 -0
  350. package/dist/dates/constants/index.d.ts +1 -0
  351. package/dist/dates/constants/index.js +1 -0
  352. package/dist/dates/index.d.ts +1 -1
  353. package/dist/dates/index.js +1 -1
  354. package/dist/dates/relative/constants/RELATIVE_CURSOR_INFO_LIST.d.ts +1 -1
  355. package/dist/filters/adapters/FDToFlatUI.js +1 -0
  356. package/dist/filters/adapters/UIToFD.js +2 -1
  357. package/dist/filters/adapters/UIToFlatUI.js +1 -0
  358. package/dist/filters/adapters/UIToOldLogic.js +5 -3
  359. package/dist/filters/adapters/adaptDateGroupingProperty.d.ts +2 -2
  360. package/dist/filters/adapters/adaptDateGroupingProperty.js +2 -2
  361. package/dist/filters/adapters/adaptFilterValues.js +3 -3
  362. package/dist/filters/adapters/flatUIToFD.js +1 -0
  363. package/dist/filters/adapters/flatUIToOldLogic.js +45 -25
  364. package/dist/filters/adapters/flatUIToUI.js +1 -0
  365. package/dist/filters/adapters/index.d.ts +2 -0
  366. package/dist/filters/adapters/index.js +2 -0
  367. package/dist/filters/adapters/logicToFlatUI.js +10 -9
  368. package/dist/filters/adapters/modelAnswerToFilterValue.d.ts +8 -0
  369. package/dist/filters/adapters/modelAnswerToFilterValue.js +12 -0
  370. package/dist/filters/constants/builder/FILTER_BUILDER_SCOPE_LABEL.js +1 -1
  371. package/dist/filters/constants/builder/STATIC_OPTION_COLUMNS.d.ts +2 -2
  372. package/dist/filters/constants/builder/index.d.ts +1 -0
  373. package/dist/filters/constants/builder/index.js +1 -0
  374. package/dist/filters/helpers/OLD_getAggFilters.d.ts +9 -0
  375. package/dist/filters/helpers/OLD_getAggFilters.js +84 -0
  376. package/dist/filters/helpers/applyHierarchyForAggFilters.d.ts +3 -3
  377. package/dist/filters/helpers/applyHierarchyForAggFilters.js +3 -3
  378. package/dist/filters/helpers/backend/buildExpression.js +3 -2
  379. package/dist/filters/helpers/backend/getAggFiltersBySummaryIndex.d.ts +5 -3
  380. package/dist/filters/helpers/backend/getAggFiltersBySummaryIndex.js +5 -3
  381. package/dist/filters/helpers/backend/getBackendValidator.d.ts +2 -2
  382. package/dist/filters/helpers/backend/getBackendValidator.js +4 -4
  383. package/dist/filters/helpers/backend/getBackendValues.js +16 -13
  384. package/dist/filters/helpers/backend/index.d.ts +1 -1
  385. package/dist/filters/helpers/backend/index.js +2 -1
  386. package/dist/filters/helpers/builder/getFilterBuilderGeneralConfig.d.ts +2 -2
  387. package/dist/filters/helpers/common/excludeFiltersByParams.js +4 -4
  388. package/dist/filters/helpers/common/getFiltersByParams.d.ts +2 -2
  389. package/dist/filters/helpers/common/getFiltersByParams.js +2 -2
  390. package/dist/filters/helpers/common/getMergeFiltersSettings.d.ts +2 -2
  391. package/dist/filters/helpers/common/getMergeFiltersSettings.js +4 -3
  392. package/dist/filters/helpers/common/getMergeValuesSettings.d.ts +7 -0
  393. package/dist/filters/helpers/common/getMergeValuesSettings.js +11 -0
  394. package/dist/filters/helpers/common/getParamsToGetFilterSettings.d.ts +2 -2
  395. package/dist/filters/helpers/common/getValuesFromDataset.d.ts +8 -0
  396. package/dist/filters/helpers/common/getValuesFromDataset.js +16 -0
  397. package/dist/filters/helpers/common/getValuesFromModel.d.ts +8 -0
  398. package/dist/filters/helpers/common/getValuesFromModel.js +16 -0
  399. package/dist/filters/helpers/common/index.d.ts +4 -1
  400. package/dist/filters/helpers/common/index.js +5 -1
  401. package/dist/filters/helpers/common/mergeFilters.d.ts +3 -3
  402. package/dist/filters/helpers/common/mergeFilters.js +17 -53
  403. package/dist/filters/helpers/common/mergeValues.d.ts +11 -0
  404. package/dist/filters/helpers/common/mergeValues.js +91 -0
  405. package/dist/filters/helpers/getAggFiltersFromFilterData.d.ts +5 -4
  406. package/dist/filters/helpers/getAggFiltersFromFilterData.js +5 -5
  407. package/dist/filters/helpers/index.d.ts +1 -0
  408. package/dist/filters/helpers/index.js +2 -0
  409. package/dist/filters/helpers/ui/getUIFlatFilterByParams.js +1 -1
  410. package/dist/filters/helpers/ui/getUIFlatFiltersByParams.js +1 -1
  411. package/dist/filters/helpers/ui/getUIValues.d.ts +3 -3
  412. package/dist/filters/helpers/ui/getUIValues.js +25 -17
  413. package/dist/filters/helpers/ui/index.d.ts +1 -0
  414. package/dist/filters/helpers/ui/index.js +1 -0
  415. package/dist/filters/helpers/ui/{resolveUIFlatFiltersByParams.d.ts → resolveUIFlatFilterByParams.d.ts} +2 -1
  416. package/dist/filters/helpers/ui/{resolveUIFlatFiltersByParams.js → resolveUIFlatFilterByParams.js} +1 -1
  417. package/dist/filters/helpers/ui/transformFilterValues.d.ts +2 -2
  418. package/dist/filters/helpers/ui/transformFilterValues.js +4 -3
  419. package/dist/filters/index.d.ts +1 -0
  420. package/dist/filters/index.js +1 -0
  421. package/dist/filters/interfaces/OLD_IFilterDetail.d.ts +4 -1
  422. package/dist/filters/interfaces/backend/IFBData.d.ts +5 -0
  423. package/dist/filters/interfaces/backend/IFBData.js +1 -0
  424. package/dist/filters/interfaces/backend/index.d.ts +1 -0
  425. package/dist/filters/interfaces/backend/index.js +1 -0
  426. package/dist/filters/interfaces/builder/IFilterBuilderConfig.d.ts +2 -2
  427. package/dist/filters/interfaces/builder/index.d.ts +0 -1
  428. package/dist/filters/interfaces/builder/index.js +0 -1
  429. package/dist/filters/interfaces/common/IFSColumn.d.ts +1 -1
  430. package/dist/filters/interfaces/common/IFSFilter.d.ts +2 -1
  431. package/dist/filters/interfaces/common/IFSFilterExtras.d.ts +2 -0
  432. package/dist/filters/interfaces/common/IFSGetDataValues.d.ts +2 -0
  433. package/dist/filters/interfaces/common/IFSGetDataValues.js +1 -0
  434. package/dist/filters/interfaces/common/IFSParamsToGetFilter.d.ts +2 -0
  435. package/dist/filters/interfaces/common/IFSValue.d.ts +1 -0
  436. package/dist/filters/interfaces/common/IFSValueRange.d.ts +1 -0
  437. package/dist/filters/interfaces/common/IFSValueRanking.d.ts +1 -0
  438. package/dist/filters/interfaces/common/IFSValueRelativeDate.d.ts +1 -0
  439. package/dist/filters/interfaces/common/IFilterConfig.d.ts +2 -0
  440. package/dist/filters/interfaces/common/IFilterConfig.js +1 -0
  441. package/dist/filters/interfaces/common/index.d.ts +2 -2
  442. package/dist/filters/interfaces/common/index.js +2 -2
  443. package/dist/filters/interfaces/functions/IFFiltersGetData.d.ts +17 -0
  444. package/dist/filters/interfaces/functions/IFFiltersGetData.js +1 -0
  445. package/dist/filters/interfaces/functions/IFFiltersGetValuesFromDataset.d.ts +10 -0
  446. package/dist/filters/interfaces/functions/IFFiltersGetValuesFromDataset.js +1 -0
  447. package/dist/filters/interfaces/functions/IFFiltersGetValuesFromModel.d.ts +10 -0
  448. package/dist/filters/interfaces/functions/IFFiltersGetValuesFromModel.js +1 -0
  449. package/dist/filters/interfaces/functions/IFFiltersMergeFilters.d.ts +8 -0
  450. package/dist/filters/interfaces/functions/IFFiltersMergeFilters.js +1 -0
  451. package/dist/filters/interfaces/functions/IFFiltersMergeValues.d.ts +3 -0
  452. package/dist/filters/interfaces/functions/IFFiltersMergeValues.js +1 -0
  453. package/dist/filters/interfaces/{common/IFSParamsToGetFilterSettings.d.ts → functions/IFFiltersParamsToGetFilter.d.ts} +1 -1
  454. package/dist/filters/interfaces/functions/IFFiltersParamsToGetFilter.js +1 -0
  455. package/dist/filters/interfaces/functions/index.d.ts +6 -0
  456. package/dist/filters/interfaces/functions/index.js +6 -0
  457. package/dist/filters/interfaces/ui/IFUColumn.d.ts +2 -2
  458. package/dist/filters/interfaces/ui/IFUValue.d.ts +1 -0
  459. package/dist/filters/interfaces/ui/index.d.ts +1 -1
  460. package/dist/filters/interfaces/ui/index.js +1 -1
  461. package/dist/filters/services/Filters.api.d.ts +52 -0
  462. package/dist/filters/services/Filters.api.js +130 -0
  463. package/dist/filters/services/UChartApi.d.ts +86 -0
  464. package/dist/filters/services/UChartApi.js +244 -0
  465. package/dist/filters/services/UChartPaginationApi.d.ts +114 -0
  466. package/dist/filters/services/UChartPaginationApi.js +289 -0
  467. package/dist/filters/services/index.d.ts +3 -0
  468. package/dist/filters/services/index.js +3 -0
  469. package/dist/general/array/getArrayByProperty.d.ts +7 -0
  470. package/dist/general/array/getArrayByProperty.js +15 -0
  471. package/dist/general/array/getUniqueArray.d.ts +9 -0
  472. package/dist/general/array/getUniqueArray.js +11 -0
  473. package/dist/general/array/index.d.ts +1 -0
  474. package/dist/general/array/index.js +1 -0
  475. package/dist/general/object/get.d.ts +0 -20
  476. package/dist/general/object/get.js +0 -20
  477. package/dist/globalization/interfaces/filters/II18nFilterPanel.d.ts +3 -0
  478. package/dist/globalization/interfaces/filters/II18nValueContainer.d.ts +3 -2
  479. package/dist/globalization/labels/chart_builder/I18N_CHART_BUILDER.d.ts +1 -1
  480. package/dist/globalization/labels/chart_builder/I18N_CHART_BUILDER_COMPARISION_OPTIONS.d.ts +1 -1
  481. package/dist/globalization/labels/chart_builder/I18N_CHART_BUILDER_FORMAT_OPTIONS.d.ts +1 -1
  482. package/dist/globalization/labels/chart_builder/I18N_CHART_BUILDER_GENERAL_OPTIONS.d.ts +1 -1
  483. package/dist/globalization/labels/chart_builder/I18N_CHART_BUILDER_LAYER_OPTIONS.d.ts +1 -1
  484. package/dist/globalization/labels/chart_builder/I18N_CHART_BUILDER_STYLE_OPTIONS.d.ts +1 -1
  485. package/dist/globalization/labels/filters/I18N_FILTER_PANEL.js +3 -0
  486. package/dist/globalization/labels/filters/I18N_VALUE_CONTAINER.js +2 -1
  487. package/dist/interfaces/general/IWidgetConfig.d.ts +10 -0
  488. package/dist/interfaces/general/IWidgetConfig.js +1 -0
  489. package/dist/interfaces/general/index.d.ts +1 -1
  490. package/dist/interfaces/general/index.js +1 -1
  491. package/dist/qrvey/constants/APP_DATASET_TYPE_LIST.d.ts +6 -0
  492. package/dist/qrvey/constants/APP_DATASET_TYPE_LIST.js +13 -0
  493. package/dist/qrvey/constants/APP_FORM_TYPE_LIST.d.ts +6 -0
  494. package/dist/qrvey/constants/APP_FORM_TYPE_LIST.js +11 -0
  495. package/dist/qrvey/constants/APP_STATUS.d.ts +5 -0
  496. package/dist/qrvey/constants/APP_STATUS.js +6 -0
  497. package/dist/qrvey/constants/APP_STATUS_LIST.d.ts +6 -0
  498. package/dist/qrvey/constants/APP_STATUS_LIST.js +10 -0
  499. package/dist/qrvey/constants/APP_TYPE.d.ts +16 -0
  500. package/dist/qrvey/constants/APP_TYPE.js +17 -0
  501. package/dist/qrvey/constants/index.d.ts +6 -0
  502. package/dist/qrvey/constants/index.js +6 -0
  503. package/dist/qrvey/helpers/areStaticColumnValues.d.ts +8 -0
  504. package/dist/qrvey/helpers/areStaticColumnValues.js +13 -0
  505. package/dist/qrvey/helpers/getCategorizableExpression.d.ts +11 -0
  506. package/dist/qrvey/helpers/getCategorizableExpression.js +18 -0
  507. package/dist/qrvey/helpers/getDataAnswersByColumn.d.ts +13 -0
  508. package/dist/qrvey/helpers/getDataAnswersByColumn.js +50 -0
  509. package/dist/qrvey/helpers/getDropdownAnswers.d.ts +9 -0
  510. package/dist/qrvey/helpers/getDropdownAnswers.js +10 -0
  511. package/dist/qrvey/helpers/getExpressionAnswers.d.ts +10 -0
  512. package/dist/qrvey/helpers/getExpressionAnswers.js +18 -0
  513. package/dist/qrvey/helpers/getImageAnswers.d.ts +8 -0
  514. package/dist/qrvey/helpers/getImageAnswers.js +13 -0
  515. package/dist/qrvey/helpers/getImageUploadHasAnalysis.d.ts +10 -0
  516. package/dist/qrvey/helpers/getImageUploadHasAnalysis.js +19 -0
  517. package/dist/qrvey/helpers/getLookupAnswers.d.ts +4 -0
  518. package/dist/qrvey/helpers/getLookupAnswers.js +11 -0
  519. package/dist/qrvey/helpers/getLookupDisplays.d.ts +4 -0
  520. package/dist/qrvey/helpers/getLookupDisplays.js +5 -0
  521. package/dist/qrvey/helpers/getRatingAnswers.d.ts +7 -0
  522. package/dist/qrvey/helpers/getRatingAnswers.js +8 -0
  523. package/dist/qrvey/helpers/getSlidebarAnswers.d.ts +8 -0
  524. package/dist/qrvey/helpers/getSlidebarAnswers.js +14 -0
  525. package/dist/qrvey/helpers/getSuffixTranslateByColumn.d.ts +7 -0
  526. package/dist/qrvey/helpers/getSuffixTranslateByColumn.js +13 -0
  527. package/dist/qrvey/helpers/getValueWithSuffixes.d.ts +2 -2
  528. package/dist/qrvey/helpers/getValueWithSuffixes.js +1 -1
  529. package/dist/qrvey/helpers/getYesNoAnswers.d.ts +9 -0
  530. package/dist/qrvey/helpers/getYesNoAnswers.js +9 -0
  531. package/dist/qrvey/helpers/index.d.ts +15 -1
  532. package/dist/qrvey/helpers/index.js +15 -1
  533. package/dist/qrvey/helpers/isDataset.d.ts +2 -0
  534. package/dist/qrvey/helpers/isDataset.js +4 -0
  535. package/dist/qrvey/helpers/isForm.d.ts +2 -0
  536. package/dist/qrvey/helpers/isForm.js +4 -0
  537. package/dist/qrvey/interfaces/IAppStatus.d.ts +2 -0
  538. package/dist/qrvey/interfaces/IAppStatus.js +1 -0
  539. package/dist/qrvey/interfaces/IAppType.d.ts +2 -0
  540. package/dist/qrvey/interfaces/IAppType.js +1 -0
  541. package/dist/qrvey/interfaces/IBModel.d.ts +19 -0
  542. package/dist/qrvey/interfaces/IBModel.js +1 -0
  543. package/dist/qrvey/interfaces/IBModelBranchesMap.d.ts +5 -0
  544. package/dist/qrvey/interfaces/IBModelBranchesMap.js +1 -0
  545. package/dist/qrvey/interfaces/IBModelBranchesMapBranch.d.ts +4 -0
  546. package/dist/qrvey/interfaces/IBModelBranchesMapBranch.js +1 -0
  547. package/dist/qrvey/interfaces/IBModelData.d.ts +4 -0
  548. package/dist/qrvey/interfaces/IBModelData.js +1 -0
  549. package/dist/qrvey/interfaces/IFunctionGetDataAnswersByColumn.d.ts +11 -0
  550. package/dist/qrvey/interfaces/IFunctionGetDataAnswersByColumn.js +1 -0
  551. package/dist/{cjs/qrvey/interfaces/IGetValueWithSuffixesSettings.d.ts → qrvey/interfaces/IFunctionGetValueWithSuffixes.d.ts} +3 -3
  552. package/dist/qrvey/interfaces/IFunctionGetValueWithSuffixes.js +1 -0
  553. package/dist/qrvey/interfaces/IModel.d.ts +10 -0
  554. package/dist/qrvey/interfaces/IModel.js +1 -0
  555. package/dist/qrvey/interfaces/IModelAnswer.d.ts +5 -0
  556. package/dist/qrvey/interfaces/IModelAnswer.js +1 -0
  557. package/dist/qrvey/interfaces/IModelBranchesMap.d.ts +5 -0
  558. package/dist/qrvey/interfaces/IModelBranchesMap.js +1 -0
  559. package/dist/qrvey/interfaces/IModelBranchesMapBranch.d.ts +4 -0
  560. package/dist/qrvey/interfaces/IModelBranchesMapBranch.js +1 -0
  561. package/dist/qrvey/interfaces/IModelColumn.d.ts +23 -0
  562. package/dist/qrvey/interfaces/IModelColumn.js +1 -0
  563. package/dist/qrvey/interfaces/IModelDataset.d.ts +7 -0
  564. package/dist/qrvey/interfaces/IModelDataset.js +1 -0
  565. package/dist/qrvey/interfaces/index.d.ts +12 -1
  566. package/dist/qrvey/interfaces/index.js +12 -1
  567. package/dist/services/adapters/BBranchesMapToUIBranchesMap.adapter.d.ts +8 -0
  568. package/dist/services/adapters/BBranchesMapToUIBranchesMap.adapter.js +17 -0
  569. package/dist/services/adapters/BColumnsToUIColumns.adapter.js +8 -0
  570. package/dist/services/adapters/BModelToUIModel.adapter.d.ts +3 -0
  571. package/dist/services/adapters/BModelToUIModel.adapter.js +22 -0
  572. package/dist/services/adapters/index.d.ts +1 -0
  573. package/dist/services/adapters/index.js +1 -0
  574. package/dist/services/api/Charts.api.d.ts +15 -0
  575. package/dist/services/api/Charts.api.js +31 -0
  576. package/dist/services/api/getAllDatasets.api.d.ts +9 -5
  577. package/dist/services/api/getAllDatasets.api.js +24 -15
  578. package/dist/services/api/getAllQrveys.api.d.ts +1 -1
  579. package/dist/services/api/getAllQrveys.api.js +1 -1
  580. package/dist/services/api/getDatasetColumns.api.d.ts +3 -3
  581. package/dist/services/api/getDatasetColumns.api.js +7 -6
  582. package/dist/services/api/getDatasetsByIds.api.d.ts +8 -0
  583. package/dist/services/api/getDatasetsByIds.api.js +23 -0
  584. package/dist/services/api/getModel.api.d.ts +1 -0
  585. package/dist/services/api/getModel.api.js +9 -0
  586. package/dist/services/api/index.d.ts +2 -0
  587. package/dist/services/api/index.js +2 -0
  588. package/dist/services/constants/MODEL_ENDPOINT.d.ts +2 -0
  589. package/dist/services/constants/MODEL_ENDPOINT.js +4 -0
  590. package/dist/services/constants/QUESTION_LIST_BULK_ENDPOINT.d.ts +2 -0
  591. package/dist/services/constants/QUESTION_LIST_BULK_ENDPOINT.js +4 -0
  592. package/dist/services/constants/UCHART_ENDPOINT.d.ts +2 -0
  593. package/dist/services/constants/UCHART_ENDPOINT.js +4 -0
  594. package/dist/services/constants/UCHART_PAGINATION_ENDPOINT.d.ts +2 -0
  595. package/dist/services/constants/UCHART_PAGINATION_ENDPOINT.js +4 -0
  596. package/dist/services/constants/index.d.ts +4 -0
  597. package/dist/services/constants/index.js +4 -0
  598. package/dist/services/helpers/getDefaultQuestionListOptionsAttributes.d.ts +1 -0
  599. package/dist/services/helpers/getDefaultQuestionListOptionsAttributes.js +24 -0
  600. package/dist/services/helpers/index.d.ts +1 -0
  601. package/dist/services/helpers/index.js +1 -0
  602. package/jsdoc.config.json +14 -0
  603. package/package.json +1 -1
  604. package/src/charts/constants/index.ts +1 -0
  605. package/src/columns/constants/COLUMN_IMAGE_UPLOAD_OPTION.ts +5 -0
  606. package/src/columns/constants/COLUMN_IMAGE_UPLOAD_OPTION_LIST.ts +7 -0
  607. package/src/columns/constants/index.ts +5 -0
  608. package/src/{qrvey → columns}/helpers/getColumnsLabel.ts +2 -1
  609. package/src/columns/helpers/getDatasetByColumn.ts +9 -0
  610. package/src/columns/helpers/getDatasetColumn.ts +15 -0
  611. package/src/columns/helpers/getDatasetColumnyDatasets.ts +11 -0
  612. package/src/columns/helpers/getModelColumn.ts +29 -0
  613. package/src/columns/helpers/index.ts +5 -0
  614. package/src/columns/interfaces/IBColumAnswer.ts +7 -0
  615. package/src/columns/interfaces/IBColumn.ts +10 -3
  616. package/src/columns/interfaces/IBColumnAnswerExpression.ts +6 -0
  617. package/src/columns/interfaces/IBColumnAnswerExpressionCategory.ts +7 -0
  618. package/src/columns/interfaces/IBColumnAnswerExpressionWord.ts +3 -0
  619. package/src/columns/interfaces/IBColumnAnswerGeneral.ts +4 -0
  620. package/src/columns/interfaces/IBColumnAnswerImages.ts +6 -0
  621. package/src/columns/interfaces/IBColumnAnswerLookupAnswer.ts +6 -0
  622. package/src/columns/interfaces/IBColumnAnswerLookupAnswerAnswer.ts +6 -0
  623. package/src/columns/interfaces/IBColumnAnswerLookupValue.ts +5 -0
  624. package/src/columns/interfaces/IBColumnAnswerLookupValueValue.ts +8 -0
  625. package/src/columns/interfaces/IBColumnAnswerSlidebar.ts +3 -0
  626. package/src/columns/interfaces/IColumn.ts +9 -1
  627. package/src/columns/interfaces/IColumnImageUploadOption.ts +3 -0
  628. package/src/columns/interfaces/index.ts +12 -0
  629. package/src/dates/constants/index.ts +1 -0
  630. package/src/dates/index.ts +1 -1
  631. package/src/dates/relative/constants/RELATIVE_CURSOR_INFO_LIST.ts +1 -1
  632. package/src/filters/adapters/FDToFlatUI.ts +1 -0
  633. package/src/filters/adapters/UIToFD.ts +2 -1
  634. package/src/filters/adapters/UIToFlatUI.ts +1 -0
  635. package/src/filters/adapters/UIToOldLogic.ts +4 -3
  636. package/src/filters/adapters/adaptDateGroupingProperty.ts +2 -2
  637. package/src/filters/adapters/adaptFilterValues.ts +3 -3
  638. package/src/filters/adapters/flatUIToFD.ts +1 -0
  639. package/src/filters/adapters/flatUIToOldLogic.ts +43 -32
  640. package/src/filters/adapters/flatUIToUI.ts +1 -0
  641. package/src/filters/adapters/index.ts +4 -0
  642. package/src/filters/adapters/logicToFlatUI.ts +5 -3
  643. package/src/filters/adapters/modelAnswerToFilterValue.ts +15 -0
  644. package/src/filters/constants/builder/FILTER_BUILDER_SCOPE_LABEL.ts +1 -1
  645. package/src/filters/constants/builder/STATIC_OPTION_COLUMNS.ts +2 -1
  646. package/src/filters/constants/builder/index.ts +1 -0
  647. package/src/filters/helpers/OLD_getAggFilters.ts +90 -0
  648. package/src/filters/helpers/applyHierarchyForAggFilters.ts +3 -3
  649. package/src/filters/helpers/backend/buildExpression.ts +2 -2
  650. package/src/filters/helpers/backend/getAggFiltersBySummaryIndex.ts +5 -3
  651. package/src/filters/helpers/backend/getBackendValidator.ts +5 -5
  652. package/src/filters/helpers/backend/getBackendValues.ts +17 -13
  653. package/src/filters/helpers/backend/index.ts +2 -1
  654. package/src/filters/helpers/builder/getFilterBuilderGeneralConfig.ts +2 -2
  655. package/src/filters/helpers/common/excludeFiltersByParams.ts +3 -3
  656. package/src/filters/helpers/common/getFiltersByParams.ts +4 -4
  657. package/src/filters/helpers/common/getMergeFiltersSettings.ts +3 -2
  658. package/src/filters/helpers/common/getMergeValuesSettings.ts +12 -0
  659. package/src/filters/helpers/common/getParamsToGetFilterSettings.ts +2 -2
  660. package/src/filters/helpers/common/getValuesFromDataset.ts +19 -0
  661. package/src/filters/helpers/common/getValuesFromModel.ts +19 -0
  662. package/src/filters/helpers/common/index.ts +7 -1
  663. package/src/filters/helpers/common/mergeFilters.ts +32 -59
  664. package/src/filters/helpers/common/mergeValues.ts +90 -0
  665. package/src/filters/helpers/getAggFiltersFromFilterData.ts +5 -5
  666. package/src/filters/helpers/index.ts +3 -0
  667. package/src/filters/helpers/ui/getUIFlatFilterByParams.ts +1 -1
  668. package/src/filters/helpers/ui/getUIFlatFiltersByParams.ts +1 -1
  669. package/src/filters/helpers/ui/getUIValues.ts +26 -16
  670. package/src/filters/helpers/ui/index.ts +1 -0
  671. package/src/filters/helpers/ui/{resolveUIFlatFiltersByParams.ts → resolveUIFlatFilterByParams.ts} +3 -2
  672. package/src/filters/helpers/ui/transformFilterValues.ts +6 -5
  673. package/src/filters/index.ts +1 -0
  674. package/src/filters/interfaces/OLD_IFilterDetail.ts +2 -1
  675. package/src/filters/interfaces/backend/IFBData.ts +6 -0
  676. package/src/filters/interfaces/backend/index.ts +2 -0
  677. package/src/filters/interfaces/builder/IFilterBuilderConfig.ts +3 -3
  678. package/src/filters/interfaces/builder/index.ts +0 -1
  679. package/src/filters/interfaces/common/IFSColumn.ts +1 -1
  680. package/src/filters/interfaces/common/IFSFilter.ts +2 -1
  681. package/src/filters/interfaces/common/IFSFilterExtras.ts +2 -0
  682. package/src/filters/interfaces/common/IFSGetDataValues.ts +3 -0
  683. package/src/filters/interfaces/common/IFSParamsToGetFilter.ts +2 -0
  684. package/src/filters/interfaces/common/IFSValue.ts +1 -0
  685. package/src/filters/interfaces/common/IFSValueRange.ts +1 -0
  686. package/src/filters/interfaces/common/IFSValueRanking.ts +1 -0
  687. package/src/filters/interfaces/common/IFSValueRelativeDate.ts +1 -1
  688. package/src/filters/interfaces/common/IFilterConfig.ts +3 -0
  689. package/src/filters/interfaces/common/index.ts +2 -2
  690. package/src/filters/interfaces/functions/IFFiltersGetData.ts +18 -0
  691. package/src/filters/interfaces/functions/IFFiltersGetValuesFromDataset.ts +11 -0
  692. package/src/filters/interfaces/functions/IFFiltersGetValuesFromModel.ts +11 -0
  693. package/src/filters/interfaces/functions/IFFiltersMergeFilters.ts +9 -0
  694. package/src/filters/interfaces/functions/IFFiltersMergeValues.ts +3 -0
  695. package/src/filters/interfaces/{common/IFSParamsToGetFilterSettings.ts → functions/IFFiltersParamsToGetFilter.ts} +1 -1
  696. package/src/filters/interfaces/functions/index.ts +6 -0
  697. package/src/filters/interfaces/ui/IFUColumn.ts +2 -2
  698. package/src/filters/interfaces/ui/IFUValue.ts +1 -0
  699. package/src/filters/interfaces/ui/index.ts +1 -1
  700. package/src/filters/services/Filters.api.ts +154 -0
  701. package/src/filters/services/UChartApi.ts +265 -0
  702. package/src/filters/services/UChartPaginationApi.ts +326 -0
  703. package/src/filters/services/index.ts +3 -0
  704. package/src/general/array/getArrayByProperty.ts +14 -0
  705. package/src/general/array/getUniqueArray.ts +11 -0
  706. package/src/general/array/index.ts +1 -0
  707. package/src/general/object/get.ts +0 -22
  708. package/src/globalization/interfaces/filters/II18nFilterPanel.ts +3 -0
  709. package/src/globalization/interfaces/filters/II18nValueContainer.ts +3 -2
  710. package/src/globalization/labels/chart_builder/I18N_CHART_BUILDER.ts +1 -1
  711. package/src/globalization/labels/chart_builder/I18N_CHART_BUILDER_COMPARISION_OPTIONS.ts +1 -1
  712. package/src/globalization/labels/chart_builder/I18N_CHART_BUILDER_FORMAT_OPTIONS.ts +1 -1
  713. package/src/globalization/labels/chart_builder/I18N_CHART_BUILDER_GENERAL_OPTIONS.ts +2 -1
  714. package/src/globalization/labels/chart_builder/I18N_CHART_BUILDER_LAYER_OPTIONS.ts +1 -1
  715. package/src/globalization/labels/chart_builder/I18N_CHART_BUILDER_STYLE_OPTIONS.ts +1 -1
  716. package/src/globalization/labels/filters/I18N_FILTER_PANEL.ts +3 -0
  717. package/src/globalization/labels/filters/I18N_VALUE_CONTAINER.ts +2 -1
  718. package/src/interfaces/Qrvey.Interface.ts +1 -27
  719. package/src/interfaces/general/IWidgetConfig.ts +11 -0
  720. package/src/interfaces/general/index.ts +1 -1
  721. package/src/qrvey/constants/APP_DATASET_TYPE_LIST.ts +14 -0
  722. package/src/qrvey/constants/APP_FORM_TYPE_LIST.ts +12 -0
  723. package/src/qrvey/constants/APP_STATUS.ts +6 -0
  724. package/src/qrvey/constants/APP_STATUS_LIST.ts +11 -0
  725. package/src/qrvey/constants/APP_TYPE.ts +17 -0
  726. package/src/qrvey/constants/index.ts +6 -0
  727. package/src/qrvey/helpers/areStaticColumnValues.ts +15 -0
  728. package/src/qrvey/helpers/getCategorizableExpression.ts +20 -0
  729. package/src/qrvey/helpers/getDataAnswersByColumn.ts +56 -0
  730. package/src/qrvey/helpers/getDropdownAnswers.ts +13 -0
  731. package/src/qrvey/helpers/getExpressionAnswers.ts +21 -0
  732. package/src/qrvey/helpers/getImageAnswers.ts +16 -0
  733. package/src/qrvey/helpers/getImageUploadHasAnalysis.ts +23 -0
  734. package/src/qrvey/helpers/getLookupAnswers.ts +17 -0
  735. package/src/qrvey/helpers/getLookupDisplays.ts +9 -0
  736. package/src/qrvey/helpers/getRatingAnswers.ts +10 -0
  737. package/src/qrvey/helpers/getSlidebarAnswers.ts +16 -0
  738. package/src/qrvey/helpers/getSuffixTranslateByColumn.ts +13 -0
  739. package/src/qrvey/helpers/getValueWithSuffixes.ts +3 -3
  740. package/src/qrvey/helpers/getYesNoAnswers.ts +12 -0
  741. package/src/qrvey/helpers/index.ts +15 -1
  742. package/src/qrvey/helpers/isDataset.ts +6 -0
  743. package/src/qrvey/helpers/isForm.ts +6 -0
  744. package/src/qrvey/interfaces/IAppStatus.ts +3 -0
  745. package/src/qrvey/interfaces/IAppType.ts +3 -0
  746. package/src/qrvey/interfaces/IBModel.ts +20 -0
  747. package/src/qrvey/interfaces/IBModelBranchesMap.ts +6 -0
  748. package/src/qrvey/interfaces/IBModelBranchesMapBranch.ts +5 -0
  749. package/src/qrvey/interfaces/IBModelData.ts +5 -0
  750. package/src/qrvey/interfaces/IDataset.ts +1 -1
  751. package/src/qrvey/interfaces/IFunctionGetDataAnswersByColumn.ts +12 -0
  752. package/src/qrvey/interfaces/{IGetValueWithSuffixesSettings.ts → IFunctionGetValueWithSuffixes.ts} +3 -3
  753. package/src/qrvey/interfaces/IModel.ts +11 -0
  754. package/src/qrvey/interfaces/IModelAnswer.ts +5 -0
  755. package/src/qrvey/interfaces/IModelBranchesMap.ts +6 -0
  756. package/src/qrvey/interfaces/IModelBranchesMapBranch.ts +5 -0
  757. package/src/qrvey/interfaces/IModelColumn.ts +25 -0
  758. package/src/qrvey/interfaces/IModelDataset.ts +7 -0
  759. package/src/qrvey/interfaces/index.ts +19 -1
  760. package/src/services/adapters/BBranchesMapToUIBranchesMap.adapter.ts +20 -0
  761. package/src/services/adapters/BColumnsToUIColumns.adapter.ts +9 -1
  762. package/src/services/adapters/BDatasetsToUIDatasets.adapter.ts +4 -4
  763. package/src/services/adapters/BModelToUIModel.adapter.ts +25 -0
  764. package/src/services/adapters/index.ts +1 -0
  765. package/src/services/api/Charts.api.ts +44 -0
  766. package/src/services/api/getAllDatasets.api.ts +23 -17
  767. package/src/services/api/getAllQrveys.api.ts +1 -1
  768. package/src/services/api/getDatasetColumns.api.ts +10 -9
  769. package/src/services/api/getDatasetsByIds.api.ts +26 -0
  770. package/src/services/api/getModel.api.ts +10 -0
  771. package/src/services/api/index.ts +2 -0
  772. package/src/services/constants/MODEL_ENDPOINT.ts +6 -0
  773. package/src/services/constants/QUESTION_LIST_BULK_ENDPOINT.ts +6 -0
  774. package/src/services/constants/UCHART_ENDPOINT.ts +6 -0
  775. package/src/services/constants/UCHART_PAGINATION_ENDPOINT.ts +6 -0
  776. package/src/services/constants/index.ts +6 -0
  777. package/src/services/helpers/getDefaultQuestionListOptionsAttributes.ts +24 -0
  778. package/src/services/helpers/index.ts +1 -0
  779. package/dist/cjs/filters/interfaces/builder/IFilterBuilderGeneralConfig.d.ts +0 -13
  780. package/dist/cjs/filters/interfaces/common/IFSMergeFiltersSettings.d.ts +0 -7
  781. package/dist/cjs/interfaces/general/IGeneralWidgetConfig.d.ts +0 -12
  782. package/dist/filters/interfaces/builder/IFilterBuilderGeneralConfig.d.ts +0 -13
  783. package/dist/filters/interfaces/common/IFSMergeFiltersSettings.d.ts +0 -7
  784. package/dist/interfaces/general/IGeneralWidgetConfig.d.ts +0 -12
  785. package/src/filters/interfaces/builder/IFilterBuilderGeneralConfig.ts +0 -14
  786. package/src/filters/interfaces/common/IFSMergeFiltersSettings.ts +0 -8
  787. package/src/interfaces/general/IGeneralWidgetConfig.ts +0 -12
@@ -3,6 +3,7 @@ export * from './COLUMNS_FOR_EQUALS_LAYOUT';
3
3
  export * from './COLUMNS_FOR_EQUALS_NULL_LAYOUT';
4
4
  export * from './COLUMNS_FOR_NULL_LAYOUT';
5
5
  export * from './COLUMNS_FOR_TEXT_LAYOUT';
6
+ export * from './FILTER_BUILDER_SCOPE_LABEL';
6
7
  export * from './FILTER_FLOW';
7
8
  export * from './FILTER_VALIDATORS_FOR_SLIDEBAR';
8
9
  export * from './FILTER_VALIDATORS_FOR_WINDOW';
@@ -0,0 +1,90 @@
1
+ import { COLUMN } from "../../columns/constants/COLUMN";
2
+ import { isEmpty } from "../../general/mix/isEmpty";
3
+ import { cloneDeep } from "../../general/object/cloneDeep";
4
+ import { _get } from "../../general/object/get";
5
+ import { FILTER_OPERATOR } from "../constants/common/FILTER_OPERATOR";
6
+ import { IFBExpressionAggregate } from "../interfaces/backend/IFBExpressionAggregate";
7
+ import { IFBFilterAggregate } from "../interfaces/backend/IFBFilterAggregate";
8
+ import { IFOperator } from "../interfaces/IFOperator";
9
+ import { OLD_IFilterExpression } from "../interfaces/OLD_IFilterExpression";
10
+ import { OLD_IFilterLogic } from "../interfaces/OLD_IFilterLogic";
11
+
12
+ /**
13
+ * @deprecated soon
14
+ * @param logics
15
+ * @param summaries
16
+ * @returns the filter aggregate structure
17
+ */
18
+ export function getAggFilters(logics: OLD_IFilterLogic[] = [], summaries: any[] = []): IFBFilterAggregate {
19
+ const aggregateFilters: OLD_IFilterLogic[] = getAggregateFilters(logics) as OLD_IFilterLogic[];
20
+ const aggFilters: IFBFilterAggregate[] = aggregateFilters.map(aggFilter => {
21
+ const expressions = getExpressionsInLogic([aggFilter]);
22
+ return expressions && expressions.length && {
23
+ operator: FILTER_OPERATOR.OR,
24
+ expressions: expressions.map((expression): IFBExpressionAggregate => {
25
+ const summaryIndex = summaries.findIndex(summary =>
26
+ expression.questionid === summary.questionid &&
27
+ expression.qrveyid === summary.qrveyid &&
28
+ expression.linkid === summary.linkid &&
29
+ _get(expression.uiExtras.column, 'aggregate') === summary.aggregate
30
+ );
31
+ if (summaryIndex > -1 || expression.questionType === COLUMN.AGGREGATED_FORMULA) {
32
+ return {
33
+ enabled: expression.enabled,
34
+ summaryIndex,
35
+ validationType: expression.validationType,
36
+ value: expression.value,
37
+ };
38
+ }
39
+ return;
40
+ }).filter(Boolean)
41
+ };
42
+ }).filter(aggFilter => aggFilter && aggFilter.expressions && aggFilter.expressions.length);
43
+ return aggFilters && concatAggFilters(aggFilters);
44
+ }
45
+
46
+ /**
47
+ * Filters and gets the filters used for aggregate values.
48
+ * @param logics The filter logic structure
49
+ * @param formatToFilters Flag to change de way of returning the filter structure.
50
+ * @returns the aggregate filters in the IFilterFilters way or as logic structure.
51
+ */
52
+ function getAggregateFilters(logics: OLD_IFilterLogic[] = []): OLD_IFilterLogic[] {
53
+ logics = cloneDeep(logics);
54
+ const aggregateLogics = logics.reduce((newLogics: OLD_IFilterLogic[], logic: OLD_IFilterLogic) => {
55
+ if (!logic) return newLogics;
56
+ // if ([FILTER_SCOPE.DEFAULT, FILTER_SCOPE.CHART].includes(logic.scope)) {
57
+ logic.filters.forEach((filter, index) => {
58
+ const expressions = _get(filter, 'expressions[0].expressions');
59
+ if (!isEmpty(expressions)) {
60
+ const aggregateFilters = (filter.expressions[0].expressions as OLD_IFilterExpression[]).filter(expression => !isEmpty(expression.uiExtras.column.aggregate));
61
+ logic.filters[index].expressions[0].expressions = aggregateFilters;
62
+ if (!filter.expressions[0].expressions.length) logic.filters[index] = undefined;
63
+ }
64
+ });
65
+ logic.filters = logic.filters.filter(filter => filter);
66
+ if (logic.filters.length) newLogics.push(logic);
67
+ //}
68
+ return newLogics;
69
+ }, [] as OLD_IFilterLogic[]);
70
+ return aggregateLogics;
71
+ }
72
+
73
+ function concatAggFilters(aggFilters: IFBFilterAggregate[], operator: IFOperator = FILTER_OPERATOR.AND): IFBFilterAggregate {
74
+ const expressions = aggFilters.filter(Boolean);
75
+ if (!expressions.length) return undefined;
76
+ else if (expressions.length === 1) return expressions[0];
77
+ return {
78
+ operator,
79
+ expressions: aggFilters.filter(Boolean)
80
+ };
81
+ }
82
+
83
+ function getExpressionsInLogic(logics: OLD_IFilterLogic[] = []): OLD_IFilterExpression[] {
84
+ return logics.reduce((expressions: OLD_IFilterExpression[], logic: OLD_IFilterLogic) => {
85
+ logic.filters.forEach(filter => {
86
+ expressions = expressions.concat(filter.expressions[0].expressions);
87
+ });
88
+ return expressions;
89
+ }, [] as OLD_IFilterExpression[]);
90
+ }
@@ -9,9 +9,9 @@ import { getScopesByHierarchy } from "./getScopesByHierarchy";
9
9
  /**
10
10
  * [TODO: Make a proper description for this function]
11
11
  * @param chartSettings Chart Settings for the Filter Builder
12
- * @param scopes
13
- * @param currentScope
14
- * @returns
12
+ * @param scopes the pair id/label scopes
13
+ * @param currentScope the scope to be validated
14
+ * @returns the chart settings
15
15
  */
16
16
  export function applyHierarchyForAggFilters(chartSettings: IFUChartSettings, scopes: IFSScopeID[] = [], currentScope: IFScope = FILTER_SCOPE.GLOBAL): IFUChartSettings {
17
17
  if (isEmpty(chartSettings)) return;
@@ -17,10 +17,10 @@ export function buildExpression(filter: IFSFilter): IFBExpression {
17
17
  questionid: filter.column.id,
18
18
  questionType: filter.column.type,
19
19
  property: getBackendProperty(filter),
20
- validationType: getBackendValidator(filter.validator),
20
+ validationType: getBackendValidator(filter),
21
21
  value: getBackendValues(filter),
22
22
  };
23
- expression['enabled'] = expression.value.length > 0 ? filter.enabled : false;
23
+ expression['enabled'] = filter.selectAll || expression.value?.length > 0 ? filter.enabled : false;
24
24
 
25
25
  return expression;
26
26
  }
@@ -2,10 +2,12 @@ import { filterNestedTree } from "../../../general/array/filterNestedTree";
2
2
  import { IFBFilterAggregate } from "../../interfaces/backend/IFBFilterAggregate";
3
3
 
4
4
  /**
5
+ * @todo Make a proper description for this function
5
6
  *
6
- * @param aggFilters
7
- * @param summaryIndex
8
- * @returns
7
+ * Gets the aggFilters structure by an index
8
+ * @param aggFilters The aggFilter Structure
9
+ * @param summaryIndex an index
10
+ * @returns a new aggFilters structure
9
11
  */
10
12
  export function getAggFiltersBySummaryIndex(aggFilters: IFBFilterAggregate, summaryIndex: number): IFBFilterAggregate {
11
13
  if (!aggFilters) return undefined;
@@ -1,19 +1,19 @@
1
1
  import { FILTER_BACKEND_VALIDATOR } from "../../constants/backend/FILTER_BACKEND_VALIDATOR";
2
2
  import { FILTER_VALIDATOR } from "../../constants/common/FILTER_VALIDATOR";
3
3
  import { IFBackendValidator } from "../../interfaces/backend/IFBackendValidator";
4
- import { IFValidator } from "../../interfaces/IFValidator";
4
+ import { IFSFilter } from "../../interfaces/common/IFSFilter";
5
5
 
6
6
  /**
7
7
  * Gets the Validator that is used in requests
8
8
  * @param validator Filter Validator used in UI
9
9
  * @returns Filter Validator used in Backend
10
10
  */
11
- export function getBackendValidator(validator: IFValidator): IFBackendValidator {
12
- switch (validator) {
11
+ export function getBackendValidator(filter: IFSFilter): IFBackendValidator {
12
+ switch (filter.validator) {
13
13
  case FILTER_VALIDATOR.EQUALS:
14
- return FILTER_BACKEND_VALIDATOR.EQUALS;
14
+ return filter.selectAll ? FILTER_BACKEND_VALIDATOR.NOT_EQUAL : FILTER_BACKEND_VALIDATOR.EQUALS;
15
15
  case FILTER_VALIDATOR.NOT_EQUAL:
16
- return FILTER_BACKEND_VALIDATOR.NOT_EQUAL;
16
+ return filter.selectAll ? FILTER_BACKEND_VALIDATOR.EQUALS : FILTER_BACKEND_VALIDATOR.NOT_EQUAL;
17
17
  case FILTER_VALIDATOR.CONTAINS:
18
18
  return FILTER_BACKEND_VALIDATOR.CONTAINS;
19
19
  case FILTER_VALIDATOR.NOT_CONTAIN:
@@ -19,53 +19,55 @@ import { IFSValueRanking } from "../../interfaces/common/IFSValueRanking";
19
19
  * @returns A collection of backend expression value
20
20
  */
21
21
  export function getBackendValues(filter: IFSFilter): IFBackendExpressionValue[] {
22
+ const values = filter.values || [];
23
+
22
24
  switch (filter.validator) {
23
25
  case FILTER_VALIDATOR.EQUALS:
24
26
  case FILTER_VALIDATOR.NOT_EQUAL:
25
- if (filter.column.type === COLUMN.RANKING && isEmpty(filter.column.aggregate)) return getRankingValues(filter.values as IFSValueRanking[][]);
26
- return getResultValues(filter.values as IFSValue[], filter);
27
+ if (filter.column.type === COLUMN.RANKING && isEmpty(filter.column.aggregate)) return getRankingValues(values as IFSValueRanking[][]);
28
+ return getResultValues(values as IFSValue[], filter);
27
29
  case FILTER_VALIDATOR.CONTAINS:
28
30
  case FILTER_VALIDATOR.NOT_CONTAIN:
29
31
  case FILTER_VALIDATOR.STARTS_WITH:
30
32
  case FILTER_VALIDATOR.NOT_START_WITH:
31
33
  case FILTER_VALIDATOR.ENDS_WITH:
32
34
  case FILTER_VALIDATOR.NOT_END_WITH:
33
- return (filter.values as IFSValue[]).map(value => value.enabled ? value.value : undefined);
35
+ return (values as IFSValue[]).map(value => value.enabled ? value.value : undefined);
34
36
  case FILTER_VALIDATOR.BETWEEN_INCLUSIVE:
35
- return (filter.values as IFSValueRange[]).map(value => value.enabled ?
37
+ return (values as IFSValueRange[]).map(value => value.enabled ?
36
38
  { lte: value.max, gte: value.min }
37
39
  : undefined).filter(Boolean);
38
40
  case FILTER_VALIDATOR.BETWEEN_EXCLUSIVE:
39
- return (filter.values as IFSValueRange[]).map(value => value.enabled ?
41
+ return (values as IFSValueRange[]).map(value => value.enabled ?
40
42
  { lt: value.max, gt: value.min }
41
43
  : undefined).filter(Boolean);
42
44
  case FILTER_VALIDATOR.BEFORE:
43
45
  case FILTER_VALIDATOR.LESS_THAN:
44
- return (filter.values as IFSValueRange[]).map(value => value.enabled ?
46
+ return (values as IFSValueRange[]).map(value => value.enabled ?
45
47
  { lt: value.max }
46
48
  : undefined).filter(Boolean);
47
49
  case FILTER_VALIDATOR.BEFORE_ON:
48
50
  case FILTER_VALIDATOR.LESS_THAN_EQUAL:
49
- return (filter.values as IFSValueRange[]).map(value => value.enabled ?
51
+ return (values as IFSValueRange[]).map(value => value.enabled ?
50
52
  { lte: value.max }
51
53
  : undefined).filter(Boolean);
52
54
  case FILTER_VALIDATOR.AFTER:
53
55
  case FILTER_VALIDATOR.GREATER_THAN:
54
- return (filter.values as IFSValueRange[]).map(value => value.enabled ?
56
+ return (values as IFSValueRange[]).map(value => value.enabled ?
55
57
  { gt: value.min }
56
58
  : undefined).filter(Boolean);
57
59
  case FILTER_VALIDATOR.AFTER_ON:
58
60
  case FILTER_VALIDATOR.GREATER_THAN_EQUAL:
59
- return (filter.values as IFSValueRange[]).map(value => value.enabled ?
61
+ return (values as IFSValueRange[]).map(value => value.enabled ?
60
62
  { gte: value.min }
61
63
  : undefined).filter(Boolean);
62
64
  case FILTER_VALIDATOR.IS_NULL:
63
65
  case FILTER_VALIDATOR.IS_NOT_NULL: {
64
- const addValue = filter.values.length > 0 && (filter.values as IFSValue[]).every(value => value.enabled);
66
+ const addValue = values.length > 0 && (values as IFSValue[]).every(value => value.enabled);
65
67
  return addValue ? [FILTER_VALIDATOR_INFO[filter.validator].label] : [];
66
68
  }
67
69
  case FILTER_VALIDATOR.IN:
68
- return (filter.values as IFBExpressionRelativeDate[]).map(value => value.enabled ? value : undefined).filter(Boolean);
70
+ return (values as IFBExpressionRelativeDate[]).map(value => value.enabled ? value : undefined).filter(Boolean);
69
71
  default:
70
72
  return [];
71
73
  }
@@ -73,12 +75,13 @@ export function getBackendValues(filter: IFSFilter): IFBackendExpressionValue[]
73
75
 
74
76
  /**
75
77
  * Gets the expression values. Depending on the column type
78
+ * @private
76
79
  * @param values a collection of filter values
77
80
  * @param filter The filter structure
78
- * @returns
81
+ * @returns Expression values
79
82
  */
80
83
  function getResultValues(values: IFSValue[], filter: IFSFilter): IFBExpressionValue[] {
81
- return values.map((value: IFSValue) => {
84
+ return (values || []).map((value: IFSValue) => {
82
85
  if (value.enabled) {
83
86
  if (filter.column.type === COLUMN.IMAGE) {
84
87
  return value.valueid || value.imageUrl || value.value;
@@ -91,6 +94,7 @@ function getResultValues(values: IFSValue[], filter: IFSFilter): IFBExpressionVa
91
94
 
92
95
  /**
93
96
  * Gets the Ranking values.
97
+ * @private
94
98
  * @param values a collection of filter values in the ranking structure
95
99
  * @param rankingGroupIndex determine the value by this index to build and return it
96
100
  * @returns Expression values for ranking
@@ -6,5 +6,6 @@ export * from './getBackendGroupValue';
6
6
  export * from './getBackendProperty';
7
7
  export * from './getBackendValidator';
8
8
  export * from './getBackendValues';
9
- export * from './getLogicByScopesHierarchy';
10
9
  export * from './getLogicByScopes';
10
+ export * from './getLogicByScopesHierarchy';
11
+ // export * from './hasDatasetRelatedFilters';
@@ -1,12 +1,12 @@
1
1
  import { getAttribute } from '../../../general/object/getAttribute';
2
- import { IFilterBuilderGeneralConfig } from '../../interfaces/builder/IFilterBuilderGeneralConfig';
2
+ import { IFilterConfig } from '../../interfaces/common/IFilterConfig';
3
3
 
4
4
  /**
5
5
  * Returns a filter builder config object by a any given config
6
6
  * @param config any config object
7
7
  * @returns The filter builder config object
8
8
  */
9
- export function getFilterBuilderGeneralConfig(config: any = {}): IFilterBuilderGeneralConfig {
9
+ export function getFilterBuilderGeneralConfig(config: any = {}): IFilterConfig {
10
10
  return {
11
11
  apiKey: getAttribute(config, 'api_key') || config.apiKey,
12
12
  appid: getAttribute(config, 'app_id') || config.appid,
@@ -42,7 +42,7 @@ export function excludeFiltersByParams(filterData: IFSData | IFUData, params: IF
42
42
  if (resolveFilterConditions(filter, params)) {
43
43
  return {
44
44
  ...filter,
45
- values: filter.values.map((value: IFValue) => {
45
+ values: (filter.values || []).map((value: IFValue) => {
46
46
  if (Array.isArray(value) && value.length > 0) {
47
47
  const rankingValues = value as IFSValueRanking[];
48
48
  rankingValues.map(rValue => {
@@ -54,7 +54,7 @@ export function excludeFiltersByParams(filterData: IFSData | IFUData, params: IF
54
54
  }
55
55
  }).filter(Boolean) };
56
56
  }
57
- }).filter(filter => !isEmpty(filter) && filter.values.length > 0)
57
+ }).filter(filter => !isEmpty(filter) && (filter.selectAll && filter.values?.length > 0))
58
58
  };
59
59
  }
60
60
  }).filter(dataset => !isEmpty(dataset) && dataset.filters.length > 0)
@@ -88,5 +88,5 @@ function resolveFilterConditions(filter: IFSFilter, params: IFSParamsToGetFilter
88
88
  params.column?.qrveyid !== filter.column.qrveyid &&
89
89
  params.column?.linkid !== filter.column.linkid) &&
90
90
  params.column?.aggregate !== filter.column.aggregate) &&
91
- filter.values.length > 0;
91
+ filter.values?.length > 0;
92
92
  }
@@ -5,12 +5,12 @@ import { IFSData } from "../../interfaces/common/IFSData";
5
5
  import { IFSDataset } from "../../interfaces/common/IFSDataset";
6
6
  import { IFSFilter } from "../../interfaces/common/IFSFilter";
7
7
  import { IFSParamsToGetFilter } from "../../interfaces/common/IFSParamsToGetFilter";
8
- import { IFSParamsToGetFilterSettings } from "../../interfaces/common/IFSParamsToGetFilterSettings";
9
8
  import { IFSScope } from "../../interfaces/common/IFSScope";
10
9
  import { IFSValue } from "../../interfaces/common/IFSValue";
11
10
  import { IFSValueRange } from "../../interfaces/common/IFSValueRange";
12
11
  import { IFSValueRanking } from "../../interfaces/common/IFSValueRanking";
13
12
  import { IFSValueRelativeDate } from "../../interfaces/common/IFSValueRelativeDate";
13
+ import { IFFiltersParamsToGetFilter } from "../../interfaces/functions/IFFiltersParamsToGetFilter";
14
14
  import { IFValue } from "../../interfaces/IFValue";
15
15
  import { IFUData } from "../../interfaces/ui/IFUData";
16
16
  import { getParamsToGetFilterSettings } from "./getParamsToGetFilterSettings";
@@ -33,7 +33,7 @@ import { resolveScopeConditions } from "./resolveScopeConditions";
33
33
  * @param params given parameters to validate the dataset
34
34
  * @returns a new Filter object structure
35
35
  */
36
- export function getFiltersByParams(filterData: IFSData | IFUData, params: IFSParamsToGetFilter, settings?: IFSParamsToGetFilterSettings): IFSData | IFUData {
36
+ export function getFiltersByParams(filterData: IFSData | IFUData, params: IFSParamsToGetFilter, settings?: IFFiltersParamsToGetFilter): IFSData | IFUData {
37
37
  if (isEmpty(filterData) || isEmpty(filterData.scopes)) return;
38
38
  if (isEmpty(params)) return filterData;
39
39
  filterData = cloneDeep(filterData);
@@ -52,7 +52,7 @@ export function getFiltersByParams(filterData: IFSData | IFUData, params: IFSPar
52
52
  if (resolveFilterConditions(filter, params, settings.letPassUndefinedProperties.filter, settings.letPassUndefinedParams.filter)) {
53
53
  return {
54
54
  ...filter,
55
- values: filter.values.map((value: IFValue) => {
55
+ values: (filter.values || []).map((value: IFValue) => {
56
56
  if (Array.isArray(value) && value.length > 0) {
57
57
  const rankingValues = value as IFSValueRanking[];
58
58
  return rankingValues.map(rValue => {
@@ -64,7 +64,7 @@ export function getFiltersByParams(filterData: IFSData | IFUData, params: IFSPar
64
64
  }
65
65
  }).filter(Boolean) };
66
66
  }
67
- }).filter(filter => !isEmpty(filter) && (!settings.filterEmptyArrays.filter || filter.values.length > 0))
67
+ }).filter(filter => !isEmpty(filter) && (!settings.filterEmptyArrays.filter || filter.selectAll || filter.values?.length > 0))
68
68
  };
69
69
  }
70
70
  }).filter(dataset => !isEmpty(dataset) && (!settings.filterEmptyArrays.dataset || dataset.filters.length > 0))
@@ -1,12 +1,13 @@
1
- import { IFSMergeFiltersSettings } from "../../interfaces/common/IFSMergeFiltersSettings";
1
+ import { IFFiltersMergeFilters } from "../../interfaces/functions/IFFiltersMergeFilters";
2
2
 
3
3
  /**
4
4
  * Transforms the given MergeFilters settings object. Adds the missing properties if they do not exist.
5
5
  * @param settings an object to the MergeFilters settings
6
6
  * @returns a new MergeFilters settings object.
7
7
  */
8
- export function getMergeFiltersSettings(settings?: IFSMergeFiltersSettings): IFSMergeFiltersSettings {
8
+ export function getMergeFiltersSettings(settings?: IFFiltersMergeFilters): IFFiltersMergeFilters {
9
9
  return {
10
+ overwriteFilterProps: settings?.overwriteFilterProps ?? true,
10
11
  overwriteValues: settings?.overwriteValues ?? false,
11
12
  setGroupedColumnOperator: settings?.setGroupedColumnOperator ?? true
12
13
  };
@@ -0,0 +1,12 @@
1
+ import { IFFiltersMergeValues } from "../../interfaces/functions/IFFiltersMergeValues";
2
+
3
+ /**
4
+ * Transforms the given MergeFilters settings object. Adds the missing properties if they do not exist.
5
+ * @param settings an object to the MergeFilters settings
6
+ * @returns a new MergeFilters settings object.
7
+ */
8
+ export function getMergeValuesSettings(settings?: IFFiltersMergeValues): IFFiltersMergeValues {
9
+ return {
10
+ overwriteValues: settings?.overwriteValues ?? false,
11
+ };
12
+ }
@@ -1,11 +1,11 @@
1
- import { IFSParamsToGetFilterSettings } from "../../interfaces/common/IFSParamsToGetFilterSettings";
1
+ import { IFFiltersParamsToGetFilter } from "../../interfaces/functions/IFFiltersParamsToGetFilter";
2
2
 
3
3
  /**
4
4
  * Transforms the given ParamsToGetFilter settings object. Adds the missing properties if they do not exist.
5
5
  * @param settings an object to the ParamsToGetFilter settings
6
6
  * @returns a new ParamsToGetFilter settings object.
7
7
  */
8
- export function getParamsToGetFilterSettings(settings?: IFSParamsToGetFilterSettings): IFSParamsToGetFilterSettings {
8
+ export function getParamsToGetFilterSettings(settings?: IFFiltersParamsToGetFilter): IFFiltersParamsToGetFilter {
9
9
  return {
10
10
  letPassUndefinedParams: {
11
11
  dataset: settings?.letPassUndefinedParams?.dataset ?? true,
@@ -0,0 +1,19 @@
1
+ import { getDataAnswersByColumn } from "../../../qrvey/helpers/getDataAnswersByColumn";
2
+ import { modelAnswerToFilterValue } from "../../adapters/modelAnswerToFilterValue";
3
+ import { IFBData } from "../../interfaces/backend/IFBData";
4
+ import { IFFiltersGetValuesFromDataset } from "../../interfaces/functions/IFFiltersGetValuesFromDataset";
5
+
6
+ /**
7
+ * Gets the values from the model object that will be used to filter. Static values are values to belong from static values questions. Static values questions are questions that do not need request an info from backend, instead the info is got from Model object.
8
+ * @param props Configuration to get static values from the given dataset.
9
+ * @returns The values.
10
+ */
11
+ export function getValuesFromDataset(props: IFFiltersGetValuesFromDataset): IFBData {
12
+ const answers = getDataAnswersByColumn({ column: props.column, dataset: props.dataset, property: props.property, lookupDisplay: props.lookupDisplay });
13
+ const data = modelAnswerToFilterValue(answers);
14
+ const values: IFBData = { data, total: data.length };
15
+ if (props.value) {
16
+ values.data = values.data.filter(v => v.value.toLowerCase().includes(props.value.toLowerCase()));
17
+ }
18
+ return values;
19
+ }
@@ -0,0 +1,19 @@
1
+ import { getDataAnswersByColumn } from "../../../qrvey/helpers/getDataAnswersByColumn";
2
+ import { modelAnswerToFilterValue } from "../../adapters/modelAnswerToFilterValue";
3
+ import { IFBData } from "../../interfaces/backend/IFBData";
4
+ import { IFFiltersGetValuesFromModel } from "../../interfaces/functions/IFFiltersGetValuesFromModel";
5
+
6
+ /**
7
+ * Gets the values from the model object that will be used to filter. Static values are values to belong from static values questions. Static values questions are questions that do not need request an info from backend, instead the info is got from Model object.
8
+ * @param props Configuration to get static values from the given model.
9
+ * @returns The values.
10
+ */
11
+ export function getValuesFromModel(props: IFFiltersGetValuesFromModel): IFBData {
12
+ const answers = getDataAnswersByColumn({ column: props.column, model: props.model, property: props.property, lookupDisplay: props.lookupDisplay });
13
+ const data = modelAnswerToFilterValue(answers);
14
+ const values: IFBData = { data, total: data.length };
15
+ if (props.value) {
16
+ values.data = values.data.filter(v => v.value.toLowerCase().includes(props.value.toLowerCase()));
17
+ }
18
+ return values;
19
+ }
@@ -1,8 +1,9 @@
1
1
  export * from './areFiltersEquals';
2
- export * from './isDateDistinctProperty';
2
+
3
3
  export * from './excludeFiltersByAggregateColumn';
4
4
  export * from './excludeFiltersByParams';
5
5
  export * from './excludeFiltersByScopes';
6
+
6
7
  export * from './getFilterColumnLabel';
7
8
  export * from './getFilterid';
8
9
  export * from './getFilterLabel';
@@ -14,13 +15,18 @@ export * from './getFiltersByScopesIds';
14
15
  export * from './getFiltersByVisibility';
15
16
  export * from './getMergeFiltersSettings';
16
17
  export * from './getParamsToGetFilterSettings';
18
+ export * from './getValuesFromModel';
19
+ export * from './getValuesFromDataset';
17
20
  export * from './haveFiltersByDataset';
18
21
  export * from './isBetweenValidator';
22
+ export * from './isDateDistinctProperty';
19
23
  export * from './isInValidator';
20
24
  export * from './isNullValidator';
21
25
  export * from './isRangeValidator';
22
26
  export * from './isRegularValidator';
23
27
  export * from './mergeFilters';
28
+ export * from './mergeValues';
24
29
  export * from './resolveDatasetConditions';
25
30
  export * from './resolveFilterConditions';
26
31
  export * from './resolveScopeConditions';
32
+ // export * from './validateFilterTextByColumn';
@@ -4,18 +4,12 @@ import { FILTER_GROUPED_COLUMN_OPERATOR } from "../../constants/common/FILTER_GR
4
4
  import { IFSData } from "../../interfaces/common/IFSData";
5
5
  import { IFSDataset } from "../../interfaces/common/IFSDataset";
6
6
  import { IFSFilter } from "../../interfaces/common/IFSFilter";
7
- import { IFSMergeFiltersSettings } from "../../interfaces/common/IFSMergeFiltersSettings";
8
7
  import { IFSScope } from "../../interfaces/common/IFSScope";
9
- import { IFSValue } from "../../interfaces/common/IFSValue";
10
- import { IFSValueRange } from "../../interfaces/common/IFSValueRange";
11
- import { IFSValueRelativeDate } from "../../interfaces/common/IFSValueRelativeDate";
12
- import { IFValue } from "../../interfaces/IFValue";
8
+ import { IFFiltersMergeFilters } from "../../interfaces/functions/IFFiltersMergeFilters";
13
9
  import { IFUData } from "../../interfaces/ui/IFUData";
10
+ import { getFilterid } from "./getFilterid";
14
11
  import { getMergeFiltersSettings } from "./getMergeFiltersSettings";
15
- import { isInValidator } from "./isInValidator";
16
- import { isNullValidator } from "./isNullValidator";
17
- import { isRangeValidator } from "./isRangeValidator";
18
- import { isRegularValidator } from "./isRegularValidator";
12
+ import { mergeValues } from "./mergeValues";
19
13
  import { resolveDatasetConditions } from "./resolveDatasetConditions";
20
14
  import { resolveFilterConditions } from "./resolveFilterConditions";
21
15
  import { resolveScopeConditions } from "./resolveScopeConditions";
@@ -24,10 +18,10 @@ import { resolveScopeConditions } from "./resolveScopeConditions";
24
18
  * Merge filter data structures in a new one. The first Filter Data passed in the argument has the priority
25
19
  * @param filterData1 The target filter data
26
20
  * @param filterData2 the filter data to be merged
27
- * @param overwriteValues Flag to overwrite or not the filter values
21
+ * @param settings configuration of the mergeFilter
28
22
  * @returns a new filter data structure
29
23
  */
30
- export function mergeFilters(filterData1: IFSData | IFUData, filterData2: IFSData | IFUData, settings?: IFSMergeFiltersSettings): IFSData | IFUData {
24
+ export function mergeFilters(filterData1: IFSData | IFUData, filterData2: IFSData | IFUData, settings?: IFFiltersMergeFilters): IFSData | IFUData {
31
25
  if (isEmpty(filterData1) || isEmpty(filterData1.scopes)) {
32
26
  if (isEmpty(filterData2) || isEmpty(filterData2.scopes)) return;
33
27
  return filterData2;
@@ -50,10 +44,10 @@ export function mergeFilters(filterData1: IFSData | IFUData, filterData2: IFSDat
50
44
  * Gets a new scope structure array by merging two scope structures
51
45
  * @param scopes1 the target scope structure
52
46
  * @param scopes2 the scope to be merged
53
- * @param overwriteValues Flag to overwrite or not the filter values
47
+ * @param settings configuration of the mergeFilter
54
48
  * @returns a new scope structure array
55
49
  */
56
- function mergeScopes(scopes1: IFSScope[] = [], scopes2: IFSScope[] = [], settings?: IFSMergeFiltersSettings): IFSScope[] {
50
+ function mergeScopes(scopes1: IFSScope[] = [], scopes2: IFSScope[] = [], settings?: IFFiltersMergeFilters): IFSScope[] {
57
51
  let newScopes = scopes1.reduce((scopes: IFSScope[], scope1: IFSScope) => {
58
52
  const scope2Index = scopes2.findIndex(scope2 => resolveScopeConditions(scope2, { scope: scope1.scope, scopeid: scope1.scopeid }));
59
53
  if (scope2Index > -1) {
@@ -75,10 +69,10 @@ function mergeScopes(scopes1: IFSScope[] = [], scopes2: IFSScope[] = [], setting
75
69
  * Gets a new dataset structure array by merging two dataset structures
76
70
  * @param datasets1 the target dataset structure
77
71
  * @param datasets2 the dataset to be merged
78
- * @param overwriteValues Flag to overwrite or not the filter values
72
+ * @param settings configuration of the mergeFilter
79
73
  * @returns a new dataset structure array
80
74
  */
81
- function mergeDatasets(datasets1: IFSDataset[] = [], datasets2: IFSDataset[] = [], settings?: IFSMergeFiltersSettings): IFSDataset[] {
75
+ function mergeDatasets(datasets1: IFSDataset[] = [], datasets2: IFSDataset[] = [], settings?: IFFiltersMergeFilters): IFSDataset[] {
82
76
  let newDatasets = datasets1.reduce((datasets: IFSDataset[], dataset1: IFSDataset) => {
83
77
  const dataset2Index = datasets2.findIndex(dataset2 => resolveDatasetConditions(dataset2, { qrveyid: dataset1.qrveyid, linkid: dataset1.linkid }));
84
78
  if (dataset2Index > -1) {
@@ -100,18 +94,20 @@ function mergeDatasets(datasets1: IFSDataset[] = [], datasets2: IFSDataset[] = [
100
94
  * Gets a new filter structure array by merging two filter structures
101
95
  * @param filters1 the target filter structure
102
96
  * @param filters2 the filter to be merged
103
- * @param overwriteValues Flag to overwrite or not the filter values
97
+ * @param settings configuration of the mergeFilter
104
98
  * @returns a new filter structure array
105
99
  */
106
- function mergeFilterss(filters1: IFSFilter[] = [], filters2: IFSFilter[] = [], settings?: IFSMergeFiltersSettings): IFSFilter[] {
100
+ function mergeFilterss(filters1: IFSFilter[] = [], filters2: IFSFilter[] = [], settings?: IFFiltersMergeFilters): IFSFilter[] {
107
101
  let newFilters = filters1.reduce((filters: IFSFilter[], filter1: IFSFilter) => {
108
102
  const filter2Index = filters2.findIndex(filter2 => resolveFilterConditions(filter2, { column: filter1.column, dateSection: filter1.dateSection, panelid: filter1.extras.panelid, property: filter1.property, validator: filter1.validator }));
109
103
  if (filter2Index > -1) {
110
- filter1 = { ...filter1, values: mergeValues(filter1, filters2[filter2Index], settings.overwriteValues) };
104
+ filter1 = { ...filter1, values: mergeValues(filter1, filters2[filter2Index], settings) };
105
+ filter1 = mergeFilterProps(filter1, filters2[filter2Index], settings);
111
106
  filters2.splice(filter2Index, 1);
112
107
  } else {
113
108
  filter1 = { ...filter1, operator: settings.setGroupedColumnOperator ? FILTER_GROUPED_COLUMN_OPERATOR : filter1.operator };
114
109
  }
110
+ filter1.filterid = getFilterid(filter1);
115
111
  filters.push(filter1);
116
112
  return filters;
117
113
  }, [] as IFSFilter[]);
@@ -121,49 +117,26 @@ function mergeFilterss(filters1: IFSFilter[] = [], filters2: IFSFilter[] = [], s
121
117
  }
122
118
 
123
119
  /**
124
- * Gets a new value structure array by merging two value structures
120
+ * Gets a new filter structure when the setting is configured
125
121
  * @param filter1 the target filter structure
126
122
  * @param filter2 the filter to be used to merge the values
127
- * @param overwrite Flag to overwrite or not the filter values
128
- * @returns a new value structure array
123
+ * @param settings configuration of the mergeFilter
124
+ * @returns a new filter structure with overwritted props
129
125
  */
130
- function mergeValues(filter1: IFSFilter, filter2: IFSFilter, overwrite = false): IFValue[] {
131
- if (isEmpty(filter1) && isEmpty(filter2)) return [];
132
-
133
- let newValues = [];
134
- if (!overwrite) {
135
- if (isInValidator(filter1.validator)) {
136
- newValues = filter2.values.reduce((values: IFValue[], value2: IFSValueRelativeDate) => {
137
- const value1Index = (filter1.values as IFSValueRelativeDate[]).findIndex(value1 => value2.anchor === value1.anchor && value2.cursor === value1.cursor && value2.includeCurrent === value1.includeCurrent && value2.isCalendarDate === value1.isCalendarDate && value2.number === value1.number && value2.unit === value1.unit);
138
- if (value1Index === -1) {
139
- values.push(value2);
140
- }
141
- return values;
142
- }, filter1.values as IFValue[]);
143
- } else if (isRangeValidator(filter1.validator)) {
144
- newValues = filter2.values.reduce((values: IFValue[], value2: IFSValueRange) => {
145
- const value1Index = (filter1.values as IFSValueRange[]).findIndex(value1 => value2.max === value1.max && value2.min === value1.min);
146
- if (value1Index === -1) {
147
- values.push(value2);
148
- }
149
- return values;
150
- }, filter1.values as IFValue[]);
151
- } else if (isRegularValidator(filter1.validator) || isNullValidator(filter1.validator)) {
152
- newValues = filter2.values.reduce((values: IFValue[], value2: IFSValue) => {
153
- const value1Index = (filter1.values as IFSValue[]).findIndex(value1 => value2.imageUrl === value1.imageUrl && value2.value === value1.value);
154
- if (value1Index === -1) {
155
- values.push(value2);
156
- }
157
- return values;
158
- }, filter1.values as IFValue[]);
159
- } else {
160
- filter1.values = filter1.values.concat(filter2.values);
161
- newValues = filter1.values;
162
- }
163
- } else {
164
- filter1.values = filter2.values;
165
- newValues = filter1.values;
126
+ function mergeFilterProps(filter1: IFSFilter, filter2: IFSFilter, settings?: IFFiltersMergeFilters) {
127
+ if (settings.overwriteFilterProps) {
128
+ filter1 = {
129
+ ...filter1,
130
+ collapsed: filter2.collapsed ?? filter1.collapsed,
131
+ displayed: filter2.displayed ?? filter1.displayed,
132
+ dateSection: filter2.dateSection,
133
+ extras: filter2.extras,
134
+ enabled: filter2.enabled ?? filter1.enabled,
135
+ filterid: filter2.filterid,
136
+ lookupDisplayIndex: filter2.lookupDisplayIndex,
137
+ nullValues: filter2.nullValues,
138
+ selectAll: filter2.selectAll,
139
+ };
166
140
  }
167
-
168
- return newValues;
141
+ return filter1;
169
142
  }