@gooddata/sdk-ui-dashboard 11.56.0-alpha.6 → 11.56.0-alpha.8
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/NOTICE +1 -1
- package/esm/__version.d.ts +1 -1
- package/esm/__version.js +1 -1
- package/esm/_staging/catalog/computedAttributes.d.ts +43 -0
- package/esm/_staging/catalog/computedAttributes.d.ts.map +1 -0
- package/esm/_staging/catalog/computedAttributes.js +93 -0
- package/esm/_staging/catalog/displayFormMap.d.ts +3 -2
- package/esm/_staging/catalog/displayFormMap.d.ts.map +1 -1
- package/esm/_staging/catalog/displayFormMap.js +9 -3
- package/esm/_staging/metadata/objRefMap.d.ts.map +1 -1
- package/esm/_staging/metadata/objRefMap.js +11 -1
- package/esm/index.d.ts +9 -5
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +7 -3
- package/esm/kdaDialog/composition/hooks/useKdaValidAttributes.js +2 -2
- package/esm/kdaDialog/dialog/hooks/useValidAttributes.d.ts.map +1 -1
- package/esm/kdaDialog/dialog/hooks/useValidAttributes.js +21 -6
- package/esm/kdaDialog/hooks/useAttribute.d.ts.map +1 -1
- package/esm/kdaDialog/hooks/useAttribute.js +16 -8
- package/esm/locales.d.ts +3 -0
- package/esm/locales.d.ts.map +1 -1
- package/esm/locales.js +3 -0
- package/esm/model/commandHandlers/dashboard/common/loadAvailableDisplayFormRefs.d.ts.map +1 -1
- package/esm/model/commandHandlers/dashboard/common/loadAvailableDisplayFormRefs.js +15 -6
- package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/index.d.ts +2 -3
- package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/index.d.ts.map +1 -1
- package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/index.js +26 -17
- package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/loadCatalog.d.ts +6 -1
- package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/loadCatalog.d.ts.map +1 -1
- package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/loadCatalog.js +37 -4
- package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/resolveDashboardConfig.d.ts +7 -2
- package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/resolveDashboardConfig.d.ts.map +1 -1
- package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/resolveDashboardConfig.js +15 -3
- package/esm/model/commandHandlers/filterContext/attributeFilter/validation/filterDisplayFormValidation.d.ts.map +1 -1
- package/esm/model/commandHandlers/filterContext/attributeFilter/validation/filterDisplayFormValidation.js +10 -3
- package/esm/model/commandHandlers/filterContext/attributeFilter/validation/uniqueFiltersValidation.d.ts.map +1 -1
- package/esm/model/commandHandlers/filterContext/attributeFilter/validation/uniqueFiltersValidation.js +24 -14
- package/esm/model/commandHandlers/scheduledEmail/createScheduledEmailHandler.js +2 -2
- package/esm/model/commandHandlers/scheduledEmail/saveScheduledEmailHandler.js +2 -2
- package/esm/model/commandHandlers/widgets/attributeHierarchyModifiedHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/widgets/attributeHierarchyModifiedHandler.js +6 -0
- package/esm/model/commandHandlers/widgets/exportInsightWidgetHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/widgets/exportInsightWidgetHandler.js +2 -2
- package/esm/model/commandHandlers/widgets/exportRawInsightWidgetHandler.js +2 -2
- package/esm/model/queries/base.d.ts +1 -1
- package/esm/model/queries/base.d.ts.map +1 -1
- package/esm/model/queries/base.js +1 -1
- package/esm/model/queries/computedAttributeExpression.d.ts +27 -0
- package/esm/model/queries/computedAttributeExpression.d.ts.map +1 -0
- package/esm/model/queries/computedAttributeExpression.js +21 -0
- package/esm/model/queries/connectedAttributes.d.ts +19 -1
- package/esm/model/queries/connectedAttributes.d.ts.map +1 -1
- package/esm/model/queries/connectedAttributes.js +3 -1
- package/esm/model/queries/index.d.ts +2 -1
- package/esm/model/queries/index.d.ts.map +1 -1
- package/esm/model/queryServices/index.d.ts +1 -1
- package/esm/model/queryServices/index.d.ts.map +1 -1
- package/esm/model/queryServices/index.js +2 -0
- package/esm/model/queryServices/queryAttributeByDisplayForm.d.ts.map +1 -1
- package/esm/model/queryServices/queryAttributeByDisplayForm.js +12 -3
- package/esm/model/queryServices/queryAttributeDataset.d.ts.map +1 -1
- package/esm/model/queryServices/queryAttributeDataset.js +9 -1
- package/esm/model/queryServices/queryComputedAttributeExpression.d.ts +4 -0
- package/esm/model/queryServices/queryComputedAttributeExpression.d.ts.map +1 -0
- package/esm/model/queryServices/queryComputedAttributeExpression.js +17 -0
- package/esm/model/queryServices/queryConnectedAttributes.d.ts.map +1 -1
- package/esm/model/queryServices/queryConnectedAttributes.js +20 -5
- package/esm/model/queryServices/queryInsightAttributesMeta.d.ts.map +1 -1
- package/esm/model/queryServices/queryInsightAttributesMeta.js +20 -11
- package/esm/model/react/useIsWidgetRestricted.d.ts +9 -0
- package/esm/model/react/useIsWidgetRestricted.d.ts.map +1 -0
- package/esm/model/react/useIsWidgetRestricted.js +14 -0
- package/esm/model/store/catalog/catalogReducers.d.ts +2 -1
- package/esm/model/store/catalog/catalogReducers.d.ts.map +1 -1
- package/esm/model/store/catalog/catalogReducers.js +2 -1
- package/esm/model/store/catalog/catalogSelectors.d.ts +21 -1
- package/esm/model/store/catalog/catalogSelectors.d.ts.map +1 -1
- package/esm/model/store/catalog/catalogSelectors.js +26 -2
- package/esm/model/store/catalog/catalogState.d.ts +8 -1
- package/esm/model/store/catalog/catalogState.d.ts.map +1 -1
- package/esm/model/store/catalog/catalogState.js +1 -0
- package/esm/model/store/config/configSelectors.d.ts +11 -0
- package/esm/model/store/config/configSelectors.d.ts.map +1 -1
- package/esm/model/store/config/configSelectors.js +13 -0
- package/esm/model/store/insights/insightsSelectors.js +3 -3
- package/esm/model/store/tabs/filterContext/filterContextSelectors.d.ts.map +1 -1
- package/esm/model/store/tabs/filterContext/filterContextSelectors.js +8 -4
- package/esm/model/store/unavailableObjects/unavailableObjectsSelectors.d.ts +8 -0
- package/esm/model/store/unavailableObjects/unavailableObjectsSelectors.d.ts.map +1 -1
- package/esm/model/store/unavailableObjects/unavailableObjectsSelectors.js +8 -0
- package/esm/model/utils/displayFormResolver.d.ts.map +1 -1
- package/esm/model/utils/displayFormResolver.js +11 -1
- package/esm/plugins/customizationApis/customizationBuilder.d.ts.map +1 -1
- package/esm/plugins/customizationApis/customizationBuilder.js +1 -0
- package/esm/plugins/customizationApis/insightCustomizer.d.ts +4 -2
- package/esm/plugins/customizationApis/insightCustomizer.d.ts.map +1 -1
- package/esm/plugins/customizationApis/insightCustomizer.js +43 -3
- package/esm/plugins/customizer.d.ts +14 -1
- package/esm/plugins/customizer.d.ts.map +1 -1
- package/esm/presentation/automations/alerting/AlertingDialog.d.ts +2 -0
- package/esm/presentation/automations/alerting/AlertingDialog.d.ts.map +1 -1
- package/esm/presentation/automations/alerting/AlertingDialog.js +12 -2
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.d.ts.map +1 -1
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.js +1 -1
- package/esm/presentation/automations/alerting/state/AlertingDialogStateProvider.d.ts.map +1 -1
- package/esm/presentation/automations/alerting/state/AlertingDialogStateProvider.js +23 -58
- package/esm/presentation/automations/alerting/state/useAlertDraftFilterWrites.d.ts +33 -0
- package/esm/presentation/automations/alerting/state/useAlertDraftFilterWrites.d.ts.map +1 -0
- package/esm/presentation/automations/alerting/state/useAlertDraftFilterWrites.js +61 -0
- package/esm/presentation/automations/alerting/state/useAlertFiltersModel.d.ts +3 -17
- package/esm/presentation/automations/alerting/state/useAlertFiltersModel.d.ts.map +1 -1
- package/esm/presentation/automations/alerting/state/useAlertFiltersModel.js +3 -52
- package/esm/presentation/automations/alerting/state/useAlertFormState.js +1 -1
- package/esm/presentation/automations/connectors/hooks/useBuildAutomationsContext.js +2 -2
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.d.ts.map +1 -1
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.js +1 -1
- package/esm/presentation/automations/scheduledEmail/ScheduledEmailDialog.d.ts +3 -1
- package/esm/presentation/automations/scheduledEmail/ScheduledEmailDialog.d.ts.map +1 -1
- package/esm/presentation/automations/scheduledEmail/ScheduledEmailDialog.js +13 -3
- package/esm/presentation/automations/scheduledEmail/blocks/ScheduledEmailDialogShell.js +2 -5
- package/esm/presentation/automations/scheduledEmail/state/ScheduledEmailDialogStateProvider.d.ts.map +1 -1
- package/esm/presentation/automations/scheduledEmail/state/ScheduledEmailDialogStateProvider.js +22 -40
- package/esm/presentation/automations/scheduledEmail/state/useSaveScheduledEmailToBackend.d.ts.map +1 -1
- package/esm/presentation/automations/scheduledEmail/state/useSaveScheduledEmailToBackend.js +14 -3
- package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailDraftFilterWrites.d.ts +27 -0
- package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailDraftFilterWrites.d.ts.map +1 -0
- package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailDraftFilterWrites.js +142 -0
- package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailFiltersModel.d.ts +4 -6
- package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailFiltersModel.d.ts.map +1 -1
- package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailFiltersModel.js +9 -151
- package/esm/presentation/automations/shared/filters/conversions.d.ts +4 -0
- package/esm/presentation/automations/shared/filters/conversions.d.ts.map +1 -1
- package/esm/presentation/automations/shared/filters/conversions.js +28 -24
- package/esm/presentation/automations/shared/hooks/useDecoratorContractCheck.d.ts +16 -0
- package/esm/presentation/automations/shared/hooks/useDecoratorContractCheck.d.ts.map +1 -0
- package/esm/presentation/automations/shared/hooks/useDecoratorContractCheck.js +38 -0
- package/esm/presentation/automations/shared/hooks/useShallowStable.d.ts +10 -0
- package/esm/presentation/automations/shared/hooks/useShallowStable.d.ts.map +1 -0
- package/esm/presentation/automations/shared/hooks/useShallowStable.js +18 -0
- package/esm/presentation/dashboard/DashboardSidebar/CreationPanel.d.ts.map +1 -1
- package/esm/presentation/dashboard/DashboardSidebar/CreationPanel.js +17 -4
- package/esm/presentation/dashboard/DashboardSidebar/SidebarCollapseToggle.d.ts +10 -0
- package/esm/presentation/dashboard/DashboardSidebar/SidebarCollapseToggle.d.ts.map +1 -0
- package/esm/presentation/dashboard/DashboardSidebar/SidebarCollapseToggle.js +19 -0
- package/esm/presentation/dashboard/DashboardSidebar/SidebarConfigurationPanel.d.ts.map +1 -1
- package/esm/presentation/dashboard/DashboardSidebar/SidebarConfigurationPanel.js +8 -2
- package/esm/presentation/dashboard/DashboardSidebar/SidebarResizeChrome.d.ts.map +1 -1
- package/esm/presentation/dashboard/DashboardSidebar/SidebarResizeChrome.js +4 -2
- package/esm/presentation/dashboard/DashboardSidebar/SidebarResizeContext.d.ts +8 -3
- package/esm/presentation/dashboard/DashboardSidebar/SidebarResizeContext.d.ts.map +1 -1
- package/esm/presentation/dashboard/DashboardSidebar/SidebarResizeContext.js +65 -25
- package/esm/presentation/dashboard/components/DashboardInner.d.ts.map +1 -1
- package/esm/presentation/dashboard/components/DashboardInner.js +4 -4
- package/esm/presentation/dashboard/components/DashboardRenderer.d.ts.map +1 -1
- package/esm/presentation/dashboard/components/DashboardRenderer.js +2 -2
- package/esm/presentation/dashboard/hooks/useDashboard.d.ts +2 -1
- package/esm/presentation/dashboard/hooks/useDashboard.d.ts.map +1 -1
- package/esm/presentation/dashboard/hooks/useDashboard.js +7 -1
- package/esm/presentation/dashboard/types.d.ts +14 -1
- package/esm/presentation/dashboard/types.d.ts.map +1 -1
- package/esm/presentation/dashboardContexts/DashboardComponentsContext.d.ts +2 -1
- package/esm/presentation/dashboardContexts/DashboardComponentsContext.d.ts.map +1 -1
- package/esm/presentation/dashboardContexts/DashboardComponentsContext.js +1 -0
- package/esm/presentation/dashboardContexts/types.d.ts +20 -0
- package/esm/presentation/dashboardContexts/types.d.ts.map +1 -1
- package/esm/presentation/dragAndDrop/draggableAttributeFilter/DefaultAttributeFilterDraggingComponent.d.ts.map +1 -1
- package/esm/presentation/dragAndDrop/draggableAttributeFilter/DefaultAttributeFilterDraggingComponent.js +4 -3
- package/esm/presentation/export/useExportData.js +2 -2
- package/esm/presentation/filterBar/attributeFilter/addAttributeFilter/attributeListItemTooltip/AttributeListItemTooltip.d.ts.map +1 -1
- package/esm/presentation/filterBar/attributeFilter/addAttributeFilter/attributeListItemTooltip/AttributeListItemTooltip.js +8 -2
- package/esm/presentation/filterBar/attributeFilter/addAttributeFilter/attributeListItemTooltip/AttributeListItemTooltipContent.d.ts +12 -1
- package/esm/presentation/filterBar/attributeFilter/addAttributeFilter/attributeListItemTooltip/AttributeListItemTooltipContent.d.ts.map +1 -1
- package/esm/presentation/filterBar/attributeFilter/addAttributeFilter/attributeListItemTooltip/AttributeListItemTooltipContent.js +19 -2
- package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/displayForms/AttributeDisplayFormsDropdown.d.ts.map +1 -1
- package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/displayForms/AttributeDisplayFormsDropdown.js +3 -2
- package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/hooks/useComputedAttributeExpression.d.ts +14 -0
- package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/hooks/useComputedAttributeExpression.d.ts.map +1 -0
- package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/hooks/useComputedAttributeExpression.js +28 -0
- package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/hooks/useDisplayFormConfiguration.js +2 -2
- package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/hooks/useValidNeighbourAttributes.d.ts.map +1 -1
- package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/hooks/useValidNeighbourAttributes.js +12 -2
- package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/limitValues/shared/limitingItemsHook.d.ts.map +1 -1
- package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/limitValues/shared/limitingItemsHook.js +6 -5
- package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/parentFilters/ParentFiltersDisabledItem.js +2 -2
- package/esm/presentation/filterBar/filterBar/DefaultFilterBarItem.js +2 -2
- package/esm/presentation/filterBar/filterBar/useFiltersWithAddedPlaceholder.js +2 -2
- package/esm/presentation/filterBar/measureValueFilter/useDashboardMeasureValueFilterData.d.ts.map +1 -1
- package/esm/presentation/filterBar/measureValueFilter/useDashboardMeasureValueFilterData.js +55 -17
- package/esm/presentation/flexibleLayout/DashboardLayoutWidget.d.ts.map +1 -1
- package/esm/presentation/flexibleLayout/DashboardLayoutWidget.js +6 -1
- package/esm/presentation/localization/bundles/de-DE.localization-bundle.d.ts +5 -4
- package/esm/presentation/localization/bundles/de-DE.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/de-DE.localization-bundle.js +5 -4
- package/esm/presentation/localization/bundles/en-AU.localization-bundle.d.ts +5 -4
- package/esm/presentation/localization/bundles/en-AU.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/en-AU.localization-bundle.js +5 -4
- package/esm/presentation/localization/bundles/en-GB.localization-bundle.d.ts +5 -4
- package/esm/presentation/localization/bundles/en-GB.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/en-GB.localization-bundle.js +5 -4
- package/esm/presentation/localization/bundles/en-US.localization-bundle.d.ts +40 -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 +40 -0
- package/esm/presentation/localization/bundles/es-419.localization-bundle.d.ts +5 -4
- package/esm/presentation/localization/bundles/es-419.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/es-419.localization-bundle.js +5 -4
- package/esm/presentation/localization/bundles/es-ES.localization-bundle.d.ts +5 -4
- package/esm/presentation/localization/bundles/es-ES.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/es-ES.localization-bundle.js +5 -4
- package/esm/presentation/localization/bundles/fi-FI.localization-bundle.d.ts +5 -4
- package/esm/presentation/localization/bundles/fi-FI.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/fi-FI.localization-bundle.js +5 -4
- package/esm/presentation/localization/bundles/fr-CA.localization-bundle.d.ts +5 -4
- package/esm/presentation/localization/bundles/fr-CA.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/fr-CA.localization-bundle.js +5 -4
- package/esm/presentation/localization/bundles/fr-FR.localization-bundle.d.ts +5 -4
- package/esm/presentation/localization/bundles/fr-FR.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/fr-FR.localization-bundle.js +5 -4
- package/esm/presentation/localization/bundles/id-ID.localization-bundle.d.ts +5 -4
- package/esm/presentation/localization/bundles/id-ID.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/id-ID.localization-bundle.js +5 -4
- package/esm/presentation/localization/bundles/it-IT.localization-bundle.d.ts +5 -4
- package/esm/presentation/localization/bundles/it-IT.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/it-IT.localization-bundle.js +5 -4
- package/esm/presentation/localization/bundles/ja-JP.localization-bundle.d.ts +5 -4
- package/esm/presentation/localization/bundles/ja-JP.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/ja-JP.localization-bundle.js +33 -32
- package/esm/presentation/localization/bundles/ko-KR.localization-bundle.d.ts +5 -4
- package/esm/presentation/localization/bundles/ko-KR.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/ko-KR.localization-bundle.js +5 -4
- package/esm/presentation/localization/bundles/nl-NL.localization-bundle.d.ts +5 -4
- package/esm/presentation/localization/bundles/nl-NL.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/nl-NL.localization-bundle.js +5 -4
- package/esm/presentation/localization/bundles/pl-PL.localization-bundle.d.ts +5 -4
- package/esm/presentation/localization/bundles/pl-PL.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/pl-PL.localization-bundle.js +5 -4
- package/esm/presentation/localization/bundles/pt-BR.localization-bundle.d.ts +5 -4
- package/esm/presentation/localization/bundles/pt-BR.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/pt-BR.localization-bundle.js +5 -4
- package/esm/presentation/localization/bundles/pt-PT.localization-bundle.d.ts +5 -4
- package/esm/presentation/localization/bundles/pt-PT.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/pt-PT.localization-bundle.js +5 -4
- package/esm/presentation/localization/bundles/ru-RU.localization-bundle.d.ts +5 -4
- package/esm/presentation/localization/bundles/ru-RU.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/ru-RU.localization-bundle.js +5 -4
- package/esm/presentation/localization/bundles/sl-SI.localization-bundle.d.ts +5 -4
- package/esm/presentation/localization/bundles/sl-SI.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/sl-SI.localization-bundle.js +5 -4
- package/esm/presentation/localization/bundles/th-TH.localization-bundle.d.ts +5 -4
- package/esm/presentation/localization/bundles/th-TH.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/th-TH.localization-bundle.js +5 -4
- package/esm/presentation/localization/bundles/tr-TR.localization-bundle.d.ts +5 -4
- package/esm/presentation/localization/bundles/tr-TR.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/tr-TR.localization-bundle.js +5 -4
- package/esm/presentation/localization/bundles/uk-UA.localization-bundle.d.ts +5 -4
- package/esm/presentation/localization/bundles/uk-UA.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/uk-UA.localization-bundle.js +5 -4
- package/esm/presentation/localization/bundles/vi-VN.localization-bundle.d.ts +5 -4
- package/esm/presentation/localization/bundles/vi-VN.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/vi-VN.localization-bundle.js +5 -4
- package/esm/presentation/localization/bundles/zh-HK.localization-bundle.d.ts +5 -4
- package/esm/presentation/localization/bundles/zh-HK.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/zh-HK.localization-bundle.js +5 -4
- package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.d.ts +5 -4
- package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.js +5 -4
- package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.d.ts +5 -4
- package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.js +5 -4
- package/esm/presentation/widget/common/RestrictedPlaceholder.d.ts +54 -0
- package/esm/presentation/widget/common/RestrictedPlaceholder.d.ts.map +1 -0
- package/esm/presentation/widget/common/RestrictedPlaceholder.js +49 -0
- package/esm/presentation/widget/common/configuration/DateDatasetFilter.d.ts +6 -1
- package/esm/presentation/widget/common/configuration/DateDatasetFilter.d.ts.map +1 -1
- package/esm/presentation/widget/common/configuration/DateDatasetFilter.js +2 -2
- package/esm/presentation/widget/common/configuration/DateFilterCheckbox.d.ts +6 -1
- package/esm/presentation/widget/common/configuration/DateFilterCheckbox.d.ts.map +1 -1
- package/esm/presentation/widget/common/configuration/DateFilterCheckbox.js +10 -3
- package/esm/presentation/widget/insight/DefaultInsightBody/DefaultInsightBody.js +2 -2
- package/esm/presentation/widget/insight/ViewModeDashboardInsight/InsightDrillDialog/DrillDialogInsight.js +2 -2
- package/esm/presentation/widget/insight/configuration/InsightDateDataSetFilter.d.ts.map +1 -1
- package/esm/presentation/widget/insight/configuration/InsightDateDataSetFilter.js +1 -1
- package/esm/presentation/widget/insight/configuration/InsightDrillConfigList.d.ts +6 -1
- package/esm/presentation/widget/insight/configuration/InsightDrillConfigList.d.ts.map +1 -1
- package/esm/presentation/widget/insight/configuration/InsightDrillConfigList.js +13 -2
- package/esm/presentation/widget/insight/configuration/InsightDrillConfigPanel/InsightDrillConfigPanel.d.ts.map +1 -1
- package/esm/presentation/widget/insight/configuration/InsightDrillConfigPanel/InsightDrillConfigPanel.js +5 -1
- package/esm/presentation/widget/insight/configuration/useDrillTargetTypeItems.d.ts +1 -1
- package/esm/presentation/widget/insight/configuration/useDrillTargetTypeItems.d.ts.map +1 -1
- package/esm/presentation/widget/insight/configuration/useDrillTargetTypeItems.js +2 -2
- package/esm/presentation/widget/richText/configuration/RichTextDateDataSetFilter.d.ts.map +1 -1
- package/esm/presentation/widget/richText/configuration/RichTextDateDataSetFilter.js +1 -1
- package/esm/presentation/widget/visualizationSwitcher/ViewModeDashboardVisualizationSwitcher.d.ts.map +1 -1
- package/esm/presentation/widget/visualizationSwitcher/ViewModeDashboardVisualizationSwitcher.js +8 -0
- package/esm/presentation/widget/visualizationSwitcher/ViewModeDashboardVisualizationSwitcherRestricted.d.ts +16 -0
- package/esm/presentation/widget/visualizationSwitcher/ViewModeDashboardVisualizationSwitcherRestricted.d.ts.map +1 -0
- package/esm/presentation/widget/visualizationSwitcher/ViewModeDashboardVisualizationSwitcherRestricted.js +19 -0
- package/esm/presentation/widget/widget/InsightWidget/DashboardWidgetInsightGuard.d.ts.map +1 -1
- package/esm/presentation/widget/widget/InsightWidget/DashboardWidgetInsightGuard.js +11 -1
- package/esm/presentation/widget/widget/InsightWidget/DefaultDashboardInsightWidget.js +2 -2
- package/esm/presentation/widget/widget/VisualizationSwitcherWidget/VisualizationSwitcherNavigationHeader.d.ts.map +1 -1
- package/esm/presentation/widget/widget/VisualizationSwitcherWidget/VisualizationSwitcherNavigationHeader.js +25 -12
- package/esm/sdk-ui-dashboard.d.ts +206 -4
- package/package.json +22 -22
- package/styles/css/alerting.css +3 -1
- package/styles/css/alerting.css.map +1 -1
- package/styles/css/configurationPanel.css +1 -5
- package/styles/css/configurationPanel.css.map +1 -1
- package/styles/css/dashboard.css +5 -3
- package/styles/css/dashboard.css.map +1 -1
- package/styles/css/export.css +10 -8
- package/styles/css/export.css.map +1 -1
- package/styles/css/filterBar.css +29 -0
- package/styles/css/filterBar.css.map +1 -1
- package/styles/css/main.css +230 -22
- package/styles/css/main.css.map +1 -1
- package/styles/css/sidebar.css +165 -0
- package/styles/css/sidebar.css.map +1 -1
- package/styles/css/visualizationSwitcherWidget.css +8 -0
- package/styles/css/visualizationSwitcherWidget.css.map +1 -1
- package/styles/scss/configurationPanel.scss +1 -7
- package/styles/scss/filterBar.scss +38 -0
- package/styles/scss/sidebar.scss +215 -0
- package/styles/scss/visualizationSwitcherWidget.scss +9 -0
|
@@ -5,7 +5,7 @@ import { messages } from "../../../../locales.js";
|
|
|
5
5
|
import { useDashboardSelector } from "../../../../model/react/DashboardStoreProvider.js";
|
|
6
6
|
import { selectSupportsAttributeHierarchies } from "../../../../model/store/backendCapabilities/backendCapabilitiesSelectors.js";
|
|
7
7
|
import { DRILL_TARGET_TYPE } from "../../../drill/types.js";
|
|
8
|
-
export const useDrillTargetTypeItems = (disableDrillDown) => {
|
|
8
|
+
export const useDrillTargetTypeItems = (disableDrillDown, disableDrillDownTooltip) => {
|
|
9
9
|
const intl = useIntl();
|
|
10
10
|
const supportsAttributeHierarchies = useDashboardSelector(selectSupportsAttributeHierarchies);
|
|
11
11
|
const dropdownItems = [
|
|
@@ -28,7 +28,7 @@ export const useDrillTargetTypeItems = (disableDrillDown) => {
|
|
|
28
28
|
title: intl.formatMessage(messages.drillDownConfig),
|
|
29
29
|
disabled: disableDrillDown,
|
|
30
30
|
disableTooltipMessage: disableDrillDown
|
|
31
|
-
? intl.formatMessage(messages.disableDrillDownToolTip)
|
|
31
|
+
? (disableDrillDownTooltip ?? intl.formatMessage(messages.disableDrillDownToolTip))
|
|
32
32
|
: undefined,
|
|
33
33
|
tooltipMessage: uiMessages["drilldownTooltip"].id,
|
|
34
34
|
documentUrl: "https://www.gooddata.com/docs/cloud/create-dashboards/drilling-in-dashboards/set-drill-down/",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RichTextDateDataSetFilter.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/widget/richText/configuration/RichTextDateDataSetFilter.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,eAAe,EAAa,MAAM,qBAAqB,CAAC;AAatE,MAAM,WAAW,+BAA+B;IAC5C,MAAM,EAAE,eAAe,CAAC;CAC3B;AAED,wBAAgB,yBAAyB,CAAC,EAAE,MAAM,EAAE,EAAE,+BAA+B,
|
|
1
|
+
{"version":3,"file":"RichTextDateDataSetFilter.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/widget/richText/configuration/RichTextDateDataSetFilter.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,eAAe,EAAa,MAAM,qBAAqB,CAAC;AAatE,MAAM,WAAW,+BAA+B;IAC5C,MAAM,EAAE,eAAe,CAAC;CAC3B;AAED,wBAAgB,yBAAyB,CAAC,EAAE,MAAM,EAAE,EAAE,+BAA+B,2CAqCpF"}
|
|
@@ -17,5 +17,5 @@ export function RichTextDateDataSetFilter({ widget }) {
|
|
|
17
17
|
queryDateDatasets();
|
|
18
18
|
}, [queryDateDatasets]);
|
|
19
19
|
const { handleDateDatasetChanged, shouldOpenDateDatasetPicker } = useDateDatasetFilter(result?.dateDatasets);
|
|
20
|
-
return (_jsx(DateDatasetFilter, { widget: widget, dateFilterCheckboxDisabled: false, isDatasetsLoading: status === "running" || status === "pending" || isLoadingAdditionalData, relatedDateDatasets: result?.dateDatasetsOrdered, isLoadingAdditionalData: isLoadingAdditionalData, shouldOpenDateDatasetPicker: shouldOpenDateDatasetPicker, onDateDatasetChanged: handleDateDatasetChanged }));
|
|
20
|
+
return (_jsx(DateDatasetFilter, { widget: widget, dateFilterCheckboxDisabled: false, isDatasetsLoading: status === "running" || status === "pending" || isLoadingAdditionalData, relatedDateDatasets: result?.dateDatasetsOrdered, datasetsLoadFailed: status === "error", isLoadingAdditionalData: isLoadingAdditionalData, shouldOpenDateDatasetPicker: shouldOpenDateDatasetPicker, onDateDatasetChanged: handleDateDatasetChanged }));
|
|
21
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewModeDashboardVisualizationSwitcher.d.ts","sourceRoot":"","sources":["../../../../src/presentation/widget/visualizationSwitcher/ViewModeDashboardVisualizationSwitcher.tsx"],"names":[],"mappings":"AAOA,OAAO,EACH,KAAK,QAAQ,EACb,KAAK,cAAc,EAGtB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"ViewModeDashboardVisualizationSwitcher.d.ts","sourceRoot":"","sources":["../../../../src/presentation/widget/visualizationSwitcher/ViewModeDashboardVisualizationSwitcher.tsx"],"names":[],"mappings":"AAOA,OAAO,EACH,KAAK,QAAQ,EACb,KAAK,cAAc,EAGtB,MAAM,qBAAqB,CAAC;AA0B7B,OAAO,EAAE,KAAK,oCAAoC,EAAE,MAAM,YAAY,CAAC;AAIvE;;GAEG;AACH,wBAAgB,sCAAsC,CAAC,EACnD,MAAM,EACN,qBAAqB,EAAE,4BAA4B,EACnD,OAAO,EACP,aAAa,EACb,gBAAgB,EAChB,MAAM,EACN,UAAU,GACb,EAAE,oCAAoC,2CAwDtC;AAED,wBAAgB,2CAA2C,4CAE1D;AAED,MAAM,WAAW,mDAAoD,SAAQ,oCAAoC;IAC7G,OAAO,EAAE,QAAQ,CAAC;IAClB,mBAAmB,EAAE,cAAc,CAAC;IACpC,2BAA2B,EAAE,CAAC,qBAAqB,EAAE,MAAM,KAAK,IAAI,CAAC;CACxE;AAED,wBAAgB,6CAA6C,CAAC,EAC1D,MAAM,EACN,OAAO,EACP,mBAAmB,EACnB,2BAA2B,EAC3B,MAAM,EACN,OAAO,EACP,aAAa,EACb,gBAAgB,EAChB,UAAU,GACb,EAAE,mDAAmD,2CAmOrD"}
|
package/esm/presentation/widget/visualizationSwitcher/ViewModeDashboardVisualizationSwitcher.js
CHANGED
|
@@ -12,6 +12,7 @@ import { useDashboardAlerts } from "../../../model/react/useDashboardAlerting/us
|
|
|
12
12
|
import { useDashboardCommand } from "../../../model/react/useDashboardCommand.js";
|
|
13
13
|
import { selectInsightsMap } from "../../../model/store/insights/insightsSelectors.js";
|
|
14
14
|
import { selectVisualizationSwitcherActiveVisualizationByWidgetRef } from "../../../model/store/ui/uiSelectors.js";
|
|
15
|
+
import { selectRestrictedInsightsMap } from "../../../model/store/unavailableObjects/unavailableObjectsSelectors.js";
|
|
15
16
|
import { useDashboardComponentsContext } from "../../dashboardContexts/DashboardComponentsContext.js";
|
|
16
17
|
import { DashboardItem } from "../../presentationComponents/DashboardItems/DashboardItem.js";
|
|
17
18
|
import { DashboardItemVisualization } from "../../presentationComponents/DashboardItems/DashboardItemVisualization.js";
|
|
@@ -26,6 +27,7 @@ import { useInsightMenu } from "../widget/InsightWidget/useInsightMenu.js";
|
|
|
26
27
|
import { VisualizationSwitcherNavigationHeader } from "../widget/VisualizationSwitcherWidget/VisualizationSwitcherNavigationHeader.js";
|
|
27
28
|
import { AllVisualizationsDashInsights } from "./AllVisualizationsDashInsights.js";
|
|
28
29
|
import { useExecutionProgress } from "./useExecutionProgress.js";
|
|
30
|
+
import { ViewModeDashboardVisualizationSwitcherRestricted } from "./ViewModeDashboardVisualizationSwitcherRestricted.js";
|
|
29
31
|
/**
|
|
30
32
|
* @internal
|
|
31
33
|
*/
|
|
@@ -40,7 +42,13 @@ export function ViewModeDashboardVisualizationSwitcher({ widget, activeVisualiza
|
|
|
40
42
|
const activeVisualization = widget.visualizations.find((visualization) => visualization.identifier === activeVisualizationId) ??
|
|
41
43
|
widget.visualizations[0];
|
|
42
44
|
const insights = useDashboardSelector(selectInsightsMap);
|
|
45
|
+
const restrictedInsights = useDashboardSelector(selectRestrictedInsightsMap);
|
|
43
46
|
const insight = activeVisualization ? insights.get(activeVisualization.insight) : undefined;
|
|
47
|
+
// a restricted insight is withheld from the insights map, so this must be decided before the
|
|
48
|
+
// missing-insight branch below, which would otherwise render the empty switcher
|
|
49
|
+
if (activeVisualization && restrictedInsights.has(activeVisualization.insight)) {
|
|
50
|
+
return (_jsx(ViewModeDashboardVisualizationSwitcherRestricted, { widget: widget, activeVisualization: activeVisualization, screen: screen, exportData: exportData, onActiveVisualizationChange: setActiveVisualizationId }));
|
|
51
|
+
}
|
|
44
52
|
if (!activeVisualization || !insight) {
|
|
45
53
|
return _jsx(ViewModeDashboardVisualizationSwitcherEmpty, {});
|
|
46
54
|
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type IInsightWidget, type IVisualizationSwitcherWidget, type ScreenSize } from "@gooddata/sdk-model";
|
|
2
|
+
import { type WidgetExportData } from "../../export/types.js";
|
|
3
|
+
export interface IViewModeDashboardVisualizationSwitcherRestrictedProps {
|
|
4
|
+
widget: IVisualizationSwitcherWidget;
|
|
5
|
+
activeVisualization: IInsightWidget;
|
|
6
|
+
screen: ScreenSize;
|
|
7
|
+
exportData?: WidgetExportData;
|
|
8
|
+
onActiveVisualizationChange: (activeVisualizationId: string) => void;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* The switcher with a restricted visualization active. The switcher keeps its entry list, so the user
|
|
12
|
+
* can move to a readable visualization; only the body becomes the access placeholder, and no widget
|
|
13
|
+
* menu is offered, which leaves the widget without drill and without export.
|
|
14
|
+
*/
|
|
15
|
+
export declare function ViewModeDashboardVisualizationSwitcherRestricted({ widget, activeVisualization, screen, exportData, onActiveVisualizationChange, }: IViewModeDashboardVisualizationSwitcherRestrictedProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
//# sourceMappingURL=ViewModeDashboardVisualizationSwitcherRestricted.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ViewModeDashboardVisualizationSwitcherRestricted.d.ts","sourceRoot":"","sources":["../../../../src/presentation/widget/visualizationSwitcher/ViewModeDashboardVisualizationSwitcherRestricted.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,4BAA4B,EAAE,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAI9G,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAK9D,MAAM,WAAW,sDAAsD;IACnE,MAAM,EAAE,4BAA4B,CAAC;IACrC,mBAAmB,EAAE,cAAc,CAAC;IACpC,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,2BAA2B,EAAE,CAAC,qBAAqB,EAAE,MAAM,KAAK,IAAI,CAAC;CACxE;AAED;;;;GAIG;AACH,wBAAgB,gDAAgD,CAAC,EAC7D,MAAM,EACN,mBAAmB,EACnB,MAAM,EACN,UAAU,EACV,2BAA2B,GAC9B,EAAE,sDAAsD,2CAqCxD"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
// (C) 2026 GoodData Corporation
|
|
3
|
+
import cx from "classnames";
|
|
4
|
+
import { useId } from "@gooddata/sdk-ui-kit";
|
|
5
|
+
import { useDashboardComponentsContext } from "../../dashboardContexts/DashboardComponentsContext.js";
|
|
6
|
+
import { DashboardItem } from "../../presentationComponents/DashboardItems/DashboardItem.js";
|
|
7
|
+
import { DashboardItemVisualization } from "../../presentationComponents/DashboardItems/DashboardItemVisualization.js";
|
|
8
|
+
import { VisualizationSwitcherNavigationHeader } from "../widget/VisualizationSwitcherWidget/VisualizationSwitcherNavigationHeader.js";
|
|
9
|
+
/**
|
|
10
|
+
* The switcher with a restricted visualization active. The switcher keeps its entry list, so the user
|
|
11
|
+
* can move to a readable visualization; only the body becomes the access placeholder, and no widget
|
|
12
|
+
* menu is offered, which leaves the widget without drill and without export.
|
|
13
|
+
*/
|
|
14
|
+
export function ViewModeDashboardVisualizationSwitcherRestricted({ widget, activeVisualization, screen, exportData, onActiveVisualizationChange, }) {
|
|
15
|
+
const titleId = useId();
|
|
16
|
+
const { RestrictedPlaceholderComponentProvider } = useDashboardComponentsContext();
|
|
17
|
+
const Content = RestrictedPlaceholderComponentProvider(activeVisualization);
|
|
18
|
+
return (_jsx(DashboardItem, { className: cx("type-visualization", "gd-dashboard-view-widget"), screen: screen, titleId: titleId, children: _jsx(DashboardItemVisualization, { isExport: !!exportData, renderHeadline: (clientHeight, clientWidth) => (_jsx(VisualizationSwitcherNavigationHeader, { widget: widget, clientHeight: clientHeight, clientWidth: clientWidth, titleId: titleId, activeVisualization: activeVisualization, onActiveVisualizationChange: onActiveVisualizationChange, exportData: exportData?.title })), children: ({ clientHeight, clientWidth }) => (_jsx("div", { className: "gd-visualization-switcher-visible-visualization", children: _jsx("div", { className: "visualization-content", children: _jsx(Content, { width: clientWidth, height: clientHeight }) }) })) }) }));
|
|
19
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DashboardWidgetInsightGuard.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/widget/widget/InsightWidget/DashboardWidgetInsightGuard.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"DashboardWidgetInsightGuard.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/widget/widget/InsightWidget/DashboardWidgetInsightGuard.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAQ3C,OAAO,EAAE,KAAK,mCAAmC,EAAE,MAAM,YAAY,CAAC;AAEtE,UAAU,iCAAkC,SAAQ,IAAI,CAAC,mCAAmC,EAAE,SAAS,CAAC;IACpG,SAAS,EAAE,aAAa,CAAC,mCAAmC,CAAC,CAAC;CACjE;AAKD,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,iCAAiC,2CAsBnF"}
|
|
@@ -1,12 +1,22 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useDashboardSelector } from "../../../../model/react/DashboardStoreProvider.js";
|
|
3
|
+
import { useIsWidgetRestricted } from "../../../../model/react/useIsWidgetRestricted.js";
|
|
3
4
|
import { selectInsightsMap } from "../../../../model/store/insights/insightsSelectors.js";
|
|
5
|
+
import { useDashboardComponentsContext } from "../../../dashboardContexts/DashboardComponentsContext.js";
|
|
6
|
+
import { RestrictedPlaceholder } from "../../common/RestrictedPlaceholder.js";
|
|
4
7
|
// Sometimes this component is rendered even before insights are ready, which blows up.
|
|
5
8
|
// Since the behavior is nearly impossible to replicate reliably, let's be defensive here and not render
|
|
6
9
|
// anything until the insights "catch up".
|
|
7
10
|
export function DashboardWidgetInsightGuard(props) {
|
|
8
|
-
const { widget, Component } = props;
|
|
11
|
+
const { widget, screen, dashboardItemClasses, exportData, Component } = props;
|
|
9
12
|
const insights = useDashboardSelector(selectInsightsMap);
|
|
13
|
+
const isRestricted = useIsWidgetRestricted(widget);
|
|
14
|
+
const { RestrictedPlaceholderComponentProvider } = useDashboardComponentsContext();
|
|
15
|
+
// view, edit and export modes all reach the widget through this guard, so short-circuiting here is
|
|
16
|
+
// what strips the config panel, menu and selection from a restricted widget in edit mode
|
|
17
|
+
if (isRestricted) {
|
|
18
|
+
return (_jsx(RestrictedPlaceholder, { screen: screen, dashboardItemClasses: dashboardItemClasses, exportData: exportData, Content: RestrictedPlaceholderComponentProvider(widget) }));
|
|
19
|
+
}
|
|
10
20
|
const insight = insights.get(widget.insight);
|
|
11
21
|
return _jsx(Component, { ...props, insight: insight });
|
|
12
22
|
}
|
|
@@ -8,7 +8,7 @@ import { useId } from "@gooddata/sdk-ui-kit";
|
|
|
8
8
|
import { useDashboardSelector } from "../../../../model/react/DashboardStoreProvider.js";
|
|
9
9
|
import { useDashboardScheduledEmails } from "../../../../model/react/useDasboardScheduledEmails/useDashboardScheduledEmails.js";
|
|
10
10
|
import { useDashboardAlerts } from "../../../../model/react/useDashboardAlerting/useDashboardAlerts.js";
|
|
11
|
-
import {
|
|
11
|
+
import { selectCatalogAttributesWithComputed } from "../../../../model/store/catalog/catalogSelectors.js";
|
|
12
12
|
import { selectSettings } from "../../../../model/store/config/configSelectors.js";
|
|
13
13
|
import { selectRenderMode } from "../../../../model/store/renderMode/renderModeSelectors.js";
|
|
14
14
|
import { selectPreloadedAttributesWithReferences } from "../../../../model/store/tabs/filterContext/filterContextSelectors.js";
|
|
@@ -39,7 +39,7 @@ export function DefaultDashboardInsightWidget(props) {
|
|
|
39
39
|
function DefaultDashboardInsightWidgetCore({ widget, insight, screen, onError, onExportReady, onLoadingChanged, dashboardItemClasses, exportData, }) {
|
|
40
40
|
const intl = useIntl();
|
|
41
41
|
const settings = useDashboardSelector(selectSettings);
|
|
42
|
-
const catalogAttributes = useDashboardSelector(
|
|
42
|
+
const catalogAttributes = useDashboardSelector(selectCatalogAttributesWithComputed);
|
|
43
43
|
const preloadedAttributesWithReferences = useDashboardSelector(selectPreloadedAttributesWithReferences);
|
|
44
44
|
const renderMode = useDashboardSelector(selectRenderMode);
|
|
45
45
|
const isExportMode = renderMode === "export";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VisualizationSwitcherNavigationHeader.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/widget/widget/VisualizationSwitcherWidget/VisualizationSwitcherNavigationHeader.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"VisualizationSwitcherNavigationHeader.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/widget/widget/VisualizationSwitcherWidget/VisualizationSwitcherNavigationHeader.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAa7F,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAG3E,UAAU,2CAA2C;IACjD,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,mBAAmB,EAAE,cAAc,CAAC;IACpC,MAAM,EAAE,4BAA4B,CAAC;IACrC,2BAA2B,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/D,UAAU,CAAC,EAAE,0BAA0B,CAAC;IACxC,OAAO,EAAE,MAAM,CAAC;CACnB;AAaD,wBAAgB,qCAAqC,CAAC,EAClD,MAAM,EACN,WAAW,EACX,YAAY,EACZ,mBAAmB,EACnB,2BAA2B,EAC3B,UAAU,EACV,OAAO,GACV,EAAE,2CAA2C,2CAiE7C"}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
// (C) 2020-2026 GoodData Corporation
|
|
3
3
|
import { forwardRef, useCallback, useMemo } from "react";
|
|
4
4
|
import cx from "classnames";
|
|
5
|
-
import {
|
|
5
|
+
import { useIntl } from "react-intl";
|
|
6
|
+
import { Dropdown, UiIcon, UiListbox, } from "@gooddata/sdk-ui-kit";
|
|
7
|
+
import { useDashboardSelector } from "../../../../model/react/DashboardStoreProvider.js";
|
|
6
8
|
import { useDashboardUserInteraction } from "../../../../model/react/useDashboardUserInteraction.js";
|
|
9
|
+
import { selectRestrictedInsightsMap } from "../../../../model/store/unavailableObjects/unavailableObjectsSelectors.js";
|
|
7
10
|
import { DashboardItemHeadline } from "../../../presentationComponents/DashboardItems/DashboardItemHeadline.js";
|
|
8
11
|
const alignPoints = [
|
|
9
12
|
{
|
|
@@ -17,23 +20,33 @@ const alignPoints = [
|
|
|
17
20
|
];
|
|
18
21
|
export function VisualizationSwitcherNavigationHeader({ widget, clientWidth, clientHeight, activeVisualization, onActiveVisualizationChange, exportData, titleId, }) {
|
|
19
22
|
const userInteraction = useDashboardUserInteraction();
|
|
23
|
+
const intl = useIntl();
|
|
24
|
+
const restrictedInsights = useDashboardSelector(selectRestrictedInsightsMap);
|
|
25
|
+
const restrictedEntryTitle = intl.formatMessage({ id: "visualizationSwitcher.restrictedEntry" });
|
|
20
26
|
const items = useMemo(() => {
|
|
21
|
-
return widget.visualizations.map((visualization) =>
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
27
|
+
return widget.visualizations.map((visualization) => {
|
|
28
|
+
// a stored entry title names the visualization, so a restricted entry must never show it
|
|
29
|
+
const isRestricted = restrictedInsights.has(visualization.insight);
|
|
30
|
+
return {
|
|
31
|
+
type: "interactive",
|
|
32
|
+
id: visualization.identifier,
|
|
33
|
+
stringTitle: isRestricted ? restrictedEntryTitle : visualization.title,
|
|
34
|
+
icon: isRestricted ? "lock" : undefined,
|
|
35
|
+
data: visualization,
|
|
36
|
+
};
|
|
37
|
+
});
|
|
38
|
+
}, [widget.visualizations, restrictedInsights, restrictedEntryTitle]);
|
|
28
39
|
const handleSelectVisualization = useCallback((item) => {
|
|
29
40
|
onActiveVisualizationChange(item.id);
|
|
30
41
|
userInteraction.visualizationSwitcherInteraction("visualizationSwitcherSwitched");
|
|
31
42
|
}, [onActiveVisualizationChange, userInteraction]);
|
|
32
|
-
return (_jsx(Dropdown, { alignPoints: alignPoints, accessibilityConfig: { popupRole: "listbox" }, autofocusOnOpen: true, renderBody: ({ closeDropdown, ariaAttributes }) => (_jsx(UiListbox, { items: items, selectedItemId: activeVisualization.identifier, onSelect: handleSelectVisualization, onClose: closeDropdown, ariaAttributes: ariaAttributes, maxWidth: clientWidth ?? 200, dataTestId: "s-visualization-switcher-widget-list", itemDataTestId: "s-visualization-switcher-widget-list-item" })), renderButton: ({ toggleDropdown, isOpen, ariaAttributes, buttonRef }) => (_jsx(VisualizationSwitcherNavigationHeaderButton, {
|
|
43
|
+
return (_jsx(Dropdown, { alignPoints: alignPoints, accessibilityConfig: { popupRole: "listbox" }, autofocusOnOpen: true, renderBody: ({ closeDropdown, ariaAttributes }) => (_jsx(UiListbox, { items: items, selectedItemId: activeVisualization.identifier, onSelect: handleSelectVisualization, onClose: closeDropdown, ariaAttributes: ariaAttributes, maxWidth: clientWidth ?? 200, dataTestId: "s-visualization-switcher-widget-list", itemDataTestId: "s-visualization-switcher-widget-list-item" })), renderButton: ({ toggleDropdown, isOpen, ariaAttributes, buttonRef }) => (_jsx(VisualizationSwitcherNavigationHeaderButton, { isRestricted: restrictedInsights.has(activeVisualization.insight), title: restrictedInsights.has(activeVisualization.insight)
|
|
44
|
+
? restrictedEntryTitle
|
|
45
|
+
: activeVisualization.title, isOpen: isOpen, toggleDropdown: toggleDropdown, clientHeight: clientHeight, exportData: exportData, ariaAttributes: ariaAttributes, titleId: titleId, ref: buttonRef })) }));
|
|
33
46
|
}
|
|
34
|
-
const VisualizationSwitcherNavigationHeaderButton = forwardRef(function VisualizationSwitcherNavigationHeaderButton({ isOpen, toggleDropdown, title, clientHeight, ariaAttributes, exportData, titleId }, ref) {
|
|
47
|
+
const VisualizationSwitcherNavigationHeaderButton = forwardRef(function VisualizationSwitcherNavigationHeaderButton({ isOpen, toggleDropdown, title, isRestricted, clientHeight, ariaAttributes, exportData, titleId }, ref) {
|
|
35
48
|
const classNames = cx("gd-visualization-switcher-widget-header s-visualization-switcher-widget-header", {
|
|
36
49
|
"is-open": isOpen,
|
|
37
50
|
});
|
|
38
|
-
return (_jsx("div", { ref: ref, className: classNames, onClick: toggleDropdown, tabIndex: 0, ...exportData, ...ariaAttributes, children: _jsx(DashboardItemHeadline, { clientHeight: clientHeight, title: title, titleId: titleId }) }));
|
|
51
|
+
return (_jsx("div", { ref: ref, className: classNames, onClick: toggleDropdown, tabIndex: 0, ...exportData, ...ariaAttributes, children: _jsxs("div", { className: "gd-visualization-switcher-widget-header-title", children: [isRestricted ? _jsx(UiIcon, { type: "lock", size: 14, color: "complementary-7" }) : null, _jsx(DashboardItemHeadline, { clientHeight: clientHeight, title: title, titleId: titleId })] }) }));
|
|
39
52
|
});
|
|
@@ -87,6 +87,7 @@ import { IBackendCapabilities } from '@gooddata/sdk-backend-spi';
|
|
|
87
87
|
import { IBaseWidget } from '@gooddata/sdk-model';
|
|
88
88
|
import { ICatalogAttribute } from '@gooddata/sdk-model';
|
|
89
89
|
import { ICatalogAttributeHierarchy } from '@gooddata/sdk-model';
|
|
90
|
+
import { ICatalogComputedAttribute } from '@gooddata/sdk-model';
|
|
90
91
|
import { ICatalogDateAttribute } from '@gooddata/sdk-model';
|
|
91
92
|
import { ICatalogDateAttributeHierarchy } from '@gooddata/sdk-model';
|
|
92
93
|
import { ICatalogDateDataset } from '@gooddata/sdk-model';
|
|
@@ -559,6 +560,8 @@ export declare type AlertAttribute = {
|
|
|
559
560
|
* Resolves the dialog component from DashboardComponentsContext and mounts it under the
|
|
560
561
|
* alerting dialog's state contexts, inside the resolved context decorator — so a decorated
|
|
561
562
|
* dialog context is what both the state seeding and the dialog (default or replacement) read.
|
|
563
|
+
* A contract check between the decorator and the state provider warns once per dialog open
|
|
564
|
+
* when the decorated value forces `isLoading` false during loading or drops connector keys.
|
|
562
565
|
*
|
|
563
566
|
* @internal
|
|
564
567
|
*/
|
|
@@ -1334,6 +1337,13 @@ export declare type CatalogState = {
|
|
|
1334
1337
|
facts?: ICatalogFact[];
|
|
1335
1338
|
/** @beta */
|
|
1336
1339
|
attributeHierarchies?: ICatalogAttributeHierarchy[];
|
|
1340
|
+
/**
|
|
1341
|
+
* Computed attributes of the workspace; loaded only when the `enableComputedAttributes`
|
|
1342
|
+
* setting is on, empty otherwise.
|
|
1343
|
+
*
|
|
1344
|
+
* @beta
|
|
1345
|
+
*/
|
|
1346
|
+
computedAttributes?: ICatalogComputedAttribute[];
|
|
1337
1347
|
/** @beta */
|
|
1338
1348
|
dateHierarchyTemplates?: IDateHierarchyTemplate[];
|
|
1339
1349
|
/** @alpha */
|
|
@@ -2598,6 +2608,15 @@ export declare type CustomInsightBodyComponent = ComponentType<IInsightBodyProps
|
|
|
2598
2608
|
*/
|
|
2599
2609
|
export declare type CustomMenuButtonComponent = ComponentType<IMenuButtonProps>;
|
|
2600
2610
|
|
|
2611
|
+
/**
|
|
2612
|
+
* Content shown inside a restricted placeholder. The dashboard owns the surrounding tile, and for a
|
|
2613
|
+
* visualization switcher also its entry list, so this component supplies only the inner content and
|
|
2614
|
+
* is therefore usable in both places.
|
|
2615
|
+
*
|
|
2616
|
+
* @alpha
|
|
2617
|
+
*/
|
|
2618
|
+
export declare type CustomRestrictedPlaceholderComponent = ComponentType<IRestrictedPlaceholderContentProps>;
|
|
2619
|
+
|
|
2601
2620
|
/**
|
|
2602
2621
|
* @alpha
|
|
2603
2622
|
*/
|
|
@@ -3874,12 +3893,12 @@ export declare abstract class DashboardPluginV1 implements IDashboardPluginContr
|
|
|
3874
3893
|
/**
|
|
3875
3894
|
* @alpha
|
|
3876
3895
|
*/
|
|
3877
|
-
export declare type DashboardQueries = IQueryInsightDateDatasets | IQueryMeasureDateDatasets | IQueryInsightAttributesMeta | IQueryWidgetFilters | IQueryWidgetBrokenAlerts | IQueryWidgetAlertCount | IQueryConnectingAttributes | IQueryAttributeByDisplayForm | IQueryAttributeDataSet | IQueryAttributeElements | IQueryConnectedAttributes | IQueryMetricsAndFacts | IQueryAvailableDatasetsForItems;
|
|
3896
|
+
export declare type DashboardQueries = IQueryInsightDateDatasets | IQueryMeasureDateDatasets | IQueryInsightAttributesMeta | IQueryWidgetFilters | IQueryWidgetBrokenAlerts | IQueryWidgetAlertCount | IQueryConnectingAttributes | IQueryAttributeByDisplayForm | IQueryAttributeDataSet | IQueryAttributeElements | IQueryComputedAttributeExpression | IQueryConnectedAttributes | IQueryMetricsAndFacts | IQueryAvailableDatasetsForItems;
|
|
3878
3897
|
|
|
3879
3898
|
/**
|
|
3880
3899
|
* @beta
|
|
3881
3900
|
*/
|
|
3882
|
-
export declare type DashboardQueryType = "GDC.DASH/QUERY.INSIGHT.DATE.DATASETS" | "GDC.DASH/QUERY.INSIGHT.ATTRIBUTE.META" | "GDC.DASH/QUERY.MEASURE.DATE.DATASETS" | "GDC.DASH/QUERY.WIDGET.FILTERS" | "GDC.DASH/QUERY.WIDGET.BROKEN_ALERTS" | "GDC.DASH/QUERY.WIDGET.ALERT_COUNT" | "GDC.DASH/QUERY.CONNECTING.ATTRIBUTES" | "GDC.DASH/QUERY.DISPLAY.FORM.ATTRIBUTE" | "GDC.DASH/QUERY.DATA.SET.ATTRIBUTE" | "GDC.DASH/QUERY.ELEMENTS.ATTRIBUTE" | "GDC.DASH/QUERY.CONNECTED.ATTRIBUTES" | "GDC.DASH/QUERY.METRICS_AND_FACTS" | "GDC.DASH/QUERY.AVAILABLE.DATA.SETS.FOR.ITEMS";
|
|
3901
|
+
export declare type DashboardQueryType = "GDC.DASH/QUERY.INSIGHT.DATE.DATASETS" | "GDC.DASH/QUERY.INSIGHT.ATTRIBUTE.META" | "GDC.DASH/QUERY.MEASURE.DATE.DATASETS" | "GDC.DASH/QUERY.WIDGET.FILTERS" | "GDC.DASH/QUERY.WIDGET.BROKEN_ALERTS" | "GDC.DASH/QUERY.WIDGET.ALERT_COUNT" | "GDC.DASH/QUERY.CONNECTING.ATTRIBUTES" | "GDC.DASH/QUERY.DISPLAY.FORM.ATTRIBUTE" | "GDC.DASH/QUERY.DATA.SET.ATTRIBUTE" | "GDC.DASH/QUERY.ELEMENTS.ATTRIBUTE" | "GDC.DASH/QUERY.CONNECTED.ATTRIBUTES" | "GDC.DASH/QUERY.COMPUTED.ATTRIBUTE.EXPRESSION" | "GDC.DASH/QUERY.METRICS_AND_FACTS" | "GDC.DASH/QUERY.AVAILABLE.DATA.SETS.FOR.ITEMS";
|
|
3883
3902
|
|
|
3884
3903
|
/**
|
|
3885
3904
|
* @alpha
|
|
@@ -10174,6 +10193,19 @@ export declare interface IDashboardCustomComponentProps {
|
|
|
10174
10193
|
* @public
|
|
10175
10194
|
*/
|
|
10176
10195
|
RichTextComponentProvider?: OptionalRichTextComponentProvider;
|
|
10196
|
+
/**
|
|
10197
|
+
* Specify function to obtain a custom component standing in for an insight widget the current
|
|
10198
|
+
* user is not allowed to see.
|
|
10199
|
+
*
|
|
10200
|
+
* @remarks
|
|
10201
|
+
* - If not provided, the default access placeholder is used.
|
|
10202
|
+
* - If the factory function returns undefined, the default is used for that widget. This is
|
|
10203
|
+
* useful to customize the placeholder for particular widgets only.
|
|
10204
|
+
* - The insight is deliberately not passed to the factory: it is the object being withheld.
|
|
10205
|
+
*
|
|
10206
|
+
* @alpha
|
|
10207
|
+
*/
|
|
10208
|
+
RestrictedPlaceholderComponentProvider?: OptionalRestrictedPlaceholderComponentProvider;
|
|
10177
10209
|
/**
|
|
10178
10210
|
* Specify function to obtain custom component to use for rendering a visualization switcher.
|
|
10179
10211
|
*
|
|
@@ -11852,6 +11884,19 @@ export declare interface IDashboardInsightCustomizer {
|
|
|
11852
11884
|
* @returns self, for call chaining sakes
|
|
11853
11885
|
*/
|
|
11854
11886
|
withCustomProvider(provider: OptionalInsightComponentProvider): IDashboardInsightCustomizer;
|
|
11887
|
+
/**
|
|
11888
|
+
* Register a provider for the component standing in for an insight widget the current user is
|
|
11889
|
+
* not allowed to see.
|
|
11890
|
+
*
|
|
11891
|
+
* @remarks
|
|
11892
|
+
* The insight is deliberately not passed to the provider — it is the object being withheld.
|
|
11893
|
+
* Returning undefined keeps the default placeholder for that widget.
|
|
11894
|
+
*
|
|
11895
|
+
* @param provider - provider of the replacement component
|
|
11896
|
+
* @returns self, for call chaining
|
|
11897
|
+
* @alpha
|
|
11898
|
+
*/
|
|
11899
|
+
withRestrictedPlaceholderProvider(provider: OptionalRestrictedPlaceholderComponentProvider): IDashboardInsightCustomizer;
|
|
11855
11900
|
/**
|
|
11856
11901
|
* Register a provider for React components to render insight body inside of the {@link DefaultDashboardInsight}.
|
|
11857
11902
|
*
|
|
@@ -18097,6 +18142,19 @@ export declare interface IQueryAvailableDatasetsForItems extends IDashboardQuery
|
|
|
18097
18142
|
};
|
|
18098
18143
|
}
|
|
18099
18144
|
|
|
18145
|
+
/**
|
|
18146
|
+
* @internal
|
|
18147
|
+
*/
|
|
18148
|
+
export declare interface IQueryComputedAttributeExpression extends IDashboardQuery {
|
|
18149
|
+
type: "GDC.DASH/QUERY.COMPUTED.ATTRIBUTE.EXPRESSION";
|
|
18150
|
+
payload: {
|
|
18151
|
+
/**
|
|
18152
|
+
* Reference of the computed attribute.
|
|
18153
|
+
*/
|
|
18154
|
+
readonly ref: ObjRef;
|
|
18155
|
+
};
|
|
18156
|
+
}
|
|
18157
|
+
|
|
18100
18158
|
/**
|
|
18101
18159
|
* @alpha
|
|
18102
18160
|
*/
|
|
@@ -18104,9 +18162,27 @@ export declare interface IQueryConnectedAttributes extends IDashboardQuery {
|
|
|
18104
18162
|
type: "GDC.DASH/QUERY.CONNECTED.ATTRIBUTES";
|
|
18105
18163
|
payload: {
|
|
18106
18164
|
readonly ref: ObjRef;
|
|
18165
|
+
/**
|
|
18166
|
+
* Also count computed attributes among the connected attributes. The query creator
|
|
18167
|
+
* defaults this to false; pass the enableComputedAttributes setting of the dashboard
|
|
18168
|
+
* to opt in.
|
|
18169
|
+
*/
|
|
18170
|
+
readonly includeComputedAttributes?: boolean;
|
|
18107
18171
|
};
|
|
18108
18172
|
}
|
|
18109
18173
|
|
|
18174
|
+
/**
|
|
18175
|
+
* Options for {@link queryConnectedAttributes}.
|
|
18176
|
+
*
|
|
18177
|
+
* @alpha
|
|
18178
|
+
*/
|
|
18179
|
+
export declare interface IQueryConnectedAttributesOptions {
|
|
18180
|
+
/**
|
|
18181
|
+
* Also count computed attributes among the connected attributes. Defaults to false.
|
|
18182
|
+
*/
|
|
18183
|
+
includeComputedAttributes?: boolean;
|
|
18184
|
+
}
|
|
18185
|
+
|
|
18110
18186
|
/**
|
|
18111
18187
|
* @alpha
|
|
18112
18188
|
*/
|
|
@@ -18948,6 +19024,34 @@ export declare interface IResolvedFilterValues {
|
|
|
18948
19024
|
};
|
|
18949
19025
|
}
|
|
18950
19026
|
|
|
19027
|
+
/**
|
|
19028
|
+
* Props of the replaceable content of a restricted placeholder. The dashboard owns the tile and,
|
|
19029
|
+
* for a visualization switcher, the entry list; a consumer supplies only what goes inside.
|
|
19030
|
+
*
|
|
19031
|
+
* @alpha
|
|
19032
|
+
*/
|
|
19033
|
+
export declare interface IRestrictedPlaceholderContentProps {
|
|
19034
|
+
/** Width of the area the content is given, in pixels; absent before it is measured. */
|
|
19035
|
+
width?: number;
|
|
19036
|
+
/** Height of the area the content is given, in pixels; absent before it is measured. */
|
|
19037
|
+
height?: number;
|
|
19038
|
+
}
|
|
19039
|
+
|
|
19040
|
+
/**
|
|
19041
|
+
* Props of the component standing in for a widget the current user is not allowed to see.
|
|
19042
|
+
*
|
|
19043
|
+
* @alpha
|
|
19044
|
+
*/
|
|
19045
|
+
export declare interface IRestrictedPlaceholderProps {
|
|
19046
|
+
screen: ScreenSize;
|
|
19047
|
+
dashboardItemClasses: string;
|
|
19048
|
+
/**
|
|
19049
|
+
* Present only while the dashboard is being exported; carries the attributes the export
|
|
19050
|
+
* pipeline reads off the rendered item.
|
|
19051
|
+
*/
|
|
19052
|
+
exportData?: WidgetExportData;
|
|
19053
|
+
}
|
|
19054
|
+
|
|
18951
19055
|
/**
|
|
18952
19056
|
* Set of functions you can use to customize some aspects of the RichText.
|
|
18953
19057
|
*
|
|
@@ -20437,6 +20541,15 @@ export declare interface IScheduleTimezoneSelection {
|
|
|
20437
20541
|
shouldSave: boolean;
|
|
20438
20542
|
}
|
|
20439
20543
|
|
|
20544
|
+
/**
|
|
20545
|
+
* Whether the error signals that computed attributes are not available (disabled, missing or not
|
|
20546
|
+
* visible) as opposed to a genuine failure (network, server, authentication). Loads degrading to
|
|
20547
|
+
* "no computed attributes" must do so only for the former and rethrow the latter.
|
|
20548
|
+
*
|
|
20549
|
+
* @internal
|
|
20550
|
+
*/
|
|
20551
|
+
export declare function isComputedAttributesUnavailableError(reason: unknown): boolean;
|
|
20552
|
+
|
|
20440
20553
|
/**
|
|
20441
20554
|
* Tests whether the provided object is an instance of {@link ICreateAttributeHierarchyRequested}.
|
|
20442
20555
|
*
|
|
@@ -24858,6 +24971,11 @@ export declare type OptionalMeasureValueFilterComponentProvider = OptionalProvid
|
|
|
24858
24971
|
*/
|
|
24859
24972
|
export declare type OptionalProvider<T> = T extends (...args: infer TArgs) => infer TRes ? (...args: TArgs) => TRes | undefined : never;
|
|
24860
24973
|
|
|
24974
|
+
/**
|
|
24975
|
+
* @alpha
|
|
24976
|
+
*/
|
|
24977
|
+
export declare type OptionalRestrictedPlaceholderComponentProvider = OptionalProvider<RestrictedPlaceholderComponentProvider>;
|
|
24978
|
+
|
|
24861
24979
|
/**
|
|
24862
24980
|
* @public
|
|
24863
24981
|
*/
|
|
@@ -25096,19 +25214,33 @@ export declare type QueryCacheEntryResult<TResult> = {
|
|
|
25096
25214
|
*/
|
|
25097
25215
|
export declare type QueryCacheReducer<TQuery extends IDashboardQuery, TResult, TPayload> = CaseReducer<EntityState<QueryCacheEntry<TQuery, TResult>, EntityId>, PayloadAction<TPayload>>;
|
|
25098
25216
|
|
|
25217
|
+
/**
|
|
25218
|
+
* Creates action through which you can query the MAQL expression of a computed attribute, tokenized
|
|
25219
|
+
* with the referenced objects resolved to their metadata (titles) instead of raw id references.
|
|
25220
|
+
*
|
|
25221
|
+
* @param ref - computed attribute reference
|
|
25222
|
+
* @param correlationId - specify correlation id to use for this command. this will be included in all
|
|
25223
|
+
* events that will be emitted during the command processing
|
|
25224
|
+
* @returns tokenized computed attribute expression
|
|
25225
|
+
*
|
|
25226
|
+
* @internal
|
|
25227
|
+
*/
|
|
25228
|
+
export declare function queryComputedAttributeExpression(ref: ObjRef, correlationId?: string): IQueryComputedAttributeExpression;
|
|
25229
|
+
|
|
25099
25230
|
/**
|
|
25100
25231
|
* Creates action through which you can query connected attributes for the information about
|
|
25101
25232
|
* possibility of parent-child attribute filter relationship as only connected attributes may
|
|
25102
25233
|
* be dependent on each other.
|
|
25103
25234
|
*
|
|
25104
25235
|
* @param ref - reference of the attribute filter display form
|
|
25236
|
+
* @param options - query options
|
|
25105
25237
|
* @param correlationId - specify correlation id to use for this command. this will be included in all
|
|
25106
25238
|
* events that will be emitted during the command processing
|
|
25107
25239
|
* @returns array of connected attributes for given reference
|
|
25108
25240
|
*
|
|
25109
25241
|
* @alpha
|
|
25110
25242
|
*/
|
|
25111
|
-
export declare function queryConnectedAttributes(ref: ObjRef, correlationId?: string): IQueryConnectedAttributes;
|
|
25243
|
+
export declare function queryConnectedAttributes(ref: ObjRef, options?: IQueryConnectedAttributesOptions, correlationId?: string): IQueryConnectedAttributes;
|
|
25112
25244
|
|
|
25113
25245
|
/**
|
|
25114
25246
|
* Creates action through which you can query connecting attributes for the information about
|
|
@@ -26042,6 +26174,22 @@ export declare function resolveFilterValues(filters: ResolvableFilter[], backend
|
|
|
26042
26174
|
*/
|
|
26043
26175
|
export declare const resolveMessages: (locale: string) => Promise<ITranslations>;
|
|
26044
26176
|
|
|
26177
|
+
/**
|
|
26178
|
+
* Provides the content shown in place of a widget the current user may not see. The insight itself
|
|
26179
|
+
* is deliberately not passed — it is the object being withheld.
|
|
26180
|
+
*
|
|
26181
|
+
* @alpha
|
|
26182
|
+
*/
|
|
26183
|
+
export declare type RestrictedPlaceholderComponentProvider = (widget: IInsightWidget) => CustomRestrictedPlaceholderComponent;
|
|
26184
|
+
|
|
26185
|
+
/**
|
|
26186
|
+
* The built-in restricted placeholder content: a lock with the reason and the recovery step, scaled
|
|
26187
|
+
* to the room available.
|
|
26188
|
+
*
|
|
26189
|
+
* @alpha
|
|
26190
|
+
*/
|
|
26191
|
+
export declare function RestrictedPlaceholderContent({ width, height }: IRestrictedPlaceholderContentProps): JSX.Element;
|
|
26192
|
+
|
|
26045
26193
|
/**
|
|
26046
26194
|
* A convenience function to create UndoLayoutChanges command that will revert the very last command and toss it out
|
|
26047
26195
|
* of history.
|
|
@@ -26300,7 +26448,9 @@ export declare type SavingState = {
|
|
|
26300
26448
|
* Resolves the dialog component from DashboardComponentsContext and mounts it under the
|
|
26301
26449
|
* scheduled-export dialog's state contexts, inside the resolved context decorator — so a
|
|
26302
26450
|
* decorated dialog context is what both the state seeding and the dialog (default or
|
|
26303
|
-
* replacement) read.
|
|
26451
|
+
* replacement) read. A contract check between the decorator and the state provider warns once
|
|
26452
|
+
* per dialog open when the decorated value forces `isLoading` false during loading or drops
|
|
26453
|
+
* connector keys.
|
|
26304
26454
|
*
|
|
26305
26455
|
* @internal
|
|
26306
26456
|
*/
|
|
@@ -27225,6 +27375,28 @@ export declare const selectCatalogAttributeHierarchies: DashboardSelector<ICatal
|
|
|
27225
27375
|
*/
|
|
27226
27376
|
export declare const selectCatalogAttributes: DashboardSelector<ICatalogAttribute[]>;
|
|
27227
27377
|
|
|
27378
|
+
/**
|
|
27379
|
+
* Returns catalog attributes together with computed attributes adapted to the catalog attribute
|
|
27380
|
+
* shape. The adapted items keep their honest `computedAttribute`-typed refs; use
|
|
27381
|
+
* {@link @gooddata/sdk-model#isComputedAttributeRef} on the attribute or display form ref to tell
|
|
27382
|
+
* them apart. This is the list to offer wherever an attribute can be picked (e.g. for filtering).
|
|
27383
|
+
*
|
|
27384
|
+
* The merged list is sorted alphabetically by title: the catalog holds attributes and computed
|
|
27385
|
+
* attributes as separate lists, each sorted on its own, and a plain concatenation would strand
|
|
27386
|
+
* every computed attribute at the tail of a picker instead of filing it in among the attributes.
|
|
27387
|
+
*
|
|
27388
|
+
* @beta
|
|
27389
|
+
*/
|
|
27390
|
+
export declare const selectCatalogAttributesWithComputed: DashboardSelector<ICatalogAttribute[]>;
|
|
27391
|
+
|
|
27392
|
+
/**
|
|
27393
|
+
* Returns the computed attributes loaded into the dashboard catalog. Computed attributes are
|
|
27394
|
+
* loaded only when the `enableComputedAttributes` setting is on; otherwise this is empty.
|
|
27395
|
+
*
|
|
27396
|
+
* @beta
|
|
27397
|
+
*/
|
|
27398
|
+
export declare const selectCatalogComputedAttributes: DashboardSelector<ICatalogComputedAttribute[]>;
|
|
27399
|
+
|
|
27228
27400
|
/**
|
|
27229
27401
|
* @public
|
|
27230
27402
|
*/
|
|
@@ -28035,6 +28207,18 @@ export declare const selectEnableAnomalyDetectionAlert: DashboardSelector<boolea
|
|
|
28035
28207
|
*/
|
|
28036
28208
|
export declare const selectEnableAutomationEvaluationMode: DashboardSelector<boolean>;
|
|
28037
28209
|
|
|
28210
|
+
/**
|
|
28211
|
+
* Returns whether computed attributes are enabled. When on, computed attributes are loaded into
|
|
28212
|
+
* the dashboard catalog and offered wherever an attribute can be picked (e.g. attribute filters).
|
|
28213
|
+
*
|
|
28214
|
+
* Unlike most config selectors this one tolerates an uninitialized config and answers false: it
|
|
28215
|
+
* is read by the KDA dialog, which can render (e.g. from the chatbot) while its dashboard store
|
|
28216
|
+
* is still initializing.
|
|
28217
|
+
*
|
|
28218
|
+
* @alpha
|
|
28219
|
+
*/
|
|
28220
|
+
export declare const selectEnableComputedAttributes: DashboardSelector<boolean>;
|
|
28221
|
+
|
|
28038
28222
|
/**
|
|
28039
28223
|
* Returns whether the dashboard density setting is enabled.
|
|
28040
28224
|
*
|
|
@@ -29825,6 +30009,15 @@ export declare const selectRawExportOverridesForInsightByRef: (ref: ObjRef | und
|
|
|
29825
30009
|
*/
|
|
29826
30010
|
export declare const selectRenderMode: DashboardSelector<RenderMode>;
|
|
29827
30011
|
|
|
30012
|
+
/**
|
|
30013
|
+
* Selects the insights the current user is not allowed to see, in a mapping of obj ref to the
|
|
30014
|
+
* unavailability entry. Insights that are merely deleted are not included — those keep rendering the
|
|
30015
|
+
* missing-visualization tile instead of the restricted placeholder.
|
|
30016
|
+
*
|
|
30017
|
+
* @alpha
|
|
30018
|
+
*/
|
|
30019
|
+
export declare const selectRestrictedInsightsMap: DashboardSelector<ObjRefMap<IUnavailableDashboardReference>>;
|
|
30020
|
+
|
|
29828
30021
|
/**
|
|
29829
30022
|
* Selects whether the save as new button is visible.
|
|
29830
30023
|
*
|
|
@@ -30452,6 +30645,7 @@ export declare type SetCatalogItemsPayload = {
|
|
|
30452
30645
|
facts?: ICatalogFact[];
|
|
30453
30646
|
dateDatasets?: ICatalogDateDataset[];
|
|
30454
30647
|
attributeHierarchies?: ICatalogAttributeHierarchy[];
|
|
30648
|
+
computedAttributes?: ICatalogComputedAttribute[];
|
|
30455
30649
|
dateHierarchyTemplates?: IDateHierarchyTemplate[];
|
|
30456
30650
|
};
|
|
30457
30651
|
|
|
@@ -32406,6 +32600,14 @@ export declare function useInsightWidgetDataView({ insightWidget, onCancel, onEr
|
|
|
32406
32600
|
*/
|
|
32407
32601
|
export declare type UseInsightWidgetInsightDataViewCallbacks = UseCancelablePromiseCallbacks<DataViewFacade, GoodDataSdkError>;
|
|
32408
32602
|
|
|
32603
|
+
/**
|
|
32604
|
+
* Tells whether the widget renders an insight the current user is not allowed to see. A widget whose
|
|
32605
|
+
* insight is merely deleted is not restricted — that one keeps rendering the missing-visualization tile.
|
|
32606
|
+
*
|
|
32607
|
+
* @alpha
|
|
32608
|
+
*/
|
|
32609
|
+
export declare function useIsWidgetRestricted(widget: ExtendedDashboardWidget): boolean;
|
|
32610
|
+
|
|
32409
32611
|
/**
|
|
32410
32612
|
* @alpha
|
|
32411
32613
|
*/
|