@gooddata/sdk-ui-dashboard 11.10.0-alpha.0 → 11.10.0-alpha.2

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 (283) hide show
  1. package/esm/__version.d.ts +1 -1
  2. package/esm/__version.js +1 -1
  3. package/esm/model/commandHandlers/common/validateDrillToCustomUrlParams.d.ts.map +1 -1
  4. package/esm/model/commandHandlers/common/validateDrillToCustomUrlParams.js +3 -2
  5. package/esm/model/commandHandlers/common/validateDrillToCustomUrlParams.js.map +1 -1
  6. package/esm/model/commandHandlers/dashboard/changeAttributeFilterDisplayAsLabelHandler.d.ts.map +1 -1
  7. package/esm/model/commandHandlers/dashboard/changeAttributeFilterDisplayAsLabelHandler.js +4 -3
  8. package/esm/model/commandHandlers/dashboard/changeAttributeFilterDisplayAsLabelHandler.js.map +1 -1
  9. package/esm/model/commandHandlers/dashboard/changeAttributeFilterLimitingItemsHandler.js +3 -3
  10. package/esm/model/commandHandlers/dashboard/changeAttributeFilterLimitingItemsHandler.js.map +1 -1
  11. package/esm/model/commandHandlers/dashboard/changeAttributeFilterModeHandler.d.ts.map +1 -1
  12. package/esm/model/commandHandlers/dashboard/changeAttributeFilterModeHandler.js +4 -3
  13. package/esm/model/commandHandlers/dashboard/changeAttributeFilterModeHandler.js.map +1 -1
  14. package/esm/model/commandHandlers/dashboard/changeDateFilterTitleHandler.d.ts.map +1 -1
  15. package/esm/model/commandHandlers/dashboard/changeDateFilterTitleHandler.js +7 -7
  16. package/esm/model/commandHandlers/dashboard/changeDateFilterTitleHandler.js.map +1 -1
  17. package/esm/model/commandHandlers/dashboard/changeDateFilterWithDimensionModeHandler.d.ts.map +1 -1
  18. package/esm/model/commandHandlers/dashboard/changeDateFilterWithDimensionModeHandler.js +5 -4
  19. package/esm/model/commandHandlers/dashboard/changeDateFilterWithDimensionModeHandler.js.map +1 -1
  20. package/esm/model/commandHandlers/dashboard/common/stateInitializers.d.ts +2 -2
  21. package/esm/model/commandHandlers/dashboard/common/stateInitializers.d.ts.map +1 -1
  22. package/esm/model/commandHandlers/dashboard/common/stateInitializers.js +234 -106
  23. package/esm/model/commandHandlers/dashboard/common/stateInitializers.js.map +1 -1
  24. package/esm/model/commandHandlers/dashboard/dateFilterConfigHandler.d.ts.map +1 -1
  25. package/esm/model/commandHandlers/dashboard/dateFilterConfigHandler.js +2 -2
  26. package/esm/model/commandHandlers/dashboard/dateFilterConfigHandler.js.map +1 -1
  27. package/esm/model/commandHandlers/dashboard/exportDashboardToPdfHandler.d.ts.map +1 -1
  28. package/esm/model/commandHandlers/dashboard/exportDashboardToPdfHandler.js +2 -1
  29. package/esm/model/commandHandlers/dashboard/exportDashboardToPdfHandler.js.map +1 -1
  30. package/esm/model/commandHandlers/dashboard/exportDashboardToPdfPresentationHandler.d.ts.map +1 -1
  31. package/esm/model/commandHandlers/dashboard/exportDashboardToPdfPresentationHandler.js +2 -1
  32. package/esm/model/commandHandlers/dashboard/exportDashboardToPdfPresentationHandler.js.map +1 -1
  33. package/esm/model/commandHandlers/dashboard/exportDashboardToPptPresentationHandler.d.ts.map +1 -1
  34. package/esm/model/commandHandlers/dashboard/exportDashboardToPptPresentationHandler.js +2 -1
  35. package/esm/model/commandHandlers/dashboard/exportDashboardToPptPresentationHandler.js.map +1 -1
  36. package/esm/model/commandHandlers/dashboard/exportToTabularHandler.js +1 -1
  37. package/esm/model/commandHandlers/dashboard/exportToTabularHandler.js.map +1 -1
  38. package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/index.d.ts +1 -1
  39. package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/index.d.ts.map +1 -1
  40. package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/index.js +47 -20
  41. package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/index.js.map +1 -1
  42. package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/onDateFilterConfigValidationError.d.ts +1 -1
  43. package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/onDateFilterConfigValidationError.d.ts.map +1 -1
  44. package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/onDateFilterConfigValidationError.js +2 -2
  45. package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/onDateFilterConfigValidationError.js.map +1 -1
  46. package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/preloadAttributeFiltersData.d.ts.map +1 -1
  47. package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/preloadAttributeFiltersData.js +10 -5
  48. package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/preloadAttributeFiltersData.js.map +1 -1
  49. package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/resolveDashboardConfig.js +2 -2
  50. package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/resolveDashboardConfig.js.map +1 -1
  51. package/esm/model/commandHandlers/dashboard/resetDashboardHandler.d.ts.map +1 -1
  52. package/esm/model/commandHandlers/dashboard/resetDashboardHandler.js +62 -22
  53. package/esm/model/commandHandlers/dashboard/resetDashboardHandler.js.map +1 -1
  54. package/esm/model/commandHandlers/dashboard/saveAsDashboardHandler.js +6 -6
  55. package/esm/model/commandHandlers/dashboard/saveAsDashboardHandler.js.map +1 -1
  56. package/esm/model/commandHandlers/dashboard/saveDashboardHandler.d.ts.map +1 -1
  57. package/esm/model/commandHandlers/dashboard/saveDashboardHandler.js +45 -14
  58. package/esm/model/commandHandlers/dashboard/saveDashboardHandler.js.map +1 -1
  59. package/esm/model/commandHandlers/drill/crossFilteringHandler.js +2 -2
  60. package/esm/model/commandHandlers/drill/crossFilteringHandler.js.map +1 -1
  61. package/esm/model/commandHandlers/drill/drillToDashboardHandler.js +2 -2
  62. package/esm/model/commandHandlers/drill/drillToDashboardHandler.js.map +1 -1
  63. package/esm/model/commandHandlers/drill/resolveDrillToCustomUrl.d.ts.map +1 -1
  64. package/esm/model/commandHandlers/drill/resolveDrillToCustomUrl.js +2 -2
  65. package/esm/model/commandHandlers/drill/resolveDrillToCustomUrl.js.map +1 -1
  66. package/esm/model/commandHandlers/filterContext/attributeFilter/addAttributeFilterHandler.d.ts.map +1 -1
  67. package/esm/model/commandHandlers/filterContext/attributeFilter/addAttributeFilterHandler.js +6 -7
  68. package/esm/model/commandHandlers/filterContext/attributeFilter/addAttributeFilterHandler.js.map +1 -1
  69. package/esm/model/commandHandlers/filterContext/attributeFilter/changeAttributeDisplayFormHandler.js +4 -4
  70. package/esm/model/commandHandlers/filterContext/attributeFilter/changeAttributeDisplayFormHandler.js.map +1 -1
  71. package/esm/model/commandHandlers/filterContext/attributeFilter/changeAttributeFilterSelectionHandler.d.ts.map +1 -1
  72. package/esm/model/commandHandlers/filterContext/attributeFilter/changeAttributeFilterSelectionHandler.js +5 -4
  73. package/esm/model/commandHandlers/filterContext/attributeFilter/changeAttributeFilterSelectionHandler.js.map +1 -1
  74. package/esm/model/commandHandlers/filterContext/attributeFilter/changeAttributeSelectionModeHandler.d.ts.map +1 -1
  75. package/esm/model/commandHandlers/filterContext/attributeFilter/changeAttributeSelectionModeHandler.js +4 -3
  76. package/esm/model/commandHandlers/filterContext/attributeFilter/changeAttributeSelectionModeHandler.js.map +1 -1
  77. package/esm/model/commandHandlers/filterContext/attributeFilter/changeAttributeTitleHandler.d.ts.map +1 -1
  78. package/esm/model/commandHandlers/filterContext/attributeFilter/changeAttributeTitleHandler.js +4 -3
  79. package/esm/model/commandHandlers/filterContext/attributeFilter/changeAttributeTitleHandler.js.map +1 -1
  80. package/esm/model/commandHandlers/filterContext/attributeFilter/moveAttributeFilterHandler.d.ts.map +1 -1
  81. package/esm/model/commandHandlers/filterContext/attributeFilter/moveAttributeFilterHandler.js +4 -3
  82. package/esm/model/commandHandlers/filterContext/attributeFilter/moveAttributeFilterHandler.js.map +1 -1
  83. package/esm/model/commandHandlers/filterContext/attributeFilter/removeAttributeFiltersHandler.d.ts.map +1 -1
  84. package/esm/model/commandHandlers/filterContext/attributeFilter/removeAttributeFiltersHandler.js +6 -7
  85. package/esm/model/commandHandlers/filterContext/attributeFilter/removeAttributeFiltersHandler.js.map +1 -1
  86. package/esm/model/commandHandlers/filterContext/attributeFilter/setAttributeFilterDependentDateFilterHandler.d.ts.map +1 -1
  87. package/esm/model/commandHandlers/filterContext/attributeFilter/setAttributeFilterDependentDateFilterHandler.js +4 -3
  88. package/esm/model/commandHandlers/filterContext/attributeFilter/setAttributeFilterDependentDateFilterHandler.js.map +1 -1
  89. package/esm/model/commandHandlers/filterContext/attributeFilter/setAttributeFilterParentHandler.d.ts.map +1 -1
  90. package/esm/model/commandHandlers/filterContext/attributeFilter/setAttributeFilterParentHandler.js +4 -3
  91. package/esm/model/commandHandlers/filterContext/attributeFilter/setAttributeFilterParentHandler.js.map +1 -1
  92. package/esm/model/commandHandlers/filterContext/changeFilterContextSelectionHandler.d.ts.map +1 -1
  93. package/esm/model/commandHandlers/filterContext/changeFilterContextSelectionHandler.js +13 -14
  94. package/esm/model/commandHandlers/filterContext/changeFilterContextSelectionHandler.js.map +1 -1
  95. package/esm/model/commandHandlers/filterContext/common.d.ts +3 -3
  96. package/esm/model/commandHandlers/filterContext/common.d.ts.map +1 -1
  97. package/esm/model/commandHandlers/filterContext/common.js +6 -6
  98. package/esm/model/commandHandlers/filterContext/common.js.map +1 -1
  99. package/esm/model/commandHandlers/filterContext/dateFilter/addDateFilterHandler.js +3 -3
  100. package/esm/model/commandHandlers/filterContext/dateFilter/addDateFilterHandler.js.map +1 -1
  101. package/esm/model/commandHandlers/filterContext/dateFilter/changeDateFilterSelectionHandler.d.ts.map +1 -1
  102. package/esm/model/commandHandlers/filterContext/dateFilter/changeDateFilterSelectionHandler.js +3 -3
  103. package/esm/model/commandHandlers/filterContext/dateFilter/changeDateFilterSelectionHandler.js.map +1 -1
  104. package/esm/model/commandHandlers/filterContext/dateFilter/moveDateFilterHandler.d.ts.map +1 -1
  105. package/esm/model/commandHandlers/filterContext/dateFilter/moveDateFilterHandler.js +4 -3
  106. package/esm/model/commandHandlers/filterContext/dateFilter/moveDateFilterHandler.js.map +1 -1
  107. package/esm/model/commandHandlers/filterContext/dateFilter/removeDateFiltersHandler.d.ts.map +1 -1
  108. package/esm/model/commandHandlers/filterContext/dateFilter/removeDateFiltersHandler.js +5 -6
  109. package/esm/model/commandHandlers/filterContext/dateFilter/removeDateFiltersHandler.js.map +1 -1
  110. package/esm/model/commandHandlers/filterContext/filterViewHandler.js +4 -4
  111. package/esm/model/commandHandlers/filterContext/filterViewHandler.js.map +1 -1
  112. package/esm/model/commandHandlers/layout/validation/itemValidation.js +2 -2
  113. package/esm/model/commandHandlers/layout/validation/itemValidation.js.map +1 -1
  114. package/esm/model/commandHandlers/scheduledEmail/initializeAutomationsHandler.d.ts.map +1 -1
  115. package/esm/model/commandHandlers/scheduledEmail/initializeAutomationsHandler.js +1 -1
  116. package/esm/model/commandHandlers/scheduledEmail/initializeAutomationsHandler.js.map +1 -1
  117. package/esm/model/commandHandlers/tabs/createDashboardTabHandler.d.ts.map +1 -1
  118. package/esm/model/commandHandlers/tabs/createDashboardTabHandler.js +26 -4
  119. package/esm/model/commandHandlers/tabs/createDashboardTabHandler.js.map +1 -1
  120. package/esm/model/commandHandlers/tabs/switchDashboardTabHandler.d.ts.map +1 -1
  121. package/esm/model/commandHandlers/tabs/switchDashboardTabHandler.js +1 -93
  122. package/esm/model/commandHandlers/tabs/switchDashboardTabHandler.js.map +1 -1
  123. package/esm/model/commandHandlers/widgets/common/filterOperations.js +2 -2
  124. package/esm/model/commandHandlers/widgets/common/filterOperations.js.map +1 -1
  125. package/esm/model/commandHandlers/widgets/exportImageInsightWidgetHandler.d.ts.map +1 -1
  126. package/esm/model/commandHandlers/widgets/exportImageInsightWidgetHandler.js +2 -1
  127. package/esm/model/commandHandlers/widgets/exportImageInsightWidgetHandler.js.map +1 -1
  128. package/esm/model/commandHandlers/widgets/exportRawInsightWidgetHandler.d.ts.map +1 -1
  129. package/esm/model/commandHandlers/widgets/exportRawInsightWidgetHandler.js +2 -1
  130. package/esm/model/commandHandlers/widgets/exportRawInsightWidgetHandler.js.map +1 -1
  131. package/esm/model/commandHandlers/widgets/exportSlidesInsightWidgetHandler.d.ts.map +1 -1
  132. package/esm/model/commandHandlers/widgets/exportSlidesInsightWidgetHandler.js +2 -1
  133. package/esm/model/commandHandlers/widgets/exportSlidesInsightWidgetHandler.js.map +1 -1
  134. package/esm/model/commandHandlers/widgets/validation/filterValidation.js +2 -2
  135. package/esm/model/commandHandlers/widgets/validation/filterValidation.js.map +1 -1
  136. package/esm/model/queryServices/queryWidgetFilters.d.ts.map +1 -1
  137. package/esm/model/queryServices/queryWidgetFilters.js +1 -1
  138. package/esm/model/queryServices/queryWidgetFilters.js.map +1 -1
  139. package/esm/model/store/dashboardStore.d.ts.map +1 -1
  140. package/esm/model/store/dashboardStore.js +0 -8
  141. package/esm/model/store/dashboardStore.js.map +1 -1
  142. package/esm/model/store/index.d.ts +12 -10
  143. package/esm/model/store/index.d.ts.map +1 -1
  144. package/esm/model/store/index.js +6 -5
  145. package/esm/model/store/index.js.map +1 -1
  146. package/esm/model/store/keyDriverAnalysis/const.d.ts +14 -0
  147. package/esm/model/store/keyDriverAnalysis/const.d.ts.map +1 -0
  148. package/esm/model/store/keyDriverAnalysis/const.js +32 -0
  149. package/esm/model/store/keyDriverAnalysis/const.js.map +1 -0
  150. package/esm/model/store/layout/layoutSelectors.d.ts.map +1 -1
  151. package/esm/model/store/layout/layoutSelectors.js +1 -1
  152. package/esm/model/store/layout/layoutSelectors.js.map +1 -1
  153. package/esm/model/store/meta/metaSelectors.d.ts +76 -20
  154. package/esm/model/store/meta/metaSelectors.d.ts.map +1 -1
  155. package/esm/model/store/meta/metaSelectors.js +234 -140
  156. package/esm/model/store/meta/metaSelectors.js.map +1 -1
  157. package/esm/model/store/{attributeFilterConfigs → tabs/attributeFilterConfigs}/attributeFilterConfigsReducers.d.ts +7 -6
  158. package/esm/model/store/tabs/attributeFilterConfigs/attributeFilterConfigsReducers.d.ts.map +1 -0
  159. package/esm/model/store/tabs/attributeFilterConfigs/attributeFilterConfigsReducers.js +83 -0
  160. package/esm/model/store/tabs/attributeFilterConfigs/attributeFilterConfigsReducers.js.map +1 -0
  161. package/esm/model/store/{attributeFilterConfigs → tabs/attributeFilterConfigs}/attributeFilterConfigsSelectors.d.ts +7 -1
  162. package/esm/model/store/tabs/attributeFilterConfigs/attributeFilterConfigsSelectors.d.ts.map +1 -0
  163. package/esm/model/store/{attributeFilterConfigs → tabs/attributeFilterConfigs}/attributeFilterConfigsSelectors.js +24 -4
  164. package/esm/model/store/tabs/attributeFilterConfigs/attributeFilterConfigsSelectors.js.map +1 -0
  165. package/esm/model/store/{attributeFilterConfigs/attributeFilterConfigsState.d.ts → tabs/attributeFilterConfigs/attrtibuteFilterConfigsState.d.ts} +1 -1
  166. package/esm/model/store/tabs/attributeFilterConfigs/attrtibuteFilterConfigsState.d.ts.map +1 -0
  167. package/esm/model/store/tabs/attributeFilterConfigs/attrtibuteFilterConfigsState.js +5 -0
  168. package/esm/model/store/tabs/attributeFilterConfigs/attrtibuteFilterConfigsState.js.map +1 -0
  169. package/esm/model/store/{dateFilterConfig → tabs/dateFilterConfig}/dateFilterConfigReducers.d.ts +3 -3
  170. package/esm/model/store/tabs/dateFilterConfig/dateFilterConfigReducers.d.ts.map +1 -0
  171. package/esm/model/store/tabs/dateFilterConfig/dateFilterConfigReducers.js +117 -0
  172. package/esm/model/store/tabs/dateFilterConfig/dateFilterConfigReducers.js.map +1 -0
  173. package/esm/model/store/{dateFilterConfig → tabs/dateFilterConfig}/dateFilterConfigSelectors.d.ts +8 -2
  174. package/esm/model/store/tabs/dateFilterConfig/dateFilterConfigSelectors.d.ts.map +1 -0
  175. package/esm/model/store/{dateFilterConfig → tabs/dateFilterConfig}/dateFilterConfigSelectors.js +36 -13
  176. package/esm/model/store/tabs/dateFilterConfig/dateFilterConfigSelectors.js.map +1 -0
  177. package/esm/model/store/{dateFilterConfig → tabs/dateFilterConfig}/dateFilterConfigState.d.ts +1 -1
  178. package/esm/model/store/tabs/dateFilterConfig/dateFilterConfigState.d.ts.map +1 -0
  179. package/esm/model/store/tabs/dateFilterConfig/dateFilterConfigState.js.map +1 -0
  180. package/esm/model/store/{dateFilterConfigs → tabs/dateFilterConfigs}/dateFilterConfigsReducers.d.ts +7 -7
  181. package/esm/model/store/tabs/dateFilterConfigs/dateFilterConfigsReducers.d.ts.map +1 -0
  182. package/esm/model/store/tabs/dateFilterConfigs/dateFilterConfigsReducers.js +105 -0
  183. package/esm/model/store/tabs/dateFilterConfigs/dateFilterConfigsReducers.js.map +1 -0
  184. package/esm/model/store/{dateFilterConfigs → tabs/dateFilterConfigs}/dateFilterConfigsSelectors.d.ts +7 -1
  185. package/esm/model/store/tabs/dateFilterConfigs/dateFilterConfigsSelectors.d.ts.map +1 -0
  186. package/esm/model/store/{dateFilterConfigs → tabs/dateFilterConfigs}/dateFilterConfigsSelectors.js +24 -4
  187. package/esm/model/store/tabs/dateFilterConfigs/dateFilterConfigsSelectors.js.map +1 -0
  188. package/esm/model/store/tabs/dateFilterConfigs/dateFilterConfigsState.d.ts.map +1 -0
  189. package/esm/model/store/tabs/dateFilterConfigs/dateFilterConfigsState.js +5 -0
  190. package/esm/model/store/tabs/dateFilterConfigs/dateFilterConfigsState.js.map +1 -0
  191. package/esm/model/store/{filterContext → tabs/filterContext}/filterContextReducers.d.ts +54 -3
  192. package/esm/model/store/tabs/filterContext/filterContextReducers.d.ts.map +1 -0
  193. package/esm/model/store/{filterContext → tabs/filterContext}/filterContextReducers.js +237 -92
  194. package/esm/model/store/tabs/filterContext/filterContextReducers.js.map +1 -0
  195. package/esm/model/store/{filterContext → tabs/filterContext}/filterContextSelectors.d.ts +182 -2
  196. package/esm/model/store/tabs/filterContext/filterContextSelectors.d.ts.map +1 -0
  197. package/esm/model/store/{filterContext → tabs/filterContext}/filterContextSelectors.js +55 -8
  198. package/esm/model/store/tabs/filterContext/filterContextSelectors.js.map +1 -0
  199. package/esm/model/store/tabs/filterContext/filterContextState.d.ts.map +1 -0
  200. package/esm/model/store/tabs/filterContext/filterContextState.js.map +1 -0
  201. package/esm/model/store/tabs/filterContext/filterContextUtils.d.ts +35 -0
  202. package/esm/model/store/tabs/filterContext/filterContextUtils.d.ts.map +1 -0
  203. package/esm/model/store/{filterContext → tabs/filterContext}/filterContextUtils.js +55 -0
  204. package/esm/model/store/tabs/filterContext/filterContextUtils.js.map +1 -0
  205. package/esm/model/store/tabs/index.d.ts +175 -12
  206. package/esm/model/store/tabs/index.d.ts.map +1 -1
  207. package/esm/model/store/tabs/index.js +15 -3
  208. package/esm/model/store/tabs/index.js.map +1 -1
  209. package/esm/model/store/tabs/tabsReducers.d.ts +22 -6
  210. package/esm/model/store/tabs/tabsReducers.d.ts.map +1 -1
  211. package/esm/model/store/tabs/tabsReducers.js +37 -3
  212. package/esm/model/store/tabs/tabsReducers.js.map +1 -1
  213. package/esm/model/store/tabs/tabsSelectors.d.ts +31 -6
  214. package/esm/model/store/tabs/tabsSelectors.d.ts.map +1 -1
  215. package/esm/model/store/tabs/tabsSelectors.js +6 -0
  216. package/esm/model/store/tabs/tabsSelectors.js.map +1 -1
  217. package/esm/model/store/tabs/tabsState.d.ts +30 -3
  218. package/esm/model/store/tabs/tabsState.d.ts.map +1 -1
  219. package/esm/model/store/tabs/tabsState.js +13 -0
  220. package/esm/model/store/tabs/tabsState.js.map +1 -1
  221. package/esm/model/store/types.d.ts +0 -11
  222. package/esm/model/store/types.d.ts.map +1 -1
  223. package/esm/model/store/widgetDrills/widgetDrillSelectors.d.ts.map +1 -1
  224. package/esm/model/store/widgetDrills/widgetDrillSelectors.js +3 -11
  225. package/esm/model/store/widgetDrills/widgetDrillSelectors.js.map +1 -1
  226. package/esm/presentation/drill/utils/kdaUtils.d.ts.map +1 -1
  227. package/esm/presentation/drill/utils/kdaUtils.js +7 -1
  228. package/esm/presentation/drill/utils/kdaUtils.js.map +1 -1
  229. package/esm/sdk-ui-dashboard.d.ts +365 -22
  230. package/package.json +18 -18
  231. package/styles/css/main.css +5 -5
  232. package/esm/model/store/attributeFilterConfigs/attributeFilterConfigsReducers.d.ts.map +0 -1
  233. package/esm/model/store/attributeFilterConfigs/attributeFilterConfigsReducers.js +0 -43
  234. package/esm/model/store/attributeFilterConfigs/attributeFilterConfigsReducers.js.map +0 -1
  235. package/esm/model/store/attributeFilterConfigs/attributeFilterConfigsSelectors.d.ts.map +0 -1
  236. package/esm/model/store/attributeFilterConfigs/attributeFilterConfigsSelectors.js.map +0 -1
  237. package/esm/model/store/attributeFilterConfigs/attributeFilterConfigsState.d.ts.map +0 -1
  238. package/esm/model/store/attributeFilterConfigs/attributeFilterConfigsState.js +0 -4
  239. package/esm/model/store/attributeFilterConfigs/attributeFilterConfigsState.js.map +0 -1
  240. package/esm/model/store/attributeFilterConfigs/index.d.ts +0 -10
  241. package/esm/model/store/attributeFilterConfigs/index.d.ts.map +0 -1
  242. package/esm/model/store/attributeFilterConfigs/index.js +0 -13
  243. package/esm/model/store/attributeFilterConfigs/index.js.map +0 -1
  244. package/esm/model/store/dateFilterConfig/dateFilterConfigReducers.d.ts.map +0 -1
  245. package/esm/model/store/dateFilterConfig/dateFilterConfigReducers.js +0 -55
  246. package/esm/model/store/dateFilterConfig/dateFilterConfigReducers.js.map +0 -1
  247. package/esm/model/store/dateFilterConfig/dateFilterConfigSelectors.d.ts.map +0 -1
  248. package/esm/model/store/dateFilterConfig/dateFilterConfigSelectors.js.map +0 -1
  249. package/esm/model/store/dateFilterConfig/dateFilterConfigState.d.ts.map +0 -1
  250. package/esm/model/store/dateFilterConfig/dateFilterConfigState.js.map +0 -1
  251. package/esm/model/store/dateFilterConfig/index.d.ts +0 -16
  252. package/esm/model/store/dateFilterConfig/index.d.ts.map +0 -1
  253. package/esm/model/store/dateFilterConfig/index.js +0 -13
  254. package/esm/model/store/dateFilterConfig/index.js.map +0 -1
  255. package/esm/model/store/dateFilterConfigs/dateFilterConfigsReducers.d.ts.map +0 -1
  256. package/esm/model/store/dateFilterConfigs/dateFilterConfigsReducers.js +0 -63
  257. package/esm/model/store/dateFilterConfigs/dateFilterConfigsReducers.js.map +0 -1
  258. package/esm/model/store/dateFilterConfigs/dateFilterConfigsSelectors.d.ts.map +0 -1
  259. package/esm/model/store/dateFilterConfigs/dateFilterConfigsSelectors.js.map +0 -1
  260. package/esm/model/store/dateFilterConfigs/dateFilterConfigsState.d.ts.map +0 -1
  261. package/esm/model/store/dateFilterConfigs/dateFilterConfigsState.js +0 -4
  262. package/esm/model/store/dateFilterConfigs/dateFilterConfigsState.js.map +0 -1
  263. package/esm/model/store/dateFilterConfigs/index.d.ts +0 -10
  264. package/esm/model/store/dateFilterConfigs/index.d.ts.map +0 -1
  265. package/esm/model/store/dateFilterConfigs/index.js +0 -13
  266. package/esm/model/store/dateFilterConfigs/index.js.map +0 -1
  267. package/esm/model/store/filterContext/filterContextReducers.d.ts.map +0 -1
  268. package/esm/model/store/filterContext/filterContextReducers.js.map +0 -1
  269. package/esm/model/store/filterContext/filterContextSelectors.d.ts.map +0 -1
  270. package/esm/model/store/filterContext/filterContextSelectors.js.map +0 -1
  271. package/esm/model/store/filterContext/filterContextState.d.ts.map +0 -1
  272. package/esm/model/store/filterContext/filterContextState.js.map +0 -1
  273. package/esm/model/store/filterContext/filterContextUtils.d.ts +0 -14
  274. package/esm/model/store/filterContext/filterContextUtils.d.ts.map +0 -1
  275. package/esm/model/store/filterContext/filterContextUtils.js.map +0 -1
  276. package/esm/model/store/filterContext/index.d.ts +0 -36
  277. package/esm/model/store/filterContext/index.d.ts.map +0 -1
  278. package/esm/model/store/filterContext/index.js +0 -13
  279. package/esm/model/store/filterContext/index.js.map +0 -1
  280. /package/esm/model/store/{dateFilterConfig → tabs/dateFilterConfig}/dateFilterConfigState.js +0 -0
  281. /package/esm/model/store/{dateFilterConfigs → tabs/dateFilterConfigs}/dateFilterConfigsState.d.ts +0 -0
  282. /package/esm/model/store/{filterContext → tabs/filterContext}/filterContextState.d.ts +0 -0
  283. /package/esm/model/store/{filterContext → tabs/filterContext}/filterContextState.js +0 -0
