@gooddata/sdk-ui-dashboard 11.10.0-alpha.4 → 11.10.0-alpha.5
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.
- package/esm/__version.d.ts +1 -1
- package/esm/__version.js +1 -1
- package/esm/_staging/dashboard/dashboardLayout.d.ts +2 -0
- package/esm/_staging/dashboard/dashboardLayout.d.ts.map +1 -1
- package/esm/_staging/dashboard/dashboardLayout.js.map +1 -1
- package/esm/model/commandHandlers/common/validateDrills.js +2 -2
- package/esm/model/commandHandlers/common/validateDrills.js.map +1 -1
- package/esm/model/commandHandlers/dashboard/common/stateInitializers.d.ts.map +1 -1
- package/esm/model/commandHandlers/dashboard/common/stateInitializers.js +46 -40
- package/esm/model/commandHandlers/dashboard/common/stateInitializers.js.map +1 -1
- package/esm/model/commandHandlers/dashboard/exportDashboardToPdfHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/dashboard/exportDashboardToPdfHandler.js +5 -3
- package/esm/model/commandHandlers/dashboard/exportDashboardToPdfHandler.js.map +1 -1
- package/esm/model/commandHandlers/dashboard/exportDashboardToPdfPresentationHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/dashboard/exportDashboardToPdfPresentationHandler.js +7 -1
- package/esm/model/commandHandlers/dashboard/exportDashboardToPdfPresentationHandler.js.map +1 -1
- package/esm/model/commandHandlers/dashboard/exportDashboardToPptPresentationHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/dashboard/exportDashboardToPptPresentationHandler.js +7 -1
- package/esm/model/commandHandlers/dashboard/exportDashboardToPptPresentationHandler.js.map +1 -1
- package/esm/model/commandHandlers/dashboard/exportToTabularHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/dashboard/exportToTabularHandler.js +5 -2
- package/esm/model/commandHandlers/dashboard/exportToTabularHandler.js.map +1 -1
- package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/index.js +9 -9
- package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/index.js.map +1 -1
- package/esm/model/commandHandlers/dashboard/resetDashboardHandler.js +5 -4
- package/esm/model/commandHandlers/dashboard/resetDashboardHandler.js.map +1 -1
- package/esm/model/commandHandlers/dashboard/saveAsDashboardHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/dashboard/saveAsDashboardHandler.js +96 -12
- package/esm/model/commandHandlers/dashboard/saveAsDashboardHandler.js.map +1 -1
- package/esm/model/commandHandlers/dashboard/saveDashboardHandler.d.ts +3 -1
- package/esm/model/commandHandlers/dashboard/saveDashboardHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/dashboard/saveDashboardHandler.js +67 -34
- package/esm/model/commandHandlers/dashboard/saveDashboardHandler.js.map +1 -1
- package/esm/model/commandHandlers/drill/drillDownHandler.js +1 -1
- package/esm/model/commandHandlers/drill/drillDownHandler.js.map +1 -1
- package/esm/model/commandHandlers/drill/drillToAttributeUrlHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/drill/drillToAttributeUrlHandler.js +2 -1
- package/esm/model/commandHandlers/drill/drillToAttributeUrlHandler.js.map +1 -1
- package/esm/model/commandHandlers/drill/drillToDashboardHandler.js +1 -1
- package/esm/model/commandHandlers/drill/drillToDashboardHandler.js.map +1 -1
- package/esm/model/commandHandlers/drill/keyDriverAnalysisHandler.js +1 -1
- package/esm/model/commandHandlers/drill/keyDriverAnalysisHandler.js.map +1 -1
- package/esm/model/commandHandlers/drill/resolveDrillToCustomUrl.js +1 -1
- package/esm/model/commandHandlers/drill/resolveDrillToCustomUrl.js.map +1 -1
- package/esm/model/commandHandlers/drillTargets/addDrillTargetsHandler.js +1 -1
- package/esm/model/commandHandlers/drillTargets/addDrillTargetsHandler.js.map +1 -1
- package/esm/model/commandHandlers/filterContext/attributeFilter/addAttributeFilterHandler.js +1 -1
- package/esm/model/commandHandlers/filterContext/attributeFilter/addAttributeFilterHandler.js.map +1 -1
- package/esm/model/commandHandlers/filterContext/attributeFilter/removeAttributeFiltersHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/filterContext/attributeFilter/removeAttributeFiltersHandler.js +2 -3
- package/esm/model/commandHandlers/filterContext/attributeFilter/removeAttributeFiltersHandler.js.map +1 -1
- package/esm/model/commandHandlers/filterContext/dateFilter/removeDateFiltersHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/filterContext/dateFilter/removeDateFiltersHandler.js +1 -2
- package/esm/model/commandHandlers/filterContext/dateFilter/removeDateFiltersHandler.js.map +1 -1
- package/esm/model/commandHandlers/layout/addLayoutSectionHandler.js +3 -3
- package/esm/model/commandHandlers/layout/addLayoutSectionHandler.js.map +1 -1
- package/esm/model/commandHandlers/layout/addSectionItemsHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/layout/addSectionItemsHandler.js +3 -3
- package/esm/model/commandHandlers/layout/addSectionItemsHandler.js.map +1 -1
- package/esm/model/commandHandlers/layout/changeLayoutSectionHeaderHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/layout/changeLayoutSectionHeaderHandler.js +3 -3
- package/esm/model/commandHandlers/layout/changeLayoutSectionHeaderHandler.js.map +1 -1
- package/esm/model/commandHandlers/layout/containerHeightSanitization.d.ts +1 -1
- package/esm/model/commandHandlers/layout/containerHeightSanitization.js +3 -3
- package/esm/model/commandHandlers/layout/containerHeightSanitization.js.map +1 -1
- package/esm/model/commandHandlers/layout/moveLayoutSectionHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/layout/moveLayoutSectionHandler.js +4 -3
- package/esm/model/commandHandlers/layout/moveLayoutSectionHandler.js.map +1 -1
- package/esm/model/commandHandlers/layout/moveSectionItemHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/layout/moveSectionItemHandler.js +5 -5
- package/esm/model/commandHandlers/layout/moveSectionItemHandler.js.map +1 -1
- package/esm/model/commandHandlers/layout/moveSectionItemToNewSectionHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/layout/moveSectionItemToNewSectionHandler.js +6 -6
- package/esm/model/commandHandlers/layout/moveSectionItemToNewSectionHandler.js.map +1 -1
- package/esm/model/commandHandlers/layout/removeLayoutSectionHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/layout/removeLayoutSectionHandler.js +3 -3
- package/esm/model/commandHandlers/layout/removeLayoutSectionHandler.js.map +1 -1
- package/esm/model/commandHandlers/layout/removeSectionItemByWidgetRefHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/layout/removeSectionItemByWidgetRefHandler.js +2 -1
- package/esm/model/commandHandlers/layout/removeSectionItemByWidgetRefHandler.js.map +1 -1
- package/esm/model/commandHandlers/layout/removeSectionItemHandler.d.ts +1 -1
- package/esm/model/commandHandlers/layout/removeSectionItemHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/layout/removeSectionItemHandler.js +5 -4
- package/esm/model/commandHandlers/layout/removeSectionItemHandler.js.map +1 -1
- package/esm/model/commandHandlers/layout/replaceSectionItemHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/layout/replaceSectionItemHandler.js +3 -3
- package/esm/model/commandHandlers/layout/replaceSectionItemHandler.js.map +1 -1
- package/esm/model/commandHandlers/layout/resizeHeightHandler.js +3 -3
- package/esm/model/commandHandlers/layout/resizeHeightHandler.js.map +1 -1
- package/esm/model/commandHandlers/layout/resizeWidthHandler.js +3 -3
- package/esm/model/commandHandlers/layout/resizeWidthHandler.js.map +1 -1
- package/esm/model/commandHandlers/layout/rowContainerSanitization.js +3 -3
- package/esm/model/commandHandlers/layout/rowContainerSanitization.js.map +1 -1
- package/esm/model/commandHandlers/layout/setScreenSizeHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/layout/setScreenSizeHandler.js +3 -2
- package/esm/model/commandHandlers/layout/setScreenSizeHandler.js.map +1 -1
- package/esm/model/commandHandlers/layout/toggleLayoutDirectionHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/layout/toggleLayoutDirectionHandler.js +5 -4
- package/esm/model/commandHandlers/layout/toggleLayoutDirectionHandler.js.map +1 -1
- package/esm/model/commandHandlers/layout/toggleLayoutSectionHeadersHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/layout/toggleLayoutSectionHeadersHandler.js +3 -2
- package/esm/model/commandHandlers/layout/toggleLayoutSectionHeadersHandler.js.map +1 -1
- package/esm/model/commandHandlers/layout/undoLayoutChangesHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/layout/undoLayoutChangesHandler.js +4 -3
- package/esm/model/commandHandlers/layout/undoLayoutChangesHandler.js.map +1 -1
- package/esm/model/commandHandlers/layout/validation/stashValidation.d.ts +1 -1
- package/esm/model/commandHandlers/layout/validation/stashValidation.d.ts.map +1 -1
- package/esm/model/commandHandlers/renderMode/changeRenderModeHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/renderMode/changeRenderModeHandler.js +1 -1
- package/esm/model/commandHandlers/renderMode/changeRenderModeHandler.js.map +1 -1
- package/esm/model/commandHandlers/scheduledEmail/initializeAutomationsHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/scheduledEmail/initializeAutomationsHandler.js +42 -21
- package/esm/model/commandHandlers/scheduledEmail/initializeAutomationsHandler.js.map +1 -1
- package/esm/model/commandHandlers/tabs/createDashboardTabHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/tabs/createDashboardTabHandler.js +19 -8
- package/esm/model/commandHandlers/tabs/createDashboardTabHandler.js.map +1 -1
- package/esm/model/commandHandlers/tabs/deleteDashboardTabHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/tabs/deleteDashboardTabHandler.js +12 -12
- package/esm/model/commandHandlers/tabs/deleteDashboardTabHandler.js.map +1 -1
- package/esm/model/commandHandlers/tabs/repositionDashboardTabHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/tabs/repositionDashboardTabHandler.js +3 -3
- package/esm/model/commandHandlers/tabs/repositionDashboardTabHandler.js.map +1 -1
- package/esm/model/commandHandlers/tabs/switchDashboardTabHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/tabs/switchDashboardTabHandler.js +5 -6
- package/esm/model/commandHandlers/tabs/switchDashboardTabHandler.js.map +1 -1
- package/esm/model/commandHandlers/widgets/addDrillDownForInsightWidgetHandler.js +5 -5
- package/esm/model/commandHandlers/widgets/addDrillDownForInsightWidgetHandler.js.map +1 -1
- package/esm/model/commandHandlers/widgets/addVisualizationToSwitcherWidgetHandler.js +3 -3
- package/esm/model/commandHandlers/widgets/addVisualizationToSwitcherWidgetHandler.js.map +1 -1
- package/esm/model/commandHandlers/widgets/changeInsightWidgetDescriptionHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/widgets/changeInsightWidgetDescriptionHandler.js +4 -3
- package/esm/model/commandHandlers/widgets/changeInsightWidgetDescriptionHandler.js.map +1 -1
- package/esm/model/commandHandlers/widgets/changeInsightWidgetFilterSettingsHandler.js +3 -3
- package/esm/model/commandHandlers/widgets/changeInsightWidgetFilterSettingsHandler.js.map +1 -1
- package/esm/model/commandHandlers/widgets/changeInsightWidgetHeaderHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/widgets/changeInsightWidgetHeaderHandler.js +4 -3
- package/esm/model/commandHandlers/widgets/changeInsightWidgetHeaderHandler.js.map +1 -1
- package/esm/model/commandHandlers/widgets/changeInsightWidgetIgnoreCrossFilteringHandler.js +3 -3
- package/esm/model/commandHandlers/widgets/changeInsightWidgetIgnoreCrossFilteringHandler.js.map +1 -1
- package/esm/model/commandHandlers/widgets/changeInsightWidgetInsightHandler.js +4 -4
- package/esm/model/commandHandlers/widgets/changeInsightWidgetInsightHandler.js.map +1 -1
- package/esm/model/commandHandlers/widgets/changeInsightWidgetVisConfigurationHandler.js +3 -3
- package/esm/model/commandHandlers/widgets/changeInsightWidgetVisConfigurationHandler.js.map +1 -1
- package/esm/model/commandHandlers/widgets/changeInsightWidgetVisPropertiesHandler.js +3 -3
- package/esm/model/commandHandlers/widgets/changeInsightWidgetVisPropertiesHandler.js.map +1 -1
- package/esm/model/commandHandlers/widgets/changeKpiWidgetComparisonHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/widgets/changeKpiWidgetComparisonHandler.js +4 -3
- package/esm/model/commandHandlers/widgets/changeKpiWidgetComparisonHandler.js.map +1 -1
- package/esm/model/commandHandlers/widgets/changeKpiWidgetConfigurationHandler.js +3 -3
- package/esm/model/commandHandlers/widgets/changeKpiWidgetConfigurationHandler.js.map +1 -1
- package/esm/model/commandHandlers/widgets/changeKpiWidgetDescriptionHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/widgets/changeKpiWidgetDescriptionHandler.js +4 -3
- package/esm/model/commandHandlers/widgets/changeKpiWidgetDescriptionHandler.js.map +1 -1
- package/esm/model/commandHandlers/widgets/changeKpiWidgetFilterSettingsHandler.js +3 -3
- package/esm/model/commandHandlers/widgets/changeKpiWidgetFilterSettingsHandler.js.map +1 -1
- package/esm/model/commandHandlers/widgets/changeKpiWidgetHeaderHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/widgets/changeKpiWidgetHeaderHandler.js +4 -3
- package/esm/model/commandHandlers/widgets/changeKpiWidgetHeaderHandler.js.map +1 -1
- package/esm/model/commandHandlers/widgets/changeKpiWidgetMeasureHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/widgets/changeKpiWidgetMeasureHandler.js +6 -5
- package/esm/model/commandHandlers/widgets/changeKpiWidgetMeasureHandler.js.map +1 -1
- package/esm/model/commandHandlers/widgets/changeRichTextWidgetContentHandler.js +3 -3
- package/esm/model/commandHandlers/widgets/changeRichTextWidgetContentHandler.js.map +1 -1
- package/esm/model/commandHandlers/widgets/changeRichTextWidgetFilterSettingsHandler.js +3 -3
- package/esm/model/commandHandlers/widgets/changeRichTextWidgetFilterSettingsHandler.js.map +1 -1
- package/esm/model/commandHandlers/widgets/exportImageInsightWidgetHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/widgets/exportImageInsightWidgetHandler.js +3 -0
- package/esm/model/commandHandlers/widgets/exportImageInsightWidgetHandler.js.map +1 -1
- package/esm/model/commandHandlers/widgets/exportInsightWidgetHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/widgets/exportInsightWidgetHandler.js +4 -1
- package/esm/model/commandHandlers/widgets/exportInsightWidgetHandler.js.map +1 -1
- package/esm/model/commandHandlers/widgets/exportRawInsightWidgetHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/widgets/exportRawInsightWidgetHandler.js +8 -3
- package/esm/model/commandHandlers/widgets/exportRawInsightWidgetHandler.js.map +1 -1
- package/esm/model/commandHandlers/widgets/exportSlidesInsightWidgetHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/widgets/exportSlidesInsightWidgetHandler.js +3 -0
- package/esm/model/commandHandlers/widgets/exportSlidesInsightWidgetHandler.js.map +1 -1
- package/esm/model/commandHandlers/widgets/modifyDrillDownForInsightWidgetHandler.js +4 -4
- package/esm/model/commandHandlers/widgets/modifyDrillDownForInsightWidgetHandler.js.map +1 -1
- package/esm/model/commandHandlers/widgets/modifyDrillsForInsightWidgetHandler.js +4 -4
- package/esm/model/commandHandlers/widgets/modifyDrillsForInsightWidgetHandler.js.map +1 -1
- package/esm/model/commandHandlers/widgets/refreshInsightWidgetHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/widgets/refreshInsightWidgetHandler.js +2 -1
- package/esm/model/commandHandlers/widgets/refreshInsightWidgetHandler.js.map +1 -1
- package/esm/model/commandHandlers/widgets/removeDrillDownForInsightWidgetHandler.js +4 -4
- package/esm/model/commandHandlers/widgets/removeDrillDownForInsightWidgetHandler.js.map +1 -1
- package/esm/model/commandHandlers/widgets/removeDrillForKpiWidgetHandler.js +3 -3
- package/esm/model/commandHandlers/widgets/removeDrillForKpiWidgetHandler.js.map +1 -1
- package/esm/model/commandHandlers/widgets/removeDrillsForInsightWidgetHandler.js +3 -3
- package/esm/model/commandHandlers/widgets/removeDrillsForInsightWidgetHandler.js.map +1 -1
- package/esm/model/commandHandlers/widgets/setDrillForKpiWidgetHandler.js +3 -3
- package/esm/model/commandHandlers/widgets/setDrillForKpiWidgetHandler.js.map +1 -1
- package/esm/model/commandHandlers/widgets/updateVisualizationsFromSwitcherWidgetHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/widgets/updateVisualizationsFromSwitcherWidgetHandler.js +4 -3
- package/esm/model/commandHandlers/widgets/updateVisualizationsFromSwitcherWidgetHandler.js.map +1 -1
- package/esm/model/commandHandlers/widgets/validation/kpiDrillValidationUtils.d.ts.map +1 -1
- package/esm/model/commandHandlers/widgets/validation/kpiDrillValidationUtils.js +1 -1
- package/esm/model/commandHandlers/widgets/validation/kpiDrillValidationUtils.js.map +1 -1
- package/esm/model/queryServices/queryWidgetAlertCount.d.ts.map +1 -1
- package/esm/model/queryServices/queryWidgetAlertCount.js +2 -1
- package/esm/model/queryServices/queryWidgetAlertCount.js.map +1 -1
- package/esm/model/queryServices/queryWidgetFilters.js +1 -1
- package/esm/model/queryServices/queryWidgetFilters.js.map +1 -1
- package/esm/model/react/useInitializeDashboardStore.js +1 -1
- package/esm/model/react/useInitializeDashboardStore.js.map +1 -1
- package/esm/model/store/_infra/undoEnhancer.d.ts +4 -1
- package/esm/model/store/_infra/undoEnhancer.d.ts.map +1 -1
- package/esm/model/store/_infra/undoEnhancer.js.map +1 -1
- package/esm/model/store/config/configSelectors.d.ts +6 -0
- package/esm/model/store/config/configSelectors.d.ts.map +1 -1
- package/esm/model/store/config/configSelectors.js +11 -0
- package/esm/model/store/config/configSelectors.js.map +1 -1
- package/esm/model/store/dashboardStore.d.ts.map +1 -1
- package/esm/model/store/dashboardStore.js +0 -2
- package/esm/model/store/dashboardStore.js.map +1 -1
- package/esm/model/store/executionResults/executionResultsSelectors.js +1 -1
- package/esm/model/store/executionResults/executionResultsSelectors.js.map +1 -1
- package/esm/model/store/index.d.ts +7 -4
- package/esm/model/store/index.d.ts.map +1 -1
- package/esm/model/store/index.js +3 -3
- package/esm/model/store/index.js.map +1 -1
- package/esm/model/store/insights/insightsSelectors.d.ts.map +1 -1
- package/esm/model/store/insights/insightsSelectors.js +1 -1
- package/esm/model/store/insights/insightsSelectors.js.map +1 -1
- package/esm/model/store/keyDriverAnalysis/const.d.ts.map +1 -1
- package/esm/model/store/keyDriverAnalysis/const.js +1 -0
- package/esm/model/store/keyDriverAnalysis/const.js.map +1 -1
- package/esm/model/store/meta/metaSelectors.d.ts.map +1 -1
- package/esm/model/store/meta/metaSelectors.js +14 -14
- package/esm/model/store/meta/metaSelectors.js.map +1 -1
- package/esm/model/store/tabs/attributeFilterConfigs/attributeFilterConfigsSelectors.js +4 -4
- package/esm/model/store/tabs/attributeFilterConfigs/attributeFilterConfigsSelectors.js.map +1 -1
- package/esm/model/store/tabs/dateFilterConfig/dateFilterConfigSelectors.d.ts.map +1 -1
- package/esm/model/store/tabs/dateFilterConfig/dateFilterConfigSelectors.js +13 -11
- package/esm/model/store/tabs/dateFilterConfig/dateFilterConfigSelectors.js.map +1 -1
- package/esm/model/store/tabs/dateFilterConfigs/dateFilterConfigsReducers.d.ts.map +1 -1
- package/esm/model/store/tabs/dateFilterConfigs/dateFilterConfigsReducers.js +2 -2
- package/esm/model/store/tabs/dateFilterConfigs/dateFilterConfigsReducers.js.map +1 -1
- package/esm/model/store/tabs/dateFilterConfigs/dateFilterConfigsSelectors.js +4 -4
- package/esm/model/store/tabs/dateFilterConfigs/dateFilterConfigsSelectors.js.map +1 -1
- package/esm/model/store/tabs/filterContext/filterContextReducers.d.ts +11 -0
- package/esm/model/store/tabs/filterContext/filterContextReducers.d.ts.map +1 -1
- package/esm/model/store/tabs/filterContext/filterContextReducers.js +22 -0
- package/esm/model/store/tabs/filterContext/filterContextReducers.js.map +1 -1
- package/esm/model/store/tabs/filterContext/filterContextSelectors.js +5 -5
- package/esm/model/store/tabs/filterContext/filterContextSelectors.js.map +1 -1
- package/esm/model/store/tabs/index.d.ts +308 -4
- package/esm/model/store/tabs/index.d.ts.map +1 -1
- package/esm/model/store/tabs/index.js +3 -1
- package/esm/model/store/tabs/index.js.map +1 -1
- package/esm/model/store/tabs/layout/layoutReducers.d.ts +220 -0
- package/esm/model/store/tabs/layout/layoutReducers.d.ts.map +1 -0
- package/esm/model/store/{layout → tabs/layout}/layoutReducers.js +237 -86
- package/esm/model/store/tabs/layout/layoutReducers.js.map +1 -0
- package/esm/model/store/{layout → tabs/layout}/layoutSelectors.d.ts +6 -6
- package/esm/model/store/tabs/layout/layoutSelectors.d.ts.map +1 -0
- package/esm/model/store/{layout → tabs/layout}/layoutSelectors.js +19 -11
- package/esm/model/store/tabs/layout/layoutSelectors.js.map +1 -0
- package/esm/model/store/{layout → tabs/layout}/layoutState.d.ts +3 -3
- package/esm/model/store/tabs/layout/layoutState.d.ts.map +1 -0
- package/esm/model/store/{layout → tabs/layout}/layoutState.js +1 -1
- package/esm/model/store/tabs/layout/layoutState.js.map +1 -0
- package/esm/model/store/{layout → tabs/layout}/layoutUtils.d.ts +2 -2
- package/esm/model/store/tabs/layout/layoutUtils.d.ts.map +1 -0
- package/esm/model/store/{layout → tabs/layout}/layoutUtils.js +1 -1
- package/esm/model/store/tabs/layout/layoutUtils.js.map +1 -0
- package/esm/model/store/tabs/tabsReducers.d.ts +3 -3
- package/esm/model/store/tabs/tabsReducers.d.ts.map +1 -1
- package/esm/model/store/tabs/tabsReducers.js +9 -9
- package/esm/model/store/tabs/tabsReducers.js.map +1 -1
- package/esm/model/store/tabs/tabsSelectors.d.ts +3 -3
- package/esm/model/store/tabs/tabsSelectors.d.ts.map +1 -1
- package/esm/model/store/tabs/tabsSelectors.js +8 -8
- package/esm/model/store/tabs/tabsSelectors.js.map +1 -1
- package/esm/model/store/tabs/tabsState.d.ts +6 -4
- package/esm/model/store/tabs/tabsState.d.ts.map +1 -1
- package/esm/model/store/tabs/tabsState.js +3 -3
- package/esm/model/store/tabs/tabsState.js.map +1 -1
- package/esm/model/store/topBar/topBarSelectors.js +1 -1
- package/esm/model/store/topBar/topBarSelectors.js.map +1 -1
- package/esm/model/store/types.d.ts +0 -3
- package/esm/model/store/types.d.ts.map +1 -1
- package/esm/model/store/ui/uiSelectors.js +1 -1
- package/esm/model/store/ui/uiSelectors.js.map +1 -1
- package/esm/model/store/widgetDrills/widgetDrillSelectors.js +1 -1
- package/esm/model/store/widgetDrills/widgetDrillSelectors.js.map +1 -1
- package/esm/presentation/alerting/DefaultAlertingDialog/DefaultAlertingDialogNew.d.ts.map +1 -1
- package/esm/presentation/alerting/DefaultAlertingDialog/DefaultAlertingDialogNew.js +65 -9
- package/esm/presentation/alerting/DefaultAlertingDialog/DefaultAlertingDialogNew.js.map +1 -1
- package/esm/presentation/alerting/DefaultAlertingManagementDialog/DefaultAlertingManagementDialogContentBasic.d.ts +15 -0
- package/esm/presentation/alerting/DefaultAlertingManagementDialog/DefaultAlertingManagementDialogContentBasic.d.ts.map +1 -0
- package/esm/presentation/alerting/DefaultAlertingManagementDialog/DefaultAlertingManagementDialogContentBasic.js +28 -0
- package/esm/presentation/alerting/DefaultAlertingManagementDialog/DefaultAlertingManagementDialogContentBasic.js.map +1 -0
- package/esm/presentation/alerting/DefaultAlertingManagementDialog/DefaultAlertingManagementDialogContentEnhanced.d.ts +12 -0
- package/esm/presentation/alerting/DefaultAlertingManagementDialog/DefaultAlertingManagementDialogContentEnhanced.d.ts.map +1 -0
- package/esm/presentation/alerting/DefaultAlertingManagementDialog/DefaultAlertingManagementDialogContentEnhanced.js +49 -0
- package/esm/presentation/alerting/DefaultAlertingManagementDialog/DefaultAlertingManagementDialogContentEnhanced.js.map +1 -0
- package/esm/presentation/alerting/DefaultAlertingManagementDialog/DefaultAlertingManagementDialogNew.d.ts.map +1 -1
- package/esm/presentation/alerting/DefaultAlertingManagementDialog/DefaultAlertingManagementDialogNew.js +6 -48
- package/esm/presentation/alerting/DefaultAlertingManagementDialog/DefaultAlertingManagementDialogNew.js.map +1 -1
- package/esm/presentation/constants/automations.d.ts +1 -1
- package/esm/presentation/constants/automations.js +1 -1
- package/esm/presentation/dashboard/DashboardHeader/DashboardTabs.d.ts +2 -2
- package/esm/presentation/dashboard/DashboardHeader/DashboardTabs.d.ts.map +1 -1
- package/esm/presentation/dashboard/DashboardHeader/DashboardTabs.js +16 -16
- package/esm/presentation/dashboard/DashboardHeader/DashboardTabs.js.map +1 -1
- package/esm/presentation/localization/bundles/en-US.json +8 -0
- package/esm/presentation/localization/bundles/en-US.localization-bundle.d.ts +2 -0
- package/esm/presentation/localization/bundles/en-US.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/en-US.localization-bundle.js +2 -0
- package/esm/presentation/localization/bundles/en-US.localization-bundle.js.map +1 -1
- package/esm/presentation/scheduledEmail/DefaultScheduledEmailManagementDialog/DefaultScheduledEmailManagementDialog.d.ts.map +1 -1
- package/esm/presentation/scheduledEmail/DefaultScheduledEmailManagementDialog/DefaultScheduledEmailManagementDialog.js +6 -60
- package/esm/presentation/scheduledEmail/DefaultScheduledEmailManagementDialog/DefaultScheduledEmailManagementDialog.js.map +1 -1
- package/esm/presentation/scheduledEmail/DefaultScheduledEmailManagementDialog/DefaultScheduledEmailManagementDialogContentBasic.d.ts +13 -0
- package/esm/presentation/scheduledEmail/DefaultScheduledEmailManagementDialog/DefaultScheduledEmailManagementDialogContentBasic.d.ts.map +1 -0
- package/esm/presentation/scheduledEmail/DefaultScheduledEmailManagementDialog/DefaultScheduledEmailManagementDialogContentBasic.js +32 -0
- package/esm/presentation/scheduledEmail/DefaultScheduledEmailManagementDialog/DefaultScheduledEmailManagementDialogContentBasic.js.map +1 -0
- package/esm/presentation/scheduledEmail/DefaultScheduledEmailManagementDialog/DefaultScheduledEmailManagementDialogContentEnhanced.d.ts +11 -0
- package/esm/presentation/scheduledEmail/DefaultScheduledEmailManagementDialog/DefaultScheduledEmailManagementDialogContentEnhanced.d.ts.map +1 -0
- package/esm/presentation/scheduledEmail/DefaultScheduledEmailManagementDialog/DefaultScheduledEmailManagementDialogContentEnhanced.js +63 -0
- package/esm/presentation/scheduledEmail/DefaultScheduledEmailManagementDialog/DefaultScheduledEmailManagementDialogContentEnhanced.js.map +1 -0
- package/esm/sdk-ui-dashboard.d.ts +373 -11
- package/esm/types.d.ts +2 -2
- package/esm/types.d.ts.map +1 -1
- package/esm/types.js.map +1 -1
- package/package.json +20 -21
- package/styles/css/dashboard.css +30 -0
- package/styles/css/dashboard.css.map +1 -1
- package/styles/css/main.css +30 -0
- package/styles/css/main.css.map +1 -1
- package/styles/css/notifications_channels_dialog.css +30 -0
- package/styles/css/notifications_channels_dialog.css.map +1 -1
- package/styles/scss/notifications_channels_dialog.scss +36 -0
- package/esm/model/store/layout/index.d.ts +0 -173
- package/esm/model/store/layout/index.d.ts.map +0 -1
- package/esm/model/store/layout/index.js +0 -18
- package/esm/model/store/layout/index.js.map +0 -1
- package/esm/model/store/layout/layoutReducers.d.ts +0 -207
- package/esm/model/store/layout/layoutReducers.d.ts.map +0 -1
- package/esm/model/store/layout/layoutReducers.js.map +0 -1
- package/esm/model/store/layout/layoutSelectors.d.ts.map +0 -1
- package/esm/model/store/layout/layoutSelectors.js.map +0 -1
- package/esm/model/store/layout/layoutState.d.ts.map +0 -1
- package/esm/model/store/layout/layoutState.js.map +0 -1
- package/esm/model/store/layout/layoutUtils.d.ts.map +0 -1
- package/esm/model/store/layout/layoutUtils.js.map +0 -1
|
@@ -1,18 +1,63 @@
|
|
|
1
|
+
// (C) 2021-2025 GoodData Corporation
|
|
1
2
|
import { invariant } from "ts-invariant";
|
|
2
3
|
import { areObjRefsEqual, isDashboardAttributeFilterReference, isDashboardDateFilterReference, isDashboardLayout, isDashboardLayoutItem, isInsightWidget, isKpiWidget, isRichTextWidget, isVisualizationSwitcherWidget, } from "@gooddata/sdk-model";
|
|
4
|
+
import { layoutInitialState } from "./layoutState.js";
|
|
3
5
|
import { getWidgetCoordinatesAndItem, resizeInsightWidget } from "./layoutUtils.js";
|
|
4
|
-
import { findItem, findSection, findSections, getItemIndex } from "
|
|
5
|
-
import { newMapForObjectWithIdentity } from "
|
|
6
|
-
import { setOrDelete } from "
|
|
7
|
-
import { isCustomWidget, } from "
|
|
8
|
-
import { addArrayElements, removeArrayElement } from "
|
|
9
|
-
import { resetUndoReducer, undoReducer, withUndo } from "
|
|
6
|
+
import { findItem, findSection, findSections, getItemIndex, } from "../../../../_staging/layout/coordinates.js";
|
|
7
|
+
import { newMapForObjectWithIdentity } from "../../../../_staging/metadata/objRefMap.js";
|
|
8
|
+
import { setOrDelete } from "../../../../_staging/objectUtils/setOrDelete.js";
|
|
9
|
+
import { isCustomWidget, } from "../../../types/layoutTypes.js";
|
|
10
|
+
import { addArrayElements, removeArrayElement } from "../../../utils/arrayOps.js";
|
|
11
|
+
import { resetUndoReducer, undoReducer, withUndo } from "../../_infra/undoEnhancer.js";
|
|
12
|
+
/**
|
|
13
|
+
* Adapts a core layout reducer (for LayoutState) to a tabs reducer (for TabsState).
|
|
14
|
+
* Automatically applies the reducer to the active tab's layout state.
|
|
15
|
+
*/
|
|
16
|
+
function adaptLayoutReducer(coreLayoutReducer) {
|
|
17
|
+
return (state, action) => {
|
|
18
|
+
const activeTab = state.tabs?.find((tab) => tab.localIdentifier === state.activeTabLocalIdentifier);
|
|
19
|
+
if (!activeTab)
|
|
20
|
+
return;
|
|
21
|
+
const layoutState = activeTab.layout;
|
|
22
|
+
if (!layoutState)
|
|
23
|
+
return;
|
|
24
|
+
// Call the reducer - it may mutate the draft or return a new state (e.g., when wrapped with withUndo)
|
|
25
|
+
const result = coreLayoutReducer(layoutState, action);
|
|
26
|
+
// If the reducer returns a new state (like withUndo does), replace the layout
|
|
27
|
+
if (result !== undefined) {
|
|
28
|
+
activeTab.layout = result;
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Helper function to get the active tab's layout state.
|
|
34
|
+
* Initializes the layout if it doesn't exist.
|
|
35
|
+
* Returns undefined if no active tab is found.
|
|
36
|
+
*/
|
|
37
|
+
function getActiveTabLayout(state) {
|
|
38
|
+
if (!state.tabs || !state.activeTabLocalIdentifier) {
|
|
39
|
+
return undefined;
|
|
40
|
+
}
|
|
41
|
+
const activeTab = state.tabs.find((tab) => tab.localIdentifier === state.activeTabLocalIdentifier);
|
|
42
|
+
if (!activeTab) {
|
|
43
|
+
return undefined;
|
|
44
|
+
}
|
|
45
|
+
// Initialize layout state if it doesn't exist
|
|
46
|
+
if (!activeTab.layout) {
|
|
47
|
+
activeTab.layout = { ...layoutInitialState };
|
|
48
|
+
}
|
|
49
|
+
return activeTab.layout;
|
|
50
|
+
}
|
|
10
51
|
//
|
|
11
52
|
//
|
|
12
53
|
//
|
|
13
54
|
const setLayout = (state, action) => {
|
|
14
|
-
|
|
15
|
-
|
|
55
|
+
const layoutState = getActiveTabLayout(state);
|
|
56
|
+
if (!layoutState) {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
layoutState.layout = action.payload;
|
|
60
|
+
resetUndoReducer(layoutState);
|
|
16
61
|
};
|
|
17
62
|
//
|
|
18
63
|
//
|
|
@@ -38,10 +83,31 @@ function recurseLayoutAndUpdateWidgetIds(layout, mapping) {
|
|
|
38
83
|
});
|
|
39
84
|
}
|
|
40
85
|
const updateWidgetIdentities = (state, action) => {
|
|
41
|
-
|
|
42
|
-
|
|
86
|
+
const layoutState = getActiveTabLayout(state);
|
|
87
|
+
invariant(layoutState?.layout);
|
|
88
|
+
recurseLayoutAndUpdateWidgetIds(layoutState.layout, action.payload);
|
|
89
|
+
};
|
|
90
|
+
/**
|
|
91
|
+
* Updates widget identities for a specific tab after a dashboard save.
|
|
92
|
+
* This ensures that temporary widget IDs are replaced with persistent IDs
|
|
93
|
+
* for widgets in the specified tab's layout.
|
|
94
|
+
*
|
|
95
|
+
* @param state - The tabs state
|
|
96
|
+
* @param action - Object containing tabId and the identity mapping for that tab's widgets
|
|
97
|
+
*/
|
|
98
|
+
const updateWidgetIdentitiesForTab = (state, action) => {
|
|
99
|
+
if (!state.tabs) {
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
const { tabId, mapping } = action.payload;
|
|
103
|
+
const tab = state.tabs.find((t) => t.localIdentifier === tabId);
|
|
104
|
+
if (!tab?.layout?.layout) {
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
recurseLayoutAndUpdateWidgetIds(tab.layout.layout, mapping);
|
|
43
108
|
};
|
|
44
|
-
|
|
109
|
+
// Core reducer that operates directly on LayoutState (which extends UndoEnhancedState)
|
|
110
|
+
const addSectionCore = (state, action) => {
|
|
45
111
|
invariant(state.layout);
|
|
46
112
|
const { index, section, usedStashes } = action.payload;
|
|
47
113
|
const sections = findSections(state.layout, index);
|
|
@@ -50,7 +116,9 @@ const addSection = (state, action) => {
|
|
|
50
116
|
delete state.stash[stashIdentifier];
|
|
51
117
|
});
|
|
52
118
|
};
|
|
53
|
-
|
|
119
|
+
// Wrap with undo and adapt to TabsState
|
|
120
|
+
const addSection = adaptLayoutReducer(withUndo(addSectionCore));
|
|
121
|
+
const removeSectionCore = (state, action) => {
|
|
54
122
|
invariant(state.layout);
|
|
55
123
|
const { index, stashIdentifier } = action.payload;
|
|
56
124
|
if (stashIdentifier) {
|
|
@@ -59,12 +127,16 @@ const removeSection = (state, action) => {
|
|
|
59
127
|
const sections = findSections(state.layout, index);
|
|
60
128
|
removeArrayElement(sections, index.sectionIndex);
|
|
61
129
|
};
|
|
62
|
-
|
|
130
|
+
// Wrap with undo and adapt to TabsState
|
|
131
|
+
const removeSection = adaptLayoutReducer(withUndo(removeSectionCore));
|
|
132
|
+
const changeSectionHeaderCore = (state, action) => {
|
|
63
133
|
invariant(state.layout);
|
|
64
134
|
const { index, header } = action.payload;
|
|
65
135
|
findSection(state.layout, index).header = header;
|
|
66
136
|
};
|
|
67
|
-
|
|
137
|
+
// Wrap with undo and adapt to TabsState
|
|
138
|
+
const changeSectionHeader = adaptLayoutReducer(withUndo(changeSectionHeaderCore));
|
|
139
|
+
const toggleLayoutSectionHeadersCore = (state, action) => {
|
|
68
140
|
invariant(state.layout);
|
|
69
141
|
const { layoutPath, enableSectionHeaders } = action.payload;
|
|
70
142
|
const layout = layoutPath === undefined ? state.layout : findItem(state.layout, layoutPath);
|
|
@@ -81,7 +153,9 @@ const toggleLayoutSectionHeaders = (state, action) => {
|
|
|
81
153
|
};
|
|
82
154
|
}
|
|
83
155
|
};
|
|
84
|
-
|
|
156
|
+
// Wrap with undo and adapt to TabsState
|
|
157
|
+
const toggleLayoutSectionHeaders = adaptLayoutReducer(withUndo(toggleLayoutSectionHeadersCore));
|
|
158
|
+
const toggleLayoutDirectionCore = (state, action) => {
|
|
85
159
|
invariant(state.layout);
|
|
86
160
|
const { layoutPath, direction } = action.payload;
|
|
87
161
|
const layout = layoutPath === undefined ? state.layout : findItem(state.layout, layoutPath);
|
|
@@ -95,10 +169,13 @@ const toggleLayoutDirection = (state, action) => {
|
|
|
95
169
|
};
|
|
96
170
|
}
|
|
97
171
|
};
|
|
172
|
+
// Wrap with undo and adapt to TabsState
|
|
173
|
+
const toggleLayoutDirection = adaptLayoutReducer(withUndo(toggleLayoutDirectionCore));
|
|
98
174
|
const changeItemsHeight = (state, action) => {
|
|
99
|
-
|
|
175
|
+
const layoutState = getActiveTabLayout(state);
|
|
176
|
+
invariant(layoutState?.layout);
|
|
100
177
|
const { sectionIndex, itemIndexes, height } = action.payload;
|
|
101
|
-
const section = findSection(
|
|
178
|
+
const section = findSection(layoutState.layout, sectionIndex);
|
|
102
179
|
itemIndexes.forEach((itemIndex) => {
|
|
103
180
|
const item = section.items[itemIndex];
|
|
104
181
|
if (isCustomWidget(item.widget)) {
|
|
@@ -114,8 +191,9 @@ const changeItemsHeight = (state, action) => {
|
|
|
114
191
|
});
|
|
115
192
|
};
|
|
116
193
|
const updateHeightOfMultipleItems = (state, action) => {
|
|
117
|
-
|
|
118
|
-
|
|
194
|
+
const layoutState = getActiveTabLayout(state);
|
|
195
|
+
invariant(layoutState?.layout);
|
|
196
|
+
const rootLayout = layoutState.layout;
|
|
119
197
|
const { itemsWithSizes } = action.payload;
|
|
120
198
|
itemsWithSizes.forEach(({ itemPath, height }) => {
|
|
121
199
|
const item = findItem(rootLayout, itemPath);
|
|
@@ -132,8 +210,9 @@ const updateHeightOfMultipleItems = (state, action) => {
|
|
|
132
210
|
});
|
|
133
211
|
};
|
|
134
212
|
const updateWidthOfMultipleItems = (state, action) => {
|
|
135
|
-
|
|
136
|
-
|
|
213
|
+
const layoutState = getActiveTabLayout(state);
|
|
214
|
+
invariant(layoutState?.layout);
|
|
215
|
+
const rootLayout = layoutState.layout;
|
|
137
216
|
const { itemsWithSizes } = action.payload;
|
|
138
217
|
itemsWithSizes.forEach(({ itemPath, width }) => {
|
|
139
218
|
const item = findItem(rootLayout, itemPath);
|
|
@@ -150,9 +229,10 @@ const updateWidthOfMultipleItems = (state, action) => {
|
|
|
150
229
|
});
|
|
151
230
|
};
|
|
152
231
|
const changeItemWidth = (state, action) => {
|
|
153
|
-
|
|
232
|
+
const layoutState = getActiveTabLayout(state);
|
|
233
|
+
invariant(layoutState?.layout);
|
|
154
234
|
const { layoutPath, width } = action.payload;
|
|
155
|
-
const item = findItem(
|
|
235
|
+
const item = findItem(layoutState.layout, layoutPath);
|
|
156
236
|
item.size = {
|
|
157
237
|
...item.size,
|
|
158
238
|
xl: {
|
|
@@ -161,7 +241,7 @@ const changeItemWidth = (state, action) => {
|
|
|
161
241
|
},
|
|
162
242
|
};
|
|
163
243
|
};
|
|
164
|
-
const
|
|
244
|
+
const moveSectionCore = (state, action) => {
|
|
165
245
|
invariant(state.layout);
|
|
166
246
|
const { sectionIndex, toIndex } = action.payload;
|
|
167
247
|
const originalSections = findSections(state.layout, sectionIndex);
|
|
@@ -169,7 +249,9 @@ const moveSection = (state, action) => {
|
|
|
169
249
|
const targetSections = findSections(state.layout, toIndex);
|
|
170
250
|
addArrayElements(targetSections, toIndex.sectionIndex, [movedSection]);
|
|
171
251
|
};
|
|
172
|
-
|
|
252
|
+
// Wrap with undo and adapt to TabsState
|
|
253
|
+
const moveSection = adaptLayoutReducer(withUndo(moveSectionCore));
|
|
254
|
+
const addSectionItemsCore = (state, action) => {
|
|
173
255
|
invariant(state.layout);
|
|
174
256
|
const { layoutPath, items, usedStashes } = action.payload;
|
|
175
257
|
const section = findSection(state.layout, layoutPath);
|
|
@@ -180,7 +262,9 @@ const addSectionItems = (state, action) => {
|
|
|
180
262
|
delete state.stash[stashIdentifier];
|
|
181
263
|
});
|
|
182
264
|
};
|
|
183
|
-
|
|
265
|
+
// Wrap with undo and adapt to TabsState
|
|
266
|
+
const addSectionItems = adaptLayoutReducer(withUndo(addSectionItemsCore));
|
|
267
|
+
const moveSectionItemCore = (state, action) => {
|
|
184
268
|
invariant(state.layout);
|
|
185
269
|
const { itemIndex, toItemIndex } = action.payload;
|
|
186
270
|
const fromSection = findSection(state.layout, itemIndex);
|
|
@@ -193,7 +277,9 @@ const moveSectionItem = (state, action) => {
|
|
|
193
277
|
const itemIndexAtTargetSection = getItemIndex(toItemIndex);
|
|
194
278
|
addArrayElements(toSection.items, itemIndexAtTargetSection, [item]);
|
|
195
279
|
};
|
|
196
|
-
|
|
280
|
+
// Wrap with undo and adapt to TabsState
|
|
281
|
+
const moveSectionItem = adaptLayoutReducer(withUndo(moveSectionItemCore));
|
|
282
|
+
const removeSectionItemCore = (state, action) => {
|
|
197
283
|
invariant(state.layout);
|
|
198
284
|
const { itemIndex, stashIdentifier } = action.payload;
|
|
199
285
|
const section = findSection(state.layout, itemIndex);
|
|
@@ -204,7 +290,9 @@ const removeSectionItem = (state, action) => {
|
|
|
204
290
|
state.stash[stashIdentifier] = [item];
|
|
205
291
|
}
|
|
206
292
|
};
|
|
207
|
-
|
|
293
|
+
// Wrap with undo and adapt to TabsState
|
|
294
|
+
const removeSectionItem = adaptLayoutReducer(withUndo(removeSectionItemCore));
|
|
295
|
+
const replaceSectionItemCore = (state, action) => {
|
|
208
296
|
invariant(state.layout);
|
|
209
297
|
const { layoutPath, newItems, stashIdentifier, usedStashes } = action.payload;
|
|
210
298
|
const section = findSection(state.layout, layoutPath);
|
|
@@ -228,6 +316,11 @@ const replaceSectionItem = (state, action) => {
|
|
|
228
316
|
});
|
|
229
317
|
};
|
|
230
318
|
//
|
|
319
|
+
// Wrap with undo and adapt to TabsState
|
|
320
|
+
const replaceSectionItem = adaptLayoutReducer(withUndo(replaceSectionItemCore));
|
|
321
|
+
//
|
|
322
|
+
//
|
|
323
|
+
//
|
|
231
324
|
// Layout-widget specific reducers
|
|
232
325
|
//
|
|
233
326
|
const processSection = (section) => {
|
|
@@ -253,7 +346,7 @@ const getWidgetByRef = (state, widgetRef) => {
|
|
|
253
346
|
const widgets = allWidgets.filter(Boolean);
|
|
254
347
|
return newMapForObjectWithIdentity(widgets).get(widgetRef);
|
|
255
348
|
};
|
|
256
|
-
const
|
|
349
|
+
const replaceWidgetHeaderCore = (state, action) => {
|
|
257
350
|
invariant(state.layout);
|
|
258
351
|
const { header, ref } = action.payload;
|
|
259
352
|
const widget = getWidgetByRef(state, ref);
|
|
@@ -262,7 +355,9 @@ const replaceWidgetHeader = (state, action) => {
|
|
|
262
355
|
invariant(widget && (isKpiWidget(widget) || isInsightWidget(widget)));
|
|
263
356
|
widget.title = header.title ?? "";
|
|
264
357
|
};
|
|
265
|
-
|
|
358
|
+
// Wrap with undo and adapt to TabsState
|
|
359
|
+
const replaceWidgetHeader = adaptLayoutReducer(withUndo(replaceWidgetHeaderCore));
|
|
360
|
+
const replaceWidgetDescriptionCore = (state, action) => {
|
|
266
361
|
invariant(state.layout);
|
|
267
362
|
const { description, ref } = action.payload;
|
|
268
363
|
const widget = getWidgetByRef(state, ref);
|
|
@@ -271,7 +366,19 @@ const replaceWidgetDescription = (state, action) => {
|
|
|
271
366
|
invariant(widget && (isKpiWidget(widget) || isInsightWidget(widget)));
|
|
272
367
|
widget.description = description.description ?? "";
|
|
273
368
|
};
|
|
369
|
+
// Wrap with undo and adapt to TabsState
|
|
370
|
+
const replaceWidgetDescription = adaptLayoutReducer(withUndo(replaceWidgetDescriptionCore));
|
|
274
371
|
const replaceWidgetDrill = (state, action) => {
|
|
372
|
+
const layoutState = getActiveTabLayout(state);
|
|
373
|
+
invariant(layoutState?.layout);
|
|
374
|
+
const { drillDefinitions, ref } = action.payload;
|
|
375
|
+
const widget = getWidgetByRef(layoutState, ref);
|
|
376
|
+
// this means command handler did not correctly validate that the widget exists before dispatching the
|
|
377
|
+
// reducer action
|
|
378
|
+
invariant(widget && (isKpiWidget(widget) || isInsightWidget(widget)));
|
|
379
|
+
widget.drills = drillDefinitions ?? [];
|
|
380
|
+
};
|
|
381
|
+
const replaceWidgetDrillCore = (state, action) => {
|
|
275
382
|
invariant(state.layout);
|
|
276
383
|
const { drillDefinitions, ref } = action.payload;
|
|
277
384
|
const widget = getWidgetByRef(state, ref);
|
|
@@ -280,38 +387,47 @@ const replaceWidgetDrill = (state, action) => {
|
|
|
280
387
|
invariant(widget && (isKpiWidget(widget) || isInsightWidget(widget)));
|
|
281
388
|
widget.drills = drillDefinitions ?? [];
|
|
282
389
|
};
|
|
390
|
+
const replaceWidgetDrills = adaptLayoutReducer(withUndo(replaceWidgetDrillCore));
|
|
283
391
|
//
|
|
284
|
-
const
|
|
392
|
+
const replaceWidgetBlacklistHierarchiesCore = (state, action) => {
|
|
285
393
|
invariant(state.layout);
|
|
286
394
|
const { blacklistHierarchies, ref } = action.payload;
|
|
287
395
|
const widget = getWidgetByRef(state, ref);
|
|
288
396
|
invariant(widget && (isKpiWidget(widget) || isInsightWidget(widget)));
|
|
289
397
|
widget.ignoredDrillDownHierarchies = blacklistHierarchies ?? [];
|
|
290
398
|
};
|
|
399
|
+
// Wrap with undo and adapt to TabsState
|
|
400
|
+
const replaceWidgetBlacklistHierarchies = adaptLayoutReducer(withUndo(replaceWidgetBlacklistHierarchiesCore));
|
|
291
401
|
//
|
|
292
|
-
const
|
|
402
|
+
const replaceWidgetDrillDownIntersectionIgnoredAttributesCore = (state, action) => {
|
|
293
403
|
invariant(state.layout);
|
|
294
404
|
const { ignoredDrillDownIntersectionIgnoredAttributes, ref } = action.payload;
|
|
295
405
|
const widget = getWidgetByRef(state, ref);
|
|
296
406
|
invariant(widget && (isKpiWidget(widget) || isInsightWidget(widget)));
|
|
297
407
|
widget.drillDownIntersectionIgnoredAttributes = ignoredDrillDownIntersectionIgnoredAttributes ?? [];
|
|
298
408
|
};
|
|
299
|
-
|
|
409
|
+
// Wrap with undo and adapt to TabsState
|
|
410
|
+
const replaceWidgetDrillDownIntersectionIgnoredAttributes = adaptLayoutReducer(withUndo(replaceWidgetDrillDownIntersectionIgnoredAttributesCore));
|
|
411
|
+
const replaceInsightWidgetVisPropertiesCore = (state, action) => {
|
|
300
412
|
invariant(state.layout);
|
|
301
413
|
const { properties, ref } = action.payload;
|
|
302
414
|
const widget = getWidgetByRef(state, ref);
|
|
303
415
|
invariant(widget && isInsightWidget(widget));
|
|
304
416
|
setOrDelete(widget, "properties", properties);
|
|
305
417
|
};
|
|
306
|
-
|
|
418
|
+
// Wrap with undo and adapt to TabsState
|
|
419
|
+
const replaceInsightWidgetVisProperties = adaptLayoutReducer(withUndo(replaceInsightWidgetVisPropertiesCore));
|
|
420
|
+
const replaceInsightWidgetVisConfigurationCore = (state, action) => {
|
|
307
421
|
invariant(state.layout);
|
|
308
422
|
const { config, ref } = action.payload;
|
|
309
423
|
const widget = getWidgetByRef(state, ref);
|
|
310
424
|
invariant(widget && isInsightWidget(widget));
|
|
311
425
|
setOrDelete(widget, "configuration", config);
|
|
312
426
|
};
|
|
313
|
-
|
|
314
|
-
|
|
427
|
+
// Wrap with undo and adapt to TabsState
|
|
428
|
+
const replaceInsightWidgetVisConfiguration = adaptLayoutReducer(withUndo(replaceInsightWidgetVisConfigurationCore));
|
|
429
|
+
const replaceInsightWidgetInsightCore = (state, action) => {
|
|
430
|
+
invariant(state.layout);
|
|
315
431
|
const { insightRef, properties, ref, header, newSize } = action.payload;
|
|
316
432
|
const widget = getWidgetByRef(state, ref);
|
|
317
433
|
const data = getWidgetCoordinatesAndItem(state.layout, ref);
|
|
@@ -327,7 +443,9 @@ const replaceInsightWidgetInsight = (state, action) => {
|
|
|
327
443
|
data.item.size.xl = resizeInsightWidget(data.item.size.xl, newSize);
|
|
328
444
|
}
|
|
329
445
|
};
|
|
330
|
-
|
|
446
|
+
// Wrap with undo and adapt to TabsState
|
|
447
|
+
const replaceInsightWidgetInsight = adaptLayoutReducer(withUndo(replaceInsightWidgetInsightCore));
|
|
448
|
+
const replaceWidgetFilterSettingsCore = (state, action) => {
|
|
331
449
|
invariant(state.layout);
|
|
332
450
|
const { ignoreDashboardFilters, dateDataSet, ref } = action.payload;
|
|
333
451
|
const widget = getWidgetByRef(state, ref);
|
|
@@ -335,6 +453,8 @@ const replaceWidgetFilterSettings = (state, action) => {
|
|
|
335
453
|
widget.dateDataSet = dateDataSet;
|
|
336
454
|
widget.ignoreDashboardFilters = ignoreDashboardFilters ?? [];
|
|
337
455
|
};
|
|
456
|
+
// Wrap with undo and adapt to TabsState
|
|
457
|
+
const replaceWidgetFilterSettings = adaptLayoutReducer(withUndo(replaceWidgetFilterSettingsCore));
|
|
338
458
|
const removeIgnoredAttributeFilterFromLayout = (layout, displayFormRefs) => {
|
|
339
459
|
layout.sections.forEach((section) => {
|
|
340
460
|
section.items.forEach((item) => {
|
|
@@ -355,16 +475,19 @@ const removeIgnoredAttributeFilterFromLayout = (layout, displayFormRefs) => {
|
|
|
355
475
|
});
|
|
356
476
|
};
|
|
357
477
|
const removeIgnoredAttributeFilter = (state, action) => {
|
|
358
|
-
|
|
359
|
-
|
|
478
|
+
const layoutState = getActiveTabLayout(state);
|
|
479
|
+
invariant(layoutState?.layout);
|
|
480
|
+
removeIgnoredAttributeFilterFromLayout(layoutState.layout, action.payload.displayFormRefs);
|
|
360
481
|
};
|
|
361
|
-
const
|
|
482
|
+
const replaceWidgetDateDatasetCore = (state, action) => {
|
|
362
483
|
invariant(state.layout);
|
|
363
484
|
const { dateDataSet, ref } = action.payload;
|
|
364
485
|
const widget = getWidgetByRef(state, ref);
|
|
365
486
|
invariant(widget && (isInsightWidget(widget) || isKpiWidget(widget)));
|
|
366
487
|
widget.dateDataSet = dateDataSet;
|
|
367
488
|
};
|
|
489
|
+
// Wrap with undo and adapt to TabsState
|
|
490
|
+
const replaceWidgetDateDataset = adaptLayoutReducer(withUndo(replaceWidgetDateDatasetCore));
|
|
368
491
|
const removeIgnoredDateFilterFromLayout = (layout, dateDataSets) => {
|
|
369
492
|
layout.sections.forEach((section) => {
|
|
370
493
|
section.items.forEach((item) => {
|
|
@@ -384,17 +507,20 @@ const removeIgnoredDateFilterFromLayout = (layout, dateDataSets) => {
|
|
|
384
507
|
});
|
|
385
508
|
};
|
|
386
509
|
const removeIgnoredDateFilter = (state, action) => {
|
|
387
|
-
|
|
388
|
-
|
|
510
|
+
const layoutState = getActiveTabLayout(state);
|
|
511
|
+
invariant(layoutState?.layout);
|
|
512
|
+
removeIgnoredDateFilterFromLayout(layoutState.layout, action.payload.dateDataSets);
|
|
389
513
|
};
|
|
390
|
-
const
|
|
514
|
+
const replaceKpiWidgetMeasureCore = (state, action) => {
|
|
391
515
|
invariant(state.layout);
|
|
392
516
|
const { ref, measureRef } = action.payload;
|
|
393
517
|
const widget = getWidgetByRef(state, ref);
|
|
394
518
|
invariant(widget && isKpiWidget(widget));
|
|
395
519
|
widget.kpi.metric = measureRef;
|
|
396
520
|
};
|
|
397
|
-
|
|
521
|
+
// Wrap with undo and adapt to TabsState
|
|
522
|
+
const replaceKpiWidgetMeasure = adaptLayoutReducer(withUndo(replaceKpiWidgetMeasureCore));
|
|
523
|
+
const replaceKpiWidgetComparisonCore = (state, action) => {
|
|
398
524
|
invariant(state.layout);
|
|
399
525
|
const { ref, comparisonType, comparisonDirection } = action.payload;
|
|
400
526
|
const widget = getWidgetByRef(state, ref);
|
|
@@ -402,35 +528,45 @@ const replaceKpiWidgetComparison = (state, action) => {
|
|
|
402
528
|
widget.kpi.comparisonType = comparisonType;
|
|
403
529
|
widget.kpi.comparisonDirection = comparisonDirection;
|
|
404
530
|
};
|
|
405
|
-
|
|
531
|
+
// Wrap with undo and adapt to TabsState
|
|
532
|
+
const replaceKpiWidgetComparison = adaptLayoutReducer(withUndo(replaceKpiWidgetComparisonCore));
|
|
533
|
+
const replaceKpiWidgetDrillCore = (state, action) => {
|
|
406
534
|
invariant(state.layout);
|
|
407
535
|
const { ref, drill } = action.payload;
|
|
408
536
|
const widget = getWidgetByRef(state, ref);
|
|
409
537
|
invariant(widget && isKpiWidget(widget));
|
|
410
538
|
widget.drills = drill ? [drill] : [];
|
|
411
539
|
};
|
|
412
|
-
|
|
540
|
+
// Wrap with undo and adapt to TabsState
|
|
541
|
+
const replaceKpiWidgetDrill = adaptLayoutReducer(withUndo(replaceKpiWidgetDrillCore));
|
|
542
|
+
const replaceKpiWidgetConfigurationCore = (state, action) => {
|
|
413
543
|
invariant(state.layout);
|
|
414
544
|
const { config, ref } = action.payload;
|
|
415
545
|
const widget = getWidgetByRef(state, ref);
|
|
416
546
|
invariant(widget && isKpiWidget(widget));
|
|
417
547
|
setOrDelete(widget, "configuration", config);
|
|
418
548
|
};
|
|
419
|
-
|
|
549
|
+
// Wrap with undo and adapt to TabsState
|
|
550
|
+
const replaceKpiWidgetConfiguration = adaptLayoutReducer(withUndo(replaceKpiWidgetConfigurationCore));
|
|
551
|
+
const replaceRichTextWidgetContentCore = (state, action) => {
|
|
420
552
|
invariant(state.layout);
|
|
421
553
|
const { content, ref } = action.payload;
|
|
422
554
|
const widget = getWidgetByRef(state, ref);
|
|
423
555
|
invariant(widget && isRichTextWidget(widget));
|
|
424
556
|
setOrDelete(widget, "content", content);
|
|
425
557
|
};
|
|
426
|
-
|
|
558
|
+
// Wrap with undo and adapt to TabsState
|
|
559
|
+
const replaceRichTextWidgetContent = adaptLayoutReducer(withUndo(replaceRichTextWidgetContentCore));
|
|
560
|
+
const changeWidgetIgnoreCrossFilteringCore = (state, action) => {
|
|
427
561
|
invariant(state.layout);
|
|
428
562
|
const { ignoreCrossFiltering, ref } = action.payload;
|
|
429
563
|
const widget = getWidgetByRef(state, ref);
|
|
430
564
|
invariant(widget && (isInsightWidget(widget) || isKpiWidget(widget)));
|
|
431
565
|
widget.ignoreCrossFiltering = ignoreCrossFiltering;
|
|
432
566
|
};
|
|
433
|
-
|
|
567
|
+
// Wrap with undo and adapt to TabsState
|
|
568
|
+
const changeWidgetIgnoreCrossFiltering = adaptLayoutReducer(withUndo(changeWidgetIgnoreCrossFilteringCore));
|
|
569
|
+
const addVisualizationSwitcherWidgetVisualizationCore = (state, action) => {
|
|
434
570
|
invariant(state.layout);
|
|
435
571
|
const { visualization, ref, newSize } = action.payload;
|
|
436
572
|
const widgetRef = getWidgetByRef(state, ref);
|
|
@@ -441,14 +577,18 @@ const addVisualizationSwitcherWidgetVisualization = (state, action) => {
|
|
|
441
577
|
data.item.size.xl = resizeInsightWidget(data.item.size.xl, newSize);
|
|
442
578
|
}
|
|
443
579
|
};
|
|
444
|
-
|
|
580
|
+
// Wrap with undo and adapt to TabsState
|
|
581
|
+
const addVisualizationSwitcherWidgetVisualization = adaptLayoutReducer(withUndo(addVisualizationSwitcherWidgetVisualizationCore));
|
|
582
|
+
const updateVisualizationSwitcherWidgetVisualizationsCore = (state, action) => {
|
|
445
583
|
invariant(state.layout);
|
|
446
584
|
const { visualizations, ref } = action.payload;
|
|
447
585
|
const widgetRef = getWidgetByRef(state, ref);
|
|
448
586
|
invariant(widgetRef && isVisualizationSwitcherWidget(widgetRef));
|
|
449
587
|
widgetRef.visualizations = visualizations;
|
|
450
588
|
};
|
|
451
|
-
|
|
589
|
+
// Wrap with undo and adapt to TabsState
|
|
590
|
+
const updateVisualizationSwitcherWidgetVisualizations = adaptLayoutReducer(withUndo(updateVisualizationSwitcherWidgetVisualizationsCore));
|
|
591
|
+
const resizeVisualizationSwitcherOnInsightChangedCore = (state, action) => {
|
|
452
592
|
invariant(state.layout);
|
|
453
593
|
const { ref, newSize } = action.payload;
|
|
454
594
|
const widgetRef = getWidgetByRef(state, ref);
|
|
@@ -458,50 +598,61 @@ const resizeVisualizationSwitcherOnInsightChanged = (state, action) => {
|
|
|
458
598
|
data.item.size.xl = resizeInsightWidget(data.item.size.xl, newSize);
|
|
459
599
|
}
|
|
460
600
|
};
|
|
601
|
+
// Wrap with undo and adapt to TabsState
|
|
602
|
+
const resizeVisualizationSwitcherOnInsightChanged = adaptLayoutReducer(withUndo(resizeVisualizationSwitcherOnInsightChangedCore));
|
|
461
603
|
const setScreen = (state, action) => {
|
|
462
|
-
|
|
604
|
+
// Update screen for all tabs, not just the active one
|
|
605
|
+
// Screen size is a global property that affects all tabs
|
|
606
|
+
state.tabs?.forEach((tab) => {
|
|
607
|
+
if (tab.layout) {
|
|
608
|
+
tab.layout.screen = action.payload.screen;
|
|
609
|
+
}
|
|
610
|
+
});
|
|
463
611
|
};
|
|
464
612
|
export const layoutReducers = {
|
|
465
613
|
setLayout,
|
|
466
614
|
setScreen,
|
|
467
615
|
updateWidgetIdentities,
|
|
616
|
+
updateWidgetIdentitiesForTab,
|
|
468
617
|
removeIgnoredAttributeFilter,
|
|
469
618
|
removeIgnoredDateFilter,
|
|
470
|
-
addSection
|
|
471
|
-
removeSection
|
|
472
|
-
moveSection
|
|
473
|
-
changeSectionHeader
|
|
474
|
-
addSectionItems
|
|
475
|
-
moveSectionItem
|
|
476
|
-
removeSectionItem
|
|
477
|
-
replaceSectionItem
|
|
478
|
-
replaceWidgetHeader
|
|
479
|
-
replaceWidgetDescription
|
|
619
|
+
addSection,
|
|
620
|
+
removeSection,
|
|
621
|
+
moveSection,
|
|
622
|
+
changeSectionHeader,
|
|
623
|
+
addSectionItems,
|
|
624
|
+
moveSectionItem,
|
|
625
|
+
removeSectionItem,
|
|
626
|
+
replaceSectionItem,
|
|
627
|
+
replaceWidgetHeader,
|
|
628
|
+
replaceWidgetDescription,
|
|
480
629
|
replaceWidgetDrillWithoutUndo: replaceWidgetDrill, // useful in internal sanitization use cases
|
|
481
|
-
replaceWidgetDrills
|
|
482
|
-
replaceWidgetBlacklistHierarchies
|
|
483
|
-
replaceWidgetDrillDownIntersectionIgnoredAttributes
|
|
484
|
-
replaceInsightWidgetVisProperties
|
|
485
|
-
replaceInsightWidgetVisConfiguration
|
|
486
|
-
replaceInsightWidgetInsight
|
|
487
|
-
replaceWidgetFilterSettings
|
|
488
|
-
replaceWidgetDateDataset
|
|
489
|
-
replaceKpiWidgetMeasure
|
|
490
|
-
replaceKpiWidgetComparison
|
|
491
|
-
replaceKpiWidgetDrillWithoutUndo:
|
|
492
|
-
replaceKpiWidgetDrill
|
|
493
|
-
replaceKpiWidgetConfiguration
|
|
494
|
-
replaceRichTextWidgetContent
|
|
495
|
-
addVisualizationSwitcherWidgetVisualization
|
|
496
|
-
updateVisualizationSwitcherWidgetVisualizations
|
|
497
|
-
undoLayout: undoReducer,
|
|
498
|
-
clearLayoutHistory:
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
630
|
+
replaceWidgetDrills,
|
|
631
|
+
replaceWidgetBlacklistHierarchies,
|
|
632
|
+
replaceWidgetDrillDownIntersectionIgnoredAttributes,
|
|
633
|
+
replaceInsightWidgetVisProperties,
|
|
634
|
+
replaceInsightWidgetVisConfiguration,
|
|
635
|
+
replaceInsightWidgetInsight,
|
|
636
|
+
replaceWidgetFilterSettings,
|
|
637
|
+
replaceWidgetDateDataset,
|
|
638
|
+
replaceKpiWidgetMeasure,
|
|
639
|
+
replaceKpiWidgetComparison,
|
|
640
|
+
replaceKpiWidgetDrillWithoutUndo: replaceWidgetDrill, // useful in internal sanitization use cases
|
|
641
|
+
replaceKpiWidgetDrill,
|
|
642
|
+
replaceKpiWidgetConfiguration,
|
|
643
|
+
replaceRichTextWidgetContent,
|
|
644
|
+
addVisualizationSwitcherWidgetVisualization,
|
|
645
|
+
updateVisualizationSwitcherWidgetVisualizations,
|
|
646
|
+
undoLayout: adaptLayoutReducer(undoReducer),
|
|
647
|
+
clearLayoutHistory: adaptLayoutReducer((state, _action) => {
|
|
648
|
+
resetUndoReducer(state);
|
|
649
|
+
}),
|
|
650
|
+
changeItemsHeight,
|
|
651
|
+
changeItemWidth,
|
|
652
|
+
changeWidgetIgnoreCrossFiltering,
|
|
653
|
+
resizeVisualizationSwitcherOnInsightChanged,
|
|
654
|
+
toggleLayoutSectionHeaders,
|
|
655
|
+
toggleLayoutDirection,
|
|
505
656
|
updateHeightOfMultipleItems,
|
|
506
657
|
updateWidthOfMultipleItems,
|
|
507
658
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layoutReducers.js","sourceRoot":"","sources":["../../../../../src/model/store/tabs/layout/layoutReducers.ts"],"names":[],"mappings":"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"}
|