@gooddata/sdk-ui-dashboard 11.40.0-alpha.0 → 11.40.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.
- package/esm/__version.d.ts +1 -1
- package/esm/__version.js +1 -1
- package/esm/index.d.ts +3 -3
- package/esm/index.js +3 -3
- package/esm/model/commandHandlers/dashboard/exportToTabularHandler.js +5 -2
- package/esm/model/commandHandlers/dashboard/saveAsDashboardHandler.js +6 -0
- package/esm/model/commandHandlers/dashboard/saveDashboardHandler.js +65 -30
- package/esm/model/commandHandlers/index.js +0 -2
- package/esm/model/commandHandlers/tabs/createDashboardTabHandler.js +2 -2
- package/esm/model/commands/base.d.ts +1 -1
- package/esm/model/commands/index.d.ts +2 -2
- package/esm/model/commands/tabs.d.ts +0 -35
- package/esm/model/commands/tabs.js +0 -16
- package/esm/model/events/base.d.ts +1 -1
- package/esm/model/events/index.d.ts +2 -2
- package/esm/model/events/tabs.d.ts +0 -44
- package/esm/model/events/tabs.js +0 -28
- package/esm/model/react/useDashboardCommand.d.ts +0 -1
- package/esm/model/react/useDashboardCommandProcessing.d.ts +0 -4
- package/esm/model/store/tabs/index.d.ts +6 -0
- package/esm/model/store/tabs/layout/layoutSelectors.d.ts +41 -1
- package/esm/model/store/tabs/layout/layoutSelectors.js +38 -0
- package/esm/model/store/tabs/parameters/parametersHelpers.d.ts +86 -0
- package/esm/model/store/tabs/parameters/parametersHelpers.js +208 -0
- package/esm/model/store/tabs/parameters/parametersSelectors.d.ts +21 -16
- package/esm/model/store/tabs/parameters/parametersSelectors.js +45 -127
- package/esm/model/store/tabs/tabsReducers.d.ts +6 -0
- package/esm/model/store/tabs/tabsReducers.js +16 -0
- package/esm/model/utils/tabLocalIdentifier.d.ts +4 -0
- package/esm/model/utils/tabLocalIdentifier.js +12 -0
- package/esm/presentation/dashboard/DashboardHeader/DashboardTabs.js +2 -10
- package/esm/presentation/localization/bundles/de-DE.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/de-DE.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/en-AU.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/en-AU.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/en-GB.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/en-GB.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/es-419.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/es-419.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/es-ES.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/es-ES.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/fi-FI.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/fi-FI.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/fr-CA.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/fr-CA.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/fr-FR.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/fr-FR.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/id-ID.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/id-ID.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/it-IT.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/it-IT.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/ja-JP.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/ja-JP.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/ko-KR.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/ko-KR.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/nl-NL.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/nl-NL.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/pl-PL.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/pl-PL.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/pt-BR.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/pt-BR.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/pt-PT.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/pt-PT.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/ru-RU.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/ru-RU.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/sl-SI.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/sl-SI.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/th-TH.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/th-TH.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/tr-TR.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/tr-TR.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/uk-UA.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/uk-UA.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/vi-VN.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/vi-VN.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/zh-HK.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/zh-HK.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.js +1 -0
- package/esm/sdk-ui-dashboard.d.ts +35 -94
- package/package.json +20 -20
- package/esm/model/commandHandlers/tabs/convertDashboardTabFromDefaultHandler.d.ts +0 -4
- package/esm/model/commandHandlers/tabs/convertDashboardTabFromDefaultHandler.js +0 -40
package/esm/__version.d.ts
CHANGED
package/esm/__version.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// (C) 2021 GoodData Corporation
|
|
2
2
|
// DO NOT CHANGE THIS FILE, IT IS RE-GENERATED ON EVERY BUILD
|
|
3
|
-
export const LIB_VERSION = "11.40.0-alpha.
|
|
3
|
+
export const LIB_VERSION = "11.40.0-alpha.2";
|
|
4
4
|
export const LIB_DESCRIPTION = "GoodData SDK - Dashboard Component";
|
|
5
5
|
export const LIB_NAME = "@gooddata/sdk-ui-dashboard";
|
package/esm/index.d.ts
CHANGED
|
@@ -57,10 +57,10 @@ export { type IChangeRenderMode, type IChangeRenderModePayload, type IRenderMode
|
|
|
57
57
|
export { type IChangeDashboardDensity, type IChangeDashboardDensityPayload, changeDashboardDensity, type IRequestOpenDensityDialog, requestOpenDensityDialog, } from "./model/commands/density.js";
|
|
58
58
|
export { type IAddDrillTargets, type IAddDrillTargetsPayload, addDrillTargets, } from "./model/commands/drillTargets.js";
|
|
59
59
|
export { type ISetShowWidgetAsTable, type ISetShowWidgetAsTablePayload, setShowWidgetAsTable, } from "./model/commands/showWidgetAsTable.js";
|
|
60
|
-
export { type ISwitchDashboardTab, type ISwitchDashboardTabPayload, type
|
|
60
|
+
export { type ISwitchDashboardTab, type ISwitchDashboardTabPayload, type ICreateDashboardTab, type ICreateDashboardTabPayload, type IRepositionDashboardTab, type IRepositionDashboardTabPayload, type IDeleteDashboardTab, type IDeleteDashboardTabPayload, type IStartRenamingDashboardTab, type IStartRenamingDashboardTabPayload, type ICancelRenamingDashboardTab, type ICancelRenamingDashboardTabPayload, type IRenameDashboardTab, type IRenameDashboardTabPayload, switchDashboardTab, repositionDashboardTab, createDashboardTab, deleteDashboardTab, startRenamingDashboardTab, cancelRenamingDashboardTab, renameDashboardTab, } from "./model/commands/tabs.js";
|
|
61
61
|
export { type IDashboardEvent, type DashboardEventType, type ICustomDashboardEvent, type DashboardEventBody, isDashboardEvent, isCustomDashboardEvent, isDashboardEventOrCustomDashboardEvent, } from "./model/events/base.js";
|
|
62
62
|
export { type DateFilterValidationFailed, type DateFilterValidationFailedPayload, type DashboardInitialized, type DashboardInitializedPayload, type DashboardDeinitialized, type DashboardDeinitializedPayload, type DashboardSaved, type DashboardSavedPayload, type DashboardCopySaved, type DashboardCopySavedPayload, type IDashboardRenamed, type IDashboardRenamedPayload, type IDashboardWasReset, type IDashboardWasResetPayload, type IDashboardDeleted, type IDashboardDeletedPayload, type IDashboardExportToPdfRequested, type IDashboardExportToPdfResolved, type IDashboardExportToPdfResolvedPayload, type DashboardSharingChanged, type DashboardSharingChangedPayload, type IDashboardExportToExcelRequested, type IDashboardExportToExcelResolved, type IDashboardExportToPdfPresentationRequested, type IDashboardExportToPdfPresentationResolved, type IDashboardExportToPptPresentationRequested, type IDashboardExportToPptPresentationResolved, type IDashboardExportToExcelResolvedPayload, type IDashboardExportToPdfPresentationResolvedPayload, type IDashboardExportToPptPresentationResolvedPayload, type IDashboardIgnoreExecutionTimestampChanged, type IDashboardIgnoreExecutionTimestampChangedPayload, type IDashboardExportToImageRequested, type IDashboardExportToImageResolved, type IDashboardExportToImageResolvedPayload, isDashboardSaved, isDashboardCopySaved, isDashboardInitialized, isDashboardDeinitialized, isDashboardRenamed, isDashboardWasReset, isDashboardDeleted, isDateFilterValidationFailed, isDashboardExportToPdfRequested, isDashboardExportToPdfResolved, isDashboardSharingChanged, isDashboardExportToExcelRequested, isDashboardExportToExcelResolved, isDashboardExportToPdfPresentationRequested, isDashboardExportToPdfPresentationResolved, isDashboardExportToPptPresentationResolved, isDashboardExportToPptPresentationRequested, isDashboardExportToImageRequested, isDashboardExportToImageResolved, isDashboardIgnoreExecutionTimestampChanged, } from "./model/events/dashboard.js";
|
|
63
|
-
export { type IDashboardTabSwitched, type IDashboardTabSwitchedPayload, type IDashboardTabCreated, type IDashboardTabCreatedPayload, type
|
|
63
|
+
export { type IDashboardTabSwitched, type IDashboardTabSwitchedPayload, type IDashboardTabCreated, type IDashboardTabCreatedPayload, type IDashboardTabDeleted, type IDashboardTabDeletedPayload, type IDashboardTabRenamingStarted, type IDashboardTabRenamingStartedPayload, type IDashboardTabRenamingCanceled, type IDashboardTabRenamingCanceledPayload, type IDashboardTabRenamed, type IDashboardTabRenamedPayload, dashboardTabSwitched, isDashboardTabSwitched, dashboardTabCreated, isDashboardTabCreated, dashboardTabDeleted, isDashboardTabDeleted, dashboardTabRenamingStarted, isDashboardTabRenamingStarted, dashboardTabRenamingCanceled, isDashboardTabRenamingCanceled, dashboardTabRenamed, isDashboardTabRenamed, } from "./model/events/tabs.js";
|
|
64
64
|
export { type IDashboardParametersSelectionReset, parametersSelectionReset, isDashboardParametersSelectionReset, } from "./model/events/parameters.js";
|
|
65
65
|
export { type IDashboardCommandStarted, type IDashboardCommandStartedPayload, type IDashboardCommandRejected, type IDashboardCommandFailed, type IDashboardCommandFailedPayload, type ActionFailedErrorReason, type IDashboardQueryRejected, type IDashboardQueryFailed, type IDashboardQueryFailedPayload, type IDashboardQueryStarted, type IDashboardQueryStartedPayload, type IDashboardQueryCompleted, type IDashboardQueryCompletedPayload, isDashboardCommandStarted, isDashboardCommandFailed, isDashboardQueryFailed, isDashboardCommandRejected, isDashboardQueryCompleted, isDashboardQueryRejected, isDashboardQueryStarted, } from "./model/events/general.js";
|
|
66
66
|
export { type DashboardDateFilterSelectionChanged, type DashboardDateFilterSelectionChangedPayload, type DashboardAttributeFilterSelectionChangedPayload, type DashboardAttributeFilterItemSelectionReplaced, type DashboardAttributeFilterItemSelectionReplacedPayload, type DashboardFilterContextChanged, type DashboardFilterContextChangedPayload, type IDashboardAttributeFilterParentChanged, type IDashboardAttributeFilterParentChangedPayload, type IDashboardAttributeFilterRemoved, type IDashboardAttributeFilterRemovedPayload, type DashboardAttributeFilterSelectionChanged, type IDashboardAttributeTitleChanged, type IDashboardAttributeTitleChangedPayload, type IDashboardAttributeSelectionModeChanged, type IDashboardAttributeSelectionModeChangedPayload, type IDashboardAttributeFilterMoved, type IDashboardAttributeFilterMovedPayload, type IDashboardAttributeFilterAdded, type IDashboardAttributeFilterAddedPayload, type IDashboardAttributeFilterConfigModeChanged, type IDashboardAttributeFilterConfigModeChangedPayload, type IDashboardAttributeFilterConfigLimitingItemsChanged, type IDashboardAttributeFilterConfigLimitingItemsChangedPayload, type IDashboardMeasureValueFilterAdded, type IDashboardMeasureValueFilterAddedPayload, type IDashboardMeasureValueFilterRemoved, type IDashboardMeasureValueFilterRemovedPayload, type IDashboardMeasureValueFilterMoved, type IDashboardMeasureValueFilterMovedPayload, type IDashboardMeasureValueFilterTitleChanged, type IDashboardMeasureValueFilterTitleChangedPayload, type IDashboardMeasureValueFilterConfigModeChanged, type IDashboardMeasureValueFilterConfigModeChangedPayload, type IDashboardFilterViewCreationSucceeded, type IDashboardFilterViewCreationSucceededPayload, type IDashboardFilterViewCreationFailed, type IDashboardFilterViewDeletionSucceeded, type IDashboardFilterViewDeletionSucceededPayload, type IDashboardFilterViewDeletionFailed, type IDashboardFilterViewApplicationSucceeded, type IDashboardFilterViewApplicationSucceededPayload, type IDashboardFilterViewApplicationFailed, type IDashboardFilterViewDefaultStatusChangeSucceeded, type IDashboardFilterViewDefaultStatusChangeSucceededPayload, type IDashboardFilterViewDefaultStatusChangeFailed, type IDashboardFilterViewDefaultStatusChangeFailedPayload, type IDashboardFilterContextSelectionReset, type IDashboardFilterContextWorkingSelectionApplied, type IDashboardMeasureValueFilterConditionChanged, type IDashboardMeasureValueFilterConditionChangedPayload, type IDashboardMeasureValueFilterDimensionalityChanged, type IDashboardMeasureValueFilterDimensionalityChangedPayload, isDashboardMeasureValueFilterAdded, isDashboardMeasureValueFilterRemoved, isDashboardMeasureValueFilterMoved, isDashboardMeasureValueFilterTitleChanged, isDashboardMeasureValueFilterConfigModeChanged, isDashboardMeasureValueFilterConditionChanged, isDashboardMeasureValueFilterDimensionalityChanged, isDashboardAttributeFilterAdded, isDashboardAttributeFilterMoved, isDashboardAttributeFilterParentChanged, isDashboardAttributeFilterRemoved, isDashboardAttributeFilterSelectionChanged, isDashboardAttributeFilterItemSelectionReplaced, isDashboardAttributeFilterSelectionModeChanged, isDashboardAttributeFilterTitleChanged, isDashboardDateFilterSelectionChanged, isDashboardFilterContextChanged, isDashboardAttributeFilterConfigModeChanged, isDashboardAttributeFilterConfigLimitingItemsChanged, isDashboardFilterViewCreationSucceeded, isDashboardFilterViewCreationFailed, isDashboardFilterViewDeletionSucceeded, isDashboardFilterViewDeletionFailed, isDashboardFilterViewApplicationSucceeded, isDashboardFilterViewApplicationFailed, isDashboardFilterViewDefaultStatusChangeSucceeded, isDashboardFilterViewDefaultStatusChangeFailed, isDashboardFilterContextSelectionReset, isDashboardFilterContextWorkingSelectionApplied, filterContextSelectionReset, filterContextWorkingSelectionApplied, } from "./model/events/filters.js";
|
|
@@ -140,7 +140,7 @@ export { catalogActions } from "./model/store/catalog/index.js";
|
|
|
140
140
|
export type { SetCatalogMeasuresAndFactsPayload, SetCatalogItemsPayload, } from "./model/store/catalog/catalogReducers.js";
|
|
141
141
|
export type { IAddParameterPayload, IRemoveParameterPayload, ISetParameterRuntimeValuePayload, ISetParameterRuntimeValuesPayload, } from "./model/store/tabs/parameters/parametersReducers.js";
|
|
142
142
|
export type { IDashboardParameterEntry, IParametersState, } from "./model/store/tabs/parameters/parametersState.js";
|
|
143
|
-
export { selectDashboardParameterEntries, selectDashboardParameters, selectEffectiveParameterValuesForWidget, selectHasAnyResettableParameterOnActiveTab, selectIsParametersChanged, selectParameterRuntimeOverrideByRef, } from "./model/store/tabs/parameters/parametersSelectors.js";
|
|
143
|
+
export { selectDashboardParameterEntries, selectDashboardParameters, selectEffectiveParameterValuesForWidget, selectExportEffectiveParameters, selectHasAnyResettableParameterOnActiveTab, selectIsParametersChanged, selectParameterRuntimeOverrideByRef, } from "./model/store/tabs/parameters/parametersSelectors.js";
|
|
144
144
|
export { drillActions } from "./model/store/drill/index.js";
|
|
145
145
|
export { selectDrillableItems, selectIsCrossFiltering, selectCrossFilteringItems, selectCrossFilteringItemByWidgetRef, selectCrossFilteringFiltersLocalIdentifiers, selectCrossFilteringFiltersLocalIdentifiersByWidgetRef, selectCrossFilteringSelectedPointsByWidgetRef, selectIsFilterFromCrossFilteringByLocalIdentifier, } from "./model/store/drill/drillSelectors.js";
|
|
146
146
|
export type { IDrillState } from "./model/store/drill/drillState.js";
|
package/esm/index.js
CHANGED
|
@@ -42,11 +42,11 @@ export { changeRenderMode, cancelEditRenderMode, switchToEditRenderMode, } from
|
|
|
42
42
|
export { changeDashboardDensity, requestOpenDensityDialog, } from "./model/commands/density.js";
|
|
43
43
|
export { addDrillTargets, } from "./model/commands/drillTargets.js";
|
|
44
44
|
export { setShowWidgetAsTable, } from "./model/commands/showWidgetAsTable.js";
|
|
45
|
-
export { switchDashboardTab, repositionDashboardTab,
|
|
45
|
+
export { switchDashboardTab, repositionDashboardTab, createDashboardTab, deleteDashboardTab, startRenamingDashboardTab, cancelRenamingDashboardTab, renameDashboardTab, } from "./model/commands/tabs.js";
|
|
46
46
|
// Re-export from events
|
|
47
47
|
export { isDashboardEvent, isCustomDashboardEvent, isDashboardEventOrCustomDashboardEvent, } from "./model/events/base.js";
|
|
48
48
|
export { isDashboardSaved, isDashboardCopySaved, isDashboardInitialized, isDashboardDeinitialized, isDashboardRenamed, isDashboardWasReset, isDashboardDeleted, isDateFilterValidationFailed, isDashboardExportToPdfRequested, isDashboardExportToPdfResolved, isDashboardSharingChanged, isDashboardExportToExcelRequested, isDashboardExportToExcelResolved, isDashboardExportToPdfPresentationRequested, isDashboardExportToPdfPresentationResolved, isDashboardExportToPptPresentationResolved, isDashboardExportToPptPresentationRequested, isDashboardExportToImageRequested, isDashboardExportToImageResolved, isDashboardIgnoreExecutionTimestampChanged, } from "./model/events/dashboard.js";
|
|
49
|
-
export { dashboardTabSwitched, isDashboardTabSwitched, dashboardTabCreated, isDashboardTabCreated,
|
|
49
|
+
export { dashboardTabSwitched, isDashboardTabSwitched, dashboardTabCreated, isDashboardTabCreated, dashboardTabDeleted, isDashboardTabDeleted, dashboardTabRenamingStarted, isDashboardTabRenamingStarted, dashboardTabRenamingCanceled, isDashboardTabRenamingCanceled, dashboardTabRenamed, isDashboardTabRenamed, } from "./model/events/tabs.js";
|
|
50
50
|
export { parametersSelectionReset, isDashboardParametersSelectionReset, } from "./model/events/parameters.js";
|
|
51
51
|
export { isDashboardCommandStarted, isDashboardCommandFailed, isDashboardQueryFailed, isDashboardCommandRejected, isDashboardQueryCompleted, isDashboardQueryRejected, isDashboardQueryStarted, } from "./model/events/general.js";
|
|
52
52
|
export { isDashboardMeasureValueFilterAdded, isDashboardMeasureValueFilterRemoved, isDashboardMeasureValueFilterMoved, isDashboardMeasureValueFilterTitleChanged, isDashboardMeasureValueFilterConfigModeChanged, isDashboardMeasureValueFilterConditionChanged, isDashboardMeasureValueFilterDimensionalityChanged, isDashboardAttributeFilterAdded, isDashboardAttributeFilterMoved, isDashboardAttributeFilterParentChanged, isDashboardAttributeFilterRemoved, isDashboardAttributeFilterSelectionChanged, isDashboardAttributeFilterItemSelectionReplaced, isDashboardAttributeFilterSelectionModeChanged, isDashboardAttributeFilterTitleChanged, isDashboardDateFilterSelectionChanged, isDashboardFilterContextChanged, isDashboardAttributeFilterConfigModeChanged, isDashboardAttributeFilterConfigLimitingItemsChanged, isDashboardFilterViewCreationSucceeded, isDashboardFilterViewCreationFailed, isDashboardFilterViewDeletionSucceeded, isDashboardFilterViewDeletionFailed, isDashboardFilterViewApplicationSucceeded, isDashboardFilterViewApplicationFailed, isDashboardFilterViewDefaultStatusChangeSucceeded, isDashboardFilterViewDefaultStatusChangeFailed, isDashboardFilterContextSelectionReset, isDashboardFilterContextWorkingSelectionApplied, filterContextSelectionReset, filterContextWorkingSelectionApplied, } from "./model/events/filters.js";
|
|
@@ -101,7 +101,7 @@ export { selectDateFilterConfigsOverrides, selectDateFilterConfigsOverridesByTab
|
|
|
101
101
|
export { selectInsights, selectInsightRefs, selectInsightsMap, selectInsightByRef, selectInsightByWidgetRef, selectRawExportOverridesForInsightByRef, } from "./model/store/insights/insightsSelectors.js";
|
|
102
102
|
export { selectCatalogIsLoaded, selectAttributesWithDrillDown, selectCatalogAttributes, selectCatalogAttributeDisplayForms, selectCatalogDateDatasets, selectCatalogFacts, selectCatalogMeasures, selectAllCatalogAttributesMap, selectAllCatalogDisplayFormsMap, selectAllCatalogDateDatasetsMap, selectAllCatalogMeasuresMap, selectHasCatalogAttributes, selectHasCatalogMeasures, selectHasCatalogDateDatasets, selectHasCatalogFacts, selectCatalogAttributeHierarchies, selectCatalogDateAttributes, selectDateHierarchyTemplates, selectAdhocDateHierarchies, selectAllCatalogAttributeHierarchies, selectCatalogAttributeDisplayFormsById, selectCatalogParameters, selectCatalogParametersStatus, selectCatalogParametersIsLoaded, selectCatalogMeasureParameters, selectCatalogMeasureParametersStatus, } from "./model/store/catalog/catalogSelectors.js";
|
|
103
103
|
export { catalogActions } from "./model/store/catalog/index.js";
|
|
104
|
-
export { selectDashboardParameterEntries, selectDashboardParameters, selectEffectiveParameterValuesForWidget, selectHasAnyResettableParameterOnActiveTab, selectIsParametersChanged, selectParameterRuntimeOverrideByRef, } from "./model/store/tabs/parameters/parametersSelectors.js";
|
|
104
|
+
export { selectDashboardParameterEntries, selectDashboardParameters, selectEffectiveParameterValuesForWidget, selectExportEffectiveParameters, selectHasAnyResettableParameterOnActiveTab, selectIsParametersChanged, selectParameterRuntimeOverrideByRef, } from "./model/store/tabs/parameters/parametersSelectors.js";
|
|
105
105
|
export { drillActions } from "./model/store/drill/index.js";
|
|
106
106
|
export { selectDrillableItems, selectIsCrossFiltering, selectCrossFilteringItems, selectCrossFilteringItemByWidgetRef, selectCrossFilteringFiltersLocalIdentifiers, selectCrossFilteringFiltersLocalIdentifiersByWidgetRef, selectCrossFilteringSelectedPointsByWidgetRef, selectIsFilterFromCrossFilteringByLocalIdentifier, } from "./model/store/drill/drillSelectors.js";
|
|
107
107
|
export { selectCurrentUser, selectCurrentUserRef } from "./model/store/user/userSelectors.js";
|
|
@@ -6,7 +6,8 @@ import { selectExportResultPollingTimeout } from "../../store/config/configSelec
|
|
|
6
6
|
import { selectFilterViews } from "../../store/filterViews/filterViewsReducersSelectors.js";
|
|
7
7
|
import { selectDashboardRef, selectIsFiltersChanged } from "../../store/meta/metaSelectors.js";
|
|
8
8
|
import { selectFilterContextFilters, selectFiltersByTab, } from "../../store/tabs/filterContext/filterContextSelectors.js";
|
|
9
|
-
|
|
9
|
+
import { selectExportEffectiveParameters } from "../../store/tabs/parameters/parametersSelectors.js";
|
|
10
|
+
function exportDashboardToTabular(ctx, dashboardRef, title, mergeHeaders, exportInfo, widgetIds, dashboardFiltersOverride, filtersByTab, dashboardTabsParametersOverrides, format, pdfConfiguration, timeout) {
|
|
10
11
|
const { backend, workspace } = ctx;
|
|
11
12
|
return backend.workspace(workspace).dashboards().exportDashboardToTabular(dashboardRef, {
|
|
12
13
|
title,
|
|
@@ -15,6 +16,7 @@ function exportDashboardToTabular(ctx, dashboardRef, title, mergeHeaders, export
|
|
|
15
16
|
exportInfo,
|
|
16
17
|
dashboardFiltersOverride,
|
|
17
18
|
dashboardTabsFiltersOverrides: filtersByTab,
|
|
19
|
+
dashboardTabsParametersOverrides,
|
|
18
20
|
widgetIds,
|
|
19
21
|
pdfConfiguration,
|
|
20
22
|
timeout,
|
|
@@ -32,8 +34,9 @@ export function* exportToTabularHandler(ctx, cmd) {
|
|
|
32
34
|
const hasDefaultFilterViewApplied = filterViews.some((filterView) => filterView.isDefault);
|
|
33
35
|
const filterContextFilters = yield select(selectFilterContextFilters);
|
|
34
36
|
const filtersByTab = yield select(selectFiltersByTab);
|
|
37
|
+
const parametersByTab = yield select(selectExportEffectiveParameters(widgetIds));
|
|
35
38
|
const timeout = yield select(selectExportResultPollingTimeout);
|
|
36
|
-
const result = yield call(exportDashboardToTabular, ctx, dashboardRef, fileName, mergeHeaders, exportInfo, widgetIds, isFilterContextChanged || hasDefaultFilterViewApplied ? filterContextFilters : undefined, isFilterContextChanged || hasDefaultFilterViewApplied ? filtersByTab : undefined, format, pdfConfiguration, timeout);
|
|
39
|
+
const result = yield call(exportDashboardToTabular, ctx, dashboardRef, fileName, mergeHeaders, exportInfo, widgetIds, isFilterContextChanged || hasDefaultFilterViewApplied ? filterContextFilters : undefined, isFilterContextChanged || hasDefaultFilterViewApplied ? filtersByTab : undefined, parametersByTab, format, pdfConfiguration, timeout);
|
|
37
40
|
// prepend hostname if provided so that the results are downloaded from there, not from where the app is hosted
|
|
38
41
|
const fullUri = ctx.backend.config.hostname
|
|
39
42
|
? new URL(result.uri, ctx.backend.config.hostname).href
|
|
@@ -50,6 +50,11 @@ function processExistingTabsForSaveAs(tabs, parametersByTab, useOriginalFilterCo
|
|
|
50
50
|
const measureValueFilterConfigsProp = measureValueFilterConfigs?.length
|
|
51
51
|
? { measureValueFilterConfigs }
|
|
52
52
|
: {};
|
|
53
|
+
const filterGroupsConfigProp = tab.filterGroupsConfig
|
|
54
|
+
? {
|
|
55
|
+
filterGroupsConfig: tab.filterGroupsConfig,
|
|
56
|
+
}
|
|
57
|
+
: {};
|
|
53
58
|
// Get this tab's specific layout, filter out custom widgets, then process
|
|
54
59
|
const tabLayout = tab.layout?.layout
|
|
55
60
|
? processLayout(filterOutCustomWidgets(tab.layout.layout))
|
|
@@ -73,6 +78,7 @@ function processExistingTabsForSaveAs(tabs, parametersByTab, useOriginalFilterCo
|
|
|
73
78
|
...dateFilterConfigsProp,
|
|
74
79
|
...attributeFilterConfigsProp,
|
|
75
80
|
...measureValueFilterConfigsProp,
|
|
81
|
+
...filterGroupsConfigProp,
|
|
76
82
|
// Always persist `parameters` (incl. `[]`) so V1 root fallback never re-hydrates stale
|
|
77
83
|
// root parameters when every tab has been emptied.
|
|
78
84
|
parameters: tabParameters,
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
import { batchActions } from "redux-batched-actions";
|
|
3
3
|
import { call, put, select } from "redux-saga/effects";
|
|
4
4
|
import { invariant } from "ts-invariant";
|
|
5
|
-
import { v4 as uuid } from "uuid";
|
|
6
5
|
import { isTempFilterContext, } from "@gooddata/sdk-model";
|
|
7
6
|
import { dashboardFilterContextIdentity } from "../../../_staging/dashboard/dashboardFilterContext.js";
|
|
8
7
|
import { dashboardLayoutRemoveIdentity, dashboardLayoutWidgetIdentityMap, } from "../../../_staging/dashboard/dashboardLayout.js";
|
|
@@ -20,16 +19,18 @@ import { metaActions } from "../../store/meta/index.js";
|
|
|
20
19
|
import { selectDashboardDescriptor, selectPersistedDashboard } from "../../store/meta/metaSelectors.js";
|
|
21
20
|
import { selectIsInViewMode } from "../../store/renderMode/renderModeSelectors.js";
|
|
22
21
|
import { savingActions } from "../../store/saving/index.js";
|
|
23
|
-
import {
|
|
24
|
-
import {
|
|
25
|
-
import {
|
|
26
|
-
import {
|
|
22
|
+
import { selectAttributeFilterConfigsOverridesByTab } from "../../store/tabs/attributeFilterConfigs/attributeFilterConfigsSelectors.js";
|
|
23
|
+
import { selectDateFilterConfigOverridesByTab } from "../../store/tabs/dateFilterConfig/dateFilterConfigSelectors.js";
|
|
24
|
+
import { selectDateFilterConfigsOverridesByTab } from "../../store/tabs/dateFilterConfigs/dateFilterConfigsSelectors.js";
|
|
25
|
+
import { selectFilterContextStatesByTab } from "../../store/tabs/filterContext/filterContextSelectors.js";
|
|
27
26
|
import { tabsActions } from "../../store/tabs/index.js";
|
|
28
|
-
import { filterOutCustomWidgets,
|
|
29
|
-
import {
|
|
27
|
+
import { filterOutCustomWidgets, selectBasicLayoutByTab } from "../../store/tabs/layout/layoutSelectors.js";
|
|
28
|
+
import { selectMeasureValueFilterConfigsOverridesByTab } from "../../store/tabs/measureValueFilterConfigs/measureValueFilterConfigsSelectors.js";
|
|
30
29
|
import { selectSmartPersistedTabsParameters } from "../../store/tabs/parameters/parametersSelectors.js";
|
|
31
30
|
import { selectTabs } from "../../store/tabs/tabsSelectors.js";
|
|
31
|
+
import { DEFAULT_TAB_ID } from "../../store/tabs/tabsState.js";
|
|
32
32
|
import { isTemporaryIdentity } from "../../utils/dashboardItemUtils.js";
|
|
33
|
+
import { generateTabLocalIdentifier } from "../../utils/tabLocalIdentifier.js";
|
|
33
34
|
import { changeRenderModeHandler } from "../renderMode/changeRenderModeHandler.js";
|
|
34
35
|
import { switchDashboardTabHandler } from "../tabs/switchDashboardTabHandler.js";
|
|
35
36
|
function createDashboard(ctx, saveCtx) {
|
|
@@ -69,7 +70,7 @@ export function getDashboardWithSharing(dashboard, sharingSupported = true, isNe
|
|
|
69
70
|
* @param parametersByTab - Smart-persisted parameters keyed by tab localIdentifier
|
|
70
71
|
* @returns Array of IDashboardTab objects ready for saving to backend
|
|
71
72
|
*/
|
|
72
|
-
function processExistingTabs(tabs, parametersByTab) {
|
|
73
|
+
function processExistingTabs(tabs, parametersByTab, defaultTabNewLocalIdentifier) {
|
|
73
74
|
return tabs.map((tab) => {
|
|
74
75
|
const dateFilterConfig = tab.dateFilterConfig?.dateFilterConfig;
|
|
75
76
|
const dateFilterConfigProp = dateFilterConfig ? { dateFilterConfig } : {};
|
|
@@ -97,7 +98,9 @@ function processExistingTabs(tabs, parametersByTab) {
|
|
|
97
98
|
const tabParameters = parametersByTab[tab.localIdentifier] ?? [];
|
|
98
99
|
const result = {
|
|
99
100
|
// explicitly type the result to avoid type errors caused by spread operators
|
|
100
|
-
localIdentifier: tab.localIdentifier
|
|
101
|
+
localIdentifier: tab.localIdentifier === DEFAULT_TAB_ID && defaultTabNewLocalIdentifier
|
|
102
|
+
? defaultTabNewLocalIdentifier
|
|
103
|
+
: tab.localIdentifier,
|
|
101
104
|
title: tab.title ?? "",
|
|
102
105
|
// Use each tab's own layout, filter out custom widgets, then process
|
|
103
106
|
layout: tabLayout ? processLayout(filterOutCustomWidgets(tabLayout)) : undefined,
|
|
@@ -127,7 +130,7 @@ function buildOptionalFilterConfigsProps(attributeFilterConfigs, dateFilterConfi
|
|
|
127
130
|
function createDefaultTab(layout, rootFilterContext, dateFilterConfig, attributeFilterConfigs, dateFilterConfigs, measureValueFilterConfigs) {
|
|
128
131
|
return [
|
|
129
132
|
{
|
|
130
|
-
localIdentifier:
|
|
133
|
+
localIdentifier: generateTabLocalIdentifier(),
|
|
131
134
|
title: "",
|
|
132
135
|
layout: layout ? processLayout(layout) : undefined,
|
|
133
136
|
filterContext: rootFilterContext,
|
|
@@ -136,14 +139,14 @@ function createDefaultTab(layout, rootFilterContext, dateFilterConfig, attribute
|
|
|
136
139
|
},
|
|
137
140
|
];
|
|
138
141
|
}
|
|
139
|
-
function resolveProcessedTabs(tabs, rootFilterContext, layout, dateFilterConfig, attributeFilterConfigs, dateFilterConfigs, measureValueFilterConfigs, parametersByTab) {
|
|
142
|
+
function resolveProcessedTabs(tabs, rootFilterContext, layout, dateFilterConfig, attributeFilterConfigs, dateFilterConfigs, measureValueFilterConfigs, parametersByTab, defaultTabNewLocalIdentifier) {
|
|
140
143
|
// If no tabs exist, create a default tab with root-level properties
|
|
141
144
|
const shouldCreateDefaultTab = !tabs || tabs.length === 0;
|
|
142
145
|
if (shouldCreateDefaultTab && rootFilterContext) {
|
|
143
146
|
return createDefaultTab(layout, rootFilterContext, dateFilterConfig, attributeFilterConfigs, dateFilterConfigs, measureValueFilterConfigs);
|
|
144
147
|
}
|
|
145
148
|
if (tabs) {
|
|
146
|
-
return processExistingTabs(tabs, parametersByTab);
|
|
149
|
+
return processExistingTabs(tabs, parametersByTab, defaultTabNewLocalIdentifier);
|
|
147
150
|
}
|
|
148
151
|
return undefined;
|
|
149
152
|
}
|
|
@@ -156,14 +159,31 @@ function resolveProcessedTabs(tabs, rootFilterContext, layout, dateFilterConfig,
|
|
|
156
159
|
function* createDashboardSaveContext(cmd, isNewDashboard) {
|
|
157
160
|
const persistedDashboard = yield select(selectPersistedDashboard);
|
|
158
161
|
const dashboardDescriptor = yield select(selectDashboardDescriptor);
|
|
159
|
-
const filterContextDefinition = yield select(selectFilterContextDefinition);
|
|
160
|
-
const filterContextIdentity = yield select(selectFilterContextIdentity);
|
|
161
|
-
const layout = yield select(selectBasicLayout);
|
|
162
|
-
const dateFilterConfig = yield select(selectDateFilterConfigOverrides);
|
|
163
|
-
const attributeFilterConfigs = yield select(selectAttributeFilterConfigsOverrides);
|
|
164
|
-
const dateFilterConfigs = yield select(selectDateFilterConfigsOverrides);
|
|
165
|
-
const measureValueFilterConfigs = yield select(selectMeasureValueFilterConfigsOverrides);
|
|
166
162
|
const tabs = yield select(selectTabs);
|
|
163
|
+
// Generate a real UUID for the UI placeholder tab (DEFAULT_TAB_ID) only when it has never
|
|
164
|
+
// been persisted. If the backend already owns a tab with that identifier (e.g. set intentionally
|
|
165
|
+
// via API or as-code definition) we must leave it unchanged.
|
|
166
|
+
const hasPersistedDefaultTab = persistedDashboard?.tabs?.some((t) => t.localIdentifier === DEFAULT_TAB_ID);
|
|
167
|
+
const defaultTabNewLocalIdentifier = !hasPersistedDefaultTab && tabs?.some((t) => t.localIdentifier === DEFAULT_TAB_ID)
|
|
168
|
+
? generateTabLocalIdentifier()
|
|
169
|
+
: undefined;
|
|
170
|
+
// Root-level properties must always reflect the first tab, regardless of which tab is active.
|
|
171
|
+
// Using active-tab selectors here would persist the wrong data when saving from a non-first tab.
|
|
172
|
+
const firstTabId = tabs?.[0]?.localIdentifier;
|
|
173
|
+
const filterContextStatesByTab = yield select(selectFilterContextStatesByTab);
|
|
174
|
+
const basicLayoutByTab = yield select(selectBasicLayoutByTab);
|
|
175
|
+
const dateFilterConfigByTab = yield select(selectDateFilterConfigOverridesByTab);
|
|
176
|
+
const attributeFilterConfigsByTab = yield select(selectAttributeFilterConfigsOverridesByTab);
|
|
177
|
+
const dateFilterConfigsByTab = yield select(selectDateFilterConfigsOverridesByTab);
|
|
178
|
+
const measureValueFilterConfigsByTab = yield select(selectMeasureValueFilterConfigsOverridesByTab);
|
|
179
|
+
const firstTabFilterContextState = firstTabId ? filterContextStatesByTab[firstTabId] : undefined;
|
|
180
|
+
const filterContextDefinition = firstTabFilterContextState?.filterContextDefinition;
|
|
181
|
+
const filterContextIdentity = firstTabFilterContextState?.filterContextIdentity;
|
|
182
|
+
const layout = firstTabId ? basicLayoutByTab[firstTabId] : undefined;
|
|
183
|
+
const dateFilterConfig = firstTabId ? dateFilterConfigByTab[firstTabId] : undefined;
|
|
184
|
+
const attributeFilterConfigs = firstTabId ? attributeFilterConfigsByTab[firstTabId] : undefined;
|
|
185
|
+
const dateFilterConfigs = firstTabId ? dateFilterConfigsByTab[firstTabId] : undefined;
|
|
186
|
+
const measureValueFilterConfigs = firstTabId ? measureValueFilterConfigsByTab[firstTabId] : undefined;
|
|
167
187
|
const parametersByTab = yield select(selectSmartPersistedTabsParameters);
|
|
168
188
|
const capabilities = yield select(selectBackendCapabilities);
|
|
169
189
|
/*
|
|
@@ -184,7 +204,7 @@ function* createDashboardSaveContext(cmd, isNewDashboard) {
|
|
|
184
204
|
...filterContextDefinition,
|
|
185
205
|
}
|
|
186
206
|
: undefined;
|
|
187
|
-
const processedTabs = resolveProcessedTabs(tabs, rootFilterContext, layout, dateFilterConfig, attributeFilterConfigs, dateFilterConfigs, measureValueFilterConfigs, parametersByTab);
|
|
207
|
+
const processedTabs = resolveProcessedTabs(tabs, rootFilterContext, layout, dateFilterConfig, attributeFilterConfigs, dateFilterConfigs, measureValueFilterConfigs, parametersByTab, defaultTabNewLocalIdentifier);
|
|
188
208
|
const locale = yield select(selectLocale);
|
|
189
209
|
const translations = yield call(resolveMessages, locale);
|
|
190
210
|
const title = (cmd.payload.title ?? dashboardDescriptor.title) || translations[messages.untitled.id];
|
|
@@ -195,10 +215,12 @@ function* createDashboardSaveContext(cmd, isNewDashboard) {
|
|
|
195
215
|
...dashboardDescriptor,
|
|
196
216
|
title,
|
|
197
217
|
...dashboardIdentity,
|
|
198
|
-
filterContext:
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
218
|
+
filterContext: filterContextDefinition
|
|
219
|
+
? {
|
|
220
|
+
...filterContextIdentity,
|
|
221
|
+
...filterContextDefinition,
|
|
222
|
+
}
|
|
223
|
+
: undefined,
|
|
202
224
|
layout,
|
|
203
225
|
dateFilterConfig,
|
|
204
226
|
...buildOptionalFilterConfigsProps(attributeFilterConfigs, dateFilterConfigs, measureValueFilterConfigs),
|
|
@@ -207,13 +229,14 @@ function* createDashboardSaveContext(cmd, isNewDashboard) {
|
|
|
207
229
|
};
|
|
208
230
|
const dashboardToSave = {
|
|
209
231
|
...dashboardFromState,
|
|
210
|
-
layout: dashboardLayoutRemoveIdentity(layout, isTemporaryIdentity),
|
|
232
|
+
layout: layout ? dashboardLayoutRemoveIdentity(layout, isTemporaryIdentity) : undefined,
|
|
211
233
|
};
|
|
212
234
|
return {
|
|
213
235
|
cmd,
|
|
214
236
|
persistedDashboard,
|
|
215
237
|
dashboardFromState,
|
|
216
238
|
dashboardToSave: getDashboardWithSharing(dashboardToSave, capabilities.supportsAccessControl, isNewDashboard),
|
|
239
|
+
defaultTabNewLocalIdentifier,
|
|
217
240
|
};
|
|
218
241
|
}
|
|
219
242
|
function* save(ctx, saveCtx, saveFn, saveActionName) {
|
|
@@ -236,9 +259,15 @@ function* save(ctx, saveCtx, saveFn, saveActionName) {
|
|
|
236
259
|
const stateTabs = yield select(selectTabs);
|
|
237
260
|
// For each tab in the saved dashboard, update its widget identities and filter context identity
|
|
238
261
|
dashboard.tabs.forEach((savedTab) => {
|
|
239
|
-
|
|
262
|
+
// If this tab was the DEFAULT_TAB_ID placeholder being saved for the first time,
|
|
263
|
+
// find the state tab by DEFAULT_TAB_ID (its current state ID) and use it as the tabId
|
|
264
|
+
// for identity updates. resolveDefaultTab (pushed below) will rename it afterwards.
|
|
265
|
+
const isDefaultTabBeingSaved = savedTab.localIdentifier === saveCtx.defaultTabNewLocalIdentifier;
|
|
266
|
+
const stateTab = isDefaultTabBeingSaved
|
|
267
|
+
? stateTabs?.find((t) => t.localIdentifier === DEFAULT_TAB_ID)
|
|
268
|
+
: stateTabs?.find((t) => t.localIdentifier === savedTab.localIdentifier);
|
|
269
|
+
const tabIdForUpdate = stateTab?.localIdentifier ?? savedTab.localIdentifier;
|
|
240
270
|
// Update filter context identity for this tab
|
|
241
|
-
// Extract identity directly from the filter context
|
|
242
271
|
const filterContext = savedTab.filterContext;
|
|
243
272
|
const filterContextIdentity = filterContext && !isTempFilterContext(filterContext) && filterContext.ref
|
|
244
273
|
? {
|
|
@@ -248,20 +277,26 @@ function* save(ctx, saveCtx, saveFn, saveActionName) {
|
|
|
248
277
|
}
|
|
249
278
|
: undefined;
|
|
250
279
|
actions.push(tabsActions.updateFilterContextIdentityForTab({
|
|
251
|
-
tabId:
|
|
280
|
+
tabId: tabIdForUpdate,
|
|
252
281
|
filterContextIdentity,
|
|
253
282
|
}));
|
|
254
283
|
// Update widget identities for this tab if both layouts exist
|
|
255
284
|
if (stateTab?.layout?.layout && savedTab.layout) {
|
|
256
|
-
// Filter out custom widgets from state layout to match the saved layout structure
|
|
257
285
|
const stateLayoutWithoutCustomWidgets = filterOutCustomWidgets(stateTab.layout.layout);
|
|
258
286
|
const mapping = dashboardLayoutWidgetIdentityMap(stateLayoutWithoutCustomWidgets, savedTab.layout);
|
|
259
287
|
actions.push(tabsActions.updateWidgetIdentitiesForTab({
|
|
260
|
-
tabId:
|
|
288
|
+
tabId: tabIdForUpdate,
|
|
261
289
|
mapping,
|
|
262
290
|
}));
|
|
263
291
|
}
|
|
264
292
|
});
|
|
293
|
+
// After all identity updates, rename DEFAULT_TAB_ID to its real UUID in state.
|
|
294
|
+
// This makes the identifier stable for filter views, drill targets, and future saves.
|
|
295
|
+
if (saveCtx.defaultTabNewLocalIdentifier) {
|
|
296
|
+
actions.push(tabsActions.resolveDefaultTab({
|
|
297
|
+
newLocalIdentifier: saveCtx.defaultTabNewLocalIdentifier,
|
|
298
|
+
}));
|
|
299
|
+
}
|
|
265
300
|
}
|
|
266
301
|
else {
|
|
267
302
|
// For dashboards without tabs, use the original approach with active tab actions
|
|
@@ -87,7 +87,6 @@ import { refreshAutomationsHandlers } from "./scheduledEmail/refreshAutomationsH
|
|
|
87
87
|
import { saveScheduledEmailHandler } from "./scheduledEmail/saveScheduledEmailHandler.js";
|
|
88
88
|
import { handleSetWidgetToShowAsTable } from "./showWidgetAsTable/showWidgetAsTableHandler.js";
|
|
89
89
|
import { cancelRenamingDashboardTabHandler } from "./tabs/cancelRenamingDashboardTabHandler.js";
|
|
90
|
-
import { convertDashboardTabFromDefaultHandler } from "./tabs/convertDashboardTabFromDefaultHandler.js";
|
|
91
90
|
import { createDashboardTabHandler } from "./tabs/createDashboardTabHandler.js";
|
|
92
91
|
import { deleteDashboardTabHandler } from "./tabs/deleteDashboardTabHandler.js";
|
|
93
92
|
import { renameDashboardTabHandler } from "./tabs/renameDashboardTabHandler.js";
|
|
@@ -254,7 +253,6 @@ export const DefaultCommandHandlers = {
|
|
|
254
253
|
"GDC.DASH/CMD.CHANGE_IGNORE_EXECUTION_TIMESTAMP": changeIgnoreExecutionTimestampHandler,
|
|
255
254
|
"GDC.DASH/CMD.SHOW_WIDGET_AS_TABLE.SET": handleSetWidgetToShowAsTable,
|
|
256
255
|
"GDC.DASH/CMD.TAB.CREATE": createDashboardTabHandler,
|
|
257
|
-
"GDC.DASH/CMD.TAB.CONVERT_FROM_DEFAULT": convertDashboardTabFromDefaultHandler,
|
|
258
256
|
"GDC.DASH/CMD.TAB.SWITCH": switchDashboardTabHandler,
|
|
259
257
|
"GDC.DASH/CMD.TAB.REPOSITION": repositionDashboardTabHandler,
|
|
260
258
|
"GDC.DASH/CMD.TAB.DELETE": deleteDashboardTabHandler,
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
// (C) 2025-2026 GoodData Corporation
|
|
2
2
|
import { call, put, select } from "redux-saga/effects";
|
|
3
|
-
import { v4 as uuid } from "uuid";
|
|
4
3
|
import { createDefaultFilterContext } from "../../../_staging/dashboard/defaultFilterContext.js";
|
|
5
4
|
import { DEFAULT_FISCAL_DATE_FILTER_PRESET } from "../../../_staging/dateFilterConfig/defaultConfig.js";
|
|
6
5
|
import { configHasFiscalPresets } from "../../../_staging/dateFilterConfig/validation.js";
|
|
@@ -12,6 +11,7 @@ import { selectActiveCalendars, selectDateFilterConfig } from "../../store/confi
|
|
|
12
11
|
import { tabsActions } from "../../store/tabs/index.js";
|
|
13
12
|
import { selectScreen } from "../../store/tabs/layout/layoutSelectors.js";
|
|
14
13
|
import { selectActiveTabLocalIdentifier, selectTabs } from "../../store/tabs/tabsSelectors.js";
|
|
14
|
+
import { generateTabLocalIdentifier } from "../../utils/tabLocalIdentifier.js";
|
|
15
15
|
import { EmptyDashboardLayout } from "../dashboard/common/dashboardInitialize.js";
|
|
16
16
|
import { switchDashboardTabHandler } from "./switchDashboardTabHandler.js";
|
|
17
17
|
const getTabState = ({ title, localIdentifier, isRenaming, filterContext, dateFilterConfig, dateFilterConfigs, attributeFilterConfigs, layout, screen, }) => {
|
|
@@ -61,7 +61,7 @@ export function* createDashboardTabHandler(ctx, cmd) {
|
|
|
61
61
|
configHasFiscalPresets(dateFilterConfig)
|
|
62
62
|
? { ...dateFilterConfig, selectedOption: DEFAULT_FISCAL_DATE_FILTER_PRESET }
|
|
63
63
|
: dateFilterConfig;
|
|
64
|
-
const newTabId =
|
|
64
|
+
const newTabId = generateTabLocalIdentifier();
|
|
65
65
|
const newTabFilterContext = createDefaultFilterContext(effectiveDateFilterConfig, true);
|
|
66
66
|
const newTab = getTabState({
|
|
67
67
|
localIdentifier: newTabId,
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
*
|
|
10
10
|
* @public
|
|
11
11
|
*/
|
|
12
|
-
export type DashboardCommandType = "GDC.DASH/CMD.INITIALIZE" | "GDC.DASH/CMD.SAVE" | "GDC.DASH/CMD.SAVEAS" | "GDC.DASH/CMD.RESET" | "GDC.DASH/CMD.RENAME" | "GDC.DASH/CMD.DELETE" | "GDC.DASH/CMD.CHANGE_RENDER_MODE" | "GDC.DASH/CMD.SHARING.CHANGE" | "GDC.DASH/CMD.EXPORT.PDF" | "GDC.DASH/CMD.EXPORT.EXCEL" | "GDC.DASH/CMD.EXPORT.PDF_PRESENTATION" | "GDC.DASH/CMD.EXPORT.PPT_PRESENTATION" | "GDC.DASH/CMD.EVENT.TRIGGER" | "GDC.DASH/CMD.EXECUTION_RESULT.UPSERT" | "GDC.DASH/CMD.FILTER_CONTEXT.CHANGE_SELECTION" | "GDC.DASH/CMD.FILTER_CONTEXT.DATE_FILTER.CHANGE_SELECTION" | "GDC.DASH/CMD.FILTER_CONTEXT.ATTRIBUTE_FILTER.ADD" | "GDC.DASH/CMD.FILTER_CONTEXT.TEXT_ATTRIBUTE_FILTER.ADD" | "GDC.DASH/CMD.FILTER_CONTEXT.ATTRIBUTE_FILTER.REMOVE" | "GDC.DASH/CMD.FILTER_CONTEXT.ATTRIBUTE_FILTER.MOVE" | "GDC.DASH/CMD.FILTER_CONTEXT.ATTRIBUTE_FILTER.CHANGE_SELECTION" | "GDC.DASH/CMD.FILTER_CONTEXT.ATTRIBUTE_FILTER_ITEM.REPLACE_SELECTION" | "GDC.DASH/CMD.FILTER_CONTEXT.ATTRIBUTE_FILTER.SET_PARENTS" | "GDC.DASH/CMD.FILTER_CONTEXT.ATTRIBUTE_FILTER.SET_DISPLAY_FORM" | "GDC.DASH/CMD.FILTER_CONTEXT.ATTRIBUTE_FILTER.SET_TITLE" | "GDC.DASH/CMD.FILTER_CONTEXT.ATTRIBUTE_FILTER.SET_SELECTION_MODE" | "GDC.DASH/CMD.FILTER_CONTEXT.ATTRIBUTE_FILTER.SET_DEPENDENT_DATE_FILTERS" | "GDC.DASH/CMD.FILTER_CONTEXT.DATE_FILTER.ADD" | "GDC.DASH/CMD.FILTER_CONTEXT.DATE_FILTER.REMOVE" | "GDC.DASH/CMD.FILTER_CONTEXT.DATE_FILTER.MOVE" | "GDC.DASH/CMD.FILTER_CONTEXT.MEASURE_VALUE_FILTER.ADD" | "GDC.DASH/CMD.FILTER_CONTEXT.MEASURE_VALUE_FILTER.REMOVE" | "GDC.DASH/CMD.FILTER_CONTEXT.MEASURE_VALUE_FILTER.MOVE" | "GDC.DASH/CMD.FILTER_CONTEXT.MEASURE_VALUE_FILTER.CHANGE_CONDITION" | "GDC.DASH/CMD.FILTER_CONTEXT.MEASURE_VALUE_FILTER.SET_DIMENSIONALITY" | "GDC.DASH/CMD.FILTER_CONTEXT.MEASURE_VALUE_FILTER.SET_TITLE" | "GDC.DASH/CMD.ATTRIBUTE_FILTER_CONFIG.SET_MODE" | "GDC.DASH/CMD.MEASURE_VALUE_FILTER_CONFIG.SET_MODE" | "GDC.DASH/CMD.ATTRIBUTE_FILTER_CONFIG.SET_AVAILABLE_MODE" | "GDC.DASH/CMD.ATTRIBUTE_FILTER_CONFIG.SET_LIMITING_ITEMS" | "GDC.DASH/CMD.ATTRIBUTE_FILTER_CONFIG.SET_DISPLAY_AS_LABEL" | "GDC.DASH/CMD.DATE_FILTER_CONFIG.SET_MODE" | "GDC.DASH/CMD.DATE_FILTER_WITH_DIMENSION_CONFIG.SET_MODE" | "GDC.DASH/CMD.DATE_FILTER_CONFIG.SET_TITLE" | "GDC.DASH/CMD.FLUID_LAYOUT.ADD_SECTION" | "GDC.DASH/CMD.FLUID_LAYOUT.MOVE_SECTION" | "GDC.DASH/CMD.FLUID_LAYOUT.MOVE_ITEM_TO_NEW_SECTION" | "GDC.DASH/CMD.FLUID_LAYOUT.REMOVE_SECTION" | "GDC.DASH/CMD.FLUID_LAYOUT.CHANGE_SECTION_HEADER" | "GDC.DASH/CMD.FLUID_LAYOUT.ADD_ITEMS" | "GDC.DASH/CMD.FLUID_LAYOUT.REPLACE_ITEM" | "GDC.DASH/CMD.FLUID_LAYOUT.MOVE_ITEM" | "GDC.DASH/CMD.FLUID_LAYOUT.REMOVE_ITEM" | "GDC.DASH/CMD.FLUID_LAYOUT.REMOVE_ITEM_BY_WIDGET_REF" | "GDC.DASH/CMD.FLUID_LAYOUT.UNDO" | "GDC.DASH/CMD.FLUID_LAYOUT.RESIZE_HEIGHT" | "GDC.DASH/CMD.FLUID_LAYOUT.RESIZE_WIDTH" | "GDC.DASH/CMD.FLUID_LAYOUT.SET_SCREEN_SIZE" | "GDC.DASH/CMD.FLEXIBLE_LAYOUT.TOGGLE_LAYOUT_SECTION_HEADERS" | "GDC.DASH/CMD.FLEXIBLE_LAYOUT.TOGGLE_LAYOUT_DIRECTION" | "GDC.DASH/CMD.KPI_WIDGET.CHANGE_HEADER" | "GDC.DASH/CMD.KPI_WIDGET.CHANGE_MEASURE" | "GDC.DASH/CMD.KPI_WIDGET.CHANGE_FILTER_SETTINGS" | "GDC.DASH/CMD.KPI_WIDGET.CHANGE_COMPARISON" | "GDC.DASH/CMD.KPI_WIDGET.REFRESH" | "GDC.DASH/CMD.KPI_WIDGET.SET_DRILL" | "GDC.DASH/CMD.KPI_WIDGET.REMOVE_DRILL" | "GDC.DASH/CMD.KPI_WIDGET.CHANGE_DESCRIPTION" | "GDC.DASH/CMD.KPI_WIDGET.CHANGE_CONFIGURATION" | "GDC.DASH/CMD.INSIGHT_WIDGET.CHANGE_HEADER" | "GDC.DASH/CMD.INSIGHT_WIDGET.CHANGE_DESCRIPTION" | "GDC.DASH/CMD.INSIGHT_WIDGET.CHANGE_FILTER_SETTINGS" | "GDC.DASH/CMD.INSIGHT_WIDGET.CHANGE_PROPERTIES" | "GDC.DASH/CMD.INSIGHT_WIDGET.CHANGE_CONFIGURATION" | "GDC.DASH/CMD.INSIGHT_WIDGET.CHANGE_INSIGHT" | "GDC.DASH/CMD.INSIGHT_WIDGET.CHANGE_IGNORE_CROSS_FILTERING" | "GDC.DASH/CMD.INSIGHT_WIDGET.EXPORT" | "GDC.DASH/CMD.INSIGHT_WIDGET.MODIFY_DRILLS" | "GDC.DASH/CMD.INSIGHT_WIDGET.REMOVE_DRILLS" | "GDC.DASH/CMD.INSIGHT_WIDGET.REMOVE_DRILL_DOWN" | "GDC.DASH/CMD.INSIGHT_WIDGET.REMOVE_DRILL_TO_URL" | "GDC.DASH/CMD.INSIGHT_WIDGET.ADD_DRILL_DOWN" | "GDC.DASH/CMD.INSIGHT_WIDGET.MODIFY_DRILL_DOWN" | "GDC.DASH/CMD.INSIGHT_WIDGET.REFRESH" | "GDC.DASH/CMD.RICH_TEXT_WIDGET.CHANGE_CONTENT" | "GDC.DASH/CMD.RICH_TEXT_WIDGET.CHANGE_FILTER_SETTINGS" | "GDC.DASH/CMD.VISUALIZATION_SWITCHER_WIDGET.ADD_VISUALIZATION" | "GDC.DASH/CMD.VISUALIZATION_SWITCHER_WIDGET.UPDATE_VISUALIZATIONS" | "GDC.DASH/CMD.ALERT.CREATE" | "GDC.DASH/CMD.ALERT.SAVE" | "GDC.DASH/CMD.SCHEDULED_EMAIL.CREATE" | "GDC.DASH/CMD.SCHEDULED_EMAIL.SAVE" | "GDC.DASH/CMD.DRILL" | "GDC.DASH/CMD.DRILL.DRILL_DOWN" | "GDC.DASH/CMD.DRILL.DRILL_TO_INSIGHT" | "GDC.DASH/CMD.DRILL.DRILL_TO_DASHBOARD" | "GDC.DASH/CMD.DRILL.DRILL_TO_ATTRIBUTE_URL" | "GDC.DASH/CMD.DRILL.DRILL_TO_CUSTOM_URL" | "GDC.DASH/CMD.DRILL.DRILL_TO_LEGACY_DASHBOARD" | "GDC.DASH/CMD.DRILL.DRILLABLE_ITEMS.CHANGE" | "GDC.DASH/CMD.DRILL.CROSS_FILTERING" | "GDC.DASH/CMD.DRILL.KEY_DRIVER_ANALYSIS" | "GDC.DASH/CMD.DRILL_TARGETS.ADD" | "GDC.DASH/CMD.RENDER.ASYNC.REQUEST" | "GDC.DASH/CMD.RENDER.ASYNC.RESOLVE" | "GDC.DASH/CMD.ATTRIBUTE_HIERARCHY_MODIFIED" | "GDC.DASH/CMD.AUTOMATIONS.INITIALIZE" | "GDC.DASH/CMD.AUTOMATIONS.REFRESH" | "GDC.DASH/CMD.FILTER_CONTEXT.FILTER_VIEW.SAVE" | "GDC.DASH/CMD.FILTER_CONTEXT.FILTER_VIEW.DELETE" | "GDC.DASH/CMD.FILTER_CONTEXT.FILTER_VIEW.APPLY" | "GDC.DASH/CMD.FILTER_CONTEXT.FILTER_VIEW.CHANGE_DEFAULT_STATUS" | "GDC.DASH/CMD.FILTER_CONTEXT.FILTER_VIEW.RELOAD" | "GDC.DASH/CMD.FILTER_CONTEXT.APPLY_WORKING_SELECTION" | "GDC.DASH/CMD.FILTER_CONTEXT.RESET_WORKING_SELECTION" | "GDC.DASH/CMD.CHANGE_IGNORE_EXECUTION_TIMESTAMP" | "GDC.DASH/CMD.TAB.SWITCH" | "GDC.DASH/CMD.TAB.REPOSITION" | "GDC.DASH/CMD.TAB.CREATE" | "GDC.DASH/CMD.TAB.
|
|
12
|
+
export type DashboardCommandType = "GDC.DASH/CMD.INITIALIZE" | "GDC.DASH/CMD.SAVE" | "GDC.DASH/CMD.SAVEAS" | "GDC.DASH/CMD.RESET" | "GDC.DASH/CMD.RENAME" | "GDC.DASH/CMD.DELETE" | "GDC.DASH/CMD.CHANGE_RENDER_MODE" | "GDC.DASH/CMD.SHARING.CHANGE" | "GDC.DASH/CMD.EXPORT.PDF" | "GDC.DASH/CMD.EXPORT.EXCEL" | "GDC.DASH/CMD.EXPORT.PDF_PRESENTATION" | "GDC.DASH/CMD.EXPORT.PPT_PRESENTATION" | "GDC.DASH/CMD.EVENT.TRIGGER" | "GDC.DASH/CMD.EXECUTION_RESULT.UPSERT" | "GDC.DASH/CMD.FILTER_CONTEXT.CHANGE_SELECTION" | "GDC.DASH/CMD.FILTER_CONTEXT.DATE_FILTER.CHANGE_SELECTION" | "GDC.DASH/CMD.FILTER_CONTEXT.ATTRIBUTE_FILTER.ADD" | "GDC.DASH/CMD.FILTER_CONTEXT.TEXT_ATTRIBUTE_FILTER.ADD" | "GDC.DASH/CMD.FILTER_CONTEXT.ATTRIBUTE_FILTER.REMOVE" | "GDC.DASH/CMD.FILTER_CONTEXT.ATTRIBUTE_FILTER.MOVE" | "GDC.DASH/CMD.FILTER_CONTEXT.ATTRIBUTE_FILTER.CHANGE_SELECTION" | "GDC.DASH/CMD.FILTER_CONTEXT.ATTRIBUTE_FILTER_ITEM.REPLACE_SELECTION" | "GDC.DASH/CMD.FILTER_CONTEXT.ATTRIBUTE_FILTER.SET_PARENTS" | "GDC.DASH/CMD.FILTER_CONTEXT.ATTRIBUTE_FILTER.SET_DISPLAY_FORM" | "GDC.DASH/CMD.FILTER_CONTEXT.ATTRIBUTE_FILTER.SET_TITLE" | "GDC.DASH/CMD.FILTER_CONTEXT.ATTRIBUTE_FILTER.SET_SELECTION_MODE" | "GDC.DASH/CMD.FILTER_CONTEXT.ATTRIBUTE_FILTER.SET_DEPENDENT_DATE_FILTERS" | "GDC.DASH/CMD.FILTER_CONTEXT.DATE_FILTER.ADD" | "GDC.DASH/CMD.FILTER_CONTEXT.DATE_FILTER.REMOVE" | "GDC.DASH/CMD.FILTER_CONTEXT.DATE_FILTER.MOVE" | "GDC.DASH/CMD.FILTER_CONTEXT.MEASURE_VALUE_FILTER.ADD" | "GDC.DASH/CMD.FILTER_CONTEXT.MEASURE_VALUE_FILTER.REMOVE" | "GDC.DASH/CMD.FILTER_CONTEXT.MEASURE_VALUE_FILTER.MOVE" | "GDC.DASH/CMD.FILTER_CONTEXT.MEASURE_VALUE_FILTER.CHANGE_CONDITION" | "GDC.DASH/CMD.FILTER_CONTEXT.MEASURE_VALUE_FILTER.SET_DIMENSIONALITY" | "GDC.DASH/CMD.FILTER_CONTEXT.MEASURE_VALUE_FILTER.SET_TITLE" | "GDC.DASH/CMD.ATTRIBUTE_FILTER_CONFIG.SET_MODE" | "GDC.DASH/CMD.MEASURE_VALUE_FILTER_CONFIG.SET_MODE" | "GDC.DASH/CMD.ATTRIBUTE_FILTER_CONFIG.SET_AVAILABLE_MODE" | "GDC.DASH/CMD.ATTRIBUTE_FILTER_CONFIG.SET_LIMITING_ITEMS" | "GDC.DASH/CMD.ATTRIBUTE_FILTER_CONFIG.SET_DISPLAY_AS_LABEL" | "GDC.DASH/CMD.DATE_FILTER_CONFIG.SET_MODE" | "GDC.DASH/CMD.DATE_FILTER_WITH_DIMENSION_CONFIG.SET_MODE" | "GDC.DASH/CMD.DATE_FILTER_CONFIG.SET_TITLE" | "GDC.DASH/CMD.FLUID_LAYOUT.ADD_SECTION" | "GDC.DASH/CMD.FLUID_LAYOUT.MOVE_SECTION" | "GDC.DASH/CMD.FLUID_LAYOUT.MOVE_ITEM_TO_NEW_SECTION" | "GDC.DASH/CMD.FLUID_LAYOUT.REMOVE_SECTION" | "GDC.DASH/CMD.FLUID_LAYOUT.CHANGE_SECTION_HEADER" | "GDC.DASH/CMD.FLUID_LAYOUT.ADD_ITEMS" | "GDC.DASH/CMD.FLUID_LAYOUT.REPLACE_ITEM" | "GDC.DASH/CMD.FLUID_LAYOUT.MOVE_ITEM" | "GDC.DASH/CMD.FLUID_LAYOUT.REMOVE_ITEM" | "GDC.DASH/CMD.FLUID_LAYOUT.REMOVE_ITEM_BY_WIDGET_REF" | "GDC.DASH/CMD.FLUID_LAYOUT.UNDO" | "GDC.DASH/CMD.FLUID_LAYOUT.RESIZE_HEIGHT" | "GDC.DASH/CMD.FLUID_LAYOUT.RESIZE_WIDTH" | "GDC.DASH/CMD.FLUID_LAYOUT.SET_SCREEN_SIZE" | "GDC.DASH/CMD.FLEXIBLE_LAYOUT.TOGGLE_LAYOUT_SECTION_HEADERS" | "GDC.DASH/CMD.FLEXIBLE_LAYOUT.TOGGLE_LAYOUT_DIRECTION" | "GDC.DASH/CMD.KPI_WIDGET.CHANGE_HEADER" | "GDC.DASH/CMD.KPI_WIDGET.CHANGE_MEASURE" | "GDC.DASH/CMD.KPI_WIDGET.CHANGE_FILTER_SETTINGS" | "GDC.DASH/CMD.KPI_WIDGET.CHANGE_COMPARISON" | "GDC.DASH/CMD.KPI_WIDGET.REFRESH" | "GDC.DASH/CMD.KPI_WIDGET.SET_DRILL" | "GDC.DASH/CMD.KPI_WIDGET.REMOVE_DRILL" | "GDC.DASH/CMD.KPI_WIDGET.CHANGE_DESCRIPTION" | "GDC.DASH/CMD.KPI_WIDGET.CHANGE_CONFIGURATION" | "GDC.DASH/CMD.INSIGHT_WIDGET.CHANGE_HEADER" | "GDC.DASH/CMD.INSIGHT_WIDGET.CHANGE_DESCRIPTION" | "GDC.DASH/CMD.INSIGHT_WIDGET.CHANGE_FILTER_SETTINGS" | "GDC.DASH/CMD.INSIGHT_WIDGET.CHANGE_PROPERTIES" | "GDC.DASH/CMD.INSIGHT_WIDGET.CHANGE_CONFIGURATION" | "GDC.DASH/CMD.INSIGHT_WIDGET.CHANGE_INSIGHT" | "GDC.DASH/CMD.INSIGHT_WIDGET.CHANGE_IGNORE_CROSS_FILTERING" | "GDC.DASH/CMD.INSIGHT_WIDGET.EXPORT" | "GDC.DASH/CMD.INSIGHT_WIDGET.MODIFY_DRILLS" | "GDC.DASH/CMD.INSIGHT_WIDGET.REMOVE_DRILLS" | "GDC.DASH/CMD.INSIGHT_WIDGET.REMOVE_DRILL_DOWN" | "GDC.DASH/CMD.INSIGHT_WIDGET.REMOVE_DRILL_TO_URL" | "GDC.DASH/CMD.INSIGHT_WIDGET.ADD_DRILL_DOWN" | "GDC.DASH/CMD.INSIGHT_WIDGET.MODIFY_DRILL_DOWN" | "GDC.DASH/CMD.INSIGHT_WIDGET.REFRESH" | "GDC.DASH/CMD.RICH_TEXT_WIDGET.CHANGE_CONTENT" | "GDC.DASH/CMD.RICH_TEXT_WIDGET.CHANGE_FILTER_SETTINGS" | "GDC.DASH/CMD.VISUALIZATION_SWITCHER_WIDGET.ADD_VISUALIZATION" | "GDC.DASH/CMD.VISUALIZATION_SWITCHER_WIDGET.UPDATE_VISUALIZATIONS" | "GDC.DASH/CMD.ALERT.CREATE" | "GDC.DASH/CMD.ALERT.SAVE" | "GDC.DASH/CMD.SCHEDULED_EMAIL.CREATE" | "GDC.DASH/CMD.SCHEDULED_EMAIL.SAVE" | "GDC.DASH/CMD.DRILL" | "GDC.DASH/CMD.DRILL.DRILL_DOWN" | "GDC.DASH/CMD.DRILL.DRILL_TO_INSIGHT" | "GDC.DASH/CMD.DRILL.DRILL_TO_DASHBOARD" | "GDC.DASH/CMD.DRILL.DRILL_TO_ATTRIBUTE_URL" | "GDC.DASH/CMD.DRILL.DRILL_TO_CUSTOM_URL" | "GDC.DASH/CMD.DRILL.DRILL_TO_LEGACY_DASHBOARD" | "GDC.DASH/CMD.DRILL.DRILLABLE_ITEMS.CHANGE" | "GDC.DASH/CMD.DRILL.CROSS_FILTERING" | "GDC.DASH/CMD.DRILL.KEY_DRIVER_ANALYSIS" | "GDC.DASH/CMD.DRILL_TARGETS.ADD" | "GDC.DASH/CMD.RENDER.ASYNC.REQUEST" | "GDC.DASH/CMD.RENDER.ASYNC.RESOLVE" | "GDC.DASH/CMD.ATTRIBUTE_HIERARCHY_MODIFIED" | "GDC.DASH/CMD.AUTOMATIONS.INITIALIZE" | "GDC.DASH/CMD.AUTOMATIONS.REFRESH" | "GDC.DASH/CMD.FILTER_CONTEXT.FILTER_VIEW.SAVE" | "GDC.DASH/CMD.FILTER_CONTEXT.FILTER_VIEW.DELETE" | "GDC.DASH/CMD.FILTER_CONTEXT.FILTER_VIEW.APPLY" | "GDC.DASH/CMD.FILTER_CONTEXT.FILTER_VIEW.CHANGE_DEFAULT_STATUS" | "GDC.DASH/CMD.FILTER_CONTEXT.FILTER_VIEW.RELOAD" | "GDC.DASH/CMD.FILTER_CONTEXT.APPLY_WORKING_SELECTION" | "GDC.DASH/CMD.FILTER_CONTEXT.RESET_WORKING_SELECTION" | "GDC.DASH/CMD.CHANGE_IGNORE_EXECUTION_TIMESTAMP" | "GDC.DASH/CMD.TAB.SWITCH" | "GDC.DASH/CMD.TAB.REPOSITION" | "GDC.DASH/CMD.TAB.CREATE" | "GDC.DASH/CMD.TAB.DELETE" | "GDC.DASH/CMD.TAB.RENAME_MODE.START" | "GDC.DASH/CMD.TAB.RENAME_MODE.CANCEL" | "GDC.DASH/CMD.TAB.RENAME" | "GDC.DASH/CMD.USERS.LOAD_ALL" | "GDC.DASH/CMD.INSIGHT_WIDGET.EXPORT_RAW" | "GDC.DASH/CMD.INSIGHT_WIDGET.EXPORT_SLIDES" | "GDC.DASH/CMD.INSIGHT_WIDGET.EXPORT_IMAGE" | "GDC.DASH/CMD.SHOW_WIDGET_AS_TABLE.SET" | "GDC.DASH/CMD.CHANGE_DENSITY" | "GDC.DASH/CMD.OPEN_DENSITY_DIALOG";
|
|
13
13
|
/**
|
|
14
14
|
* @public
|
|
15
15
|
*/
|
|
@@ -14,7 +14,7 @@ import { type IChangeRenderMode } from "./renderMode.js";
|
|
|
14
14
|
import { type IChangeRichTextWidgetContent, type IChangeRichTextWidgetFilterSettings } from "./richText.js";
|
|
15
15
|
import { type ICreateScheduledEmail, type IInitializeAutomations, type IRefreshAutomations, type ISaveScheduledEmail } from "./scheduledEmail.js";
|
|
16
16
|
import { type ISetShowWidgetAsTable } from "./showWidgetAsTable.js";
|
|
17
|
-
import { type ICancelRenamingDashboardTab, type
|
|
17
|
+
import { type ICancelRenamingDashboardTab, type ICreateDashboardTab, type IDeleteDashboardTab, type IRenameDashboardTab, type IRepositionDashboardTab, type IStartRenamingDashboardTab, type ISwitchDashboardTab } from "./tabs.js";
|
|
18
18
|
import { type ILoadAllWorkspaceUsers } from "./users.js";
|
|
19
19
|
import { type IAddVisualizationToVisualizationSwitcherWidgetContent, type IUpdateVisualizationsFromVisualizationSwitcherWidgetContent } from "./visualizationSwitcher.js";
|
|
20
20
|
/**
|
|
@@ -27,4 +27,4 @@ import { type IAddVisualizationToVisualizationSwitcherWidgetContent, type IUpdat
|
|
|
27
27
|
*
|
|
28
28
|
* @public
|
|
29
29
|
*/
|
|
30
|
-
export type DashboardCommands = InitializeDashboard | SaveDashboardAs | RequestAsyncRender | ResolveAsyncRender | ChangeFilterContextSelection | ChangeDateFilterSelection | ChangeAttributeFilterSelection | ReplaceAttributeFilterItemSelection | IChangeRenderMode | IChangeDashboardDensity | IRequestOpenDensityDialog | ISaveDashboard | IRenameDashboard | IResetDashboard | IExportDashboardToPdf | IExportDashboardToExcel | IExportDashboardToPdfPresentation | IExportDashboardToPptPresentation | IDeleteDashboard | ITriggerEvent | IUpsertExecutionResult | IAddAttributeFilter | IAddTextAttributeFilter | IRemoveAttributeFilters | IMoveAttributeFilter | ISetAttributeFilterParents | ISetAttributeFilterDependentDateFilters | IAddLayoutSection | IMoveLayoutSection | IRemoveLayoutSection | ChangeLayoutSectionHeader | IResizeHeight | IResizeWidth | IAddSectionItems | IReplaceSectionItem | IMoveSectionItem | IMoveSectionItemToNewSection | IRemoveSectionItem | IRemoveSectionItemByWidgetRef | IUndoLayoutChanges | IChangeKpiWidgetHeader | IChangeKpiWidgetDescription | IChangeKpiWidgetConfiguration | IChangeKpiWidgetMeasure | IChangeKpiWidgetFilterSettings | IChangeKpiWidgetComparison | IRefreshKpiWidget | ISetDrillForKpiWidget | IRemoveDrillForKpiWidget | IChangeInsightWidgetHeader | IChangeInsightWidgetDescription | IChangeInsightWidgetIgnoreCrossFiltering | IChangeInsightWidgetFilterSettings | IChangeInsightWidgetVisProperties | ChangeInsightWidgetVisConfiguration | IChangeInsightWidgetInsight | IModifyDrillsForInsightWidget | IRemoveDrillsForInsightWidget | IRefreshInsightWidget | IExportInsightWidget | ICreateAlert | ISaveAlert | ICreateScheduledEmail | ISaveScheduledEmail | IChangeSharing | ISetAttributeFilterDisplayForm | ISetAttributeFilterTitle | ISetMeasureValueFilterTitle | ISetMeasureValueFilterDimensionality | ISetAttributeFilterSelectionMode | IChangeRichTextWidgetContent | IChangeRichTextWidgetFilterSettings | IAddVisualizationToVisualizationSwitcherWidgetContent | IUpdateVisualizationsFromVisualizationSwitcherWidgetContent | IDrill | IDrillDown | IDrillToAttributeUrl | IDrillToCustomUrl | IDrillToDashboard | IDrillToInsight | IDrillToLegacyDashboard | IChangeDrillableItems | IAddDrillTargets | ISetDashboardDateFilterConfigMode | ISetDashboardAttributeFilterConfigMode | ISetDashboardMeasureValueFilterConfigMode | ISetDashboardAttributeFilterSelectionType | ISetDashboardAttributeFilterConfigDisplayAsLabel | IRemoveDrillDownForInsightWidget | IRemoveDrillToUrlForInsightWidget | IAddDrillDownForInsightWidget | IModifyDrillDownForInsightWidget | ICrossFiltering | IKeyDriverAnalysis | IAttributeHierarchyModified | IAddDateFilter | IAddMeasureValueFilter | IRemoveMeasureValueFilters | IRemoveDateFilters | IMoveDateFilter | IChangeMeasureValueFilterCondition | IMoveMeasureValueFilter | ISetDashboardDateFilterWithDimensionConfigMode | ISetDateFilterConfigTitle | IInitializeAutomations | IRefreshAutomations | ISetAttributeFilterLimitingItems | ISaveFilterView | IDeleteFilterView | IApplyFilterView | ISetFilterViewAsDefault | IReloadFilterViews | IToggleLayoutSectionHeaders | IToggleLayoutDirection | IApplyFilterContextWorkingSelection | IResetFilterContextWorkingSelection | IChangeIgnoreExecutionTimestamp | ISwitchDashboardTab |
|
|
30
|
+
export type DashboardCommands = InitializeDashboard | SaveDashboardAs | RequestAsyncRender | ResolveAsyncRender | ChangeFilterContextSelection | ChangeDateFilterSelection | ChangeAttributeFilterSelection | ReplaceAttributeFilterItemSelection | IChangeRenderMode | IChangeDashboardDensity | IRequestOpenDensityDialog | ISaveDashboard | IRenameDashboard | IResetDashboard | IExportDashboardToPdf | IExportDashboardToExcel | IExportDashboardToPdfPresentation | IExportDashboardToPptPresentation | IDeleteDashboard | ITriggerEvent | IUpsertExecutionResult | IAddAttributeFilter | IAddTextAttributeFilter | IRemoveAttributeFilters | IMoveAttributeFilter | ISetAttributeFilterParents | ISetAttributeFilterDependentDateFilters | IAddLayoutSection | IMoveLayoutSection | IRemoveLayoutSection | ChangeLayoutSectionHeader | IResizeHeight | IResizeWidth | IAddSectionItems | IReplaceSectionItem | IMoveSectionItem | IMoveSectionItemToNewSection | IRemoveSectionItem | IRemoveSectionItemByWidgetRef | IUndoLayoutChanges | IChangeKpiWidgetHeader | IChangeKpiWidgetDescription | IChangeKpiWidgetConfiguration | IChangeKpiWidgetMeasure | IChangeKpiWidgetFilterSettings | IChangeKpiWidgetComparison | IRefreshKpiWidget | ISetDrillForKpiWidget | IRemoveDrillForKpiWidget | IChangeInsightWidgetHeader | IChangeInsightWidgetDescription | IChangeInsightWidgetIgnoreCrossFiltering | IChangeInsightWidgetFilterSettings | IChangeInsightWidgetVisProperties | ChangeInsightWidgetVisConfiguration | IChangeInsightWidgetInsight | IModifyDrillsForInsightWidget | IRemoveDrillsForInsightWidget | IRefreshInsightWidget | IExportInsightWidget | ICreateAlert | ISaveAlert | ICreateScheduledEmail | ISaveScheduledEmail | IChangeSharing | ISetAttributeFilterDisplayForm | ISetAttributeFilterTitle | ISetMeasureValueFilterTitle | ISetMeasureValueFilterDimensionality | ISetAttributeFilterSelectionMode | IChangeRichTextWidgetContent | IChangeRichTextWidgetFilterSettings | IAddVisualizationToVisualizationSwitcherWidgetContent | IUpdateVisualizationsFromVisualizationSwitcherWidgetContent | IDrill | IDrillDown | IDrillToAttributeUrl | IDrillToCustomUrl | IDrillToDashboard | IDrillToInsight | IDrillToLegacyDashboard | IChangeDrillableItems | IAddDrillTargets | ISetDashboardDateFilterConfigMode | ISetDashboardAttributeFilterConfigMode | ISetDashboardMeasureValueFilterConfigMode | ISetDashboardAttributeFilterSelectionType | ISetDashboardAttributeFilterConfigDisplayAsLabel | IRemoveDrillDownForInsightWidget | IRemoveDrillToUrlForInsightWidget | IAddDrillDownForInsightWidget | IModifyDrillDownForInsightWidget | ICrossFiltering | IKeyDriverAnalysis | IAttributeHierarchyModified | IAddDateFilter | IAddMeasureValueFilter | IRemoveMeasureValueFilters | IRemoveDateFilters | IMoveDateFilter | IChangeMeasureValueFilterCondition | IMoveMeasureValueFilter | ISetDashboardDateFilterWithDimensionConfigMode | ISetDateFilterConfigTitle | IInitializeAutomations | IRefreshAutomations | ISetAttributeFilterLimitingItems | ISaveFilterView | IDeleteFilterView | IApplyFilterView | ISetFilterViewAsDefault | IReloadFilterViews | IToggleLayoutSectionHeaders | IToggleLayoutDirection | IApplyFilterContextWorkingSelection | IResetFilterContextWorkingSelection | IChangeIgnoreExecutionTimestamp | ISwitchDashboardTab | ICreateDashboardTab | IRepositionDashboardTab | IDeleteDashboardTab | IStartRenamingDashboardTab | ICancelRenamingDashboardTab | IRenameDashboardTab | ISetScreenSize | ILoadAllWorkspaceUsers | IExportRawInsightWidget | IExportSlidesInsightWidget | IExportImageInsightWidget | ISetShowWidgetAsTable;
|
|
@@ -9,41 +9,6 @@ export interface ISwitchDashboardTabPayload {
|
|
|
9
9
|
*/
|
|
10
10
|
readonly tabId: string;
|
|
11
11
|
}
|
|
12
|
-
/**
|
|
13
|
-
* Payload of the {@link IConvertDashboardTabFromDefault} command.
|
|
14
|
-
*
|
|
15
|
-
* @alpha
|
|
16
|
-
*/
|
|
17
|
-
export interface IConvertDashboardTabFromDefaultPayload {
|
|
18
|
-
/**
|
|
19
|
-
* Optional title for the new tab.
|
|
20
|
-
*/
|
|
21
|
-
readonly title?: string;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Command to convert a default dashboard tab into a regular tab.
|
|
25
|
-
*
|
|
26
|
-
* @remarks
|
|
27
|
-
* This command will:
|
|
28
|
-
* - Duplicate the default tab and create a new regular tab with the given title
|
|
29
|
-
* - Remove the default tab
|
|
30
|
-
*
|
|
31
|
-
* @alpha
|
|
32
|
-
*/
|
|
33
|
-
export interface IConvertDashboardTabFromDefault extends IDashboardCommand {
|
|
34
|
-
readonly type: "GDC.DASH/CMD.TAB.CONVERT_FROM_DEFAULT";
|
|
35
|
-
readonly payload: IConvertDashboardTabFromDefaultPayload;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Creates the ConvertDashboardTabFromDefault command.
|
|
39
|
-
*
|
|
40
|
-
* @param title - Optional title for the new tab.
|
|
41
|
-
* @param correlationId - Specify correlation id to use for this command.
|
|
42
|
-
* @returns Convert dashboard tab from default command.
|
|
43
|
-
*
|
|
44
|
-
* @alpha
|
|
45
|
-
*/
|
|
46
|
-
export declare function convertDashboardTabFromDefault(title?: string, correlationId?: string): IConvertDashboardTabFromDefault;
|
|
47
12
|
/**
|
|
48
13
|
* Command to switch to a different dashboard tab.
|
|
49
14
|
*
|
|
@@ -1,20 +1,4 @@
|
|
|
1
1
|
// (C) 2025-2026 GoodData Corporation
|
|
2
|
-
/**
|
|
3
|
-
* Creates the ConvertDashboardTabFromDefault command.
|
|
4
|
-
*
|
|
5
|
-
* @param title - Optional title for the new tab.
|
|
6
|
-
* @param correlationId - Specify correlation id to use for this command.
|
|
7
|
-
* @returns Convert dashboard tab from default command.
|
|
8
|
-
*
|
|
9
|
-
* @alpha
|
|
10
|
-
*/
|
|
11
|
-
export function convertDashboardTabFromDefault(title, correlationId) {
|
|
12
|
-
return {
|
|
13
|
-
type: "GDC.DASH/CMD.TAB.CONVERT_FROM_DEFAULT",
|
|
14
|
-
correlationId,
|
|
15
|
-
payload: { title },
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
2
|
/**
|
|
19
3
|
* Creates the SwitchDashboardTab command.
|
|
20
4
|
*
|
|
@@ -19,7 +19,7 @@ import { type DashboardContext } from "../types/commonTypes.js";
|
|
|
19
19
|
*
|
|
20
20
|
* @public
|
|
21
21
|
*/
|
|
22
|
-
export type DashboardEventType = "GDC.DASH/EVT.COMMAND.FAILED" | "GDC.DASH/EVT.COMMAND.REJECTED" | "GDC.DASH/EVT.COMMAND.STARTED" | "GDC.DASH/EVT.QUERY.FAILED" | "GDC.DASH/EVT.QUERY.REJECTED" | "GDC.DASH/EVT.QUERY.STARTED" | "GDC.DASH/EVT.QUERY.COMPLETED" | "GDC.DASH/EVT.USER_INTERACTION.TRIGGERED" | "GDC.DASH/EVT.INITIALIZED" | "GDC.DASH/EVT.DEINITIALIZED" | "GDC.DASH/EVT.SAVED" | "GDC.DASH/EVT.COPY_SAVED" | "GDC.DASH/EVT.RENAMED" | "GDC.DASH/EVT.RESET" | "GDC.DASH/EVT.DELETED" | "GDC.DASH/EVT.RENDER_MODE.CHANGED" | "GDC.DASH/EVT.EXPORT.PDF.REQUESTED" | "GDC.DASH/EVT.EXPORT.PDF.RESOLVED" | "GDC.DASH/EVT.EXPORT.PDF_PRESENTATION.REQUESTED" | "GDC.DASH/EVT.EXPORT.PDF_PRESENTATION.RESOLVED" | "GDC.DASH/EVT.EXPORT.PPT_PRESENTATION.REQUESTED" | "GDC.DASH/EVT.EXPORT.PPT_PRESENTATION.RESOLVED" | "GDC.DASH/EVT.EXPORT.IMAGE.REQUESTED" | "GDC.DASH/EVT.EXPORT.IMAGE.RESOLVED" | "GDC.DASH/EVT.EXPORT.EXCEL.RESOLVED" | "GDC.DASH/EVT.EXPORT.EXCEL.REQUESTED" | "GDC.DASH/EVT.FILTER_CONTEXT.DATE_FILTER.VALIDATION.FAILED" | "GDC.DASH/EVT.FILTER_CONTEXT.DATE_FILTER.SELECTION_CHANGED" | "GDC.DASH/EVT.FILTER_CONTEXT.DATE_FILTER.ADDED" | "GDC.DASH/EVT.FILTER_CONTEXT.DATE_FILTER.REMOVED" | "GDC.DASH/EVT.FILTER_CONTEXT.DATE_FILTER.MOVED" | "GDC.DASH/EVT.FILTER_CONTEXT.MEASURE_VALUE_FILTER.ADDED" | "GDC.DASH/EVT.FILTER_CONTEXT.MEASURE_VALUE_FILTER.REMOVED" | "GDC.DASH/EVT.FILTER_CONTEXT.MEASURE_VALUE_FILTER.MOVED" | "GDC.DASH/EVT.FILTER_CONTEXT.MEASURE_VALUE_FILTER.CONDITION_CHANGED" | "GDC.DASH/EVT.FILTER_CONTEXT.MEASURE_VALUE_FILTER.DIMENSIONALITY_CHANGED" | "GDC.DASH/EVT.FILTER_CONTEXT.MEASURE_VALUE_FILTER.TITLE_CHANGED" | "GDC.DASH/EVT.FILTER_CONTEXT.ATTRIBUTE_FILTER.ADDED" | "GDC.DASH/EVT.FILTER_CONTEXT.ATTRIBUTE_FILTER.REMOVED" | "GDC.DASH/EVT.FILTER_CONTEXT.ATTRIBUTE_FILTER.MOVED" | "GDC.DASH/EVT.FILTER_CONTEXT.ATTRIBUTE_FILTER.SELECTION_CHANGED" | "GDC.DASH/EVT.FILTER_CONTEXT.ATTRIBUTE_FILTER_ITEM.SELECTION_REPLACED" | "GDC.DASH/EVT.FILTER_CONTEXT.ATTRIBUTE_FILTER.PARENT_CHANGED" | "GDC.DASH/EVT.FILTER_CONTEXT.ATTRIBUTE_FILTER.DISPLAY_FORM_CHANGED" | "GDC.DASH/EVT.FILTER_CONTEXT.ATTRIBUTE_FILTER.SELECTION_MODE_CHANGED" | "GDC.DASH/EVT.FILTER_CONTEXT.ATTRIBUTE_FILTER.TITLE_CHANGED" | "GDC.DASH/EVT.ATTRIBUTE_FILTER_CONFIG.MODE_CHANGED" | "GDC.DASH/EVT.MEASURE_VALUE_FILTER_CONFIG.MODE_CHANGED" | "GDC.DASH/EVT.ATTRIBUTE_FILTER_CONFIG.LIMITING_ITEMS_CHANGED" | "GDC.DASH/EVT.ATTRIBUTE_FILTER_CONFIG.DISPLAY_AS_LABEL_CHANGED" | "GDC.DASH/EVT.DATE_FILTER_CONFIG.TITLE_CHANGED" | "GDC.DASH/EVT.DATE_FILTER_CONFIG.MODE_CHANGED" | "GDC.DASH/EVT.FILTER_CONTEXT.CHANGED" | "GDC.DASH/EVT.FLUID_LAYOUT.SECTION_ADDED" | "GDC.DASH/EVT.FLUID_LAYOUT.SECTION_MOVED" | "GDC.DASH/EVT.FLUID_LAYOUT.SECTION_REMOVED" | "GDC.DASH/EVT.FLUID_LAYOUT.SECTION_HEADER_CHANGED" | "GDC.DASH/EVT.FLUID_LAYOUT.SECTION_ITEM_WIDTH_RESIZED" | "GDC.DASH/EVT.FLUID_LAYOUT.SECTION_ITEMS_HEIGHT_RESIZED" | "GDC.DASH/EVT.FLUID_LAYOUT.ITEMS_ADDED" | "GDC.DASH/EVT.FLUID_LAYOUT.ITEM_REPLACED" | "GDC.DASH/EVT.FLUID_LAYOUT.ITEM_MOVED" | "GDC.DASH/EVT.FLUID_LAYOUT.ITEM_MOVED_TO_NEW_SECTION" | "GDC.DASH/EVT.FLUID_LAYOUT.ITEM_REMOVED" | "GDC.DASH/EVT.FLUID_LAYOUT.LAYOUT_CHANGED" | "GDC.DASH/EVT.FLUID_LAYOUT.SCREEN_SIZE_CHANGED" | "GDC.DASH/EVT.FLEXIBLE_LAYOUT.LAYOUT_SECTION_HEADERS_TOGGLED" | "GDC.DASH/EVT.FLEXIBLE_LAYOUT.LAYOUT_DIRECTION_CHANGED" | "GDC.DASH/EVT.KPI_WIDGET.HEADER_CHANGED" | "GDC.DASH/EVT.KPI_WIDGET.DESCRIPTION_CHANGED" | "GDC.DASH/EVT.KPI_WIDGET.CONFIGURATION_CHANGED" | "GDC.DASH/EVT.KPI_WIDGET.MEASURE_CHANGED" | "GDC.DASH/EVT.KPI_WIDGET.FILTER_SETTINGS_CHANGED" | "GDC.DASH/EVT.KPI_WIDGET.COMPARISON_CHANGED" | "GDC.DASH/EVT.KPI_WIDGET.DRILL_REMOVED" | "GDC.DASH/EVT.KPI_WIDGET.DRILL_SET" | "GDC.DASH/EVT.KPI_WIDGET.WIDGET_CHANGED" | "GDC.DASH/EVT.INSIGHT_WIDGET.HEADER_CHANGED" | "GDC.DASH/EVT.INSIGHT_WIDGET.DESCRIPTION_CHANGED" | "GDC.DASH/EVT.INSIGHT_WIDGET.FILTER_SETTINGS_CHANGED" | "GDC.DASH/EVT.INSIGHT_WIDGET.PROPERTIES_CHANGED" | "GDC.DASH/EVT.INSIGHT_WIDGET.CONFIGURATION_CHANGED" | "GDC.DASH/EVT.INSIGHT_WIDGET.IGNORE_CROSS_FILTERING_CHANGED" | "GDC.DASH/EVT.INSIGHT_WIDGET.INSIGHT_SWITCHED" | "GDC.DASH/EVT.INSIGHT_WIDGET.DRILLS_MODIFIED" | "GDC.DASH/EVT.SHOW_WIDGET_AS_TABLE.SET" | "GDC.DASH/EVT.INSIGHT_WIDGET.DRILLS_REMOVED" | "GDC.DASH/EVT.INSIGHT_WIDGET.DRILL_DOWN_REMOVED" | "GDC.DASH/EVT.INSIGHT_WIDGET.DRILL_DOWN_ADDED" | "GDC.DASH/EVT.INSIGHT_WIDGET.DRILL_DOWN_MODIFIED" | "GDC.DASH/EVT.INSIGHT_WIDGET.WIDGET_CHANGED" | "GDC.DASH/EVT.INSIGHT_WIDGET.EXPORT_REQUESTED" | "GDC.DASH/EVT.INSIGHT_WIDGET.EXPORT_RESOLVED" | "GDC.DASH/EVT.INSIGHT_WIDGET.REFRESHED" | "GDC.DASH/EVT.RICH_TEXT_WIDGET.CONTENT_CHANGED" | "GDC.DASH/EVT.RICH_TEXT_WIDGET.FILTER_SETTINGS_CHANGED" | "GDC.DASH/EVT.VISUALIZATION_SWITCHER_WIDGET.VISUALIZATION_ADDED" | "GDC.DASH/EVT.VISUALIZATION_SWITCHER_WIDGET.VISUALIZATIONS_UPDATED" | "GDC.DASH/EVT.WIDGET.EXECUTION_STARTED" | "GDC.DASH/EVT.WIDGET.EXECUTION_FAILED" | "GDC.DASH/EVT.WIDGET.EXECUTION_SUCCEEDED" | "GDC.DASH/EVT.ALERT.CREATED" | "GDC.DASH/EVT.ALERT.SAVED" | "GDC.DASH/EVT.SCHEDULED_EMAIL.CREATED" | "GDC.DASH/EVT.SCHEDULED_EMAIL.SAVED" | "GDC.DASH/EVT.DRILL.REQUESTED" | "GDC.DASH/EVT.DRILL.RESOLVED" | "GDC.DASH/EVT.DRILL.DRILL_DOWN.REQUESTED" | "GDC.DASH/EVT.DRILL.DRILL_DOWN.RESOLVED" | "GDC.DASH/EVT.DRILL.DRILL_TO_INSIGHT.REQUESTED" | "GDC.DASH/EVT.DRILL.DRILL_TO_INSIGHT.RESOLVED" | "GDC.DASH/EVT.DRILL.DRILL_TO_DASHBOARD.REQUESTED" | "GDC.DASH/EVT.DRILL.DRILL_TO_DASHBOARD.RESOLVED" | "GDC.DASH/EVT.DRILL.DRILL_TO_ATTRIBUTE_URL.REQUESTED" | "GDC.DASH/EVT.DRILL.DRILL_TO_ATTRIBUTE_URL.RESOLVED" | "GDC.DASH/EVT.DRILL.DRILL_TO_CUSTOM_URL.REQUESTED" | "GDC.DASH/EVT.DRILL.DRILL_TO_CUSTOM_URL.RESOLVED" | "GDC.DASH/EVT.DRILL.DRILL_TO_LEGACY_DASHBOARD.REQUESTED" | "GDC.DASH/EVT.DRILL.DRILL_TO_LEGACY_DASHBOARD.RESOLVED" | "GDC.DASH/EVT.DRILL.DRILLABLE_ITEMS.CHANGED" | "GDC.DASH/EVT.DRILL.CROSS_FILTERING.REQUESTED" | "GDC.DASH/EVT.DRILL.CROSS_FILTERING.RESOLVED" | "GDC.DASH/EVT.DRILL.KEY_DRIVER_ANALYSIS.REQUESTED" | "GDC.DASH/EVT.DRILL.KEY_DRIVER_ANALYSIS.RESOLVED" | "GDC.DASH/EVT.DRILL_TARGETS.ADDED" | "GDC.DASH/EVT.RENDER.REQUESTED" | "GDC.DASH/EVT.RENDER.ASYNC.REQUESTED" | "GDC.DASH/EVT.RENDER.ASYNC.RESOLVED" | "GDC.DASH/EVT.RENDER.RESOLVED" | "GDC.DASH/EVT.SHARING.CHANGED" | "GDC.DASH/EVT.CREATE_INSIGHT_REQUESTED" | "GDC.DASH/EVT.CREATE_ATTRIBUTE_HIERARCHY_REQUESTED" | "GDC.DASH/EVT.DELETE_ATTRIBUTE_HIERARCHY_REQUESTED" | "GDC.DASH/EVT.ATTRIBUTE_HIERARCHY_MODIFIED" | "GDC.DASH/EVT.FILTER_CONTEXT.FILTER_VIEW.CREATE.SUCCESS" | "GDC.DASH/EVT.FILTER_CONTEXT.FILTER_VIEW.CREATE.FAILURE" | "GDC.DASH/EVT.FILTER_CONTEXT.FILTER_VIEW.DELETE.SUCCESS" | "GDC.DASH/EVT.FILTER_CONTEXT.FILTER_VIEW.DELETE.FAILURE" | "GDC.DASH/EVT.FILTER_CONTEXT.FILTER_VIEW.APPLY.SUCCESS" | "GDC.DASH/EVT.FILTER_CONTEXT.FILTER_VIEW.APPLY.FAILURE" | "GDC.DASH/EVT.FILTER_CONTEXT.FILTER_VIEW.CHANGE_DEFAULT_STATUS.SUCCESS" | "GDC.DASH/EVT.FILTER_CONTEXT.FILTER_VIEW.CHANGE_DEFAULT_STATUS.FAILURE" | "GDC.DASH/EVT.AUTOMATIONS.REFRESHED" | "GDC.DASH/EVT.IGNORE_EXECUTION_TIMESTAMP_CHANGED" | "GDC.DASH/EVT.FILTER_CONTEXT.SELECTION.RESET" | "GDC.DASH/EVT.FILTER_CONTEXT.WORKING_SELECTION.APPLIED" | "GDC.DASH/EVT.TAB.SWITCHED" | "GDC.DASH/EVT.TAB.REPOSITIONED" | "GDC.DASH/EVT.TAB.
|
|
22
|
+
export type DashboardEventType = "GDC.DASH/EVT.COMMAND.FAILED" | "GDC.DASH/EVT.COMMAND.REJECTED" | "GDC.DASH/EVT.COMMAND.STARTED" | "GDC.DASH/EVT.QUERY.FAILED" | "GDC.DASH/EVT.QUERY.REJECTED" | "GDC.DASH/EVT.QUERY.STARTED" | "GDC.DASH/EVT.QUERY.COMPLETED" | "GDC.DASH/EVT.USER_INTERACTION.TRIGGERED" | "GDC.DASH/EVT.INITIALIZED" | "GDC.DASH/EVT.DEINITIALIZED" | "GDC.DASH/EVT.SAVED" | "GDC.DASH/EVT.COPY_SAVED" | "GDC.DASH/EVT.RENAMED" | "GDC.DASH/EVT.RESET" | "GDC.DASH/EVT.DELETED" | "GDC.DASH/EVT.RENDER_MODE.CHANGED" | "GDC.DASH/EVT.EXPORT.PDF.REQUESTED" | "GDC.DASH/EVT.EXPORT.PDF.RESOLVED" | "GDC.DASH/EVT.EXPORT.PDF_PRESENTATION.REQUESTED" | "GDC.DASH/EVT.EXPORT.PDF_PRESENTATION.RESOLVED" | "GDC.DASH/EVT.EXPORT.PPT_PRESENTATION.REQUESTED" | "GDC.DASH/EVT.EXPORT.PPT_PRESENTATION.RESOLVED" | "GDC.DASH/EVT.EXPORT.IMAGE.REQUESTED" | "GDC.DASH/EVT.EXPORT.IMAGE.RESOLVED" | "GDC.DASH/EVT.EXPORT.EXCEL.RESOLVED" | "GDC.DASH/EVT.EXPORT.EXCEL.REQUESTED" | "GDC.DASH/EVT.FILTER_CONTEXT.DATE_FILTER.VALIDATION.FAILED" | "GDC.DASH/EVT.FILTER_CONTEXT.DATE_FILTER.SELECTION_CHANGED" | "GDC.DASH/EVT.FILTER_CONTEXT.DATE_FILTER.ADDED" | "GDC.DASH/EVT.FILTER_CONTEXT.DATE_FILTER.REMOVED" | "GDC.DASH/EVT.FILTER_CONTEXT.DATE_FILTER.MOVED" | "GDC.DASH/EVT.FILTER_CONTEXT.MEASURE_VALUE_FILTER.ADDED" | "GDC.DASH/EVT.FILTER_CONTEXT.MEASURE_VALUE_FILTER.REMOVED" | "GDC.DASH/EVT.FILTER_CONTEXT.MEASURE_VALUE_FILTER.MOVED" | "GDC.DASH/EVT.FILTER_CONTEXT.MEASURE_VALUE_FILTER.CONDITION_CHANGED" | "GDC.DASH/EVT.FILTER_CONTEXT.MEASURE_VALUE_FILTER.DIMENSIONALITY_CHANGED" | "GDC.DASH/EVT.FILTER_CONTEXT.MEASURE_VALUE_FILTER.TITLE_CHANGED" | "GDC.DASH/EVT.FILTER_CONTEXT.ATTRIBUTE_FILTER.ADDED" | "GDC.DASH/EVT.FILTER_CONTEXT.ATTRIBUTE_FILTER.REMOVED" | "GDC.DASH/EVT.FILTER_CONTEXT.ATTRIBUTE_FILTER.MOVED" | "GDC.DASH/EVT.FILTER_CONTEXT.ATTRIBUTE_FILTER.SELECTION_CHANGED" | "GDC.DASH/EVT.FILTER_CONTEXT.ATTRIBUTE_FILTER_ITEM.SELECTION_REPLACED" | "GDC.DASH/EVT.FILTER_CONTEXT.ATTRIBUTE_FILTER.PARENT_CHANGED" | "GDC.DASH/EVT.FILTER_CONTEXT.ATTRIBUTE_FILTER.DISPLAY_FORM_CHANGED" | "GDC.DASH/EVT.FILTER_CONTEXT.ATTRIBUTE_FILTER.SELECTION_MODE_CHANGED" | "GDC.DASH/EVT.FILTER_CONTEXT.ATTRIBUTE_FILTER.TITLE_CHANGED" | "GDC.DASH/EVT.ATTRIBUTE_FILTER_CONFIG.MODE_CHANGED" | "GDC.DASH/EVT.MEASURE_VALUE_FILTER_CONFIG.MODE_CHANGED" | "GDC.DASH/EVT.ATTRIBUTE_FILTER_CONFIG.LIMITING_ITEMS_CHANGED" | "GDC.DASH/EVT.ATTRIBUTE_FILTER_CONFIG.DISPLAY_AS_LABEL_CHANGED" | "GDC.DASH/EVT.DATE_FILTER_CONFIG.TITLE_CHANGED" | "GDC.DASH/EVT.DATE_FILTER_CONFIG.MODE_CHANGED" | "GDC.DASH/EVT.FILTER_CONTEXT.CHANGED" | "GDC.DASH/EVT.FLUID_LAYOUT.SECTION_ADDED" | "GDC.DASH/EVT.FLUID_LAYOUT.SECTION_MOVED" | "GDC.DASH/EVT.FLUID_LAYOUT.SECTION_REMOVED" | "GDC.DASH/EVT.FLUID_LAYOUT.SECTION_HEADER_CHANGED" | "GDC.DASH/EVT.FLUID_LAYOUT.SECTION_ITEM_WIDTH_RESIZED" | "GDC.DASH/EVT.FLUID_LAYOUT.SECTION_ITEMS_HEIGHT_RESIZED" | "GDC.DASH/EVT.FLUID_LAYOUT.ITEMS_ADDED" | "GDC.DASH/EVT.FLUID_LAYOUT.ITEM_REPLACED" | "GDC.DASH/EVT.FLUID_LAYOUT.ITEM_MOVED" | "GDC.DASH/EVT.FLUID_LAYOUT.ITEM_MOVED_TO_NEW_SECTION" | "GDC.DASH/EVT.FLUID_LAYOUT.ITEM_REMOVED" | "GDC.DASH/EVT.FLUID_LAYOUT.LAYOUT_CHANGED" | "GDC.DASH/EVT.FLUID_LAYOUT.SCREEN_SIZE_CHANGED" | "GDC.DASH/EVT.FLEXIBLE_LAYOUT.LAYOUT_SECTION_HEADERS_TOGGLED" | "GDC.DASH/EVT.FLEXIBLE_LAYOUT.LAYOUT_DIRECTION_CHANGED" | "GDC.DASH/EVT.KPI_WIDGET.HEADER_CHANGED" | "GDC.DASH/EVT.KPI_WIDGET.DESCRIPTION_CHANGED" | "GDC.DASH/EVT.KPI_WIDGET.CONFIGURATION_CHANGED" | "GDC.DASH/EVT.KPI_WIDGET.MEASURE_CHANGED" | "GDC.DASH/EVT.KPI_WIDGET.FILTER_SETTINGS_CHANGED" | "GDC.DASH/EVT.KPI_WIDGET.COMPARISON_CHANGED" | "GDC.DASH/EVT.KPI_WIDGET.DRILL_REMOVED" | "GDC.DASH/EVT.KPI_WIDGET.DRILL_SET" | "GDC.DASH/EVT.KPI_WIDGET.WIDGET_CHANGED" | "GDC.DASH/EVT.INSIGHT_WIDGET.HEADER_CHANGED" | "GDC.DASH/EVT.INSIGHT_WIDGET.DESCRIPTION_CHANGED" | "GDC.DASH/EVT.INSIGHT_WIDGET.FILTER_SETTINGS_CHANGED" | "GDC.DASH/EVT.INSIGHT_WIDGET.PROPERTIES_CHANGED" | "GDC.DASH/EVT.INSIGHT_WIDGET.CONFIGURATION_CHANGED" | "GDC.DASH/EVT.INSIGHT_WIDGET.IGNORE_CROSS_FILTERING_CHANGED" | "GDC.DASH/EVT.INSIGHT_WIDGET.INSIGHT_SWITCHED" | "GDC.DASH/EVT.INSIGHT_WIDGET.DRILLS_MODIFIED" | "GDC.DASH/EVT.SHOW_WIDGET_AS_TABLE.SET" | "GDC.DASH/EVT.INSIGHT_WIDGET.DRILLS_REMOVED" | "GDC.DASH/EVT.INSIGHT_WIDGET.DRILL_DOWN_REMOVED" | "GDC.DASH/EVT.INSIGHT_WIDGET.DRILL_DOWN_ADDED" | "GDC.DASH/EVT.INSIGHT_WIDGET.DRILL_DOWN_MODIFIED" | "GDC.DASH/EVT.INSIGHT_WIDGET.WIDGET_CHANGED" | "GDC.DASH/EVT.INSIGHT_WIDGET.EXPORT_REQUESTED" | "GDC.DASH/EVT.INSIGHT_WIDGET.EXPORT_RESOLVED" | "GDC.DASH/EVT.INSIGHT_WIDGET.REFRESHED" | "GDC.DASH/EVT.RICH_TEXT_WIDGET.CONTENT_CHANGED" | "GDC.DASH/EVT.RICH_TEXT_WIDGET.FILTER_SETTINGS_CHANGED" | "GDC.DASH/EVT.VISUALIZATION_SWITCHER_WIDGET.VISUALIZATION_ADDED" | "GDC.DASH/EVT.VISUALIZATION_SWITCHER_WIDGET.VISUALIZATIONS_UPDATED" | "GDC.DASH/EVT.WIDGET.EXECUTION_STARTED" | "GDC.DASH/EVT.WIDGET.EXECUTION_FAILED" | "GDC.DASH/EVT.WIDGET.EXECUTION_SUCCEEDED" | "GDC.DASH/EVT.ALERT.CREATED" | "GDC.DASH/EVT.ALERT.SAVED" | "GDC.DASH/EVT.SCHEDULED_EMAIL.CREATED" | "GDC.DASH/EVT.SCHEDULED_EMAIL.SAVED" | "GDC.DASH/EVT.DRILL.REQUESTED" | "GDC.DASH/EVT.DRILL.RESOLVED" | "GDC.DASH/EVT.DRILL.DRILL_DOWN.REQUESTED" | "GDC.DASH/EVT.DRILL.DRILL_DOWN.RESOLVED" | "GDC.DASH/EVT.DRILL.DRILL_TO_INSIGHT.REQUESTED" | "GDC.DASH/EVT.DRILL.DRILL_TO_INSIGHT.RESOLVED" | "GDC.DASH/EVT.DRILL.DRILL_TO_DASHBOARD.REQUESTED" | "GDC.DASH/EVT.DRILL.DRILL_TO_DASHBOARD.RESOLVED" | "GDC.DASH/EVT.DRILL.DRILL_TO_ATTRIBUTE_URL.REQUESTED" | "GDC.DASH/EVT.DRILL.DRILL_TO_ATTRIBUTE_URL.RESOLVED" | "GDC.DASH/EVT.DRILL.DRILL_TO_CUSTOM_URL.REQUESTED" | "GDC.DASH/EVT.DRILL.DRILL_TO_CUSTOM_URL.RESOLVED" | "GDC.DASH/EVT.DRILL.DRILL_TO_LEGACY_DASHBOARD.REQUESTED" | "GDC.DASH/EVT.DRILL.DRILL_TO_LEGACY_DASHBOARD.RESOLVED" | "GDC.DASH/EVT.DRILL.DRILLABLE_ITEMS.CHANGED" | "GDC.DASH/EVT.DRILL.CROSS_FILTERING.REQUESTED" | "GDC.DASH/EVT.DRILL.CROSS_FILTERING.RESOLVED" | "GDC.DASH/EVT.DRILL.KEY_DRIVER_ANALYSIS.REQUESTED" | "GDC.DASH/EVT.DRILL.KEY_DRIVER_ANALYSIS.RESOLVED" | "GDC.DASH/EVT.DRILL_TARGETS.ADDED" | "GDC.DASH/EVT.RENDER.REQUESTED" | "GDC.DASH/EVT.RENDER.ASYNC.REQUESTED" | "GDC.DASH/EVT.RENDER.ASYNC.RESOLVED" | "GDC.DASH/EVT.RENDER.RESOLVED" | "GDC.DASH/EVT.SHARING.CHANGED" | "GDC.DASH/EVT.CREATE_INSIGHT_REQUESTED" | "GDC.DASH/EVT.CREATE_ATTRIBUTE_HIERARCHY_REQUESTED" | "GDC.DASH/EVT.DELETE_ATTRIBUTE_HIERARCHY_REQUESTED" | "GDC.DASH/EVT.ATTRIBUTE_HIERARCHY_MODIFIED" | "GDC.DASH/EVT.FILTER_CONTEXT.FILTER_VIEW.CREATE.SUCCESS" | "GDC.DASH/EVT.FILTER_CONTEXT.FILTER_VIEW.CREATE.FAILURE" | "GDC.DASH/EVT.FILTER_CONTEXT.FILTER_VIEW.DELETE.SUCCESS" | "GDC.DASH/EVT.FILTER_CONTEXT.FILTER_VIEW.DELETE.FAILURE" | "GDC.DASH/EVT.FILTER_CONTEXT.FILTER_VIEW.APPLY.SUCCESS" | "GDC.DASH/EVT.FILTER_CONTEXT.FILTER_VIEW.APPLY.FAILURE" | "GDC.DASH/EVT.FILTER_CONTEXT.FILTER_VIEW.CHANGE_DEFAULT_STATUS.SUCCESS" | "GDC.DASH/EVT.FILTER_CONTEXT.FILTER_VIEW.CHANGE_DEFAULT_STATUS.FAILURE" | "GDC.DASH/EVT.AUTOMATIONS.REFRESHED" | "GDC.DASH/EVT.IGNORE_EXECUTION_TIMESTAMP_CHANGED" | "GDC.DASH/EVT.FILTER_CONTEXT.SELECTION.RESET" | "GDC.DASH/EVT.FILTER_CONTEXT.WORKING_SELECTION.APPLIED" | "GDC.DASH/EVT.TAB.SWITCHED" | "GDC.DASH/EVT.TAB.REPOSITIONED" | "GDC.DASH/EVT.TAB.CREATED" | "GDC.DASH/EVT.TAB.DELETED" | "GDC.DASH/EVT.TAB.RENAME_MODE.STARTED" | "GDC.DASH/EVT.TAB.RENAME_MODE.CANCELED" | "GDC.DASH/EVT.TAB.RENAMED" | "GDC.DASH/EVT.PARAMETERS.SELECTION.RESET";
|
|
23
23
|
/**
|
|
24
24
|
* Base type for all dashboard events.
|
|
25
25
|
*
|