@@ -1,65 +1,82 @@
1
1
  // (C) 2021-2025 GoodData Corporation
2
- import { partition } from "lodash-es";
3
2
  import { invariant } from "ts-invariant";
4
3
  import { areObjRefsEqual, attributeElementsIsEmpty, isAttributeElementsByRef, isDashboardAttributeFilter, isDashboardCommonDateFilter, isDashboardDateFilter, newAllTimeDashboardDateFilter, } from "@gooddata/sdk-model";
5
- import { applyFilterContext } from "./filterContextUtils.js";
6
- import { generateFilterLocalIdentifier } from "../_infra/generators.js";
4
+ import { filterContextInitialState } from "./filterContextState.js";
5
+ import { applyFilterContext, initializeFilterContext } from "./filterContextUtils.js";
6
+ import { generateFilterLocalIdentifier } from "../../_infra/generators.js";
7
+ import { getActiveTab } from "../tabsState.js";
7
8
  const setFilterContext = (state, action) => {
9
+ const activeTab = getActiveTab(state);
10
+ if (!activeTab) {
11
+ return;
12
+ }
8
13
  const { filterContextDefinition, originalFilterContextDefinition, filterContextIdentity, attributeFilterDisplayForms, } = action.payload;
9
- // make sure attribute filters always have localId
10
- const filtersWithLocalId = filterContextDefinition.filters?.map((filter, i) => isDashboardAttributeFilter(filter)
11
- ? {
12
- attributeFilter: {
13
- ...filter.attributeFilter,
14
- localIdentifier: filter.attributeFilter.localIdentifier ??
15
- generateFilterLocalIdentifier(filter.attributeFilter.displayForm, i),
16
- },
17
- }
18
- : filter);
19
- // make sure that common date filter is always first if present (when DateFilter is set to all time than is missing in filterContextDefinition and originalFilterContextDefinition)
20
- // we have to keep order of rest of array (attributeFilters and date filters with dimension) it represent order of filters in filter bar
21
- const [commonDateFilter, otherFilters] = partition(filtersWithLocalId, isDashboardCommonDateFilter);
22
- const filters = [...commonDateFilter, ...otherFilters];
23
- state.filterContextDefinition = {
24
- ...filterContextDefinition,
25
- filters: filters,
26
- };
27
- state.workingFilterContextDefinition = { filters: [] };
28
- state.originalFilterContextDefinition = originalFilterContextDefinition;
29
- state.filterContextIdentity = filterContextIdentity;
30
- state.attributeFilterDisplayForms = attributeFilterDisplayForms;
14
+ // Use the helper function to initialize the filter context
15
+ activeTab.filterContext = initializeFilterContext(filterContextDefinition, originalFilterContextDefinition, attributeFilterDisplayForms, filterContextIdentity);
31
16
  };
32
17
  const updateFilterContextIdentity = (state, action) => {
33
- state.filterContextIdentity = action.payload.filterContextIdentity;
18
+ const activeTab = getActiveTab(state);
19
+ if (!activeTab) {
20
+ return;
21
+ }
22
+ if (!activeTab.filterContext) {
23
+ activeTab.filterContext = { ...filterContextInitialState };
24
+ }
25
+ activeTab.filterContext.filterContextIdentity = action.payload.filterContextIdentity;
34
26
  };
35
27
  //
36
28
  //
37
29
  //
38
30
  const removeAttributeFilterDisplayForms = (state, action) => {
39
- invariant(state.attributeFilterDisplayForms, "attempting to work with uninitialized state");
40
- state.attributeFilterDisplayForms = state.attributeFilterDisplayForms.filter((df) => {
41
- return !areObjRefsEqual(df, action.payload);
42
- });
31
+ const activeTab = getActiveTab(state);
32
+ if (!activeTab) {
33
+ return;
34
+ }
35
+ if (!activeTab.filterContext) {
36
+ activeTab.filterContext = { ...filterContextInitialState };
37
+ }
38
+ invariant(activeTab.filterContext.attributeFilterDisplayForms, "attempting to work with uninitialized state");
39
+ activeTab.filterContext.attributeFilterDisplayForms =
40
+ activeTab.filterContext.attributeFilterDisplayForms.filter((df) => {
41
+ return !areObjRefsEqual(df, action.payload);
42
+ });
43
43
  };
44
44
  const addAttributeFilterDisplayForm = (state, action) => {
45
- invariant(state.attributeFilterDisplayForms, "attempting to work with uninitialized state");
45
+ const activeTab = getActiveTab(state);
46
+ if (!activeTab) {
47
+ return;
48
+ }
49
+ if (!activeTab.filterContext) {
50
+ activeTab.filterContext = { ...filterContextInitialState };
51
+ }
52
+ invariant(activeTab.filterContext.attributeFilterDisplayForms, "attempting to work with uninitialized state");
46
53
  // if there is already a display form with the same ref, replace it
47
- const existing = state.attributeFilterDisplayForms.find((df) => areObjRefsEqual(df, action.payload.ref));
54
+ const existing = activeTab.filterContext.attributeFilterDisplayForms.find((df) => areObjRefsEqual(df, action.payload.ref));
48
55
  if (existing) {
49
- state.attributeFilterDisplayForms = state.attributeFilterDisplayForms.filter((df) => !areObjRefsEqual(df, action.payload));
56
+ activeTab.filterContext.attributeFilterDisplayForms =
57
+ activeTab.filterContext.attributeFilterDisplayForms.filter((df) => !areObjRefsEqual(df, action.payload));
50
58
  }
51
- state.attributeFilterDisplayForms.push(action.payload);
59
+ activeTab.filterContext.attributeFilterDisplayForms.push(action.payload);
52
60
  };
53
61
  //
54
62
  //
55
63
  //
56
64
  const setPreloadedAttributesWithReferences = (state, action) => {
65
+ // Store attributesWithReferences at TabsState level (shared across all tabs)
66
+ // The payload already contains merged attributes from all filters across all tabs
57
67
  state.attributesWithReferences = action.payload;
58
68
  };
59
69
  const upsertDateFilter = (state, action) => {
70
+ const activeTab = getActiveTab(state);
71
+ if (!activeTab) {
72
+ return;
73
+ }
74
+ if (!activeTab.filterContext) {
75
+ activeTab.filterContext = { ...filterContextInitialState };
76
+ }
60
77
  const filterContextDefinition = action.payload.isWorkingSelectionChange
61
- ? state.workingFilterContextDefinition
62
- : state.filterContextDefinition;
78
+ ? activeTab.filterContext.workingFilterContextDefinition
79
+ : activeTab.filterContext.filterContextDefinition;
63
80
  invariant(filterContextDefinition?.filters, "Attempt to edit uninitialized filter context");
64
81
  const dateDataSet = action.payload.dataSet;
65
82
  let existingFilterIndex = -1;
@@ -130,10 +147,17 @@ const upsertDateFilter = (state, action) => {
130
147
  }
131
148
  };
132
149
  const updateAttributeFilterSelection = (state, action) => {
150
+ const activeTab = getActiveTab(state);
151
+ if (!activeTab) {
152
+ return;
153
+ }
154
+ if (!activeTab.filterContext) {
155
+ activeTab.filterContext = { ...filterContextInitialState };
156
+ }
133
157
  const { elements, filterLocalId, negativeSelection, isWorkingSelectionChange, enableImmediateAttributeFilterDisplayAsLabelMigration, isResultOfMigration, isSelectionInvalid, } = action.payload;
134
158
  const filterContextDefinition = isWorkingSelectionChange
135
- ? state.workingFilterContextDefinition
136
- : state.filterContextDefinition;
159
+ ? activeTab.filterContext.workingFilterContextDefinition
160
+ : activeTab.filterContext.filterContextDefinition;
137
161
  invariant(filterContextDefinition?.filters, "Attempt to edit uninitialized filter context");
138
162
  const existingFilterIndex = filterContextDefinition.filters.findIndex((item) => isDashboardAttributeFilter(item) && item.attributeFilter.localIdentifier === filterLocalId);
139
163
  invariant(existingFilterIndex >= 0 || isWorkingSelectionChange, "Attempt to update non-existing filter");
@@ -167,7 +191,7 @@ const updateAttributeFilterSelection = (state, action) => {
167
191
  }
168
192
  // update original filters to not show "reset filters" button, that will revert filter to the wrong state
169
193
  if (enableImmediateAttributeFilterDisplayAsLabelMigration && isResultOfMigration) {
170
- const originalFilter = state.originalFilterContextDefinition?.filters.find((item) => isDashboardAttributeFilter(item) && item.attributeFilter.localIdentifier === filterLocalId);
194
+ const originalFilter = activeTab.filterContext.originalFilterContextDefinition?.filters.find((item) => isDashboardAttributeFilter(item) && item.attributeFilter.localIdentifier === filterLocalId);
171
195
  if (isDashboardAttributeFilter(originalFilter)) {
172
196
  originalFilter.attributeFilter = {
173
197
  ...originalFilter.attributeFilter,
@@ -179,20 +203,28 @@ const updateAttributeFilterSelection = (state, action) => {
179
203
  // Handle isSelectionInvalid flag to update filtersWithInvalidSelection array
180
204
  if (isSelectionInvalid) {
181
205
  // Add filterLocalId to the array if not already present
182
- if (!state.filtersWithInvalidSelection.includes(filterLocalId)) {
183
- state.filtersWithInvalidSelection.push(filterLocalId);
206
+ if (!activeTab.filterContext.filtersWithInvalidSelection.includes(filterLocalId)) {
207
+ activeTab.filterContext.filtersWithInvalidSelection.push(filterLocalId);
184
208
  }
185
209
  }
186
210
  else {
187
211
  // Remove filterLocalId from the array if present
188
- state.filtersWithInvalidSelection = state.filtersWithInvalidSelection.filter((id) => id !== filterLocalId);
212
+ activeTab.filterContext.filtersWithInvalidSelection =
213
+ activeTab.filterContext.filtersWithInvalidSelection.filter((id) => id !== filterLocalId);
189
214
  }
190
215
  };
191
216
  const addAttributeFilter = (state, action) => {
192
- invariant(state.filterContextDefinition, "Attempt to edit uninitialized filter context");
217
+ const activeTab = getActiveTab(state);
218
+ if (!activeTab) {
219
+ return;
220
+ }
221
+ if (!activeTab.filterContext) {
222
+ activeTab.filterContext = { ...filterContextInitialState };
223
+ }
224
+ invariant(activeTab.filterContext.filterContextDefinition, "Attempt to edit uninitialized filter context");
193
225
  const { displayForm, index, initialIsNegativeSelection, initialSelection, parentFilters, selectionMode, localIdentifier, title, } = action.payload;
194
226
  // Filters are indexed just for attribute filters, if DateFilter is present should be always first item
195
- const isDateFilterPresent = state.filterContextDefinition.filters.findIndex(isDashboardDateFilter) >= 0;
227
+ const isDateFilterPresent = activeTab.filterContext.filterContextDefinition.filters.findIndex(isDashboardDateFilter) >= 0;
196
228
  const hasSelection = initialSelection && !attributeElementsIsEmpty(initialSelection);
197
229
  const isNegative = selectionMode !== "single" && (initialIsNegativeSelection || !hasSelection);
198
230
  // If DateFilter is present we have to move index by 1 because index of filter is calculated just for AttributeFilers array
@@ -210,56 +242,95 @@ const addAttributeFilter = (state, action) => {
210
242
  },
211
243
  };
212
244
  if (index === -1) {
213
- state.filterContextDefinition.filters.push(filter);
245
+ activeTab.filterContext.filterContextDefinition.filters.push(filter);
214
246
  }
215
247
  else {
216
- state.filterContextDefinition.filters.splice(attributeFilterIndex, 0, filter);
248
+ activeTab.filterContext.filterContextDefinition.filters.splice(attributeFilterIndex, 0, filter);
217
249
  }
218
250
  };
219
251
  const removeAttributeFilter = (state, action) => {
220
- invariant(state.filterContextDefinition, "Attempt to edit uninitialized filter context");
252
+ const activeTab = getActiveTab(state);
253
+ if (!activeTab) {
254
+ return;
255
+ }
256
+ if (!activeTab.filterContext) {
257
+ activeTab.filterContext = { ...filterContextInitialState };
258
+ }
259
+ invariant(activeTab.filterContext.filterContextDefinition, "Attempt to edit uninitialized filter context");
221
260
  const { filterLocalId } = action.payload;
222
- state.filterContextDefinition.filters = state.filterContextDefinition.filters.filter((item) => isDashboardDateFilter(item) || item.attributeFilter.localIdentifier !== filterLocalId);
261
+ const newFilters = activeTab.filterContext.filterContextDefinition.filters.filter((item) => isDashboardDateFilter(item) || item.attributeFilter.localIdentifier !== filterLocalId);
262
+ activeTab.filterContext.filterContextDefinition = {
263
+ ...activeTab.filterContext.filterContextDefinition,
264
+ filters: newFilters,
265
+ };
223
266
  };
224
267
  const moveAttributeFilter = (state, action) => {
225
- invariant(state.filterContextDefinition, "Attempt to edit uninitialized filter context");
268
+ const activeTab = getActiveTab(state);
269
+ if (!activeTab) {
270
+ return;
271
+ }
272
+ if (!activeTab.filterContext) {
273
+ activeTab.filterContext = { ...filterContextInitialState };
274
+ }
275
+ invariant(activeTab.filterContext.filterContextDefinition, "Attempt to edit uninitialized filter context");
226
276
  const { filterLocalId, index } = action.payload;
227
- const currentFilterIndex = state.filterContextDefinition.filters.findIndex((item) => isDashboardAttributeFilter(item) && item.attributeFilter.localIdentifier === filterLocalId);
277
+ const currentFilterIndex = activeTab.filterContext.filterContextDefinition.filters.findIndex((item) => isDashboardAttributeFilter(item) && item.attributeFilter.localIdentifier === filterLocalId);
228
278
  invariant(currentFilterIndex >= 0, "Attempt to move non-existing filter");
229
- const filter = state.filterContextDefinition.filters[currentFilterIndex];
230
- state.filterContextDefinition.filters.splice(currentFilterIndex, 1);
279
+ const filter = activeTab.filterContext.filterContextDefinition.filters[currentFilterIndex];
280
+ activeTab.filterContext.filterContextDefinition.filters.splice(currentFilterIndex, 1);
231
281
  // Filters are indexed just for attribute filters, if DateFilter is present should be always first item
232
- const isDateFilterPresent = state.filterContextDefinition.filters.findIndex(isDashboardDateFilter) >= 0;
282
+ const isDateFilterPresent = activeTab.filterContext.filterContextDefinition.filters.findIndex(isDashboardDateFilter) >= 0;
233
283
  if (index === -1) {
234
- state.filterContextDefinition.filters.push(filter);
284
+ activeTab.filterContext.filterContextDefinition.filters.push(filter);
235
285
  }
236
286
  else {
237
287
  // If DateFilter is present we have to move index by 1 because index of filter is calculated just for AttributeFilers array
238
288
  const attributeFilterIndex = isDateFilterPresent ? index + 1 : index;
239
- state.filterContextDefinition.filters.splice(attributeFilterIndex, 0, filter);
289
+ activeTab.filterContext.filterContextDefinition.filters.splice(attributeFilterIndex, 0, filter);
240
290
  }
241
291
  };
242
292
  const setAttributeFilterParents = (state, action) => {
243
- invariant(state.filterContextDefinition, "Attempt to edit uninitialized filter context");
293
+ const activeTab = getActiveTab(state);
294
+ if (!activeTab) {
295
+ return;
296
+ }
297
+ if (!activeTab.filterContext) {
298
+ activeTab.filterContext = { ...filterContextInitialState };
299
+ }
300
+ invariant(activeTab.filterContext.filterContextDefinition, "Attempt to edit uninitialized filter context");
244
301
  const { filterLocalId, parentFilters } = action.payload;
245
- const currentFilterIndex = state.filterContextDefinition.filters.findIndex((item) => isDashboardAttributeFilter(item) && item.attributeFilter.localIdentifier === filterLocalId);
302
+ const currentFilterIndex = activeTab.filterContext.filterContextDefinition.filters.findIndex((item) => isDashboardAttributeFilter(item) && item.attributeFilter.localIdentifier === filterLocalId);
246
303
  invariant(currentFilterIndex >= 0, "Attempt to set parent of a non-existing filter");
247
- state.filterContextDefinition.filters[currentFilterIndex].attributeFilter.filterElementsBy = [...parentFilters];
304
+ activeTab.filterContext.filterContextDefinition.filters[currentFilterIndex].attributeFilter.filterElementsBy = [...parentFilters];
248
305
  };
249
306
  const setAttributeFilterDependentDateFilters = (state, action) => {
250
- invariant(state.filterContextDefinition, "Attempt to edit uninitialized filter context");
307
+ const activeTab = getActiveTab(state);
308
+ if (!activeTab) {
309
+ return;
310
+ }
311
+ if (!activeTab.filterContext) {
312
+ activeTab.filterContext = { ...filterContextInitialState };
313
+ }
314
+ invariant(activeTab.filterContext.filterContextDefinition, "Attempt to edit uninitialized filter context");
251
315
  const { filterLocalId, dependentDateFilters } = action.payload;
252
- const currentFilterIndex = state.filterContextDefinition.filters.findIndex((item) => isDashboardAttributeFilter(item) && item.attributeFilter.localIdentifier === filterLocalId);
316
+ const currentFilterIndex = activeTab.filterContext.filterContextDefinition.filters.findIndex((item) => isDashboardAttributeFilter(item) && item.attributeFilter.localIdentifier === filterLocalId);
253
317
  invariant(currentFilterIndex >= 0, "Attempt to set dependent date filter of a non-existing filter");
254
- state.filterContextDefinition.filters[currentFilterIndex].attributeFilter.filterElementsByDate = [...dependentDateFilters];
318
+ activeTab.filterContext.filterContextDefinition.filters[currentFilterIndex].attributeFilter.filterElementsByDate = [...dependentDateFilters];
255
319
  };
256
320
  const clearAttributeFiltersSelection = (state, action) => {
321
+ const activeTab = getActiveTab(state);
322
+ if (!activeTab) {
323
+ return;
324
+ }
325
+ if (!activeTab.filterContext) {
326
+ activeTab.filterContext = { ...filterContextInitialState };
327
+ }
257
328
  const { filterLocalIds } = action.payload;
258
329
  filterLocalIds.forEach((filterLocalId) => {
259
- invariant(state.filterContextDefinition, "Attempt to edit uninitialized filter context");
260
- const currentFilterIndex = state.filterContextDefinition.filters.findIndex((item) => isDashboardAttributeFilter(item) && item.attributeFilter.localIdentifier === filterLocalId);
330
+ invariant(activeTab.filterContext?.filterContextDefinition, "Attempt to edit uninitialized filter context");
331
+ const currentFilterIndex = activeTab.filterContext.filterContextDefinition.filters.findIndex((item) => isDashboardAttributeFilter(item) && item.attributeFilter.localIdentifier === filterLocalId);
261
332
  invariant(currentFilterIndex >= 0, "Attempt to clear selection of a non-existing filter");
262
- const currentFilter = state.filterContextDefinition.filters[currentFilterIndex];
333
+ const currentFilter = activeTab.filterContext.filterContextDefinition.filters[currentFilterIndex];
263
334
  currentFilter.attributeFilter.negativeSelection =
264
335
  currentFilter.attributeFilter.selectionMode !== "single";
265
336
  currentFilter.attributeFilter.attributeElements = isAttributeElementsByRef(currentFilter.attributeFilter.attributeElements)
@@ -271,10 +342,17 @@ const clearAttributeFiltersSelection = (state, action) => {
271
342
  * Changes the display form for the filter given by its local identifier.
272
343
  */
273
344
  const changeAttributeDisplayForm = (state, action) => {
345
+ const activeTab = getActiveTab(state);
346
+ if (!activeTab) {
347
+ return;
348
+ }
349
+ if (!activeTab.filterContext) {
350
+ activeTab.filterContext = { ...filterContextInitialState };
351
+ }
274
352
  const { filterLocalId, displayForm, isWorkingSelectionChange, enableImmediateAttributeFilterDisplayAsLabelMigration, isResultOfMigration, } = action.payload;
275
353
  const filterContextDefinition = isWorkingSelectionChange
276
- ? state.workingFilterContextDefinition
277
- : state.filterContextDefinition;
354
+ ? activeTab.filterContext.workingFilterContextDefinition
355
+ : activeTab.filterContext.filterContextDefinition;
278
356
  invariant(filterContextDefinition?.filters, "Attempt to edit uninitialized filter context");
279
357
  const currentFilterIndex = filterContextDefinition.filters.findIndex((item) => isDashboardAttributeFilter(item) && item.attributeFilter.localIdentifier === filterLocalId);
280
358
  invariant(currentFilterIndex >= 0 || isWorkingSelectionChange, "Attempt to set parent of a non-existing filter");
@@ -292,7 +370,7 @@ const changeAttributeDisplayForm = (state, action) => {
292
370
  currentFilter.attributeFilter.displayForm = { ...displayForm };
293
371
  // update original filters to not show "reset filters" button, that will revert filter to wrong state
294
372
  if (enableImmediateAttributeFilterDisplayAsLabelMigration && isResultOfMigration) {
295
- const originalFilter = state.originalFilterContextDefinition?.filters.find((item) => isDashboardAttributeFilter(item) && item.attributeFilter.localIdentifier === filterLocalId);
373
+ const originalFilter = activeTab.filterContext.originalFilterContextDefinition?.filters.find((item) => isDashboardAttributeFilter(item) && item.attributeFilter.localIdentifier === filterLocalId);
296
374
  if (isDashboardAttributeFilter(originalFilter)) {
297
375
  originalFilter.attributeFilter.displayForm = { ...displayForm };
298
376
  }
@@ -302,9 +380,16 @@ const changeAttributeDisplayForm = (state, action) => {
302
380
  * Changes the title for the filter given by its local identifier.
303
381
  */
304
382
  const changeAttributeTitle = (state, action) => {
305
- invariant(state.filterContextDefinition, "Attempt to edit uninitialized filter context");
383
+ const activeTab = getActiveTab(state);
384
+ if (!activeTab) {
385
+ return;
386
+ }
387
+ if (!activeTab.filterContext) {
388
+ activeTab.filterContext = { ...filterContextInitialState };
389
+ }
390
+ invariant(activeTab.filterContext.filterContextDefinition, "Attempt to edit uninitialized filter context");
306
391
  const { filterLocalId, title } = action.payload;
307
- const findFilter = state.filterContextDefinition.filters.find((item) => isDashboardAttributeFilter(item) && item.attributeFilter.localIdentifier === filterLocalId);
392
+ const findFilter = activeTab.filterContext.filterContextDefinition.filters.find((item) => isDashboardAttributeFilter(item) && item.attributeFilter.localIdentifier === filterLocalId);
308
393
  invariant(findFilter, "Attempt to change title of a non-existing filter");
309
394
  findFilter.attributeFilter.title = title;
310
395
  };
@@ -312,14 +397,28 @@ const changeAttributeTitle = (state, action) => {
312
397
  * Changes the selection mode for the filter given by its local identifier.
313
398
  */
314
399
  const changeSelectionMode = (state, action) => {
315
- invariant(state.filterContextDefinition, "Attempt to edit uninitialized filter context");
400
+ const activeTab = getActiveTab(state);
401
+ if (!activeTab) {
402
+ return;
403
+ }
404
+ if (!activeTab.filterContext) {
405
+ activeTab.filterContext = { ...filterContextInitialState };
406
+ }
407
+ invariant(activeTab.filterContext.filterContextDefinition, "Attempt to edit uninitialized filter context");
316
408
  const { filterLocalId, selectionMode } = action.payload;
317
- const findFilter = state.filterContextDefinition.filters.find((item) => isDashboardAttributeFilter(item) && item.attributeFilter.localIdentifier === filterLocalId);
409
+ const findFilter = activeTab.filterContext.filterContextDefinition.filters.find((item) => isDashboardAttributeFilter(item) && item.attributeFilter.localIdentifier === filterLocalId);
318
410
  invariant(findFilter, "Attempt to change selection mode of a non-existing filter");
319
411
  findFilter.attributeFilter.selectionMode = selectionMode;
320
412
  };
321
413
  const addDateFilter = (state, action) => {
322
- invariant(state.filterContextDefinition, "Attempt to edit uninitialized filter context");
414
+ const activeTab = getActiveTab(state);
415
+ if (!activeTab) {
416
+ return;
417
+ }
418
+ if (!activeTab.filterContext) {
419
+ activeTab.filterContext = { ...filterContextInitialState };
420
+ }
421
+ invariant(activeTab.filterContext.filterContextDefinition, "Attempt to edit uninitialized filter context");
323
422
  const { index, dateDataset } = action.payload;
324
423
  const filter = {
325
424
  dateFilter: {
@@ -329,67 +428,113 @@ const addDateFilter = (state, action) => {
329
428
  },
330
429
  };
331
430
  // Only draggable filters are indexed, if DateFilter is present should be always first item
332
- const isCommonDateFilterPresent = state.filterContextDefinition.filters.findIndex(isDashboardCommonDateFilter) >= 0;
431
+ const isCommonDateFilterPresent = activeTab.filterContext.filterContextDefinition.filters.findIndex(isDashboardCommonDateFilter) >= 0;
333
432
  if (index === -1) {
334
- state.filterContextDefinition.filters.push(filter);
433
+ activeTab.filterContext.filterContextDefinition.filters.push(filter);
335
434
  }
336
435
  else {
337
436
  // If CommonDateFilter is present we have to move index by 1 because index of filter is calculated just for AttributeFilers array
338
437
  const newFilterIndex = isCommonDateFilterPresent ? index + 1 : index;
339
- state.filterContextDefinition.filters.splice(newFilterIndex, 0, filter);
438
+ activeTab.filterContext.filterContextDefinition.filters.splice(newFilterIndex, 0, filter);
340
439
  }
341
440
  };
342
441
  const removeDateFilter = (state, action) => {
343
- invariant(state.filterContextDefinition, "Attempt to edit uninitialized filter context");
442
+ const activeTab = getActiveTab(state);
443
+ if (!activeTab) {
444
+ return;
445
+ }
446
+ if (!activeTab.filterContext) {
447
+ activeTab.filterContext = { ...filterContextInitialState };
448
+ }
449
+ invariant(activeTab.filterContext.filterContextDefinition, "Attempt to edit uninitialized filter context");
344
450
  const { dataSet } = action.payload;
345
- state.filterContextDefinition.filters = state.filterContextDefinition.filters.filter((item) => isDashboardAttributeFilter(item) || !areObjRefsEqual(item.dateFilter.dataSet, dataSet));
451
+ const newFilters = activeTab.filterContext.filterContextDefinition.filters.filter((item) => isDashboardAttributeFilter(item) || !areObjRefsEqual(item.dateFilter.dataSet, dataSet));
452
+ activeTab.filterContext.filterContextDefinition = {
453
+ ...activeTab.filterContext.filterContextDefinition,
454
+ filters: newFilters,
455
+ };
346
456
  };
347
457
  const moveDateFilter = (state, action) => {
348
- invariant(state.filterContextDefinition, "Attempt to edit uninitialized filter context");
458
+ const activeTab = getActiveTab(state);
459
+ if (!activeTab) {
460
+ return;
461
+ }
462
+ if (!activeTab.filterContext) {
463
+ activeTab.filterContext = { ...filterContextInitialState };
464
+ }
465
+ invariant(activeTab.filterContext.filterContextDefinition, "Attempt to edit uninitialized filter context");
349
466
  const { dataSet, index } = action.payload;
350
- const currentFilterIndex = state.filterContextDefinition.filters.findIndex((item) => isDashboardDateFilter(item) && areObjRefsEqual(item.dateFilter.dataSet, dataSet));
467
+ const currentFilterIndex = activeTab.filterContext.filterContextDefinition.filters.findIndex((item) => isDashboardDateFilter(item) && areObjRefsEqual(item.dateFilter.dataSet, dataSet));
351
468
  invariant(currentFilterIndex >= 0, "Attempt to move non-existing filter");
352
- const filter = state.filterContextDefinition.filters[currentFilterIndex];
353
- state.filterContextDefinition.filters.splice(currentFilterIndex, 1);
469
+ const filter = activeTab.filterContext.filterContextDefinition.filters[currentFilterIndex];
470
+ activeTab.filterContext.filterContextDefinition.filters.splice(currentFilterIndex, 1);
354
471
  // Filters are indexed just for attribute filters, if DateFilter is present should be always first item
355
- const isCommonDateFilterPresent = state.filterContextDefinition.filters.findIndex(isDashboardCommonDateFilter) >= 0;
472
+ const isCommonDateFilterPresent = activeTab.filterContext.filterContextDefinition.filters.findIndex(isDashboardCommonDateFilter) >= 0;
356
473
  if (index === -1) {
357
- state.filterContextDefinition.filters.push(filter);
474
+ activeTab.filterContext.filterContextDefinition.filters.push(filter);
358
475
  }
359
476
  else {
360
477
  // If DateFilter is present we have to move index by 1 because index of filter is calculated just for DraggableFilters array
361
478
  const dateFilterIndex = isCommonDateFilterPresent ? index + 1 : index;
362
- state.filterContextDefinition.filters.splice(dateFilterIndex, 0, filter);
479
+ activeTab.filterContext.filterContextDefinition.filters.splice(dateFilterIndex, 0, filter);
363
480
  }
364
481
  };
365
482
  /**
366
483
  * Changes the element limiting items for the filter given by its local identifier.
367
484
  */
368
485
  const changeLimitingItems = (state, action) => {
369
- invariant(state.filterContextDefinition, "Attempt to edit uninitialized filter context");
486
+ const activeTab = getActiveTab(state);
487
+ if (!activeTab) {
488
+ return;
489
+ }
490
+ if (!activeTab.filterContext) {
491
+ activeTab.filterContext = { ...filterContextInitialState };
492
+ }
493
+ invariant(activeTab.filterContext.filterContextDefinition, "Attempt to edit uninitialized filter context");
370
494
  const { filterLocalId, limitingItems } = action.payload;
371
- const findFilter = state.filterContextDefinition.filters.find((item) => isDashboardAttributeFilter(item) && item.attributeFilter.localIdentifier === filterLocalId);
495
+ const findFilter = activeTab.filterContext.filterContextDefinition.filters.find((item) => isDashboardAttributeFilter(item) && item.attributeFilter.localIdentifier === filterLocalId);
372
496
  invariant(findFilter, "Attempt to change limiting items of a non-existing filter");
373
497
  findFilter.attributeFilter.validateElementsBy = limitingItems;
374
498
  };
375
499
  const applyWorkingSelection = (state, action) => {
376
- invariant(state.filterContextDefinition, "Attempt to edit uninitialized filter context");
500
+ const activeTab = getActiveTab(state);
501
+ if (!activeTab) {
502
+ return;
503
+ }
504
+ if (!activeTab.filterContext) {
505
+ activeTab.filterContext = { ...filterContextInitialState };
506
+ }
507
+ invariant(activeTab.filterContext.filterContextDefinition, "Attempt to edit uninitialized filter context");
377
508
  const { enableImmediateAttributeFilterDisplayAsLabelMigration } = action.payload;
378
- state.filterContextDefinition = applyFilterContext(state.filterContextDefinition, state.workingFilterContextDefinition, enableImmediateAttributeFilterDisplayAsLabelMigration);
379
- state.workingFilterContextDefinition = { filters: [] };
509
+ activeTab.filterContext.filterContextDefinition = applyFilterContext(activeTab.filterContext.filterContextDefinition, activeTab.filterContext.workingFilterContextDefinition, enableImmediateAttributeFilterDisplayAsLabelMigration);
510
+ activeTab.filterContext.workingFilterContextDefinition = { filters: [] };
380
511
  };
381
512
  //
382
513
  //
383
514
  //
384
515
  const resetWorkingSelection = (state) => {
385
- invariant(state.workingFilterContextDefinition, "Attempt to edit uninitialized working filter context");
386
- state.workingFilterContextDefinition = { filters: [] };
516
+ const activeTab = getActiveTab(state);
517
+ if (!activeTab) {
518
+ return;
519
+ }
520
+ if (!activeTab.filterContext) {
521
+ activeTab.filterContext = { ...filterContextInitialState };
522
+ }
523
+ invariant(activeTab.filterContext.workingFilterContextDefinition, "Attempt to edit uninitialized working filter context");
524
+ activeTab.filterContext.workingFilterContextDefinition = { filters: [] };
387
525
  };
388
526
  //
389
527
  //
390
528
  //
391
529
  const setDefaultFilterOverrides = (state, action) => {
392
- state.defaultFilterOverrides = action.payload;
530
+ const activeTab = getActiveTab(state);
531
+ if (!activeTab) {
532
+ return;
533
+ }
534
+ if (!activeTab.filterContext) {
535
+ activeTab.filterContext = { ...filterContextInitialState };
536
+ }
537
+ activeTab.filterContext.defaultFilterOverrides = action.payload;
393
538
  };
394
539
  //
395
540
  //
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filterContextReducers.js","sourceRoot":"","sources":["../../../../../src/model/store/tabs/filterContext/filterContextReducers.ts"],"names":[],"mappings":"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"}