/** * This package provides a Dashboard component that enables you to embed dashboards into your application as React components. * * @remarks * The component also allows for customization of the embedded dashboard using plugins. * See also `@gooddata/sdk-ui-loaders`. * * @packageDocumentation */ import { AccessGranularPermission } from '@gooddata/sdk-model'; import { Action } from '@reduxjs/toolkit'; import { ActionCreatorWithOptionalPayload } from '@reduxjs/toolkit'; import { ActionCreatorWithoutPayload } from '@reduxjs/toolkit'; import { ActionCreatorWithPayload } from '@reduxjs/toolkit'; import { AnyAction } from '@reduxjs/toolkit'; import { CaseReducer } from '@reduxjs/toolkit'; import { CaseReducerActions } from '@reduxjs/toolkit'; import { ComponentPropsWithRef } from 'react'; import { ComponentType } from 'react'; import { Context } from 'react'; import { CurrentUserPermissions } from '@gooddata/sdk-ui-kit'; import { DashboardAttributeFilterConfigMode } from '@gooddata/sdk-model'; import { DashboardAttributeFilterItem } from '@gooddata/sdk-model'; import { DashboardAttributeFilterSelectionMode } from '@gooddata/sdk-model'; import { DashboardAttributeFilterSelectionType } from '@gooddata/sdk-model'; import { DashboardDateFilterConfigMode } from '@gooddata/sdk-model'; import { DashboardFiltersApplyMode } from '@gooddata/sdk-model'; import { DashboardSummaryWorkflowStatus } from '@gooddata/sdk-backend-spi'; import { DashboardTextAttributeFilter } from '@gooddata/sdk-model'; import { DataViewFacade } from '@gooddata/sdk-ui'; import { DateAttributeGranularity } from '@gooddata/sdk-model'; import { DateFilterGranularity } from '@gooddata/sdk-model'; import { DateFilterType } from '@gooddata/sdk-model'; import { DateString } from '@gooddata/sdk-model'; import { Dispatch } from '@reduxjs/toolkit'; import { Dispatch as Dispatch_2 } from 'react'; import { DrillDefinition } from '@gooddata/sdk-model'; import { EmptyValues } from '@gooddata/sdk-model'; import { EntityId } from '@reduxjs/toolkit'; import { EntityState } from '@reduxjs/toolkit'; import { ExecutionResultLimitType } from '@gooddata/sdk-model'; import { ExplicitDrill } from '@gooddata/sdk-ui'; import { FilterContextItem } from '@gooddata/sdk-model'; import { GoodDataSdkError } from '@gooddata/sdk-ui'; import { IAbsoluteDateFilter } from '@gooddata/sdk-model'; import { IAccessControlAware } from '@gooddata/sdk-model'; import { IAccessGrantee } from '@gooddata/sdk-model'; import { IActiveCalendars } from '@gooddata/sdk-model'; import { IAlertTriggerMode } from '@gooddata/sdk-model'; import { IAnalyticalBackend } from '@gooddata/sdk-backend-spi'; import { IArbitraryAttributeFilter } from '@gooddata/sdk-model'; import { IAttributeDescriptorBody } from '@gooddata/sdk-model'; import { IAttributeDisplayFormMetadataObject } from '@gooddata/sdk-model'; import { IAttributeElement } from '@gooddata/sdk-model'; import { IAttributeElements } from '@gooddata/sdk-model'; import { IAttributeFilter } from '@gooddata/sdk-model'; import { IAttributeFilterBaseProps } from '@gooddata/sdk-ui-filters'; import type { IAttributeFilterButtonProps } from '@gooddata/sdk-ui-filters'; import { IAttributeMetadataObject } from '@gooddata/sdk-model'; import { IAttributeOrMeasure } from '@gooddata/sdk-model'; import { IAttributeWithReferences } from '@gooddata/sdk-backend-spi'; import { IAutomationMetadataObject } from '@gooddata/sdk-model'; import { IAutomationMetadataObjectDefinition } from '@gooddata/sdk-model'; import { IAvailableDrillTargets } from '@gooddata/sdk-ui'; import { IBackendCapabilities } from '@gooddata/sdk-backend-spi'; import { IBaseWidget } from '@gooddata/sdk-model'; import { ICatalogAttribute } from '@gooddata/sdk-model'; import { ICatalogAttributeHierarchy } from '@gooddata/sdk-model'; import { ICatalogDateAttribute } from '@gooddata/sdk-model'; import { ICatalogDateAttributeHierarchy } from '@gooddata/sdk-model'; import { ICatalogDateDataset } from '@gooddata/sdk-model'; import { ICatalogFact } from '@gooddata/sdk-model'; import { ICatalogMeasure } from '@gooddata/sdk-model'; import { IColorPalette } from '@gooddata/sdk-model'; import { ICrossFiltering as ICrossFiltering_2 } from '@gooddata/sdk-model'; import { IDashboard } from '@gooddata/sdk-model'; import { IDashboardAttributeFilter } from '@gooddata/sdk-model'; import { IDashboardAttributeFilterByDate } from '@gooddata/sdk-model'; import { IDashboardAttributeFilterConfig } from '@gooddata/sdk-model'; import { IDashboardAttributeFilterParent } from '@gooddata/sdk-model'; import { IDashboardDateFilter } from '@gooddata/sdk-model'; import { IDashboardDateFilterConfig as IDashboardDateFilterConfig_2 } from '@gooddata/sdk-model'; import { IDashboardDateFilterConfigItem } from '@gooddata/sdk-model'; import { IDashboardDefinition } from '@gooddata/sdk-model'; import { IDashboardExportParameter } from '@gooddata/sdk-model'; import { IDashboardExportPresentationOptions } from '@gooddata/sdk-backend-spi'; import { IDashboardExportRawOptions } from '@gooddata/sdk-backend-spi'; import { IDashboardFilterGroup } from '@gooddata/sdk-model'; import { IDashboardFilterGroupsConfig } from '@gooddata/sdk-model'; import { IDashboardFilterReference } from '@gooddata/sdk-model'; import { IDashboardFilterView } from '@gooddata/sdk-model'; import { IDashboardLayout } from '@gooddata/sdk-model'; import { IDashboardLayoutContainerDirection } from '@gooddata/sdk-model'; import { IDashboardLayoutItem } from '@gooddata/sdk-model'; import { IDashboardLayoutSection } from '@gooddata/sdk-model'; import { IDashboardLayoutSectionHeader } from '@gooddata/sdk-model'; import { IDashboardLayoutSizeByScreenSize } from '@gooddata/sdk-model'; import { IDashboardMeasureValueFilter } from '@gooddata/sdk-model'; import { IDashboardMeasureValueFilterConfig } from '@gooddata/sdk-model'; import { IDashboardObjectIdentity } from '@gooddata/sdk-model'; import { IDashboardParameter } from '@gooddata/sdk-model'; import { IDashboardPermissions } from '@gooddata/sdk-model'; import { IDashboardReferences } from '@gooddata/sdk-backend-spi'; import { IDashboardWidget } from '@gooddata/sdk-model'; import { IDataView } from '@gooddata/sdk-backend-spi'; import { IDateFilter } from '@gooddata/sdk-model'; import { IDateFilterButtonProps } from '@gooddata/sdk-ui-filters'; import { IDateFilterConfig } from '@gooddata/sdk-model'; import { IDateFilterOptionsByType } from '@gooddata/sdk-ui-filters'; import { IDateHierarchyTemplate } from '@gooddata/sdk-model'; import { Identifier } from '@gooddata/sdk-model'; import { IdentifierRef } from '@gooddata/sdk-model'; import { IDrillDownIntersectionIgnoredAttributes } from '@gooddata/sdk-model'; import { IDrillDownReference } from '@gooddata/sdk-model'; import { IDrillEvent } from '@gooddata/sdk-ui'; import { IDrillEventIntersectionElement } from '@gooddata/sdk-ui'; import { IDrillToAttributeUrl as IDrillToAttributeUrl_2 } from '@gooddata/sdk-model'; import { IDrillToCustomUrl as IDrillToCustomUrl_2 } from '@gooddata/sdk-model'; import { IDrillToDashboard as IDrillToDashboard_2 } from '@gooddata/sdk-model'; import { IDrillToInsight as IDrillToInsight_2 } from '@gooddata/sdk-model'; import { IDrillToLegacyDashboard as IDrillToLegacyDashboard_2 } from '@gooddata/sdk-model'; import { IDropdownListNoDataRenderProps } from '@gooddata/sdk-ui-kit'; import { IEntitlementDescriptor } from '@gooddata/sdk-model'; import { IErrorProps } from '@gooddata/sdk-ui'; import { IExecutionConfig } from '@gooddata/sdk-model'; import { IExecutionConfiguration } from '@gooddata/sdk-ui'; import { IExecutionDefinition } from '@gooddata/sdk-model'; import { IExecutionResult } from '@gooddata/sdk-backend-spi'; import { IExecutionResultLimitBreak } from '@gooddata/sdk-model'; import { IExportResult } from '@gooddata/sdk-backend-spi'; import { IFilter } from '@gooddata/sdk-model'; import { IFilterableWidget } from '@gooddata/sdk-model'; import { IFilterContext } from '@gooddata/sdk-model'; import { IFilterContextDefinition } from '@gooddata/sdk-model'; import { IHeaderPredicate } from '@gooddata/sdk-ui'; import { IInsight } from '@gooddata/sdk-model'; import { IInsightDefinition } from '@gooddata/sdk-model'; import { IInsightParameterValue } from '@gooddata/sdk-model'; import { IInsightWidget } from '@gooddata/sdk-model'; import { IInsightWidgetBase } from '@gooddata/sdk-model'; import { IInsightWidgetConfiguration } from '@gooddata/sdk-model'; import { IInsightWidgetDefinition } from '@gooddata/sdk-model'; import { IKeyDriveAnalysis } from '@gooddata/sdk-model'; import { IKpi } from '@gooddata/sdk-model'; import { IKpiComparisonDirection } from '@gooddata/sdk-model'; import { IKpiComparisonTypeComparison } from '@gooddata/sdk-model'; import { IKpiWidget } from '@gooddata/sdk-model'; import { IKpiWidgetConfiguration } from '@gooddata/sdk-model'; import { IKpiWidgetDefinition } from '@gooddata/sdk-model'; import { IListedDashboard } from '@gooddata/sdk-model'; import { ILoadingProps } from '@gooddata/sdk-ui'; import { ILocale } from '@gooddata/sdk-ui'; import { ILowerBoundedFilter } from '@gooddata/sdk-model'; import { IMatchAttributeFilter } from '@gooddata/sdk-model'; import { IMeasure } from '@gooddata/sdk-model'; import { IMeasureDescriptor } from '@gooddata/sdk-model'; import { IMeasureMetadataObject } from '@gooddata/sdk-model'; import { IMeasureValueFilter } from '@gooddata/sdk-model'; import { IMeasureValueFilterProps } from '@gooddata/sdk-ui-filters'; import { INegativeAttributeFilter } from '@gooddata/sdk-model'; import { INotificationChannelIdentifier } from '@gooddata/sdk-model'; import { INotificationChannelMetadataObject } from '@gooddata/sdk-model'; import { INotificationChannelMetadataObjectBase } from '@gooddata/sdk-model'; import { InsightDisplayFormUsage } from '@gooddata/sdk-model'; import { InsightDrillDefinition } from '@gooddata/sdk-model'; import { IntlShape } from 'react-intl'; import { IParameterMetadataObject } from '@gooddata/sdk-model'; import { IPositiveAttributeFilter } from '@gooddata/sdk-model'; import { IPushData } from '@gooddata/sdk-ui'; import { IRawExportCustomOverrides } from '@gooddata/sdk-backend-spi'; import { IRelativeDateFilter } from '@gooddata/sdk-model'; import { IRenderListItemProps } from '@gooddata/sdk-ui-kit'; import { IResultWarning } from '@gooddata/sdk-model'; import { IRichTextWidget } from '@gooddata/sdk-model'; import { ISeparators } from '@gooddata/sdk-model'; import { ISettings } from '@gooddata/sdk-model'; import { IShareDialogInteractionData } from '@gooddata/sdk-ui-kit'; import { ISharedObject } from '@gooddata/sdk-ui-kit'; import { ISharingApplyPayload as ISharingApplyPayload_2 } from '@gooddata/sdk-ui-kit'; import { ITableDataAttributeScope } from '@gooddata/sdk-ui'; import { ITempFilterContext } from '@gooddata/sdk-model'; import { ITheme } from '@gooddata/sdk-model'; import type { ITranslations } from '@gooddata/sdk-ui'; import { IUpperBoundedFilter } from '@gooddata/sdk-model'; import { IUser } from '@gooddata/sdk-model'; import { IUserWorkspaceSettings } from '@gooddata/sdk-backend-spi'; import { IVisualizationCallbacks } from '@gooddata/sdk-ui'; import { IVisualizationSizeInfo } from '@gooddata/sdk-ui-ext'; import { IVisualizationSwitcherWidget } from '@gooddata/sdk-model'; import { IWidget } from '@gooddata/sdk-model'; import { IWidgetDefinition } from '@gooddata/sdk-model'; import { IWorkspacePermissions } from '@gooddata/sdk-model'; import { IWorkspaceUser } from '@gooddata/sdk-model'; import { JSX } from 'react/jsx-runtime'; import { LocalIdRef } from '@gooddata/sdk-model'; import { MeasureValueFilterCondition } from '@gooddata/sdk-model'; import { MessageDescriptor } from 'react-intl'; import { MouseEvent as MouseEvent_2 } from 'react'; import { MutableRefObject } from 'react'; import { NamedExoticComponent } from 'react'; import { ObjectType } from '@gooddata/sdk-model'; import { ObjRef } from '@gooddata/sdk-model'; import { ObjRefInScope } from '@gooddata/sdk-model'; import { OnError } from '@gooddata/sdk-ui'; import { OnExportReady } from '@gooddata/sdk-ui'; import { OnFiredDrillEvent } from '@gooddata/sdk-ui'; import { OnLoadingChanged } from '@gooddata/sdk-ui'; import { OverlayController } from '@gooddata/sdk-ui-kit'; import { OverlayPositionType } from '@gooddata/sdk-ui-kit'; import { ParameterValue } from '@gooddata/sdk-model'; import { Patch } from 'immer'; import { PayloadAction } from '@reduxjs/toolkit'; import { PlatformEdition } from '@gooddata/sdk-model'; import { ReactElement } from 'react'; import { ReactNode } from 'react'; import { ReactReduxContextValue } from 'react-redux'; import { Reducer } from '@reduxjs/toolkit'; import { RefObject } from 'react'; import { SagaIterator } from 'redux-saga'; import { ScreenSize } from '@gooddata/sdk-model'; import { Selector } from '@reduxjs/toolkit'; import { SetStateAction } from 'react'; import { ShareStatus } from '@gooddata/sdk-model'; import { TypedUseSelectorHook } from 'react-redux'; import { UnknownAction } from 'redux'; import { Uri } from '@gooddata/sdk-model'; import { UriRef } from '@gooddata/sdk-model'; import { UseCancelablePromiseCallbacks } from '@gooddata/sdk-ui'; import { UseCancelablePromiseState } from '@gooddata/sdk-ui'; import { VisualizationProperties } from '@gooddata/sdk-model'; import { weakMapMemoize } from '@reduxjs/toolkit'; import { WeekStart } from '@gooddata/sdk-model'; import { WritableDraft } from 'immer'; /** * @beta */ export declare type ActionFailedErrorReason = "USER_ERROR" | "INTERNAL_ERROR"; /** * Creates the AddAttributeFilter command. Dispatching this command will result in the addition * of another attribute filter to the dashboard's filter bar, at desired position, * or error in case of invalid update (e.g. wrong or duplicated displayForm) * * The filter will be set for the display form provided by reference. When created, the filter will be * no-op - all the elements will be selected. * @remarks Does not support adding text filters. * * @param displayForm - specify attribute display form which will be used for filtering * @param index - specify index among the attribute filters at which the new filter should be placed. * The index starts at zero and there is convenience that index of -1 would add the filter at the end. * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing. * @param selectionMode - single or multi value selection mode of the filter. * @param mode - specify the visibility mode of attribute filter * @param initialSelection - specify the initial selection of attribute elements * @param initialIsNegativeSelection - specify if the initial selection of attribute elements is a negative one * @param localIdentifier - local identifier * @param primaryDisplayForm - specify the primary display form of attribute filter * @param title - specify custom title of attribute filter * @beta */ export declare function addAttributeFilter(displayForm: ObjRef, index: number, correlationId?: string, selectionMode?: DashboardAttributeFilterSelectionMode, mode?: DashboardAttributeFilterConfigMode, initialSelection?: IAttributeElements, initialIsNegativeSelection?: boolean, localIdentifier?: string, primaryDisplayForm?: ObjRef, title?: string): IAddAttributeFilter; /** * @internal */ export declare function AddAttributeFilterButton({ id, className, isOpen, title, buttonRef, onClick }: IAddAttributeFilterButtonProps): JSX.Element; /** * Payload of the {@link IAddAttributeFilter} command. * @beta */ export declare type AddAttributeFilterPayload = { readonly displayForm: ObjRef; readonly index: number; /** * Specify parent filters whose selected values will be used to narrow * down the selection in this newly added filter. * * @privateRemarks * XXX: not needed in the initial version; would be good for API completeness */ readonly parentFilters?: ReadonlyArray; /** * Specify the initial selection of attribute elements. If not provided all * elements will be selected by default. * * @privateRemarks * XXX: not needed in the initial version; would be good for API completeness */ readonly initialSelection?: IAttributeElements; /** * Specify if the initial selection of attribute elements is a negative one: * if true, the elements selected should NOT be included in teh results. * * @privateRemarks * XXX: not needed in the initial version; would be good for API completeness */ readonly initialIsNegativeSelection?: boolean; /** * Selection mode which defines how many elements can be in attributeElements. * Default value is 'multi' if property is missing. */ readonly selectionMode?: DashboardAttributeFilterSelectionMode; /** * Specify the visibility mode of attribute filter */ readonly mode?: DashboardAttributeFilterConfigMode; /** * Specify the local identifier of attribute filter */ readonly localIdentifier?: string; /** * Specify the primary display form of attribute filter. * If provided it is used for filter definition and displayForm param is used only for UI representation */ readonly primaryDisplayForm?: ObjRef; /** * Specify custom title of attribute filter */ readonly title?: string; }; /** * @internal */ export declare function AddAttributeFilterPlaceholder({ disabled }: IAddAttributeFilterPlaceholderProps): JSX.Element; /** * Creates the AddDateFilter command. Dispatching this command will result in the addition * of another date filter with defined dimension to the dashboard's filter bar, at desired position, * or error in case of invalid update (e.g. wrong or duplicated date dimension/data set) * * The filter will be set for the date dimension provided by reference. When created, the filter will be * no-op - all time filter. * * @param dateDataset - specify date dimension/data set which will be used for filtering of all widgets * @param index - specify index among the filters at which the new filter should be placed. * The index starts at zero and there is convenience that index of -1 would add the filter at the end. * @param correlationId - specify correlation id to use for this command. this will be included in all * * @alpha */ export declare function addDateFilter(dateDataset: ObjRef, index: number, correlationId?: string): IAddDateFilter; /** * Creates the AddDrillDownForInsightWidget command. Dispatching the created command will create insight widget's * drill definition for the provided measure. * * @param ref - reference of insight widget whose drill should be created * @param attributeIdentifier - drill localIdentifier that should be added. * @param drillDownIdentifier - drill down hierarchy localIdentifier that should be added. * @param drillDownAttributeHierarchyRef - drill down hierarchy reference that should be added. * @param intersectionIgnoredAttributes - specify local identifiers of attributes that should be ignored in drill intersection during drill down. * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @alpha */ export declare function addDrillDownForInsightWidget(ref: ObjRef, attributeIdentifier: ObjRef, drillDownIdentifier: string, drillDownAttributeHierarchyRef: ObjRef, intersectionIgnoredAttributes?: string[], correlationId?: string): IAddDrillDownForInsightWidget; /** * Create AddDrillTargets {@link IAddDrillTargets} command. * * @param ref - Unique widget ref * @param availableDrillTargets - Available widget drill targets {@link @gooddata/sdk-ui#IAvailableDrillTargets} * @param correlationId - specify correlation id to use for this command. this will be included in all * @returns AddDrillTargets command * * @alpha */ export declare function addDrillTargets(ref: ObjRef, availableDrillTargets: IAvailableDrillTargets, correlationId?: string): IAddDrillTargets; /** * Creates the AddLayoutSection command. * * @remarks * Dispatching this command will result in the addition of a new layout section. * The new section will be placed at the desired index and will be empty by default. * * You may optionally specify the initial values of the section header and the items that will be in the new section. * * This command operates only on the root layout. For nested layouts, use {@link addNestedLayoutSection}. * * @param index - index to place the section at; -1 can be used as convenience to append a new section * @param initialHeader - specify header for the newly created section * @param initialItems - specify one or more items that the newly created section should include from the get-go * @param autoResolveDateFilterDataset - specify whether dashboard should auto-resolve date dataset to use for date filtering of KPI * and insight widgets; default is disabled meaning date filtering will be enabled only for those KPI or Insight widgets * that already specify dateDataset. * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function addLayoutSection(index: number, initialHeader?: IDashboardLayoutSectionHeader, initialItems?: DashboardItemDefinition[], autoResolveDateFilterDataset?: boolean, correlationId?: string): IAddLayoutSection; /** * Creates the AddMeasureValueFilter command. * * @param measure - catalog measure whose value should be filtered * @param index - position among draggable filters where the new filter should be placed * @param correlationId - correlation id propagated through emitted events * @param localIdentifier - optional local identifier for the new filter * @param title - optional custom title for the new filter * @param mode - optional visibility mode for the new filter * * @alpha */ export declare function addMeasureValueFilter(measure: ObjRef, index: number, correlationId?: string, localIdentifier?: string, title?: string, mode?: DashboardAttributeFilterConfigMode): IAddMeasureValueFilter; /** * Creates the AddLayoutSection command. * * @remarks * Dispatching this command will result in the addition of a new layout section. * The new section will be placed at the desired index and will be empty by default. * * You may optionally specify the initial values of the section header and the items that will be in the new section. * * @param index - index to place the section at; -1 can be used as convenience to append a new section * @param initialHeader - specify header for the newly created section * @param initialItems - specify one or more items that the newly created section should include from the get-go * @param autoResolveDateFilterDataset - specify whether dashboard should auto-resolve date dataset to use for date filtering of KPI * and insight widgets; default is disabled meaning date filtering will be enabled only for those KPI or Insight widgets * that already specify dateDataset. * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @alpha */ export declare function addNestedLayoutSection(index: ILayoutSectionPath, initialHeader?: IDashboardLayoutSectionHeader, initialItems?: DashboardItemDefinition[], autoResolveDateFilterDataset?: boolean, correlationId?: string): IAddLayoutSection; /** * Creates the AddSectionItems command. * * @remarks * Dispatching this command will result in addition of a new item into the existing * section. This item may be a placeholder for KPI or insight, an actual dashboard widget or a previously stashed * dashboard item. * * @param itemPath - path to which the new item should be added * @param item - definition of the new item. * @param autoResolveDateFilterDataset - specify whether dashboard should auto-resolve date dataset to use for date filtering of KPI * and insight widgets; default is disabled meaning date filtering will be enabled only for those KPI or Insight widgets * that already specify dateDataset. * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @alpha */ export declare function addNestedLayoutSectionItem(itemPath: ILayoutItemPath, item: DashboardItemDefinition, autoResolveDateFilterDataset?: boolean, correlationId?: string): IAddSectionItems; /** * Creates the AddSectionItems command. * * @remarks * Dispatching this command will result in addition of a new item into the existing * section. This item may be a placeholder for KPI or insight, an actual dashboard widget or a previously stashed * dashboard item. * * This command operates only on the root layout. For nested layouts, use {@link addNestedLayoutSectionItem}. * * @param sectionIndex - index of section to which the new item should be added * @param itemIndex - index at which to insert the new item * @param item - definition of the new item. * @param autoResolveDateFilterDataset - specify whether dashboard should auto-resolve date dataset to use for date filtering of KPI * and insight widgets; default is disabled meaning date filtering will be enabled only for those KPI or Insight widgets * that already specify dateDataset. * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function addSectionItem(sectionIndex: number, itemIndex: number, item: DashboardItemDefinition, autoResolveDateFilterDataset?: boolean, correlationId?: string): IAddSectionItems; /** * Creates the AddTextAttributeFilter command. Dispatching this command will result in the addition * of a text attribute filter (arbitrary or match) to the dashboard's filter bar, at desired position, * or error in case of invalid update (e.g. wrong or duplicated displayForm). * * @param filter - the text attribute filter to add (IDashboardArbitraryAttributeFilter or IDashboardMatchAttributeFilter) * @param index - specify index among the attribute filters at which the new filter should be placed. * The index starts at zero and there is convenience that index of -1 would add the filter at the end. * @param correlationId - specify correlation id to use for this command * @param mode - specify the visibility mode of attribute filter * @beta */ export declare function addTextAttributeFilter(filter: DashboardTextAttributeFilter, index: number, correlationId?: string, mode?: DashboardAttributeFilterConfigMode): IAddTextAttributeFilter; /** * Creates the AddVisualizationToSwitcherWidgetContent command. Dispatching this command will result in addition of visualization to switcher widget. * * @param ref - reference of the visualization switcher widget to modify * @param visualization - visualization to add * @param insight - * @param sizeInfo - * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function addVisualizationToSwitcherWidgetContent(ref: ObjRef, visualization: IInsightWidget, insight: IInsight, sizeInfo: IVisualizationSizeInfo, correlationId?: string): IAddVisualizationToVisualizationSwitcherWidgetContent; /** * @internal */ export declare function AlertingDialog(props: IAlertingDialogProps): ReactElement; /** * @internal */ export declare type AlertingDisabledReason = "noDestinations" | "oldWidget" | "disabledOnInsight"; /** * @internal */ export declare function AlertingManagementDialog(props: IAlertingManagementDialogProps): ReactElement; /** * This defines all possible reducers for the cache slice. * * @internal */ export declare type AllQueryCacheReducers = { /** * Sets value of cache entry. */ set: QueryCacheReducer>; /** * Removes cache entry by cache key */ remove: QueryCacheReducer; /** * Removes all entries from cache. */ removeAll: QueryCacheReducer; }; /** * Creates a {@link DashboardEventHandler} instance that will be invoked for any dashboard event (i.e. not for custom events). * * @param handler - the actual event handling function * @public */ export declare function anyDashboardEventHandler(handler: DashboardEventHandler["handler"]): DashboardEventHandler; /** * Creates a {@link DashboardEventHandler} instance that will be invoked for any event (event for custom events). * * @param handler - the actual event handling function * @public */ export declare function anyEventHandler(handler: DashboardEventHandler["handler"]): DashboardEventHandler; /** * Creates the ChangeAttributeFilterSelection command. * * @remarks * Dispatching this command will result in application of element selection for the dashboard attribute filter * with the provided id, or error in case of invalid update (e.g. non-existing `filterLocalId`). * * The {@link ChangeAttributeFilterSelectionPayload}'s `selectionType` and `elements` are derived from the * provided attribute filter. * * To convert {@link IDashboardFilter} to {@link @gooddata/sdk-model#IFilter} use {@link dashboardAttributeFilterToAttributeFilter}. * Converted filter can be used within the command's payload. * * @param filterLocalId - dashboard attribute filter's local id * @param filter - attribute filter to apply * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @public */ export declare function applyAttributeFilter(filterLocalId: string, filter: IAttributeFilter, correlationId?: string): ChangeAttributeFilterSelection | ReplaceAttributeFilterItemSelection | undefined; /** * Creates the ChangeDateFilterSelection command. * * @remarks * Dispatching this command will result in change of dashboard's date filter, or error in case of invalid * update (e.g. hidden date filter option by dateFilterConfig). * * All parameters for {@link ChangeDateFilterSelection} command is derived from the provided date filter. * * See {@link ChangeDateFilterSelection} for a more complete description of the different parameters * * @param filter - date filter to apply * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @public */ export declare function applyDateFilter(filter: IDateFilter, correlationId?: string): ChangeDateFilterSelection; /** * Creates the {@link IApplyFilterContextWorkingSelection} command. * * @param correlationId - specify correlation id. It will be included in all events that will be emitted during the command processing. * @returns apply all filters command * * @alpha */ export declare function applyFilterContextWorkingSelection(correlationId?: string): IApplyFilterContextWorkingSelection; /** * Creates the {@link IApplyFilterView} command. * * @remarks * Dispatching this command will result into application of the persisted filter view. * * @alpha * @param ref - ref of the filter view that must be applied to the filter context. * @param correlationId - specify correlation id. It will be included in all events that will be emitted during the command processing. * @returns delete filter view command */ export declare function applyFilterView(ref: ObjRef, correlationId?: string): IApplyFilterView; /** * @public */ export declare type AttributeFilterComponentProvider = (filter: DashboardAttributeFilterItem) => CustomDashboardAttributeFilterComponent; /** * Definition of attribute filter components * @internal */ export declare type AttributeFilterComponentSet = ICustomComponentBase> & DraggableComponent & CreatablePlaceholderComponent & CreatableByDragComponent; /** * @internal */ export declare type AttributeFilterDraggableComponent = { DraggingComponent: AttributeFilterDraggingComponent; type: "attributeFilter"; }; /** * @internal */ export declare type AttributeFilterDraggableItem = { type: "attributeFilter"; filter: DashboardAttributeFilterItem; filterIndex: number; }; /** * @internal */ export declare type AttributeFilterDraggingComponent = ComponentType; /** * @beta */ export declare type AttributeFilterInteractionType = "attributeFilterTitleResetClicked" | "attributeFilterConfigurationOpened" | "attributeFilterClearIrrelevantValuesClicked" | "attributeFilterShowAllValuesClicked" | "attributeFilterLimitAddButtonClicked" | "attributeFilterLimitAddParentFilterOptionClicked" | "attributeFilterLimitAddMetricOptionClicked" | "attributeFilterLimitParentFilterClicked" | "attributeFilterLimitDependentDateFilterClicked" | "attributeFilterLimitMetricClicked" | "attributeFilterLimitFactMetricClicked" | "attributeFilterLimitAttributeMetricClicked" | "attributeFilterLimitRemoveParentFilterClicked" | "attributeFilterLimitRemoveDependentDateFilterClicked" | "attributeFilterLimitRemoveMetricClicked"; /** * @internal */ export declare type AttributeFilterPlaceholderDraggableItem = { type: "attributeFilter-placeholder"; }; /** * Attribute filter selection type for {@link ChangeAttributeFilterSelectionPayload}. * * @public */ export declare type AttributeFilterSelectionType = "IN" | "NOT_IN"; /** * @beta */ export declare type AttributeHierarchiesInteractionType = "attributeHierarchyDrillDownSelected" | "attributeHierarchyDrillDownCreateClicked" | "attributeHierarchyAddAttributeClicked" | "attributeHierarchyCreateClicked"; /** * Creates the AttributeHierarchyModified command , dispatching this command will result on reset of catalog. * * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function attributeHierarchyModified(correlationId?: string): IAttributeHierarchyModified; /** * @internal */ export declare function AttributesDropdown({ id, className, bodyClassName, onClose, onOpen, onSelect, attributes, dateDatasets, measures, openOnInit, DropdownButtonComponent, DropdownTitleComponent, renderNoData, overlayPositionType, getCustomItemTitle, accessibilityConfig, returnFocusTo, parameters, onParameterSelect }: IAttributesDropdownProps): JSX.Element; /** * @alpha */ export declare type AutomationInteractionData = { type: AutomationInteractionType; destination_id?: string; destination_type?: INotificationChannelMetadataObjectBase["destinationType"]; automation_id?: string; automation_name?: string; automation_source?: "dashboard" | "widget"; automation_visualization_type?: string; filter_context?: "default" | "edited"; trigger_type?: IAlertTriggerMode; }; /** * @alpha */ export declare type AutomationInteractionPayload = IUserInteractionPayloadWithDataBase<"automationInteraction", AutomationInteractionData>; /** * @alpha */ export declare type AutomationInteractionType = "scheduledExportInitialized" | "scheduledExportCreated" | "alertInitialized" | "alertCreated"; /** * @public */ export declare type BackendCapabilitiesState = { backendCapabilities?: IBackendCapabilities; }; /** * @beta */ export declare type BareUserInteractionType = IBareUserInteractionPayload["interaction"]; /** * @internal */ export declare type BaseDraggableLayoutItem = { size: BaseDraggableLayoutItemSize; }; /** * @internal */ export declare type BaseDraggableLayoutItemSize = { gridWidth: number; gridHeight: number; }; /** * @internal */ export declare type BaseDraggableMovingItem = BaseDraggableLayoutItem & { title: string; isOnlyItemInSection: boolean; sectionIndex: number; itemIndex: number; layoutPath?: ILayoutItemPath; }; /** * Broken alert attribute filter basic info {@link @gooddata/sdk-backend-spi#IDashboardAttributeFilter}. * * @alpha */ export declare type BrokenAlertAttributeFilterInfo = IBrokenAlertFilterBasicInfo; /** * Broken alert date filter basic info {@link @gooddata/sdk-backend-spi#IDashboardDateFilter}. * * @alpha */ export declare type BrokenAlertDateFilterInfo = IBrokenAlertFilterBasicInfo; /** * Type of broken alert filter basic info * * @alpha */ export declare type BrokenAlertType = "deleted" | "ignored"; /** * @internal */ export declare function ButtonBar(props: IButtonBarProps): ReactElement; /** * @internal */ export declare function CancelButton(props: ICancelButtonProps): ReactElement; /** * @internal */ export declare function CancelEditDialog(props: ICancelEditDialogProps): JSX.Element; /** * Creates the ChangeRenderMode command for cancel edit mode. * * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function cancelEditRenderMode(correlationId?: string): IChangeRenderMode; /** * Creates the CancelRenamingDashboardTab command. * @alpha */ export declare function cancelRenamingDashboardTab(tabId?: string, correlationId?: string): ICancelRenamingDashboardTab; /** * @internal */ export declare const catalogActions: { setCatalogItems: ActionCreatorWithPayload; setCatalogMeasuresAndFacts: ActionCreatorWithPayload; addAttributeHierarchy: ActionCreatorWithPayload; updateAttributeHierarchy: ActionCreatorWithPayload; deleteAttributeHierarchy: ActionCreatorWithPayload; setCatalogParameters: ActionCreatorWithPayload; setCatalogMeasureParameters: ActionCreatorWithPayload; }; /** * Status of the dashboard-wide metric → parameter dependency map. * * @alpha */ export declare type CatalogMeasureParametersStatus = "uninitialized" | "loading" | "loaded" | "failed"; /** * Status of catalog parameters loading. * * @alpha */ export declare type CatalogParametersStatus = "uninitialized" | "loading" | "loaded" | "failed" | "gated-off"; /** * @public */ export declare type CatalogState = { /** @beta */ attributes?: ICatalogAttribute[]; /** @beta */ measures?: ICatalogMeasure[]; /** @beta */ dateDatasets?: ICatalogDateDataset[]; /** @beta */ facts?: ICatalogFact[]; /** @beta */ attributeHierarchies?: ICatalogAttributeHierarchy[]; /** @beta */ dateHierarchyTemplates?: IDateHierarchyTemplate[]; /** @alpha */ parameters: ICatalogParametersState; /** @alpha */ measureParameters: ICatalogMeasureParametersState; }; /** * Command for attribute filter selection change. * * @remarks * See {@link changeAttributeFilterSelection} and {@link applyAttributeFilter} factory functions you can use to create * this command more easily from raw data and {@link @gooddata/sdk-model#IAttributeFilter}, respectively. * * @public */ export declare type ChangeAttributeFilterSelection = IDashboardCommand & { readonly type: "GDC.DASH/CMD.FILTER_CONTEXT.ATTRIBUTE_FILTER.CHANGE_SELECTION"; readonly payload: ChangeAttributeFilterSelectionPayload; }; /** * Creates the ChangeAttributeFilterSelection command for applied filters. * * @remarks * Dispatching this command will result in application of element selection for the dashboard attribute filter * with the provided id, or error in case of invalid update (e.g. non-existing filterLocalId). * * The attribute elements can be provided either using their URI (primary key) or value. Together with the * elements you must indicate the selection type - either 'IN' or 'NOT_IN'. * * If you want to change working filters use {@link changeWorkingAttributeFilterSelection}. * See {@link ChangeAttributeFilterSelectionPayload.isWorkingSelectionChange} for details. * * @remarks see {@link resetAttributeFilterSelection} for convenience function to select all attribute elements of * particular filter. * * See also {@link applyAttributeFilter} for convenient function when you have an {@link @gooddata/sdk-model#IAttributeFilter} instance. * * @example * ``` * const selectionType = isPositiveAttributeFilter ? "IN" : "NOT_IN"; * ``` * * To create this command without a need to calculate the payload values from a {@link @gooddata/sdk-model#IFilter} object, * we recommend to use {@link applyAttributeFilter} command creator instead. * * @param filterLocalId - dashboard attribute filter's local id * @param elements - elements * @param selectionType - selection type. either 'IN' or 'NOT_IN' * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * @param isSelectionInvalid - * * @public */ export declare function changeAttributeFilterSelection(filterLocalId: string, elements: IAttributeElements, selectionType: AttributeFilterSelectionType, correlationId?: string, isSelectionInvalid?: boolean): ChangeAttributeFilterSelection; /** * Payload type for {@link ChangeAttributeFilterSelection} command. * * @public */ export declare type ChangeAttributeFilterSelectionPayload = { /** * Dashboard attribute filter's local identifier. */ readonly filterLocalId: string; /** * Selected attribute elements. */ readonly elements: IAttributeElements; /** * Selection type. Either 'IN' for positive selection or 'NOT_IN' for negative selection (All except selected items). */ readonly selectionType: AttributeFilterSelectionType; /** * Determines if this command should change working (staged for application) filters or applied filters (used to compute data). * Default is false - command changes applied filters. */ readonly isWorkingSelectionChange?: boolean; /** * Internal value, specifies that filter change was caused by displayAsLabel * ad-hoc migration, the param will be removed once the usage of displayAsLabel is migrated on database * metadata level. */ readonly isResultOfMigration?: boolean; /** * Indicates if the current filter selection is invalid. * When true, the filter's localId should be added to filtersWithInvalidSelection array in state. * When false, the filter's localId should be removed from filtersWithInvalidSelection array. */ readonly isSelectionInvalid?: boolean; }; /** * Creates the ChangeDashboardDensity command. * * @remarks * Dispatching this command will change the dashboard density setting for the current user. * The value is persisted in localStorage and will be used on the next dashboard load, * taking priority over the theme's default density setting. * * @param density - density value to set * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @alpha */ export declare function changeDashboardDensity(density: DashboardDensity, correlationId?: string): IChangeDashboardDensity; /** * Command for date filter selection change. * * @remarks * See {@link changeDateFilterSelection} and {@link applyDateFilter} factory functions you can use to create * this command more easily from raw data and {@link @gooddata/sdk-model#IDateFilter}, respectively. * * @public */ export declare type ChangeDateFilterSelection = IDashboardCommand & { readonly type: "GDC.DASH/CMD.FILTER_CONTEXT.DATE_FILTER.CHANGE_SELECTION"; readonly payload: DateFilterSelection; }; /** * Creates the ChangeDateFilterSelection command. * * @remarks * Dispatching this command will result in change of dashboard's date filter, or error in case of invalid * update (e.g. hidden date filter option by dateFilterConfig). * * @param type - date filter type; absolute filters use exact start and end dates, while relative filters use offsets from today * @param granularity - granularity on which the filter works; days, weeks, months, quarters or years. * @param from - start date; if not specified, then the start date will be unbounded * @param to - end date; if not specified, then the end date will be unbounded * @param dateFilterOptionLocalId - localId of the {@link @gooddata/sdk-backend-spi#IDateFilterOption} selected * @param localIdentifier - localId of the date filter * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * @param dataSet - * @param isWorkingSelectionChange - * @param boundedFilter - * @see {@link ChangeDateFilterSelection} for a more complete description of the different parameters * * @public */ export declare function changeDateFilterSelection(type: DateFilterType, granularity: DateFilterGranularity, from?: DateString | number, to?: DateString | number, dateFilterOptionLocalId?: string, correlationId?: string, dataSet?: ObjRef, isWorkingSelectionChange?: boolean, localIdentifier?: string, boundedFilter?: IUpperBoundedFilter | ILowerBoundedFilter, emptyValueHandling?: EmptyValues): ChangeDateFilterSelection; /** * Creates the {@link IChangeDrillableItems} command. * Dispatching this command will result into enabling drilling of the widgets, if they match some of the drillable item definition/predicate. * * @alpha * @param drillableItems - reference to the drillable items or predicates that enables insight/kpi drilling. * @param correlationId - specify correlation id. It will be included in all events that will be emitted during the command processing. * @returns change drillable items command */ export declare function changeDrillableItems(drillableItems: ExplicitDrill[], correlationId?: string): IChangeDrillableItems; /** * Command for changing multiple filters at once. * * @remarks * See {@link changeFilterContextSelection} for a factory function that will help you create this command. * * @public */ export declare type ChangeFilterContextSelection = IDashboardCommand & { readonly type: "GDC.DASH/CMD.FILTER_CONTEXT.CHANGE_SELECTION"; readonly payload: ChangeFilterContextSelectionPayload; }; /** * Creates the {@link ChangeFilterContextSelection} command. * * @remarks * Dispatching this command will result into setting provided dashboard filters to the current dashboard filter context. * * Only filters that are stored in the filter context can be applied (filters that are visible in the filter bar). * Filters will be matched via display form ref, duplicities will be omitted. * Date filter that does not match any visible option by the current date filter config will be also omitted. * * @public * @param filters - attribute filters and date filter to apply. * @param resetOthers - If true, filters not mentioned in the payload will be reset to All items selected/All time. Defaults to false. * @param correlationId - specify correlation id. It will be included in all events that will be emitted during the command processing. * @returns change filter selection command */ export declare function changeFilterContextSelection(filters: (IDashboardFilter | FilterContextItem)[], resetOthers?: boolean, correlationId?: string): ChangeFilterContextSelection; /** * Creates the {@link ChangeFilterContextSelection} command. * * @remarks * Dispatching this command will result into setting provided dashboard filters to the current dashboard filter context. * * Only filters that are stored in the filter context can be applied (filters that are visible in the filter bar). * Filters will be matched via display form ref, duplicities will be omitted. * Date filter that does not match any visible option by the current date filter config will be also omitted. * * @param params - params for the command creator * @internal * TODO: next major release can remove ByParams suffix and use this implementation instead of original cmd creator + other creators can be rewritten to use params object * https://gooddata.atlassian.net/browse/STL-700 */ export declare function changeFilterContextSelectionByParams({ filters, attributeFilterConfigs, resetOthers, correlationId, tabLocalIdentifier }: ChangeFilterContextSelectionParams): ChangeFilterContextSelection; /** * Params for {@link changeFilterContextSelectionByParams} command. * * @public */ export declare type ChangeFilterContextSelectionParams = { filters: (IDashboardFilter | FilterContextItem)[]; attributeFilterConfigs?: IDashboardAttributeFilterConfig[]; resetOthers?: boolean; correlationId?: string; /** * Optional tab local identifier to apply filters to a specific tab. * If not provided, filters will be applied to the currently active tab. * * @internal */ tabLocalIdentifier?: string; }; /** * Payload of the {@link ChangeFilterContextSelection} command. * @public */ export declare type ChangeFilterContextSelectionPayload = { /** * Filters to apply to the current dashboard filter context. */ filters: (IDashboardFilter | FilterContextItem)[]; /** * Attribute filter configs with additional props */ attributeFilterConfigs?: IDashboardAttributeFilterConfig[]; /** * For filters not mentioned in the payload reset to All items selected/All time? Defaults to false. */ resetOthers: boolean; /** * Optional tab local identifier to apply filters to a specific tab. * If not provided, filters will be applied to the currently active tab. * * @remarks * When specified, the command will apply filters to the specified tab instead of the active tab. * If the tab does not exist, the command will fail with an error. * * @internal */ tabLocalIdentifier?: string; }; /** * Creates the {@link IChangeIgnoreExecutionTimestamp} command. * * @remarks * Dispatching the commands will result into setting state to ignore execution timestamp. * * @alpha * @param ignoreExecutionTimestamp - * @param correlationId - specify correlation id. It will be included in all events that will be emitted during the command processing. * @returns change ignore execution timestamp command */ export declare function changeIgnoreExecutionTimestamp(ignoreExecutionTimestamp: boolean, correlationId?: string): IChangeIgnoreExecutionTimestamp; /** * Creates the ChangeInsightWidgetDescription command. Dispatching this command will result in change of the Insight widget's * description. * * @param ref - reference of the insight widget to modify * @param description - new description to use * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function changeInsightWidgetDescription(ref: ObjRef, description: IWidgetDescription, correlationId?: string): IChangeInsightWidgetDescription; /** * Creates the ChangeInsightWidgetHeader command. Dispatching this command will result in change of the Insight widget's * header which (now) includes title. * * @param ref - reference of the insight widget to modify * @param header - new header to use * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function changeInsightWidgetHeader(ref: ObjRef, header: IWidgetHeader, correlationId?: string): IChangeInsightWidgetHeader; /** * Creates the ChangeInsightWidgetCrossFiltering command. Dispatching this command will result in change of the Insight widget's * cross-filtering setting. * * @param ref - reference of the insight widget to modify * @param ignoreCrossFiltering - * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @alpha */ export declare function changeInsightWidgetIgnoreCrossFiltering(ref: ObjRef, ignoreCrossFiltering: boolean, correlationId?: string): IChangeInsightWidgetIgnoreCrossFiltering; /** * Creates the ChangeInsightWidgetInsight command. Dispatching this command will result in change of what * insight is rendered inside particular insight widget - while keeping all the other setup the same (filtering, * drilling). * * @param ref - reference to insight widget whose insight should be changed * @param insightRef - reference to the new insight to use in the widget * @param visualizationProperties - specify visualization properties to use. Undefined value means keeping the existing properties on record in the widget * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function changeInsightWidgetInsight(ref: ObjRef, insightRef: ObjRef, visualizationProperties?: VisualizationProperties, correlationId?: string): IChangeInsightWidgetInsight; /** * @public */ export declare type ChangeInsightWidgetVisConfiguration = IDashboardCommand & { readonly type: "GDC.DASH/CMD.INSIGHT_WIDGET.CHANGE_CONFIGURATION"; readonly payload: ChangeInsightWidgetVisConfigurationPayload; }; /** * * Creates the ChangeInsightWidgetVisConfiguration command. Dispatching this command will result is modification * of the visualization configuration that are effective for the particular insight widget. * * Through visualization configuration, you can modify how particular visualization behaves * * If you want to clear any widget-level configuration, set config to `undefined`. * * @param ref - reference of the insight widget to modify * @param config - new configuration to set, undefined to clear any widget level visualization config * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @public */ export declare function changeInsightWidgetVisConfiguration(ref: ObjRef, config: IInsightWidgetConfiguration | undefined, correlationId?: string): ChangeInsightWidgetVisConfiguration; /** * Payload of the {@link ChangeInsightWidgetVisConfiguration} command. * @public */ export declare type ChangeInsightWidgetVisConfigurationPayload = { /** * Reference to Insight Widget whose visualization configuration to change. */ readonly ref: ObjRef; /** * Visualization configuration to use for the insight that is rendered by the widget. * * These will replace the existing visualization configuration. To clear any widget-level configuration * currently in effect for the widget, set the configuration to `undefined`. */ readonly config: IInsightWidgetConfiguration | undefined; }; /** * Creates the ChangeInsightWidgetVisProperties command. Dispatching this command will result is modification * of the visualization properties that are effective for the particular insight widget. * * Through visualization properties, you can modify how particular visualization looks and behaves (enable/disable * tooltips, legend, change axes, enable zooming). * * If you want to clear any widget-level properties, set properties to `undefined`. * * @param ref - reference of the insight widget to modify * @param properties - new properties to set, undefined to clear any widget level visualization properties * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function changeInsightWidgetVisProperties(ref: ObjRef, properties: VisualizationProperties | undefined, correlationId?: string): IChangeInsightWidgetVisProperties; /** * Creates the ChangeKpiWidgetComparison command. Dispatching this command will result in change of what comparison * method - if any - is used for the KPI's Measure. The KPI may compare measure value from current period (as selected * by the date filter) to previous period and then depending on whether the current value grows can visualize that * as a good or bad thing. * * @param ref - reference of the KPI widget to modify * @param comparison - new comparison setting * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function changeKpiWidgetComparison(ref: ObjRef, comparison: IKpiWidgetComparison, correlationId?: string): IChangeKpiWidgetComparison; /** * * Creates the ChangeKpiWidgetConfiguration command. Dispatching this command will result is modification * of the configuration that are effective for the particular kpi widget. * * Through configuration, you can modify how is particular kpi rendered * * If you want to clear any widget-level configuration, set config to `undefined`. * * @param ref - reference of the insight widget to modify * @param config - new configuration to set, undefined to clear any widget level config * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function changeKpiWidgetConfiguration(ref: ObjRef, config: IKpiWidgetConfiguration | undefined, correlationId?: string): IChangeKpiWidgetConfiguration; /** * Creates the ChangeKpiWidgetDescription command. Dispatching this command will result in change of the Kpi widget's * description. * * @param ref - reference of the kpi widget to modify * @param description - new description to use * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function changeKpiWidgetDescription(ref: ObjRef, description: IWidgetDescription, correlationId?: string): IChangeKpiWidgetDescription; /** * Creates the ChangeKpiWidgetHeader command. Dispatching this command will result in change of the KPI widget's * header which (now) includes title. * * @param ref - reference of the KPI widget to modify * @param header - new header to use * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function changeKpiWidgetHeader(ref: ObjRef, header: IWidgetHeader, correlationId?: string): IChangeKpiWidgetHeader; /** * Creates the ChangeKpiWidgetMeasure command. Dispatching this command will result in change of the measure * used by the KPI. * * @param ref - reference of the KPI widget to modify * @param measureRef - reference of the measure to use * @param header - specify new header to use; if not provided the existing header will be reused * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function changeKpiWidgetMeasure(ref: ObjRef, measureRef: ObjRef, header?: IWidgetHeader | "from-measure", correlationId?: string): IChangeKpiWidgetMeasure; /** * @public */ export declare type ChangeLayoutSectionHeader = IDashboardCommand & { readonly type: "GDC.DASH/CMD.FLUID_LAYOUT.CHANGE_SECTION_HEADER"; readonly payload: ChangeLayoutSectionHeaderPayload; }; /** * Creates the ChangeLayoutSectionHeader command. * * @remarks * Dispatching this command will result in change of the section's title and/or description. * * This command operates only on the root layout. For nested layouts, use {@link changeNestedLayoutSectionHeader}. * * @param index - index of section to change * @param header - new header * @param merge - indicates whether the old header and the new header should be merged; default is no merging * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @public */ export declare function changeLayoutSectionHeader(index: number, header: IDashboardLayoutSectionHeader, merge?: boolean, correlationId?: string): ChangeLayoutSectionHeader; /** * Payload of the {@link ChangeLayoutSectionHeader} command. * @public */ export declare type ChangeLayoutSectionHeaderPayload = { /** * Index of section whose header to set. * * @remarks * Index is zero based. Exact index must be provided. * * "number" support will be removed in the next major SDK version. Use {@link ILayoutSectionPath} instead. * * TODO LX-648: Remove number type in the next major version. */ readonly index: number | ILayoutSectionPath; /** * New value of the header. */ readonly header: IDashboardLayoutSectionHeader; /** * Indicate that the old header and the new header should be merged. * * @remarks * The default behavior is to overwrite the old header with the new header provided in this command. */ readonly merge?: boolean; }; /** * Creates the ChangeMeasureValueFilterCondition command. * * @remarks * Dispatching this command updates the conditions of an existing measure value filter. To clear * the filter (set it back to "All"), pass undefined or an empty array. * * @param localIdentifier - local identifier of the measure value filter to update * @param conditions - new conditions to apply, or undefined to clear * @param correlationId - correlation id propagated through emitted events * * @alpha */ export declare function changeMeasureValueFilterCondition(localIdentifier: string, conditions?: MeasureValueFilterCondition[], correlationId?: string): IChangeMeasureValueFilterCondition; /** * Creates the ChangeAttributeFilterSelection command for adhoc migrated attribute filter. * * @remarks * Dispatching this command will result in application of element selection for the dashboard attribute filter * with the provided id, or error in case of invalid update (e.g. non-existing filterLocalId). * * The attribute elements can be provided either using their URI (primary key) or value. Together with the * elements you must indicate the selection type - either 'IN' or 'NOT_IN'. * * @remarks see {@link resetAttributeFilterSelection} for convenience function to select all attribute elements of * particular filter. * * See also {@link applyAttributeFilter} for convenient function when you have an {@link @gooddata/sdk-model#IAttributeFilter} instance. * * @example * ``` * const selectionType = isPositiveAttributeFilter ? "IN" : "NOT_IN"; * ``` * * To create this command without a need to calculate the payload values from a {@link @gooddata/sdk-model#IFilter} object, * we recommend to use {@link applyAttributeFilter} command creator instead. * * @param filterLocalId - dashboard attribute filter's local id * @param elements - elements * @param selectionType - selection type. either 'IN' or 'NOT_IN' * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @internal */ export declare function changeMigratedAttributeFilterSelection(filterLocalId: string, elements: IAttributeElements, selectionType: AttributeFilterSelectionType, correlationId?: string): ChangeAttributeFilterSelection; /** * Creates the ChangeLayoutSectionHeader command. * * @remarks * Dispatching this command will result in change of the section's title and/or description. * * @param index - index of section to change * @param header - new header * @param merge - indicates whether the old header and the new header should be merged; default is no merging * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @alpha */ export declare function changeNestedLayoutSectionHeader(index: ILayoutSectionPath, header: IDashboardLayoutSectionHeader, merge?: boolean, correlationId?: string): ChangeLayoutSectionHeader; /** * Creates the {@link IChangeParameterValues} command. * * @remarks * Dispatching this command sets the provided parameter values as runtime overrides on the * currently active tab. Only parameters already present on the active tab are affected; values * for unknown parameter refs are ignored. * * Mirrors {@link changeFilterContextSelectionByParams} for parameters, so drill targets can * inherit the source dashboard's active parameter overrides. * * @param params - params for the command creator * @internal */ export declare function changeParameterValues({ parameters, tabLocalIdentifier, correlationId }: ChangeParameterValuesParams): IChangeParameterValues; /** * Params for {@link changeParameterValues} command. * * @internal */ export declare type ChangeParameterValuesParams = { parameters: IInsightParameterValue[]; /** * Target tab. When omitted, the runtime overrides are applied to the active tab. */ tabLocalIdentifier?: string; correlationId?: string; }; /** * Creates the ChangeRenderMode command. Dispatching this command will result in change of the render mode of dashboard component * * @param renderMode - render mode value * @param renderModeChangeOptions - options for render mode change * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function changeRenderMode(renderMode: RenderMode, renderModeChangeOptions?: IRenderModeChangeOptions, correlationId?: string): IChangeRenderMode; /** * Creates the ChangeRichTextWidgetContent command. Dispatching this command will result in change of the rich text widget's * Markdown content. * * @param ref - reference of the rich text widget to modify * @param content - updated content * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function changeRichTextWidgetContent(ref: ObjRef, content: string, correlationId?: string): IChangeRichTextWidgetContent; /** * Creates the ChangeSharing command. Dispatching this command will result in change of sharing status of dashboard. The changes * will be done in-memory and also propagated to the backend. * * @param newSharingProperties - new dashboard sharing properties * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * @beta */ export declare function changeSharing(newSharingProperties: ISharingApplyPayload_2, correlationId?: string): IChangeSharing; /** * Creates the ChangeAttributeFilterSelection command for working filter. * * @remarks * Dispatching this command will result in changing working element selection for the dashboard attribute filter * with the provided id, or error in case of invalid update (e.g. non-existing filterLocalId). * * The attribute elements can be provided either using their URI (primary key) or value. Together with the * elements you must indicate the selection type - either 'IN' or 'NOT_IN'. * * If you want to change applied filters use {@link changeAttributeFilterSelection}. * See {@link ChangeAttributeFilterSelectionPayload.isWorkingSelectionChange} for details. * * @remarks see {@link resetAttributeFilterSelection} for convenience function to select all attribute elements of * particular filter. * * See also {@link applyAttributeFilter} for convenient function when you have an {@link @gooddata/sdk-model#IAttributeFilter} instance. * * @example * ``` * const selectionType = isPositiveAttributeFilter ? "IN" : "NOT_IN"; * ``` * * To create this command without a need to calculate the payload values from a {@link @gooddata/sdk-model#IFilter} object, * we recommend to use {@link applyAttributeFilter} command creator instead. * * @param filterLocalId - dashboard attribute filter's local id * @param elements - elements * @param selectionType - selection type. either 'IN' or 'NOT_IN' * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * @param isSelectionInvalid - * * @public */ export declare function changeWorkingAttributeFilterSelection(filterLocalId: string, elements: IAttributeElements, selectionType: AttributeFilterSelectionType, correlationId?: string, isSelectionInvalid?: boolean): ChangeAttributeFilterSelection; /** * Creates the ChangeMeasureValueFilterCondition command for working filter context changes. * * @alpha * @param localIdentifier - local identifier of the measure value filter to update * @param conditions - new conditions to apply, or undefined to clear * @param correlationId - correlation id propagated through emitted events * @returns change measure value filter condition command */ export declare function changeWorkingMeasureValueFilterCondition(localIdentifier: string, conditions?: MeasureValueFilterCondition[], correlationId?: string): IChangeMeasureValueFilterCondition; /** * This convenience function will create ChangeDateFilterSelection configured so that the date filter will be * unbounded - showing data for 'All Time'. * * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * @param dataSet - * @param isWorkingSelectionChange - * @param localIdentifier - * * @public */ export declare function clearDateFilterSelection(correlationId?: string, dataSet?: ObjRef, isWorkingSelectionChange?: boolean, localIdentifier?: string, emptyValueHandling?: EmptyValues): ChangeDateFilterSelection; /** * Creates a {@link DashboardEventHandler} instance that will be invoked for a DashboardCommandFailed of a particular command. * * @param type - the type of command the DashboardCommandFailed of which this handler should trigger for * @param handler - the actual event handling function * @alpha */ export declare function commandFailedEventHandler(type: TCommand["type"], handler: DashboardEventHandler>["handler"]): DashboardEventHandler>; /** * @public */ export declare type CommandProcessingMeta = { /** * Unique identifier assigned at the time command was submitted for processing. */ readonly uuid: string; }; /** * @internal */ export declare type CommandProcessingStatus = "running" | "success" | "error"; /** * Creates a {@link DashboardEventHandler} instance that will be invoked for a DashboardCommandStarted of a particular command. * * @param type - the type of command the DashboardCommandStarted of which this handler should trigger for * @param handler - the actual event handling function * @alpha */ export declare function commandStartedEventHandler(type: TCommand["type"], handler: DashboardEventHandler>["handler"]): DashboardEventHandler>; /** * Data attributes with export specification for components. * * @alpha */ export declare type CommonExportDataAttributes = { "data-export-type": ExportElementType; "data-export-depth"?: string; "data-export-status"?: "loading" | "empty" | "loaded"; }; /** * @public */ export declare type ConfigState = { /** @beta */ config?: ResolvedDashboardConfig; }; /** * Capability saying the component can be configured in edit mode. * @internal */ export declare type ConfigurableWidget = { configuration: { /** * Component used to render the insides of the configuration panel. */ WidgetConfigPanelComponent: CustomWidgetConfigPanelComponent; }; }; /** * @internal */ export declare function CreatableAttributeFilter({ WrapCreatePanelItemWithDragComponent }: ICreatePanelItemComponentProps): JSX.Element; /** * Capability saying the component can be created by dragging it from the side drawer. * @internal */ export declare type CreatableByDragComponent = DraggableComponent & { creating: { /** * Component used to render the item in the left drawer menu used to create a new instance of this component on the dashboard */ CreatePanelListItemComponent: CustomCreatePanelItemComponent; /** * The lower the priority, the earlier the component is shown in the drawer. * * @remarks * For example item with priority 0 is shown before item with priority 5 */ priority?: number; /** * Draggable item type for the creating item. */ type: DraggableContentItemType; }; }; /** * Capability saying the component displays something else than the Main component while it is being configured for the first time after being created. * @internal */ export declare type CreatablePlaceholderComponent = { creating: { /** * Component used to render the item before the initial configuration is done. */ CreatingPlaceholderComponent?: ComponentType; }; }; /** * Creates the SaveAlert command. Dispatching this command will result in the creating alert on the backend. * * @param alert - specify alert to create. * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * @beta */ export declare function createAlert(alert: IAutomationMetadataObjectDefinition, correlationId?: string): ICreateAlert; /** * Create {@link ICreateAttributeHierarchyRequested} event * * @internal */ export declare function createAttributeHierarchyRequested(correlationId?: string): DashboardEventBody; /** * Creates the CreateDashboardTab command. * * @param title - optional title for the new tab * @param index - optional position to insert tab (defaults to end) * @param shouldStartRenaming - optional flag to indicate whether the new tab should be started in renaming mode * @param correlationId - specify correlation id to use for this command * @returns create dashboard tab command * * @alpha */ export declare function createDashboardTab(title?: string, index?: number, shouldStartRenaming?: boolean, correlationId?: string): ICreateDashboardTab; /** * Create {@link ICreateInsightRequested} event * * @internal */ export declare function createInsightRequested(correlationId?: string): DashboardEventBody; /** * Creates the CreateScheduledEmail command. * * Dispatching this command will result in the creating scheduled email on the backend. * * @param scheduledEmail - specify scheduled email to create. * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * @beta */ export declare function createScheduledEmail(scheduledEmail: IAutomationMetadataObjectDefinition, correlationId?: string): ICreateScheduledEmail; /** * Creates the {@link ICrossFiltering} command. * Dispatching this command will result into applying intersection attribute filters to the dashboard and insight will ignore these filters further * Eventually a {@link IDashboardCrossFilteringResolved} event will be dispatched at the end. * * @beta * @param insight - insight from which the cross filtering is coming. * @param drillDefinition - drill definition to apply. * @param drillEvent - original drill event, that triggered this particular drill interaction. * @param correlationId - specify correlation id. It will be included in all events that will be emitted during the command processing. * @returns cross filtering command */ export declare function crossFiltering(insight: IInsight, drillDefinition: ICrossFiltering_2, drillEvent: IDashboardDrillEvent, correlationId?: string): ICrossFiltering; /** * @alpha */ export declare type CustomAlertingDialogComponent = ComponentType; /** * @alpha */ export declare type CustomAlertingManagementDialogComponent = ComponentType; /** * @beta */ export declare type CustomButtonBarComponent = ComponentType; /** * @beta */ export declare type CustomCancelButtonComponent = ComponentType; /** * @internal */ export declare type CustomCreatePanelItemComponent = ComponentType; /** * @public */ export declare type CustomDashboardAttributeFilterComponent = ComponentType; /** * @alpha */ export declare type CustomDashboardContentComponent = ComponentType; /** * @public */ export declare type CustomDashboardDateFilterComponent = ComponentType; /** * @public */ export declare type CustomDashboardFilterGroupComponent = ComponentType; /** * @public */ export declare type CustomDashboardInsightComponent = ComponentType; /** * @internal */ export declare type CustomDashboardInsightListItemComponent = ComponentType; /** * @internal */ export declare type CustomDashboardInsightListItemComponentProps = { isLocked?: boolean; title?: string; description?: string; updated?: string; type?: string; className?: string; showDescriptionPanel?: boolean; onDescriptionPanelOpen?: () => void; metadataTimeZone?: string; filters?: IFilter[]; useRichText?: boolean; useReferences?: boolean; LoadingComponent?: ComponentType; width?: number; }; /** * @alpha */ export declare type CustomDashboardInsightMenuButtonComponent = ComponentType; /** * @alpha */ export declare type CustomDashboardInsightMenuComponent = ComponentType; /** * @internal */ export declare type CustomDashboardInsightMenuTitleComponent = ComponentType; /** * @alpha */ declare type CustomDashboardLayoutComponent = ComponentType; export { CustomDashboardLayoutComponent } export { CustomDashboardLayoutComponent as CustomDashboardNestedLayoutComponent } /** * @alpha */ export declare type CustomDashboardMeasureValueFilterComponent = ComponentType; /** * @public */ export declare type CustomDashboardRichTextComponent = ComponentType; /** * @alpha */ export declare type CustomDashboardRichTextMenuButtonComponent = ComponentType; /** * @alpha */ export declare type CustomDashboardRichTextMenuComponent = ComponentType; /** * @internal */ export declare type CustomDashboardRichTextMenuTitleComponent = ComponentType; /** * @alpha */ export declare type CustomDashboardSettingsDialogComponent = ComponentType; /** * @public */ export declare type CustomDashboardVisualizationSwitcherComponent = ComponentType; /** * @public */ export declare type CustomDashboardWidgetComponent = ComponentType; /** * @internal */ export declare type CustomDraggableComponent = { DraggingComponent: CustomDraggingComponent; type: "custom"; }; /** * @internal */ export declare type CustomDraggableItem = { type: "custom"; [key: string]: any; }; /** * @internal */ export declare type CustomDraggingComponent = ComponentType; /** * @alpha */ export declare type CustomDrillDialogExportDropdownComponent = ComponentType; /** * @beta */ export declare type CustomEditModeButtonComponent = ComponentType; /** * @internal */ export declare type CustomEmptyLayoutDropZoneBodyComponent = ComponentType; /** * @alpha */ export declare type CustomFilterBarComponent = ComponentType; /** * @remarks * When implementing this using GoodData-provided components, make sure that you pass as many of the props * as possible to the component (especially the drill-related props and members of the {@link @gooddata/sdk-ui#IVisualizationCallbacks}). * This will ensure the integration with the rest of the widget is as complete as possible. * * @public */ export declare type CustomInsightBodyComponent = ComponentType; /** * @alpha */ export declare type CustomMenuButtonComponent = ComponentType; /** * @alpha */ export declare type CustomSaveAsDialogComponent = ComponentType; /** * @beta */ export declare type CustomSaveAsNewButtonComponent = ComponentType; /** * @beta */ export declare type CustomSaveButtonComponent = ComponentType; /** * @alpha */ export declare type CustomScheduledEmailDialogComponent = ComponentType; /** * @alpha */ export declare type CustomScheduledEmailManagementDialogComponent = ComponentType; /** * @beta */ export declare type CustomSettingButtonComponent = ComponentType; /** * @alpha */ export declare type CustomShareButtonComponent = ComponentType; /** * @alpha */ export declare type CustomShareDialogComponent = ComponentType; /** * @alpha */ export declare type CustomShowAsTableButtonComponent = ComponentType; /** * @alpha */ export declare type CustomSidebarComponent = ComponentType; /** * @alpha */ export declare type CustomTitleComponent = ComponentType; /** * @internal */ export declare type CustomToolbarComponent = ComponentType; /** * @alpha */ export declare type CustomTopBarComponent = ComponentType; /** * @alpha */ export declare type CustomVisualizationSwitcherToolbarComponent = ComponentType; /** * Definition of widget * @internal */ export declare type CustomWidgetComponentSet = ICustomComponentBase> & DraggableComponent & Partial> & Partial; /** * @internal */ export declare type CustomWidgetConfigPanelComponent = ComponentType>; /** * @internal */ export declare type CustomWidgetDraggableItem = BaseDraggableMovingItem & { type: "customWidget"; widget: ICustomWidget; }; /** * @public */ export declare function Dashboard(props: IDashboardProps): JSX.Element; /** * Represents different kinds of accessibility limitation for dashboard. * * Dashboard is forbidden when strict access control is supported and user does not have permission to see it or drill to it. * Dashboard is not shared when user is able to drill to it but not see it directly. * * @alpha */ export declare type DashboardAccessibilityLimitation = "forbidden" | "notShared"; /** * This event is emitted when a component on the dashboard requests async rendering. * * @public */ export declare type DashboardAsyncRenderRequested = IDashboardEvent & { readonly type: "GDC.DASH/EVT.RENDER.ASYNC.REQUESTED"; readonly payload: { /** * Item identifier. */ readonly id: string; }; }; /** * Payload of the {@link DashboardAsyncRenderRequested} event. * @public */ export declare type DashboardAsyncRenderRequestedPayload = { /** * Item identifier. */ readonly id: string; }; /** * This event is emitted when a component on the dashboard resolves async rendering. * * @public */ export declare type DashboardAsyncRenderResolved = IDashboardEvent & { readonly type: "GDC.DASH/EVT.RENDER.ASYNC.RESOLVED"; readonly payload: DashboardAsyncRenderResolvedPayload; }; /** * Payload of the {@link DashboardAsyncRenderResolved} event. * @public */ export declare type DashboardAsyncRenderResolvedPayload = { /** * Item identifier. */ readonly id: string; }; /** * This event is emitted after an attribute filter item's selection is replaced. * * @remarks * Unlike {@link DashboardAttributeFilterSelectionChanged}, this event supports all attribute filter * types including text filters (arbitrary and match). * * @public */ export declare type DashboardAttributeFilterItemSelectionReplaced = IDashboardEvent & { readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.ATTRIBUTE_FILTER_ITEM.SELECTION_REPLACED"; readonly payload: DashboardAttributeFilterItemSelectionReplacedPayload; }; /** * Payload of the {@link DashboardAttributeFilterItemSelectionReplaced} event. * * @public */ export declare type DashboardAttributeFilterItemSelectionReplacedPayload = { /** * The updated definition of the dashboard attribute filter item. * * This can be any attribute filter type: element-based, arbitrary text, or match text filter. */ readonly filter: DashboardAttributeFilterItem; }; /** * Converts any {@link @gooddata/sdk-model#DashboardAttributeFilterItem} to {@link @gooddata/sdk-model#IAttributeFilter} instance. * * @remarks * Handles all attribute filter types: element-based (positive/negative selection), * arbitrary value filters, and match (text) filters. * * @param filter - dashboard attribute filter item to convert * @public */ export declare function dashboardAttributeFilterItemToAttributeFilter(filter: DashboardAttributeFilterItem): IAttributeFilter; /** * This event is emitted after new elements are selected and applied in an attribute filter. * * @remarks * * See also {@link dashboardAttributeFilterToAttributeFilter} convertor – this allows you to convert the `filter` * in the event payload to an {@link @gooddata/sdk-model#IAttributeFilter} instance you can use with visualizations, * filter UI components and so on. * * @public */ export declare type DashboardAttributeFilterSelectionChanged = IDashboardEvent & { readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.ATTRIBUTE_FILTER.SELECTION_CHANGED"; readonly payload: DashboardAttributeFilterSelectionChangedPayload; }; /** * Payload of the {@link DashboardAttributeFilterSelectionChanged} event. * * @remarks * * See also {@link dashboardAttributeFilterToAttributeFilter} convertor – this allows you to convert the `filter` * object to an {@link @gooddata/sdk-model#IAttributeFilter} instance you can use with visualizations, * filter UI components and so on. * * @public */ export declare type DashboardAttributeFilterSelectionChangedPayload = { /** * The update definition of the dashboard attribute filter. * * The attribute elements and/or the negativeSelection indicator values have changed. */ readonly filter: IDashboardAttributeFilter; }; /** * Converts {@link @gooddata/sdk-backend-spi#IDashboardAttributeFilter} to {@link @gooddata/sdk-model#IAttributeFilter} instance. * * @param filter - filter context attribute filter to convert * @deprecated Use {@link dashboardAttributeFilterItemToAttributeFilter} instead, * which supports all attribute filter types including text filters. * @public */ export declare function dashboardAttributeFilterToAttributeFilter(filter: IDashboardAttributeFilter): IAttributeFilter; /** * Union type that contains all available built-in dashboard commands. * * @remarks * Note: while this type is marked as public most of the commands are currently an alpha-level API that * we reserve to change in the following releases. If you use those commands now, upgrading to the next * version of `@gooddata/sdk-ui-dashboard` will likely result in breakage. * * @public */ export declare 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 | IChangeParameterValues; /** * All available command types. * * @remarks * Note: while this type is marked as public most of the command types are currently an alpha-level API that * we reserve to change in the following releases. * * At this moment, we only consider the GDC.DASH/CMD.SAVEAS as stable * * @public */ export declare 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" | "GDC.DASH/CMD.PARAMETERS.CHANGE_VALUES"; /** * Dashboard configuration can influence the available features, look and feel and behavior of the dashboard. * * @public */ export declare type DashboardConfig = { /** * Locale to use for the dashboard. */ locale?: ILocale; /** * Number separators to use for charts and KPIs on the dashboard. */ separators?: ISeparators; /** * Settings may influence how the dashboard behaves or what features it exposes. */ settings?: ISettings; /** * The current user. When provided, the dashboard reuses it instead of loading the current * user from the backend on initialization - allowing an embedding application that has already * resolved the user to avoid a duplicate request. */ user?: IUser; /** * Date filter configuration. * * @remarks * Date filter configuration is used to influence what filtering presets (options) should be * available on the date filter component. */ dateFilterConfig?: IDateFilterConfig; /** * Override filters in the default filter context. * * @remarks * Overrides dashboard's default filters by matching display forms. * These overrides persist in edit mode and after filter resets. * * Compatible matching filters will replace originals. * * Incompatible filters are merged following these rules: * - Non-matching filters won't be added * - Multi-to-single selection conversions will use first element only * - Changes to readonly/hidden filters won't be applied * * Incompatible overrides/conversions will lead to a toast message with warning. */ overrideDefaultFilters?: FilterContextItem[]; /** * Override runtime values of dashboard parameters on the active tab. * * @remarks * Each entry's `value` is applied as the parameter's `runtimeOverride` when its `ref` matches * a parameter on the loaded dashboard. Refs that don't match are silently ignored. * The override applies only to the active tab — other tabs keep their hydrated defaults. */ overrideDefaultParameters?: IDashboardParameter[]; /** * Override dashboard title. */ overrideTitle?: string; /** * Color palette to pass down to charts. */ colorPalette?: IColorPalette; /** * Specifies exclusion and inclusion criteria for objects that should be available during the * different object selections (e.g. selecting metric for KPI, attributes to filter by, date data sets to use for filtering). */ objectAvailability?: ObjectAvailabilityConfig; /** * Token for Mapbox API. You need this to use GeoCharts in your dashboards. * * @remarks To create a Mapbox account and an access token, see [this guide](https://docs.mapbox.com/help/how-mapbox-works/access-tokens/). */ mapboxToken?: string; /** * AG Grid Enterprise license token to unlock enterprise features in PivotTable. */ agGridToken?: string; /** * Maximum zoom level for GeoChart map. * * @remarks * When set, the map will not allow zooming in beyond this level. * Use `null` to explicitly clear the zoom limit. */ maxZoomLevel?: number | null; /** * Sets dashboard to the read-only mode. * * @remarks * If set to true, the dashboard will be embedded in a read-only mode disabling any user interaction * that would alter any backend state (disabling creating/changing alerts, creating scheduled emails, etc.). * * Defaults to false i.e. NOT a read-only mode. */ isReadOnly?: boolean; /** * Sets dashboard to the embedded mode. * * @remarks * When dashboard is embedded via iframe, this property must be set to true. * In embedded mode, some interactions may be disabled. * * Defaults to false. */ isEmbedded?: boolean; /** * When dashboard is executed in export mode, this property must be set to true. * * @remarks * Defaults to false. */ isExport?: boolean; /** * When dashboard is white labeled, we hide GD links and branding. * @internal */ isWhiteLabeled?: boolean; /** * Disables default dashboard drills. * * @remarks * Drills configured and stored on the widgets, or implicit drills (e.g. drill down). * This property has no effect for drills enabled by drillableItems set by {@link IChangeDrillableItems} command. * * Defaults to false. */ disableDefaultDrills?: boolean; /** * If set to true, filter values will resolve in drill events. * * @remarks * Defaults to false. */ enableFilterValuesResolutionInDrillEvents?: boolean; /** * Configure which of the default menu button buttons are visible. * @beta */ menuButtonItemsVisibility?: IMenuButtonItemsVisibility; /** * When turned on the features still under development will be turned on based on corresponding settings * * @remarks * Defaults to false. */ allowUnfinishedFeatures?: boolean; /** * @internal * Allow to create insight button and event */ allowCreateInsightRequest?: boolean; /** * Specify which render mode will be use d for initial rendering. * * @remarks * If you do not specify initialRenderMode, the dashboard component will be display in view mode. */ initialRenderMode?: RenderMode; /** * @internal * Hide "Save as new" button in ButtonBar and MenuButton */ hideSaveAsNewButton?: boolean; /** * @internal * Hide "Share" button in TopBar */ hideShareButton?: boolean; /** * @internal * Hide "Widget titles" in the dashboard */ hideWidgetTitles?: boolean; /** * @internal * Provide widgets overlays for dashboard */ widgetsOverlay?: Record; /** * @internal * Identifier of the export * * @remarks * This identifier is utilized only by those backend implementations which support storing * export metadata with the export request and is typically used to store inlined filter context. * In the future, there's a possibility to store some additional export-related temporary metadata there. * * As the backend does not expose the filter context publicly, this id is then used to access export metadata * api, retrieve the metadata and extract filter context from there. * * Important: When exportId is given, the filter context stored with export metadata for this exportId has * priority over other stored or supplied filter context. */ exportId?: string; /** * Specify type of the currently performed dashboard export. * This id is used to retrieve export-related metadata, such as currently active attribute filters. */ exportType?: "visual" | "slides"; /** * Custom export metadata retrieved during export mode. */ exportMetadata?: Record; /** * Disable cross filtering * * @remarks * If set to true, cross filtering will be forced disabled even if the dashboard is configured to support it. * If set to false or not set, cross filtering will be enabled if the dashboard is configured to support it. */ disableCrossFiltering?: boolean; /** * Disable user filter reset * * @remarks * If set to true, user filter reset will be disabled even if the dashboard is configured to support it. * If set to false or not set, user filter reset will be enabled if the dashboard is configured to support it. */ disableUserFilterReset?: boolean; /** * Disable persisted filters * * @remarks * If set to true, persistent filters across tabs will be disabled even if the dashboard is configured to support it. * If set to false or not set, persisted filters will be enabled if the dashboard is configured to support it. */ disablePersistentFiltersAcrossTabs?: boolean; /** * Hide the add tab button in dashboard edit mode. * * @remarks * If set to true, the add tab button will not be visible in edit mode, * preventing users from adding new tabs to the dashboard. * * @alpha */ hideAddTabButton?: boolean; /** * @alpha * * Open automation on load * * @remarks * If set to true, the selected automation form focus object will be opened on dashboard load. */ openAutomationOnLoad?: boolean; /** * @beta * * Specify the focus object in which context the dashboard should be opened. * * @remarks Only provide one of the focus properties at a time. */ focusObject?: IDashboardFocusObject; /** * @alpha * * Specify the slide configuration for the dashboard. This sizes will be used in export mode as size * of the slide where visualization will be fit and rendered. * */ slideConfig?: IDashboardExportSlideConfig; /** * @alpha * * Dashboard referenced objects. * If provided, initialization of the dashboard avoid additional requests to resolve them. */ references?: IDashboardReferences; /** * @alpha * * Entitlements for the user who is rendering the dashboard */ entitlements?: IEntitlementDescriptor[]; /** * Initial content of the dashboard. In case of empty dashboard, this content will be filled * into created section. If the dashboard is loaded from backend, this content will be ignored. */ initialContent?: DashboardItem[]; /** * @alpha * * Timestamp for the dashboard execution as ISO string */ executionTimestamp?: string; /** * @alpha * * Default evaluation frequency for the dashboard provided from settings. */ evaluationFrequency?: string; /** * @alpha * * Workspace descriptor */ workspaceDescriptor?: { title: string; }; /** * @alpha * * Customized recipient context for automations */ externalRecipient?: string; }; /** * @alpha */ export declare type DashboardContentComponentProvider = (dashboard?: string | ObjRef | IDashboard) => CustomDashboardContentComponent; /** * @public */ export declare type DashboardContext = { /** * Analytical Backend where the dashboard exists. */ backend: IAnalyticalBackend; /** * Analytical Backend where the dashboard exists. */ workspace: string; /** * Dashboard config * @internal * * @remarks * Do not use this, can be changed in future or removed at all * */ config?: DashboardConfig; /** * Reference to dashboard that should be loaded into the store. * * @remarks * If the dashboardRef is not specified, then this indicates * the dashboard should be initialized with empty state (new dashboard). */ dashboardRef?: ObjRef; /** * Reference to filter context that defines filters to use on the dashboard. */ filterContextRef?: ObjRef; /** * Client identifier. * * @remarks * It's required, if the backend implementation supports it and workspace is provisioned via LCM. */ clientId?: string; /** * Data product identifier. * @remarks * It's required, if the backend implementation supports it and workspace is provisioned via LCM. */ dataProductId?: string; }; /** * This event is emitted at the end of successful 'dashboard save as' command processing. * * @remarks * At this point, a new dashboard exists on the backend. * * @public */ export declare type DashboardCopySaved = IDashboardEvent & { readonly type: "GDC.DASH/EVT.COPY_SAVED"; readonly payload: DashboardCopySavedPayload; }; /** * Payload of the {@link DashboardCopySaved} event. * @public */ export declare type DashboardCopySavedPayload = { /** * Definition of the newly created dashboard copy. */ readonly dashboard: IDashboard; /** * Flag describing whether a locked dashboard was copied. */ readonly isOriginalDashboardLocked: boolean; }; /** * This event is emitted after the dashboard's date filter selection is changed. * * @remarks * * See also {@link dashboardDateFilterToDateFilterByWidget} and {@link dashboardDateFilterToDateFilterByDateDataSet} convertors * – those allow you to convert the `filter` in the event payload to an {@link @gooddata/sdk-model#IDateFilter} instance you can use * with visualizations, filter UI components and so on. * * @public */ export declare type DashboardDateFilterSelectionChanged = IDashboardEvent & { readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.DATE_FILTER.SELECTION_CHANGED"; readonly payload: DashboardDateFilterSelectionChangedPayload; }; /** * Payload of the {@link DashboardDateFilterSelectionChanged} event. * * @remarks * * See also {@link dashboardDateFilterToDateFilterByWidget} and {@link dashboardDateFilterToDateFilterByDateDataSet} convertors * – those allow you to convert the `filter` object to an {@link @gooddata/sdk-model#IDateFilter} instance you can use * with visualizations, filter UI components and so on. * * @public */ export declare type DashboardDateFilterSelectionChangedPayload = { /** * Object with changed date filter selection. */ readonly filter: IDashboardDateFilter | undefined; /** * Optional local identifier of the new selected date filter option. */ readonly dateFilterOptionLocalId?: string; }; /** * Converts {@link @gooddata/sdk-backend-spi#IDashboardDateFilter} to {@link @gooddata/sdk-model#IDateFilter} instance. * * @param filter - filter context attribute filter to convert * @param dateDataSet - date data set to define {@link @gooddata/sdk-model#IDateFilter} * @public */ export declare function dashboardDateFilterToDateFilterByDateDataSet(filter: IDashboardDateFilter, dateDataSet: ObjRef): IDateFilter; /** * Converts {@link @gooddata/sdk-backend-spi#IDashboardDateFilter} to {@link @gooddata/sdk-model#IDateFilter} instance. * * @param filter - filter context attribute filter to convert * @param widget - widget to use to get dateDataSet for date filters * @public */ export declare function dashboardDateFilterToDateFilterByWidget(filter: IDashboardDateFilter, widget?: Partial): IDateFilter; /** * This event is emitted when a dashboard is deinitialized. The event contains contextual information such as * the ref of dashboard being deinitialized if the dashboard being deinitialized contained a persisted dashboard object. * * @remarks * This event is useful when your application switches between different dashboards (similar to what the Dashboards application does) * and you want to handle that. Note that this event WILL NOT be fired when navigating to a completely different * application/site in the browser or closing the tab etc., if you want to handle that, you need to do it yourself * using the appropriate events on the Window object. * * @public */ export declare type DashboardDeinitialized = IDashboardEvent & { readonly type: "GDC.DASH/EVT.DEINITIALIZED"; readonly payload: DashboardDeinitializedPayload; }; /** * Payload of the {@link DashboardDeinitialized} event. * @public */ export declare type DashboardDeinitializedPayload = { /** * Reference of the dashboard being deinitialized (if the dashboard being deinitialized had one i.e. contained a persisted dashboard object). */ dashboard: ObjRef | undefined; }; /** * Dashboard information density setting. * * @alpha */ export declare type DashboardDensity = "comfortable" | "compact"; /** * @public */ export declare type DashboardDescriptor = Pick & IAccessControlAware; /** * @public */ export declare type DashboardDispatch = Dispatch; /** * @alpha */ export declare type DashboardDrillCommand = IDrill | IDrillDown | IDrillToAttributeUrl | IDrillToCustomUrl | IDrillToDashboard | IDrillToInsight | IDrillToLegacyDashboard | ICrossFiltering | IKeyDriverAnalysis; /** * Supported dashboard drill definitions. * * @beta */ export declare type DashboardDrillDefinition = DrillDefinition | IDrillDownDefinition; /** * @public */ export declare type DashboardEventBody = Omit; /** * @public */ export declare type DashboardEventEvalFn = (event: DashboardEvents | ICustomDashboardEvent) => boolean; /** * Event handlers can be registered for a dashboard. * * @remarks * All events that occur during dashboard processing will be evaluated against all registered handlers and if * evaluation succeeds they will be dispatched to the handler function. * * @public */ export declare type DashboardEventHandler = { /** * Specify event evaluation function. * * @remarks * This will be used by dashboard's event emitter to determine * whether event of particular type should be dispatched to this handler. * * @param event - dashboard or custom event */ eval: DashboardEventEvalFn; /** * The actual event handling function. * * @remarks * This will be called if the eval function returns true. * * @param event - event to handle * @param dashboardDispatch - the dispatch object of the dashboard store use dot dispatch commands or queries * @param stateSelect - callback to execute arbitrary selectors against the dashboard state */ handler: DashboardEventHandlerFn; }; /** * @public */ export declare type DashboardEventHandlerFn = (event: TEvents, dashboardDispatch: Dispatch, stateSelect: DashboardSelectorEvaluator) => void; /** * Union type that contains all available built-in dashboard events. * * @remarks * Note: while this type is marked as public most of the events are currently an alpha-level API that * we reserve to change in the following releases. If you use those events now, upgrading to the next * version of `@gooddata/sdk-ui-dashboard` will likely result in breakage. * * @public */ export declare type DashboardEvents = DashboardInitialized | DashboardDeinitialized | DateFilterValidationFailed | DashboardSaved | DashboardCopySaved | DashboardRenderRequested | DashboardAsyncRenderRequested | DashboardAsyncRenderResolved | DashboardRenderResolved | DashboardSharingChanged | IDashboardRenderModeChanged | IDashboardCommandStarted | IDashboardCommandFailed | IDashboardCommandRejected | IDashboardQueryFailed | IDashboardQueryRejected | IDashboardQueryStarted | IDashboardQueryCompleted | IDashboardRenamed | IDashboardWasReset | IDashboardExportToPdfRequested | IDashboardExportToPdfResolved | IDashboardExportToExcelRequested | IDashboardExportToExcelResolved | IDashboardExportToPdfPresentationRequested | IDashboardExportToPdfPresentationResolved | IDashboardExportToPptPresentationResolved | IDashboardExportToPptPresentationRequested | IDashboardExportToImageRequested | IDashboardExportToImageResolved | IDashboardUserInteractionTriggered | DashboardDateFilterSelectionChanged | IDashboardAttributeFilterAdded | IDashboardAttributeFilterRemoved | IDashboardAttributeFilterMoved | DashboardAttributeFilterSelectionChanged | DashboardAttributeFilterItemSelectionReplaced | IDashboardAttributeTitleChanged | IDashboardAttributeSelectionModeChanged | IDashboardAttributeFilterParentChanged | IDashboardMeasureValueFilterAdded | IDashboardMeasureValueFilterMoved | IDashboardMeasureValueFilterRemoved | IDashboardMeasureValueFilterConditionChanged | IDashboardMeasureValueFilterDimensionalityChanged | IDashboardMeasureValueFilterTitleChanged | IDashboardMeasureValueFilterConfigModeChanged | DashboardFilterContextChanged | IDashboardLayoutSectionAdded | IDashboardLayoutSectionMoved | IDashboardLayoutSectionRemoved | IDashboardLayoutSectionHeaderChanged | IDashboardLayoutSectionItemsAdded | IDashboardLayoutSectionItemReplaced | IDashboardLayoutSectionItemMoved | IDashboardLayoutSectionItemRemoved | IDashboardLayoutSectionItemMovedToNewSection | IDashboardLayoutChanged | IDashboardKpiWidgetHeaderChanged | IDashboardKpiWidgetDescriptionChanged | IDashboardKpiWidgetConfigurationChanged | IDashboardKpiWidgetMeasureChanged | IDashboardKpiWidgetFilterSettingsChanged | IDashboardKpiWidgetComparisonChanged | IDashboardKpiWidgetDrillRemoved | IDashboardKpiWidgetDrillSet | IDashboardKpiWidgetChanged | IDashboardInsightWidgetHeaderChanged | IDashboardInsightWidgetDescriptionChanged | IDashboardInsightWidgetFilterSettingsChanged | IDashboardInsightWidgetVisPropertiesChanged | IDashboardInsightWidgetVisConfigurationChanged | IDashboardInsightWidgetInsightSwitched | IDashboardInsightWidgetDrillsModified | IDashboardInsightWidgetDrillsRemoved | IDashboardInsightWidgetChanged | IDashboardInsightWidgetExportRequested | IDashboardInsightWidgetExportResolved | IDashboardInsightWidgetRefreshed | IDashboardRichTextWidgetContentChanged | IDashboardRichTextWidgetFilterSettingsChanged | IDashboardVisualizationSwitcherWidgetVisualizationAdded | IDashboardVisualizationSwitcherWidgetVisualizationsUpdated | IDashboardWidgetExecutionStarted | IDashboardWidgetExecutionSucceeded | IDashboardWidgetExecutionFailed | IDashboardAlertCreated | IDashboardAlertSaved | IDashboardScheduledEmailCreated | IDashboardScheduledEmailSaved | IDashboardAutomationsRefreshed | IShowWidgetAsTableSet | IDashboardDrillDownResolved | IDashboardDrillToAttributeUrlResolved | IDashboardDrillToCustomUrlResolved | IDashboardDrillToDashboardResolved | IDashboardDrillToInsightResolved | IDashboardDrillToLegacyDashboardResolved | IDashboardKeyDriverAnalysisResolved | IDashboardKeyDriverAnalysisRequested | IDashboardDrillResolved | IDashboardDrillDownRequested | IDashboardDrillToAttributeUrlRequested | IDashboardDrillToCustomUrlRequested | IDashboardDrillToDashboardRequested | IDashboardDrillToInsightRequested | IDashboardDrillToLegacyDashboardRequested | IDashboardDrillRequested | IDashboardDrillableItemsChanged | IDashboardIgnoreExecutionTimestampChanged | IDashboardTabSwitched | IDashboardTabCreated | IDashboardTabDeleted | IDashboardTabRenamingStarted | IDashboardTabRenamingCanceled | IDashboardTabRenamed | IDashboardParametersSelectionReset | ICreateInsightRequested | ICreateAttributeHierarchyRequested | IDeleteAttributeHierarchyRequested; /** * A union of all available built-in dashboard event type names. * * @remarks * Note: while this type is marked as public most of the event types are currently an alpha-level API that * we reserve to change in the following releases. * * These are the event types that we currently consider stable: * * - GDC.DASH/EVT.INITIALIZED * - GDC.DASH/EVT.DEINITIALIZED * - GDC.DASH/EVT.SAVED * - GDC.DASH/EVT.COPY_SAVED * - GDC.DASH/EVT.SHARING.CHANGED * - GDC.DASH/EVT.FILTER_CONTEXT.CHANGED * - GDC.DASH/EVT.FILTER_CONTEXT.DATE_FILTER.SELECTION_CHANGED * - GDC.DASH/EVT.FILTER_CONTEXT.ATTRIBUTE_FILTER.SELECTION_CHANGED * * @public */ export declare 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"; /** * This event is emitted after _any_ change to dashboard filters (be it date or attribute filter). * The event describes the new state of the entire filter context. * * @remarks * This event is emitted as convenience - more granular events describe all the possible * changes to the dashboard filters and can be used to even source the state of filter context. * * See also {@link filterContextToDashboardFiltersByWidget} and {@link filterContextToDashboardFiltersByDateDataSet} convertors * – those allow you to convert the `filterContext` in the event payload to array of {@link @gooddata/sdk-model#IFilter} instances you can use * with visualizations, filter UI components and so on. * * @public */ export declare type DashboardFilterContextChanged = IDashboardEvent & { readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.CHANGED"; readonly payload: DashboardFilterContextChangedPayload; }; /** * Payload of the {@link DashboardFilterContextChanged} event. * * @remarks * * See also {@link filterContextToDashboardFiltersByWidget} and {@link filterContextToDashboardFiltersByDateDataSet} convertors * – those allow you to convert the `filterContext` object to array of {@link @gooddata/sdk-model#IFilter} instances you can use * with visualizations, filter UI components and so on. * * @public */ export declare type DashboardFilterContextChangedPayload = { /** * The new value of the filterContext. */ readonly filterContext: IFilterContextDefinition; /** * The new value of the attribute filter configs. */ readonly attributeFilterConfigs: IDashboardAttributeFilterConfig[]; /** * The tab local identifier where the filter change was applied. * Only present when filters were applied to a specific tab (not the active tab). * * @internal */ readonly tabLocalIdentifier?: string; }; /** * @internal */ export declare type DashboardFilterSelectionType = "attribute" | "dateDataset" | "measure"; /** * This event is emitted when a dashboard is successfully initialized. * * @remarks * The event contains contextual information such as the resolved DashboardConfig and the permissions in effect * for the current user and current workspace. * * If the initialization loaded an existing, persisted dashboard then the dashboard object will be included in * the event. * * If the initialization created a new, empty dashboard then dashboard object will be undefined. * * @public */ export declare type DashboardInitialized = IDashboardEvent & { readonly type: "GDC.DASH/EVT.INITIALIZED"; readonly payload: DashboardInitializedPayload; }; /** * Payload of the {@link DashboardInitialized} event. * @public */ export declare type DashboardInitializedPayload = { /** * Loaded dashboard. */ readonly dashboard?: IDashboard; /** * Insights used on the dashboard. */ readonly insights: ReadonlyArray; /** * Configuration in effect for the dashboard. * * @remarks * If the config was provided via props, then * that same config is sent here. If there was no config in props, then the dashboard component load resolved * all the config and includes it here. */ readonly config: DashboardConfig; /** * Permissions in effect for the dashboard. * * @remarks * If the permissions were provided via props, then those * same permissions are included here. Otherwise, the dashboard will load the permissions and include it here. */ readonly permissions: IWorkspacePermissions; }; /** * @internal */ export declare function DashboardInsight(props: Omit & { insight?: IInsight; }): ReactElement; /** * @internal */ export declare function DashboardInsightMenu(props: IDashboardInsightMenuProps): ReactElement; /** * @internal */ export declare function DashboardInsightMenuButton(props: IDashboardInsightMenuButtonProps): ReactElement; /** * @internal */ export declare function DashboardInsightMenuTitle(props: IDashboardInsightMenuTitleProps): ReactElement; /** * Dashboard item * * @public */ export declare type DashboardItem = DashboardItemVisualization | DashboardItemVisualizationContent; /** * Definition of items that may be placed into the dashboard sections. * * @beta */ export declare type DashboardItemDefinition = ExtendedDashboardItem | StashedDashboardItemsId; /** * Dashboard item with visualization * * @public */ export declare type DashboardItemVisualization = { visualization: ObjRef; }; /** * Dashboard item with visualization content * * @public */ export declare type DashboardItemVisualizationContent = { visualizationContent: IInsight; }; /** * @internal */ export declare function DashboardLayout(props: IDashboardLayoutProps): ReactElement; /** * @beta */ export declare type DashboardLayoutCommands = IAddLayoutSection | IMoveLayoutSection | IRemoveLayoutSection | ChangeLayoutSectionHeader | IAddSectionItems | IMoveSectionItem | IRemoveSectionItem | IRemoveSectionItemByWidgetRef | IResizeHeight; /** * @alpha */ export declare type DashboardLayoutComponentProvider = (widget: IDashboardLayout) => CustomDashboardLayoutComponent; /** * @internal */ export declare type DashboardLayoutDraggableComponent = { DraggingComponent?: DashboardLayoutDraggingComponent; type: "dashboardLayout"; }; /** * @internal */ export declare type DashboardLayoutDraggableItem = BaseDraggableMovingItem & { type: "dashboardLayout"; }; /** * @internal */ export declare type DashboardLayoutDraggableListItem = BaseDraggableLayoutItem & { type: "dashboardLayoutListItem"; }; /** * @internal */ export declare type DashboardLayoutDraggingComponent = ComponentType; /** * @public */ export declare type DashboardLayoutExportTransformFn = (layout: IDashboardLayout, focusObject?: IDashboardFocusObject) => IDashboardLayout | undefined; /** * Definition of Dashboard layout widget * @internal */ export declare type DashboardLayoutWidgetComponentSet = ICustomComponentBase> & DraggableComponent & Partial & Partial> & ConfigurableWidget; /** * @public */ export declare type DashboardModelCustomizationFns = { /** * Provide a function that will be used during dashboard initialization of an existing dashboard. * * @remarks * This function will be called after the dashboard is loaded from backend, and before it is dispatched for * cleanup, sanitization and storage in the Dashboard component state. * * - If the function is not defined, results in an error or returns `undefined`, then the original * dashboard will be used as-is. */ existingDashboardTransformFn?: DashboardTransformFn; /** * Provide a function that will be used during dashboard export initialization of an existing dashboard. * * @remarks * This function will be called after the dashboard is loaded from backend transformed by another plugins * and before is rendered to the export. This will be not stored in the state. * * - If the function is not defined, results in an error or returns `undefined`, then the original * dashboard export transformation will be used as-is. */ existingExportTransformFn?: DashboardLayoutExportTransformFn; }; /** * @internal */ export declare enum DashboardPartId { MainContent = "mainContent", FiltersBar = "filtersBar", Sidebar = "sidebar" } /** * @public */ export declare type DashboardPermissionsState = { /** @beta */ dashboardPermissions?: IDashboardPermissions; }; /** * Basic set of information about a Dashboard plugin. * * @public */ export declare type DashboardPluginDescriptor = { /** * Author of the plugin. * * @remarks * This should ideally contain name and contact (email) for the author. */ readonly author: string; /** * Specify human-readable name of the plugin. */ readonly displayName: string; /** * Version of the plugin. * * @remarks * At this point, the version is included for diagnostic purposes. It may * be whatever string the author sees fit. We recommend, however, to use semantic versioning. */ readonly version: string; /** * Specify human-readable short description of the plugin. * * @remarks * This is typically a one- or two-line description of the plugin, what it brings, what it does. */ readonly shortDescription?: string; /** * Human-readable long description of the plugin. */ readonly longDescription?: string; /** * Developer-assigned name of the plugin that will be used. * * @remarks * If not specified the debug name falls back to display name. */ readonly debugName?: string; /** * Specify compatibility of the plugin and Dashboard component version. * * @remarks * Value should be standard semver string e.g. "\>9.4.0" * Note that this takes precedence over minEngineVersion and maxEngineVersion properties, if specified. */ readonly compatibility?: string; /** * Minimum version of dashboard engine that this plugin supports. * * @remarks * Value can be "bundled" - then the minimum required version of the engine equals to the bundled one. * Another option is to specify exact minimum version of the SDK - e.g. "8.7.0". * @deprecated - use compatibility property instead */ readonly minEngineVersion: string; /** * Greatest version of the dashboard engine that this plugin supports. * * @remarks * Value can be "bundled" - then the maximum possible version of the engine equals to the bundled one. * Another option is to specify exact maximum version of the SDK - e.g. "8.8.0". * @deprecated - use compatibility property instead */ readonly maxEngineVersion?: string; }; /** * Abstract base class for the Dashboard Plugin. * * @remarks * Each plugin should extend this class and implement at least the {@link DashboardPluginV1.register} method. * * @public */ export declare abstract class DashboardPluginV1 implements IDashboardPluginContract_V1 { readonly _pluginVersion = "1.0"; readonly minEngineVersion: string; readonly maxEngineVersion?: string; readonly compatibility: string | undefined; abstract readonly author: string; abstract readonly displayName: string; abstract readonly version: string; abstract register(ctx: DashboardContext, customize: IDashboardCustomizer, handlers: IDashboardEventHandling): void; } /** * @alpha */ export declare type DashboardQueries = IQueryInsightDateDatasets | IQueryMeasureDateDatasets | IQueryInsightAttributesMeta | IQueryWidgetFilters | IQueryWidgetBrokenAlerts | IQueryWidgetAlertCount | IQueryConnectingAttributes | IQueryAttributeByDisplayForm | IQueryAttributeDataSet | IQueryAttributeElements | IQueryConnectedAttributes | IQueryMetricsAndFacts | IQueryAvailableDatasetsForItems; /** * @beta */ 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"; /** * @alpha */ export declare type DashboardRelatedFilter = { type: "attributeFilter" | "dateFilter" | "measureValueFilter"; all: boolean; id: string; title: string; subtitle: string; common?: true; mode: DashboardDateFilterConfigMode | DashboardAttributeFilterConfigMode; }; /** * This event is emitted as soon as the dashboard component is mounted, * and rendering of its content started. * * @public */ export declare type DashboardRenderRequested = IDashboardEvent & { readonly type: "GDC.DASH/EVT.RENDER.REQUESTED"; }; /** * @public */ export declare type DashboardRenderResolved = IDashboardEvent & { readonly type: "GDC.DASH/EVT.RENDER.RESOLVED"; readonly payload?: { config: Omit; }; }; /** * This event is emitted at the end of successful dashboard save command processing. At this point, the * dashboard state is persisted on the backend. * * @public */ export declare type DashboardSaved = IDashboardEvent & { readonly type: "GDC.DASH/EVT.SAVED"; readonly payload: DashboardSavedPayload; }; /** * Payload of the {@link DashboardSaved} event. * @public */ export declare type DashboardSavedPayload = { /** * Definition of the saved dashboard. */ readonly dashboard: IDashboard; /** * If true, this was the initial save and thus a new dashboard object was created. * If false, an existing dashboard was updated. */ readonly newDashboard: boolean; }; /** * Function that selects part of the Dashboard state. * * @public */ export declare type DashboardSelector = (state: DashboardState) => TResult; /** * Type of a callback that evaluates a selector function against the Dashboard state * * @public */ export declare type DashboardSelectorEvaluator = (selector: DashboardSelector) => TResult; /** * @internal */ export declare function DashboardSettingsDialog(props: IDashboardSettingsDialogProps): ReactElement; /** * This event is emitted at the end of successful 'change sharing status of dashboard' command processing. * * @public */ export declare type DashboardSharingChanged = IDashboardEvent & { readonly type: "GDC.DASH/EVT.SHARING.CHANGED"; readonly payload: DashboardSharingChangedPayload; }; /** * Payload of the {@link DashboardSharingChanged} event. * @public */ export declare type DashboardSharingChangedPayload = { /** * New properties related to the sharing. */ newSharingProperties: ISharingProperties; }; /** * Layout of the dashboard component's state. State modifications are always done using Command API. Reading * from state must always be done using the Selectors API. * * Accessing state props directly is dangerous practice. We reserve the rights to refactor and otherwise break * the shape of the state at any time while keeping the Selectors and Command APIs stable. * * @public */ export declare type DashboardState = { /** * List of widget IDs that should be shown as table view. * @internal */ showWidgetAsTable: IShowWidgetAsTableState; /** @beta */ loading: ILoadingState; saving: SavingState; executed: IExecutedState; backendCapabilities: BackendCapabilitiesState; config: ConfigState; /** @beta */ entitlements: IEntitlementsState; permissions: PermissionsState; /** @alpha */ tabs: ITabsState; catalog: CatalogState; user: UserState; /** @beta */ meta: IDashboardMetaState; /** @beta */ drill: IDrillState; /** @beta */ insights: EntityState; /** @alpha */ drillTargets: EntityState; /** @beta */ listedDashboards: EntityState; /** @beta */ accessibleDashboards: IAccessibleDashboardsState; /** @alpha */ inaccessibleDashboards: EntityState; dashboardPermissions: DashboardPermissionsState; /** @alpha */ automations: IAutomationsState; /** @alpha */ users: IUsersState; /** @alpha */ notificationChannels: INotificationChannelsState; /** * Internal state for dashboard summary AI workflow. * * @internal */ dashboardSummaryWorkflow: DashboardSummaryWorkflowState; /** * State controlling how exactly the dashboard is rendered. * @beta */ renderMode: IRenderModeState; /** * Ui state controllable from the outside. * @beta */ ui: IUiState; /** * Part of state where execution results of the individual widgets are stored. * @beta */ executionResults: EntityState; /** * Part of state where the different dashboard component queries may cache their results. * * @internal */ _queryCache: { [queryName: string]: any; }; filterViews: IFilterViewsState; }; /** * Callback called whenever the Dashboard's internal state changes. * * @param state - the new value of the state * @param dispatch - the new dispatcher function that can be used to dispatch commands * * @public */ export declare type DashboardStateChangeCallback = (state: DashboardState, dispatch: DashboardDispatch) => void; /** * This class serves the selector and the dispatcher properties of the dashboard component state. * * @remarks * The {@link Dashboard} component has an optional property {@link IDashboardProps#onStateChange} through which * you can handle set the values for {@link DashboardDispatch} and {@link DashboardSelectorEvaluator}. * * * In your component using {@link Dashboard} you can create and instance of the {@link DashboardStoreAccessor} object * and use it like in the example below. The example shows the accessor's usage as well. There is a need to check * the select and dispatch object existence. * * See {@link DashboardStoreAccessorRepository} on possible way how to use the store accessor. * * To get latest properties, use static member function {@link DashboardStoreAccessor#getInstance}. If there is already an instance * created, it will return this instance and will return new instance of the {@link DashboardStoreAccessor} otherwise. * * @public */ export declare class DashboardStoreAccessor { selectorEvaluator: DashboardSelectorEvaluator | undefined; dispatch: DashboardDispatch | undefined; constructor(selector: DashboardSelectorEvaluator, dispatch: DashboardDispatch); /** * Returns current selector for the dashboard's component state. */ getDashboardSelect: () => DashboardSelectorEvaluator; /** * Setter for the dashboard's component state selector. * @param selectorEvaluator - dashboardSelectorEvaluator */ private setSelector; /** * Returns current dispatch object for the dashboard component state. */ getDashboardDispatch: () => DashboardDispatch; /** * Setter for the dashboard's component state dispatch. * @param dispatch - dashboardDispatch */ private setDispatch; /** * Checks if {@link DashboardStoreAccessor} is fully initialized. */ isDashboardStoreAccessorInitialized: () => boolean; /** * Callback to be passed as {@link Dashboard} component {@link Dashboard#onStateChange} property to set * {@link DashboardStoreAccessor#selectorEvaluator} and {@link DashboardStoreAccessor#dispatch} to handle Dashboard component state from outside of the * component. * * @param state - {@link DashboardState} object. * @param dispatch - {@link DashboardDispatch} object. */ setSelectAndDispatch: (state: DashboardState, dispatch: DashboardDispatch) => void; } /** * This singleton class serves the selector and the dispatcher properties for given dashboard. * * @remarks * The {@link Dashboard} component has an optional property {@link IDashboardProps#onStateChange} through which * you can handle setting of the values for {@link DashboardDispatch} and {@link DashboardSelectorEvaluator}. * * * In your component using {@link Dashboard} you can create an onStateChange callback for your dashboard using * {@link DashboardStoreAccessorRepository#getOnChangeHandlerForDashboard} and pass it to mentioned Dashboard * component property. * * @example * ``` * const dashboardStoreAccessors = DashboardStoreAccessorRepository.getInstance(); * * * // in the code where needed * dashboardStoreAccessors.getAccessorsForDashboard().getDispatch()( * changeDateFilterSelection("relative", "GDC.time.month", "-3", "0"), * ); * * // or with check if accessor is initialized already * if (dashboardStoreAccessors.isAccessorInitializedForDashboard(DASHBOARD_ID)) { * setSelectResult( * dashboardStoreAccessors.getAccessorsForDashboard(DASHBOARD_ID).getSelector()( * selectEffectiveDateFilterOptions, * ), * ); * } * * return ( * "} onStateChange={dashboardStoreAccessors.getOnChangeHandlerForDashboard(DASHBOARD_REF)}/> * ) * ``` * * To get latest properties, use static member function {@link DashboardStoreAccessor#getInstance}. If there is already an instance * created, it will return this instance and will return new instance of the {@link DashboardStoreAccessor} otherwise. * * @public */ export declare class DashboardStoreAccessorRepository { private static accessors; private static getSerializedDashboardRef; /** * Gets the correct {@link DashboardStoreAccessor} for given dashboard from the accessors map. * * @param dashboard - an {@link @gooddata/sdk-model#ObjRef} of the dashboard, or its id as a string */ static getAccessorsForDashboard(dashboard: ObjRef | string): DashboardStoreAccessor; /** * Gets the correct {@link DashboardSelectorEvaluator} for given dashboard from the accessors map. * * @param dashboard - an {@link @gooddata/sdk-model#ObjRef} of the dashboard, or its id as a string */ static getDashboardSelectForDashboard(dashboard: ObjRef | string): DashboardSelectorEvaluator; /** * Gets the correct {@link DashboardDispatch} for given dashboard from the accessors map. * * @param dashboard - an {@link @gooddata/sdk-model#ObjRef} of the dashboard, or its id as a string */ static getDashboardDispatchForDashboard(dashboard: ObjRef | string): DashboardDispatch; /** * Creates a {@link Dashboard#onStateChange} callback for given dashboard. * * @param dashboard - an {@link @gooddata/sdk-model#ObjRef} of the dashboard, or its id as a string */ static getOnChangeHandlerForDashboard(dashboard: ObjRef | string): (state: DashboardState, dispatch: DashboardDispatch) => void; private static setAccessorForDashboard; /** * Removes dashboard accessors from {@link DashboardStoreAccessorRepository#accessors} for the given dashboard {@link @gooddata/sdk-model#ObjRef}. * * @param dashboard - an {@link @gooddata/sdk-model#ObjRef} of the dashboard, or its id as a string */ static clearAccessorForDashboard(dashboard: ObjRef | string): void; /** * Clears all accessors saved in accessors map. */ static clearAllAccessors(): void; /** * Checks if accessors is initialized for given dashboard {@link @gooddata/sdk-model#ObjRef}. * * @param dashboard -an {@link @gooddata/sdk-model#ObjRef} of the dashboard, or its id as a string */ static isAccessorInitializedForDashboard(dashboard: ObjRef | string): boolean; } /** * @internal */ export declare function DashboardStoreProvider(props: IDashboardStoreProviderProps): JSX.Element | null; /** * @internal */ export declare type DashboardSummaryWorkflowInfo = { /** * Run identifier returned by the AI workflow start endpoint. */ runId?: string; /** * Latest known workflow status (e.g. RUNNING, SUCCESS, ...). */ status?: DashboardSummaryWorkflowStatus | "AWAITING_REFRESH"; /** * Timestamp (ms) when workflow was started. */ startedAt?: number; /** * Timestamp (ms) when status was last updated. */ updatedAt?: number; }; /** * @internal */ export declare type DashboardSummaryWorkflowState = { byDashboardId: Record; }; /** * Creates the DashboardTabCreated event. * * @param ctx - dashboard context * @param newTabId - identifier of the newly created tab * @param index - index at which the new tab was inserted * @param correlationId - correlation id to use for this event * @returns dashboard tab created event * * @alpha */ export declare function dashboardTabCreated(ctx: DashboardContext, newTabId: string, index: number, correlationId?: string): IDashboardTabCreated; /** * Creates the DashboardTabDeleted event. * * @param ctx - dashboard context * @param deletedTabId - identifier of the deleted tab * @param previousIndex - index from which the tab was deleted * @param nextActiveTabId - identifier of the next active tab, if any * @param correlationId - correlation id to use for this event * @returns dashboard tab deleted event * * @alpha */ export declare function dashboardTabDeleted(ctx: DashboardContext, deletedTabId: string, previousIndex: number, nextActiveTabId?: string, correlationId?: string): IDashboardTabDeleted; /** * Creates the DashboardTabRenamed event. * @alpha */ export declare function dashboardTabRenamed(ctx: DashboardContext, tabId: string, title: string, correlationId?: string): IDashboardTabRenamed; /** * Creates the DashboardTabRenamingCanceled event. * @alpha */ export declare function dashboardTabRenamingCanceled(ctx: DashboardContext, tabId: string, correlationId?: string): IDashboardTabRenamingCanceled; /** * Creates the DashboardTabRenamingStarted event. * @alpha */ export declare function dashboardTabRenamingStarted(ctx: DashboardContext, tabId: string, correlationId?: string): IDashboardTabRenamingStarted; /** * Creates the DashboardTabSwitched event. * * @param ctx - dashboard context * @param previousTabId - identifier of the previously active tab * @param newTabId - identifier of the newly active tab * @param correlationId - correlation id to use for this event * @param source - what triggered the switch; omit for a regular user-initiated tab switch. * See {@link DashboardTabSwitchSource}. * @returns dashboard tab switched event * * @alpha */ export declare function dashboardTabSwitched(ctx: DashboardContext, previousTabId: string | undefined, newTabId: string, correlationId?: string, source?: DashboardTabSwitchSource): IDashboardTabSwitched; /** * What triggered a {@link ISwitchDashboardTab} command. * * Open-ended set of values that may grow over time; treat unknown values defensively. When * omitted, the switch is a regular user-initiated tab switch. * * - `"drillToSelf"` - the switch is part of a drill to the same dashboard targeting a different * tab. The drill owns the target tab's filter context, so consumers that restore per-tab filter * state on switches (e.g. "Auto-save last state") should skip their restore for it. * * @alpha */ export declare type DashboardTabSwitchSource = "drillToSelf"; /** * @public */ export declare type DashboardTransformFn = (dashboard: IDashboard) => IDashboard | undefined; /** * @internal */ export declare function DashboardWidget(props: IDashboardWidgetProps): ReactElement; /** * @public */ export declare type DateFilterComponentProvider = (filter: IDashboardDateFilter) => CustomDashboardDateFilterComponent; /** * Definition of date filter components * @internal */ export declare type DateFilterComponentSet = ICustomComponentBase> & DraggableComponent & CreatablePlaceholderComponent & CreatableByDragComponent; /** * Validation result. * * @public */ export declare type DateFilterConfigValidationResult = "Valid" | "NoVisibleOptions" | "ConflictingIdentifiers" | "SelectedOptionInvalid"; /** * @internal */ export declare type DateFilterDraggableComponent = { DraggingComponent: DateFilterDraggingComponent; type: "dateFilter"; }; /** * @internal */ export declare type DateFilterDraggableItem = { type: "dateFilter"; filter: IDashboardDateFilter; filterIndex: number; }; /** * @internal */ export declare type DateFilterDraggingComponent = ComponentType; /** * @beta */ export declare type DateFilterInteractionType = "dateFilterTitleResetClicked" | "dateFilterConfigurationOpened"; /** * Payload type for {@link ChangeDateFilterSelection} command. * * @public */ export declare type DateFilterSelection = { /** * The reference to date data set to which date filter belongs. * If not defined it refers to so. called common date filter which data set is defined per widget */ readonly dataSet?: ObjRef; /** * Indicates whether the filter should select absolute or relative values. * * @remarks * - Absolute values: `from` and `to` props should be exact dates on the defined granularity * - Relative values: `from` and `to` are offsets on the defined granularity */ readonly type: DateFilterType; /** * Date filter granularity. For absolute dates this indicates what is the expected input format. * * @remarks * - Date = MM/DD/YYYY * - Month = MM/YYYY * - Year = YYYY * - Quarter = Q#/YYYY * - Week = WW/YYYY */ readonly granularity: DateFilterGranularity; /** * The start date. If absolute date filter, then `from` is the formatted start date. * * @remarks * If relative date filter, then `from` is offset from today. * * If not specified, then the start date is unbounded. * * See `granularity` prop for more on date format. */ readonly from?: DateString | number; /** * The end date. If absolute date filter, then `to` is formatted end date. * * @remarks * If relative date filter, then `to` is offset from today. * * If not specified, then the end date is current date. * * See `granularity` prop for more on date format */ readonly to?: DateString | number; /** * The localId of the DateFilterOption selected. */ readonly dateFilterOptionLocalId?: string; /** * Determines if this command should change working (staged for application) filters or applied filters (used to compute data). */ readonly isWorkingSelectionChange?: boolean; /** * Specify the local identifier of date filter */ readonly localIdentifier?: string; /** * Additional bound for the relative date filter * @alpha */ readonly boundedFilter?: IUpperBoundedFilter | ILowerBoundedFilter; /** * How to treat undefined (empty) date values. * * @alpha */ readonly emptyValueHandling?: EmptyValues; }; /** * This event may occur while the dashboard is handling the Load Dashboard command and is loading and validating * dashboard configuration from the backend. * * @remarks * Part of that process is obtaining workspace's Date Filter configuration. If the date filter config stored in * workspace has issues, then this event will occur. * * Note that this event is not a showstopper. The dashboard load will recover and fall back to a safe date * filter configuration. * * @public */ export declare type DateFilterValidationFailed = IDashboardEvent & { readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.DATE_FILTER.VALIDATION.FAILED"; readonly payload: DateFilterValidationFailedPayload; }; /** * Payload of the {@link DateFilterValidationFailed} event. * @public */ export declare type DateFilterValidationFailedPayload = { /** * Result of the date filter validation. */ readonly result: DateFilterValidationResult; }; /** * @public */ export declare type DateFilterValidationResult = "TOO_MANY_CONFIGS" | "NO_CONFIG" | DateFilterConfigValidationResult; /** * @internal */ export declare type DeepReadonly = T extends (infer R)[] ? ReadonlyArray> : T extends Function ? T : T extends object ? DeepReadonlyObject : T; /** * @internal */ export declare type DeepReadonlyObject = { readonly [P in keyof T]: DeepReadonly; }; /** * @alpha * Default maximum number of automations. */ export declare const DEFAULT_MAX_AUTOMATIONS = "10"; /** * @internal */ export declare const DEFAULT_MESSAGES: Record; /** * Identifier used for dashboards without explicit tabs support and the first tab created automatically. * * @internal */ export declare const DEFAULT_TAB_ID = "defaultTabId"; /** * Default implementation of the alerting create/edit dialog. * * This component is a pure consumer of `AutomationsContext` and `AlertingDialogContext`: it reads * org/workspace data and per-dialog state from those contexts rather than from the dashboard store. * It must therefore be rendered within an `AutomationsContextProvider` (and, for the create/edit * flow, an `AlertingDialogContextProvider`). Inside a `Dashboard`, the alerting connector supplies * both providers above the `AlertingDialogComponent` slot — so the default component, and any * wholesale slot replacement, inherit the contexts automatically and require no extra wiring. * * The providers are intentionally hoisted above the slot rather than built inside this component: * that is what lets a wholesale replacement receive the same contexts (see the Phase-2 boundary in * `docs/tasks/26Q1 - Automation Dialog Separation.md`). Rendering this component outside those * providers throws at runtime. * * @alpha */ export declare function DefaultAlertingDialog(props: IAlertingDialogProps): JSX.Element; /** * Self-contained version of DefaultAlertingManagementDialogNew that builds the required * AutomationsContext and AlertingManagementDialogContext internally from the dashboard * Redux store. Use this export when mounting the management dialog outside of * AlertingConnector (e.g. embedding scenarios, storybooks, or custom dashboard shells). * * @alpha */ export declare function DefaultAlertingManagementDialogNew(props: IAlertingManagementDialogProps): JSX.Element; /** * @alpha */ export declare function DefaultButtonBar({ children, cancelButtonProps, saveButtonProps, settingButtonProps, editButtonProps, saveAsNewButtonProps, shareButtonProps, childContentPosition, left, right }: IButtonBarProps): ReactElement; /** * @internal */ export declare function DefaultCancelButton({ isVisible, onCancelClick }: ICancelButtonProps): JSX.Element | null; /** * @internal */ export declare function DefaultCancelEditDialog(props: ICancelEditDialogProps): JSX.Element | null; /** * Default implementation of the attribute filter to use on the dashboard's filter bar. * * This will use the SDK's AttributeFilter with the button styled same as we have it today on KD. * * @alpha */ export declare function DefaultDashboardAttributeFilter(props: IDashboardAttributeFilterProps): ReactElement | null; /** * @internal */ export declare function DefaultDashboardAttributeFilterComponentSetFactory(attributeFilterProvider: AttributeFilterComponentProvider): AttributeFilterComponentSet; /** * Default implementation of the date filter to use on the dashboard's filter bar. * * This will use the SDK's DateFilter with the button styled same as we have it today on KD. * * @alpha */ export declare function DefaultDashboardDateFilter({ filter, workingFilter, onFilterChanged, config, readonly, autoOpen, ButtonComponent, overlayPositionType, tabId }: IDashboardDateFilterProps): ReactElement; /** * @internal */ export declare function DefaultDashboardDateFilterComponentSetFactory(dateFilterProvider: DateFilterComponentProvider): DateFilterComponentSet; /** * @alpha */ export declare function DefaultDashboardExportVariables({ renderMode }: IDefaultDashboardExportVariablesProps): JSX.Element | null; /** * @alpha */ export declare function DefaultDashboardFilterGroup(props: IDashboardFilterGroupProps): ReactNode; /** * Default implementation of the Dashboard Insight widget. * * @public */ export declare function DefaultDashboardInsight(props: IDashboardInsightProps): JSX.Element; /** * @internal */ export declare function DefaultDashboardInsightComponentSetFactory(insightProvider: InsightComponentProvider): InsightWidgetComponentSet; /** * @alpha */ export declare function DefaultDashboardInsightMenu(props: IDashboardInsightMenuProps): ReactElement; /** * @internal */ export declare function DefaultDashboardInsightMenuButton(props: IDashboardInsightMenuButtonProps): ReactElement; /** * @internal */ export declare function DefaultDashboardInsightMenuTitle(props: IDashboardInsightMenuTitleProps): JSX.Element; /** * @alpha */ export declare function DefaultDashboardLayout(props: IDashboardLayoutProps): ReactElement; /** * @internal */ export declare function DefaultDashboardLayoutComponentSetFactory(dashboardLayoutComponentProvider: DashboardLayoutComponentProvider): DashboardLayoutWidgetComponentSet; /** * @internal */ export declare function DefaultDashboardMainContent(_: IDashboardProps): JSX.Element; /** * @alpha */ export declare function DefaultDashboardMeasureValueFilter(props: IDashboardMeasureValueFilterProps): ReactElement | null; /** * Default implementation of the dashboard layout widget. * * @public */ export declare const DefaultDashboardNestedLayout: ComponentType; /** * Default implementation of the dashboard rich text widget. * * @public */ export declare const DefaultDashboardRichText: ComponentType; /** * @internal */ export declare function DefaultDashboardRichTextComponentSetFactory(richTextProvider: RichTextComponentProvider): RichTextWidgetComponentSet; /** * @alpha */ export declare function DefaultDashboardRichTextMenu(props: IDashboardRichTextMenuProps): ReactElement; /** * @internal */ export declare function DefaultDashboardRichTextMenuTitle(_props: IDashboardRichTextMenuTitleProps): JSX.Element; /** * @alpha */ export declare function DefaultDashboardSettingsDialog({ isVisible, onApply, onCancel }: IDashboardSettingsDialogProps): ReactElement | null; /** * Default modifier applied to any theme passed to Dashboard component * @param theme - theme to modify * @beta */ export declare const defaultDashboardThemeModifier: (theme: ITheme) => ITheme; /** * @internal */ export declare function DefaultDashboardToolbar({ children }: IToolbarProps): JSX.Element; /** * @internal */ export declare function DefaultDashboardToolbarButton({ tooltip, disabled, icon, onClick, isActive }: IDefaultDashboardToolbarButtonProps): JSX.Element; /** * @internal */ export declare function DefaultDashboardToolbarGroup({ children, title }: IDefaultDashboardToolbarGroupProps): JSX.Element; /** * Default implementation of the dashboard visualization switcher widget. * * @public */ export declare const DefaultDashboardVisualizationSwitcher: ComponentType; /** * @internal */ export declare function DefaultDashboardVisualizationSwitcherComponentSetFactory(visualizationSwitcherComponentProvider: VisualizationSwitcherComponentProvider): VisualizationSwitcherWidgetComponentSet; /** * @internal */ export declare const DefaultDashboardWidget: NamedExoticComponent; /** * @internal */ export declare function DefaultDrillDialogExportDropdown(props: IDrillDialogExportDropdownProps): ReactElement; /** * @internal */ export declare function DefaultEditButton({ isVisible, isEnabled, onEditClick, tooltipText }: IEditButtonProps): JSX.Element | null; /** * @alpha */ export declare function DefaultFilterBar(props: IFilterBarProps): ReactElement; /** * @alpha */ export declare function DefaultFlexibleDashboardLayout({ layout: providedLayout, onFiltersChange, onDrill, onError, dashboardItemClasses }: IDashboardLayoutProps): ReactElement; /** * Default implementation of the InsightBody. * * @alpha */ export declare function DefaultInsightBody(props: IInsightBodyProps): JSX.Element; /** * @alpha */ export declare function DefaultLockedStatus(props: ILockedStatusProps): ReactElement | null; /** * @alpha */ export declare function DefaultMenuButton({ menuItems }: IMenuButtonProps): ReactElement | null; /** * @alpha */ export declare function DefaultSaveAsDialog({ onSubmit, onCancel, onError, isVisible, onSuccess }: ISaveAsDialogProps): ReactElement | null; /** * @internal */ export declare function DefaultSaveAsNewButton({ isVisible, onSaveAsNewClick }: ISaveAsNewButtonProps): JSX.Element | null; /** * @internal */ export declare function DefaultSaveButton({ isVisible, isEnabled, isSaving, buttonTitle, onSaveClick }: ISaveButtonProps): JSX.Element | null; /** * @alpha */ export declare function DefaultScheduledEmailDialog(props: IScheduledEmailDialogProps): JSX.Element; /** * @alpha */ export declare function DefaultScheduledEmailManagementDialog({ onAdd, onEdit, onClose, isLoadingScheduleData, automations }: IScheduledEmailManagementDialogProps): JSX.Element; /** * @internal */ export declare function DefaultSettingButton({ isVisible, isEnabled, isSaving, buttonTitle, buttonValue, onSettingClick }: ISettingButtonProps): JSX.Element | null; /** * @alpha */ export declare function DefaultShareButton({ isVisible, onShareButtonClick }: IShareButtonProps): ReactElement | null; /** * @alpha */ export declare function DefaultShareDialog({ workspace, backend, isVisible, sharedObject, currentUser, isLockingSupported, isCurrentUserWorkspaceManager, currentUserPermissions, dashboardFilters, dashboardParameters, isShareGrantHidden, applyShareGrantOnSelect, showDashboardShareLink, isGranteeShareLoading, onApply, onCancel, onError, onInteraction, onShareLinkCopy }: IShareDialogProps): ReactElement | null; /** * @alpha */ export declare function DefaultShareStatus(props: IShareStatusProps): ReactElement | null; /** * @internal */ export declare function DefaultShowAsTableButton(props: IShowAsTableButtonProps): ReactElement; /** * @alpha */ export declare function DefaultTitle({ title }: ITitleProps): JSX.Element; /** * @alpha */ export declare function DefaultTopBar(props: ITopBarProps): ReactElement; /** * @alpha */ export declare function DefaultVisualizationSwitcherToolbar(props: IVisualizationSwitcherToolbarProps): ReactElement; /** * Create {@link IDeleteAttributeHierarchyRequested} event * * @internal */ export declare function deleteAttributeHierarchyRequested(correlationId?: string): DashboardEventBody; /** * Creates the DeleteDashboard command. Dispatching this command will result in removal of the currently * rendered dashboard from analytical backend and reverting the dashboard component to an 'empty' state where * it is initialized to create a new dashboard. * * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function deleteDashboard(correlationId?: string): IDeleteDashboard; /** * Creates the DeleteDashboardTab command. * * @param tabId - identifier of the tab to delete * @param correlationId - specify correlation id to use for this command * @returns delete dashboard tab command * * @alpha */ export declare function deleteDashboardTab(tabId: string, correlationId?: string): IDeleteDashboardTab; /** * Creates the {@link IDeleteFilterView} command. * * @remarks * Dispatching this command will result into deletion of the persisted filter view. * * @alpha * @param ref - ref of the filter view that must be deleted * @param correlationId - specify correlation id. It will be included in all events that will be emitted during the command processing. * @returns delete filter view command */ export declare function deleteFilterView(ref: ObjRef, correlationId?: string): IDeleteFilterView; /** * @alpha */ export declare function DensityDialog(): ReactElement | null; /** * Data attributes for export mode to be added to the description. * * @alpha */ export declare type DescriptionExportData = { description?: SectionDescriptionExportDataAttributes; richText?: RichTextExportData; }; /** * @beta */ export declare type DescriptionTooltipOpenedData = { from: DescriptionTooltipOpenedFrom; type: DescriptionTooltipOpenedType; description?: string; }; /** * @beta */ export declare type DescriptionTooltipOpenedFrom = "kpi" | "widget" | "insight"; /** * @beta */ export declare type DescriptionTooltipOpenedPayload = IUserInteractionPayloadWithDataBase<"descriptionTooltipOpened", DescriptionTooltipOpenedData>; /** * @beta */ export declare type DescriptionTooltipOpenedType = "inherit" | "custom"; /** * @internal */ export declare type DisabledReason = "oldWidget"; /** * Creates the ChangeInsightWidgetFilterSettings command for {@link IFilterOpDisableDateFilter} operation. * * Dispatching this command will result in change of Insight widget's date filter setting. The date filtering will * be disabled. * * @param ref - reference of the insight widget to modify * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function disableInsightWidgetDateFilter(ref: ObjRef, correlationId?: string): IChangeInsightWidgetFilterSettings; /** * Creates the ChangeKpiWidgetFilterSettings command for {@link IFilterOpDisableDateFilter} operation. * * Dispatching this command will result in change of KPI widget's date filter setting. The date filtering will * be disabled. * * @param ref - reference of the KPI widget to modify * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function disableKpiWidgetDateFilter(ref: ObjRef, correlationId?: string): IChangeKpiWidgetFilterSettings; /** * Creates the ChangeRichTextWidgetFilterSettings command for {@link IFilterOpDisableDateFilter} operation. * * Dispatching this command will result in change of Rich Text widget's date filter setting. The date filtering will * be disabled. * * @param ref - reference of the Rich Text widget to modify * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @alpha */ export declare function disableRichTextWidgetDateFilter(ref: ObjRef, correlationId?: string): IChangeRichTextWidgetFilterSettings; /** * Dispatches a command and returns a promise to wait for it to get resolved. * * @param dispatch - dashboard dispatch to use * @param command - command to trigger and wait for resolution of * @returns Promise of the command resolution * @alpha */ export declare function dispatchAndWaitFor(dispatch: DashboardDispatch, command: TCommand): Promise; /** * Capability saying the component can be dragged somewhere. * @internal */ export declare type DraggableComponent = { dragging: AttributeFilterDraggableComponent | DateFilterDraggableComponent | KpiDraggableComponent | InsightDraggableComponent | RichTextDraggableComponent | VisualizationSwitcherDraggableComponent | DashboardLayoutDraggableComponent | CustomDraggableComponent; }; /** * @internal */ export declare type DraggableContentItem = AttributeFilterDraggableItem | AttributeFilterPlaceholderDraggableItem | DateFilterDraggableItem | ParameterDraggableItem | MeasureValueFilterDraggableItem | InsightDraggableItem | InsightDraggableListItem | InsightPlaceholderDraggableItem | KpiDraggableItem | KpiPlaceholderDraggableItem | RichTextDraggableItem | RichTextDraggableListItem | VisualizationSwitcherDraggableItem | VisualizationSwitcherDraggableListItem | DashboardLayoutDraggableItem | DashboardLayoutDraggableListItem | CustomWidgetDraggableItem | CustomDraggableItem; /** * @internal */ export declare type DraggableContentItemType = "attributeFilter" | "dateFilter" | "parameter" | "measureValueFilter" | "attributeFilter-placeholder" | "insightListItem" | "insight" | "insight-placeholder" | "kpi" | "kpi-placeholder" | "richText" | "richTextListItem" | "visualizationSwitcher" | "visualizationSwitcherListItem" | "dashboardLayout" | "dashboardLayoutListItem" | "custom"; /** * @internal */ export declare function DraggableCreatePanelItem(props: IDraggableCreatePanelItemProps): JSX.Element; /** * @internal */ export declare type DraggableInternalItem = IHeightResizerDragItem | IWidthResizerDragItem; /** * @internal */ export declare type DraggableInternalItemType = "internal-width-resizer" | "internal-height-resizer"; /** * @internal */ export declare type DraggableItem = DraggableContentItem | DraggableInternalItem; /** * @internal */ export declare type DraggableItemComponentTypeMapping = { attributeFilter: AttributeFilterDraggableItem; dateFilter: DateFilterDraggableItem; measureValueFilter: MeasureValueFilterDraggableItem; parameter: ParameterDraggableItem; "attributeFilter-placeholder": AttributeFilterPlaceholderDraggableItem; insight: InsightDraggableItem; insightListItem: InsightDraggableListItem; "insight-placeholder": InsightPlaceholderDraggableItem; kpi: KpiDraggableItem; "kpi-placeholder": KpiPlaceholderDraggableItem; richText: RichTextDraggableItem; richTextListItem: RichTextDraggableListItem; visualizationSwitcher: VisualizationSwitcherDraggableItem; visualizationSwitcherListItem: VisualizationSwitcherDraggableListItem; dashboardLayout: DashboardLayoutDraggableItem; dashboardLayoutListItem: DashboardLayoutDraggableListItem; custom: CustomDraggableItem; }; /** * @internal */ export declare type DraggableItemInternalTypeMapping = { "internal-width-resizer": IWidthResizerDragItem; "internal-height-resizer": IHeightResizerDragItem; }; /** * @internal */ export declare type DraggableItemType = DraggableContentItemType | DraggableInternalItemType; /** * @internal */ export declare type DraggableItemTypeMapping = DraggableItemComponentTypeMapping & DraggableItemInternalTypeMapping; /** * @internal */ export declare type DraggableLayoutItem = InsightDraggableItem | KpiDraggableItem | RichTextDraggableItem | VisualizationSwitcherDraggableItem | DashboardLayoutDraggableItem | CustomWidgetDraggableItem; /** * Creates the {@link IDrill} command. * Dispatching this command will result into dispatching {@link IDashboardDrillResolved} event. * * This is general dashboard drill command with details about all possible more granular drill interactions that can follow. * Reason for this general drill command is that it may happen that multiple drill interactions are possible for one drill event. * * Example: some attribute on the insight has drill down set and also widget has drill to insight set. Then this command must be dispatched with both * {@link @gooddata/sdk-ui-ext#IDrillDownDefinition} and {@link @gooddata/sdk-backend-spi#IDrillToInsight} definitions. * * - This must be always the first command that occurs after the drill interaction and must be dispatched before more granular drill commands. * - Specific drill commands that can follow this general drill command are: {@link IDrillDown}, {@link IDrillToInsight}, {@link IDrillToDashboard}, * {@link IDrillToCustomUrl}, {@link IDrillToAttributeUrl}, {@link IDrillToLegacyDashboard} * * * @alpha * @param drillEvent - original drill event, that triggered this particular drill interaction. * @param drillContext - context in which the drill interaction was triggered (widget and insight details - if available). * @param correlationId - specify correlation id. It will be included in all events that will be emitted during the command processing. * @returns drill command */ export declare function drill(drillEvent: IDashboardDrillEvent, drillContext: IDashboardDrillContext, correlationId?: string): IDrill; /** * @internal */ export declare enum DRILL_TO_URL_PLACEHOLDER { DRILL_TO_URL_PLACEHOLDER_PROJECT_ID = "{project_id}", DRILL_TO_URL_PLACEHOLDER_WORKSPACE_ID = "{workspace_id}", DRILL_TO_URL_PLACEHOLDER_INSIGHT_ID = "{visualization_id}", DRILL_TO_URL_PLACEHOLDER_WIDGET_ID = "{widget_id}", DRILL_TO_URL_PLACEHOLDER_DASHBOARD_ID = "{dashboard_id}", DRILL_TO_URL_PLACEHOLDER_CLIENT_ID = "{client_id}", DRILL_TO_URL_PLACEHOLDER_DATA_PRODUCT_ID = "{data_product_id}" } /** * @internal */ export declare const drillActions: { setDrillableItems: ActionCreatorWithPayload< { items: ExplicitDrill[]; tabId: string; }, "drill/setDrillableItems">; crossFilterByWidget: ActionCreatorWithPayload< { item: ICrossFilteringItem; tabId: string; }, "drill/crossFilterByWidget">; resetCrossFiltering: ActionCreatorWithOptionalPayload; }; /** * @alpha */ export declare type DrillDialogExportDropdownComponentProvider = (insight: IInsight, widget: IInsightWidget) => CustomDrillDialogExportDropdownComponent; /** * Creates the {@link IDrillDown} command. * Dispatching this command will result into applying drill down definition to the provided insight (result of the drill down application * depends on the particular visualization type) and dispatching {@link IDashboardDrillDownResolved} event that will contain it. * * In the default dashboard implementation dispatching this command will also result into opening drill dialog with the insight * that has this particular drill down definition applied. * * @alpha * @param insight - insight to which the drill down should be applied. * @param drillDefinition - drill definition to apply. * @param drillEvent - original drill event, that triggered this particular drill interaction. * @param correlationId - specify correlation id. It will be included in all events that will be emitted during the command processing. * @returns drill down command */ export declare function drillDown(insight: IInsight, drillDefinition: IDrillDownDefinition, drillEvent: IDashboardDrillEvent, correlationId?: string): IDrillDown; /** * Create DrillTargetsAdded {@link IDrillTargetsAdded} event. * * @param ctx - * @param ref - Unique widget ref * @param availableDrillTargets - Available widget drill targets {@link @gooddata/sdk-ui#IAvailableDrillTargets} * @param correlationId - correlationId * @returns - DrillTargetsAdded command * * @alpha */ export declare function drillTargetsAdded(ctx: DashboardContext, ref: ObjRef, availableDrillTargets: IAvailableDrillTargets, correlationId?: string): IDrillTargetsAdded; /** * Creates the {@link IDrillToAttributeUrl} command. * Dispatching this command will result into resolving the target attribute url * and dispatching {@link IDashboardDrillToAttributeUrlResolved} event that will contain it. * * For more details, see: {@link https://help.gooddata.com/pages/viewpage.action?pageId=86794855} * * @alpha * @param drillDefinition - drill definition with the target attribute url to resolve. * @param drillEvent - original drill event, that triggered this particular drill interaction. * @param correlationId - specify correlation id. It will be included in all events that will be emitted during the command processing. * @returns drill to attribute url command * @alpha */ export declare function drillToAttributeUrl(drillDefinition: IDrillToAttributeUrl_2, drillEvent: IDashboardDrillEvent, correlationId?: string): IDrillToAttributeUrl; /** * Creates the {@link IDrillToCustomUrl} command. * Dispatching this command will result into resolving the target url * and dispatching {@link IDashboardDrillToCustomUrlResolved} event that will contain it. * * Custom url can contain various identifier or attribute title placeholders, see: * {@link https://help.gooddata.com/pages/viewpage.action?pageId=86794855} * * @alpha * @param drillDefinition - drill definition with the target url to resolve. * @param drillEvent - original drill event, that triggered this particular drill interaction. * @param correlationId - specify correlation id. It will be included in all events that will be emitted during the command processing. * @returns drill to custom url command * @alpha */ export declare function drillToCustomUrl(drillDefinition: IDrillToCustomUrl_2, drillEvent: IDashboardDrillEvent, correlationId?: string): IDrillToCustomUrl; /** * Creates the {@link IDrillToDashboard} command. * Dispatching this command will result into getting the drill intersection filters that can be applied to the target dashboard * and dispatching {@link IDashboardDrillToDashboardResolved} event that will contain them. * * @alpha * @param drillDefinition - drill definition with the target dashboard. * @param drillEvent - original drill event, that triggered this particular drill interaction. * @param correlationId - specify correlation id. It will be included in all events that will be emitted during the command processing. * @returns drill to dashboard command */ export declare function drillToDashboard(drillDefinition: IDrillToDashboard_2, drillEvent: IDashboardDrillEvent, correlationId?: string): IDrillToDashboard; /** * Creates the {@link IDrillToInsight} command. * Dispatching this command will result into applying the drill intersection filters to the target insight * and dispatching {@link IDashboardDrillToInsightResolved} event that will contain it. * * In the default dashboard implementation this command will also result into opening the drill dialog with the target insight * that has the drill intersection filters applied. * * @alpha * @param drillDefinition - drill definition with the target insight. * @param drillEvent - original drill event, that triggered this particular drill interaction. * @param correlationId - specify correlation id. It will be included in all events that will be emitted during the command processing. * @returns drill to insight command */ export declare function drillToInsight(drillDefinition: IDrillToInsight_2, drillEvent: IDashboardDrillEvent, correlationId?: string): IDrillToInsight; /** * Creates the {@link IDrillToLegacyDashboard} command. * Dispatching this command will result into dispatching {@link IDashboardDrillToLegacyDashboardResolved} event. * * Drill to legacy dashboard can be configured for Kpi widgets only. * * @alpha * @param drillDefinition - drill definition with the target dashboard. * @param drillEvent - original drill event, that triggered this particular drill interaction. * @param correlationId - specify correlation id. It will be included in all events that will be emitted during the command processing. * @returns drill to legacy dashboard command * @alpha */ export declare function drillToLegacyDashboard(drillDefinition: IDrillToLegacyDashboard_2, drillEvent: IDashboardDrillEvent, correlationId?: string): IDrillToLegacyDashboard; /** * Capability saying the component can receive draggable items. * @internal */ export declare type DropTarget = { dropping: { /** * Component shown when item is dragged onto component. */ DropTargetComponent: ComponentType; }; }; /** * The type of drop zone. * @internal */ export declare type DropZoneType = "prev" | "next"; /** * Creates the RemoveSectionItem configured to do eager remove of item. * * @remarks * Dispatching this command will result in removal * of the item from a section and if the section only contains that item then the whole section will be removed as well. * * You may optionally specify the stashIdentifier in order to stash the removed item for later resurrection. * * @param itemPath - path of section from which to remove the item * @param stashIdentifier - stash identifier to store the removed item under; if not specified the item will be removed * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @alpha */ export declare function eagerRemoveNestedLayoutSectionItem(itemPath: ILayoutItemPath, stashIdentifier?: StashedDashboardItemsId, correlationId?: string): IRemoveSectionItem; /** * Creates the RemoveSectionItem configured to do eager remove of item. * * @remarks * Dispatching this command will result in removal * of the item from a section and if the section only contains that item then the whole section will be removed as well. * * You may optionally specify the stashIdentifier in order to stash the removed item for later resurrection. * * This command operates only on the root layout. For nested layouts, use {@link eagerRemoveNestedLayoutSectionItem}. * * @param sectionIndex - index of section from which to remove the item * @param itemIndex - index of item to remove * @param stashIdentifier - stash identifier to store the removed item under; if not specified the item will be removed * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta * * TODO LX-648: Consider removing this command variant and leave only a nested variant */ export declare function eagerRemoveSectionItem(sectionIndex: number, itemIndex: number, stashIdentifier?: StashedDashboardItemsId, correlationId?: string): IRemoveSectionItem; /** * Creates the RemoveSectionItemByWidgetRef configured to do eager remove of item. * * @remarks * Dispatching this command will result in removal * of the item from a section and if the section only contains that item then the whole section will be removed as well. * * You may optionally specify the stashIdentifier in order to stash the removed item for later resurrection. * * @param widgetRef - widget reference of the item to remove; * @param stashIdentifier - stash identifier to store the removed item under; if not specified the item will be removed * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function eagerRemoveSectionItemByWidgetRef(widgetRef: ObjRef, stashIdentifier?: StashedDashboardItemsId, correlationId?: string): IRemoveSectionItemByWidgetRef; /** * @alpha */ export declare function EditableTitle({ title, onTitleChanged }: ITitleProps): JSX.Element; /** * @internal */ export declare function EditButton(props: IEditButtonProps): ReactElement; /** * Creates the ChangeInsightWidgetFilterSettings command for {@link IFilterOpEnableDateFilter} operation. * * Dispatching this command will result in change of Insight widget's date filter setting. The date filtering will * be enabled and the provided date data set will be used for date-filtering widget's insight. * * @param ref - reference of the insight widget to modify * @param dateDataset - date data set to use for filtering the insight, if "default" is provided, the default date dataset will be resolved and used * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function enableInsightWidgetDateFilter(ref: ObjRef, dateDataset: ObjRef | "default", correlationId?: string): IChangeInsightWidgetFilterSettings; /** * Creates the ChangeKpiWidgetFilterSettings command for {@link IFilterOpEnableDateFilter} operation. * * Dispatching this command will result in change of KPI widget's date filter setting. The date filtering will * be enabled and the provided date data set will be used for date-filtering widget's KPI. * * @param ref - reference of the KPI widget to modify * @param dateDataset - date data set to use for filtering the insight, if "default" is provided, the default date dataset will be resolved and used * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function enableKpiWidgetDateFilter(ref: ObjRef, dateDataset: ObjRef | "default", correlationId?: string): IChangeKpiWidgetFilterSettings; /** * Creates the ChangeRichTextWidgetFilterSettings command for {@link IFilterOpEnableDateFilter} operation. * * Dispatching this command will result in change of RichText widget's date filter setting. The date filtering will * be enabled and the provided date data set will be used for date-filtering widget's RichText. * * @param ref - reference of the RichText widget to modify * @param dateDataset - date data set to use for filtering the RichText, if "default" is provided, the default date dataset will be resolved and used * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function enableRichTextWidgetDateFilter(ref: ObjRef, dateDataset: ObjRef | "default", correlationId?: string): IChangeRichTextWidgetFilterSettings; /** * @internal */ export declare function existBlacklistHierarchyPredicate(reference: IDrillDownReference, attributeHierarchy: ICatalogAttributeHierarchy | ICatalogDateAttributeHierarchy, attributeIdentifier?: ObjRef): boolean; /** * @internal */ export declare const EXPORT_VIS_MINIMAL_HEIGHT = 90; /** * @internal */ export declare const EXPORT_VIS_MINIMAL_WIDTH = 200; /** * @internal */ export declare const EXPORT_VIS_WARNING_MINIMAL_FONT_SIZE = 0.8; /** * Creates the {@link IExportDashboardToExcel} command. Dispatching this command will result in a request to export * the dashboard to a EXCEL file. If successful, an instance of {@link IDashboardExportToExcelResolved} will be emitted * with the URL of the resulting file. * * @param mergeHeaders - if true, the headers will be merged into a single row * @param exportInfo - if true, the export info will be included in the EXCEL file * @param widgetIds - if provided, the widgets with the given ids will be exported * @param fileName - if provided, the file will be saved with the given name * @param format - * @param pdfConfiguration - * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function exportDashboardToExcel(mergeHeaders: boolean, exportInfo: boolean, widgetIds?: string[], fileName?: string, format?: "XLSX" | "PDF", pdfConfiguration?: PdfConfiguration, correlationId?: string): IExportDashboardToExcel; /** * Creates the {@link IExportDashboardToPdf} command. Dispatching this command will result in a request to export * the dashboard to a PDF file. If successful, an instance of {@link IDashboardExportToPdfResolved} will be emitted * with the URL of the resulting file. * * @param payload - payload to override the dashboard export options. If not provided, the dashboard will be exported with the current filter context and options. * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function exportDashboardToPdf(correlationId?: string): IExportDashboardToPdf; /** * @beta */ export declare function exportDashboardToPdf(payload?: IExportDashboardToPdfPayload, correlationId?: string): IExportDashboardToPdf; /** * Creates the {@link IExportDashboardToPdfPresentation} command. Dispatching this command will result in a request to export * the dashboard to a PDF presentation file. If successful, an instance of {@link IDashboardExportToPdfPresentationResolved} will be emitted * with the URL of the resulting file. * * @param payload - payload to override the dashboard export options. If not provided, the dashboard will be exported with the current filter context and options. * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function exportDashboardToPdfPresentation(payload?: IExportDashboardToPresentationPayload, correlationId?: string): IExportDashboardToPdfPresentation; /** * Creates the {@link IExportDashboardToPptPresentation} command. Dispatching this command will result in a request to export * the dashboard to a Ppt presentation file. If successful, an instance of {@link IDashboardExportToPptPresentationResolved} will be emitted * with the URL of the resulting file. * * @param payload - payload to override the dashboard export options. If not provided, the dashboard will be exported with the current filter context and options. * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function exportDashboardToPptPresentation(payload?: IExportDashboardToPresentationPayload, correlationId?: string): IExportDashboardToPptPresentation; /** * Export element type. * * @alpha */ export declare type ExportElementType = "meta" | "dashboard" | "section" | "section-info" | "section-title" | "section-description" | "widget" | "widget-content" | "widget-title" | "widget-description"; /** * Creates the ExportImageInsightWidget command. Dispatching this command will result in exporting of the widget to an image. * * @param ref - reference to the Insight to export * @param filename - filename of the exported file * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @alpha */ export declare function exportImageInsightWidget(ref: ObjRef, filename: string, correlationId?: string): IExportImageInsightWidget; /** * Creates the ExportInsightWidget command. Dispatching this command will result in exporting of the widget to a CSV of XLSX file. * * @param ref - reference to the Insight widget to refresh * @param config - configuration of the export operation * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function exportInsightWidget(ref: ObjRef, config: IExportConfig, correlationId?: string): IExportInsightWidget; /** * @alpha */ export declare type ExportLayoutCustomizationFn = (layout: IDashboardLayout, customizer: IExportLayoutCustomizer) => void; /** * Export meta type. * * @alpha */ export declare type ExportMetaType = "dashboard-id" | "dashboard-title" | "dashboard-description" | "dashboard-tags" | "dashboard-tag" | "dashboard-filters" | "dashboard-filter" | "dashboard-filter-name" | "dashboard-filter-value" | "workspace-title" | "user-full-name" | "logo" | "cover-image" | "theme-palette"; /** * Creates the ExportRawInsightWidget command. Dispatching this command will result in exporting of the widget to a CSV. * * @param ref - * @param widget - * @param insight - insight to export * @param filename - filename of the exported file * @param options - export options * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @alpha */ export declare function exportRawInsightWidget(ref: ObjRef, widget: IInsightWidget, insight: IInsight, filename: string, correlationId?: string): IExportRawInsightWidget; /** * @alpha */ export declare function exportRawInsightWidget(ref: ObjRef, widget: IInsightWidget, insight: IInsight, filename: string, options: IExportRawInsightWidgetOptions | undefined, correlationId?: string): IExportRawInsightWidget; /** * Creates the ExportSlidesInsightWidget command. Dispatching this command will result in exporting of the widget to a slides type (pdf, pptx). * * @param ref - reference to the Insight to export * @param filename - filename of the exported file * @param exportType - type of export to perform * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * @param templateId - identifier of the export template to use * * @alpha */ export declare function exportSlidesInsightWidget(ref: ObjRef, filename: string, exportType: "pdf" | "pptx", correlationId?: string, templateId?: string): IExportSlidesInsightWidget; /** * @alpha */ export declare function ExportThemeProvider({ children }: IExportThemeProviderProps): JSX.Element; /** * Specialization of the IDashboardLayoutItem which also includes the extended dashboard widgets - KPI and * Insight placeholders. * * @public */ export declare type ExtendedDashboardItem = IDashboardLayoutItem; /** * Utility type to get the widget type from a given {@link ExtendedDashboardItem} type. * @public */ export declare type ExtendedDashboardItemType = T extends ExtendedDashboardItem ? S : never; /** * Utility type to get the widget type from a given {@link ExtendedDashboardItem} array. * @public */ export declare type ExtendedDashboardItemTypes>> = { [K in keyof T]: ExtendedDashboardItemType; }[number]; /** * Dashboard layout section that can contain extended set of items - including KPI and Insight placeholders. * * @public */ export declare type ExtendedDashboardLayoutSection = IDashboardLayoutSection; /** * Extension of the default {@link @gooddata/sdk-backend-spi#IDashboardLayoutWidget} type to also include view-only * custom widget types. * * @public */ export declare type ExtendedDashboardLayoutWidget = IDashboardLayout & IBaseWidget & IDashboardObjectIdentity & { type: "IDashboardLayout"; }; /** * Extension of the default {@link @gooddata/sdk-backend-spi#IWidget} type to also include view-only * custom widget types. * * @public */ export declare type ExtendedDashboardWidget = IWidget | ICustomWidget | ExtendedDashboardLayoutWidget; /** * Dumps debug information about a widget into a string. * * @param widget - widget to dump info from * @internal */ export declare function extendedWidgetDebugStr(widget: ExtendedDashboardWidget): string; /** * Subset of widget types which support filtering. * * @public */ export declare type FilterableDashboardWidget = IWidget | ICustomWidget; /** * @internal */ export declare function FilterBar(props: IFilterBarProps): ReactElement; /** * @internal */ export declare type FilterBarAttributeFilterIndexed = { filter: DashboardAttributeFilterItem; filterIndex: number; workingFilter?: DashboardAttributeFilterItem; }; /** * @public */ export declare type FilterBarComponentProvider = (props: IFilterBarProps) => CustomFilterBarComponent; /** * @internal */ export declare type FilterBarDateFilterIndexed = { filter: IDashboardDateFilter; filterIndex: number; workingFilter?: IDashboardDateFilter; }; /** * @internal */ export declare type FilterBarFilterPlaceholder = { type: "filterPlaceholder"; filterIndex: number; displayForm?: ObjRef; }; /** * @internal */ export declare type FilterBarItem = FilterBarFilterPlaceholder | FilterBarAttributeFilterIndexed | FilterBarDateFilterIndexed | FilterBarMeasureValueFilterIndexed | IFilterBarFilterGroupItem; /** * @internal */ export declare type FilterBarMeasureValueFilterIndexed = { filter: IDashboardMeasureValueFilter; filterIndex: number; }; /** * Mode of rendering of the FilterBar. * * @remarks * Its value can be: * - default - the filter bar will be rendered as if no rendering mode was set at all. * - hidden - the filter bar is hidden. Note that the filters set on the dashboard are still active, just not visible. * * @public */ export declare type FilterBarRenderingMode = "default" | "hidden"; /** * Gets {@link IDashboardFilter} items for filters specified as {@link @gooddata/sdk-backend-spi#FilterContextItem} instances. * * @param filterContextItems - filter context items to get filters for * @param dateDataSet - date data set to define {@link @gooddata/sdk-model#IDateFilter} * @public */ export declare function filterContextItemsToDashboardFiltersByDateDataSet(filterContextItems: FilterContextItem[], dateDataSet: ObjRef): IDashboardFilter[]; /** * Gets {@link IDashboardFilter} items for filters specified as {@link @gooddata/sdk-backend-spi#FilterContextItem} instances. * * @param filterContextItems - filter context items to get filters for * @param widget - widget to use to get dateDataSet for date filters * @public */ export declare function filterContextItemsToDashboardFiltersByRichTextWidget(filterContextItems: FilterContextItem[], widget?: Partial): IDashboardFilter[]; /** * Gets {@link IDashboardFilter} items for filters specified as {@link @gooddata/sdk-backend-spi#FilterContextItem} instances. * * @param filterContextItems - filter context items to get filters for * @param widget - widget to use to get dateDataSet for date filters * @public */ export declare function filterContextItemsToDashboardFiltersByWidget(filterContextItems: FilterContextItem[], widget?: Partial): IDashboardFilter[]; /** * @alpha */ export declare function filterContextSelectionReset(correlationId?: string): DashboardEventBody; /** * @public */ export declare type FilterContextState = { /** * Array of local IDs for filters that have invalid selections. * This is used to track and indicate filters that have selection problems. * @alpha */ filtersWithInvalidSelection: string[]; /** * Filter context definition contains the actual filters to use. They are applied and used to compute insights data. * Filter context definition is present. * @beta */ filterContextDefinition?: IFilterContextDefinition; /** * Contains staged filters state which are not applied by the user yet. * They are used to show selected values in filters and when user requests, they are applied to the filterContextDefinition (above). * * @remarks * This working filter context contains only changed filters and their fields. * before using this working, this state is merged with filterContextDefinition. * * This way we do not need to synchronize other fields, which makes it easier to maintain. * * This state is used when DashboardFiltersApplyMode is ALL_AT_ONCE. * But can be used programmatically when embedding the dashboard too. * * @alpha */ workingFilterContextDefinition?: IWorkingFilterContextDefinition; /** * Filter context definition contains the original dashboard filters stored on the backend. * @beta */ originalFilterContextDefinition?: IFilterContextDefinition; /** * Filter context identity is available for persisted filter contexts. * * @remarks * This property may be undefined in two circumstances: * * - a new, yet unsaved dashboard; the filter context is saved together with the dashboard and after the * save the identity will be known and added * * - export of an existing, saved dashboard; during the export the dashboard receives a temporary * filter context that represents values of filters at the time the export was initiated - which may * be different from what is saved in the filter context itself. that temporary context is not * persistent and lives only for that particular export operation. * * @beta */ filterContextIdentity?: IDashboardObjectIdentity; /** * Display form metadata objects for all attribute filters in the `filterContextDefinition` * @beta */ attributeFilterDisplayForms?: IAttributeDisplayFormMetadataObject[]; /** * Attribute metadata objects with referenced objects for all attribute filters in the `filterContextDefinition` * @beta */ attributesWithReferences?: IAttributeWithReferences[]; /** * Default filter overrides for the dashboard, provided via `overrideDefaultFilters` dashboard config, * after sanitization and merging with the original filter context definition. * @beta */ defaultFilterOverrides?: FilterContextItem[]; }; /** * Gets {@link IDashboardFilter} items for filters specified in given filterContext in relation to the * given dateDataSet. * * @param filterContext - filter context to get filters for * @param dateDataSet - widget to use to get dateDataSet for date filters * @public */ export declare function filterContextToDashboardFiltersByDateDataSet(filterContext: IFilterContextDefinition | IFilterContext | ITempFilterContext | undefined, dateDataSet: ObjRef): IDashboardFilter[]; /** * Gets {@link IDashboardFilter} items for filters specified in given filterContext in relation to the given widget. * * @param filterContext - filter context to get filters for * @param widget - widget to use to get dateDataSet for date filters * @public */ export declare function filterContextToDashboardFiltersByWidget(filterContext: IFilterContextDefinition | IFilterContext | ITempFilterContext | undefined, widget: IWidgetDefinition): IDashboardFilter[]; /** * @alpha */ export declare function filterContextWorkingSelectionApplied(ctx: DashboardContext, correlationId?: string): IDashboardFilterContextWorkingSelectionApplied; /** * @public */ export declare type FilterGroupComponentProvider = (filterGroup: IDashboardFilterGroup) => CustomDashboardFilterGroupComponent; /** * @beta */ export declare type FilterOperations = "enableDateFilter" | "disableDateFilter" | "replaceAttributeIgnores" | "ignoreAttributeFilter" | "unignoreAttributeFilter" | "ignoreDateFilter" | "unignoreDateFilter" | "ignoreMeasureValueFilter" | "unignoreMeasureValueFilter" | "replace"; /** * Contains information about dashboard filters. * * @alpha */ export declare type FiltersInfo = { filters: IDashboardFilter[]; resolvedFilterValues?: IResolvedFilterValues; }; /** * @beta */ export declare type FilterViewDialogMode = "list" | "add"; /** * @public */ export declare type FluidLayoutCustomizationFn = (layout: IDashboardLayout, customizer: IFluidLayoutCustomizer) => void; /** * @beta */ export declare function formatKeyDriverAnalysisDateRange(range: DeepReadonly<[IKdaDataPoint, IKdaDataPoint]> | undefined, splitter: string): string; /** * Generates a stable local identifier for a dashboard measure value filter from the target * metric's `ObjRef` and a positional index. Used both by the add-MVF reducer (as a fallback * when callers omit `localIdentifier`) and by the postMessage embedding handler so the caller * can pre-compute the id and chain follow-up commands in the same dispatch batch. * * @alpha */ export declare const generateMeasureValueFilterLocalIdentifier: (ref: ObjRef, index: number) => string; /** * @internal */ export declare function getAttributeFilters(filters: FilterContextItem[]): DashboardAttributeFilterItem[]; /** * @internal * Gets author from capabilities and user * * @param capabilities - backend capabilities * @param user - user */ export declare function getAuthor(capabilities: IBackendCapabilities, user: IUser): string | undefined; /** * @internal */ export declare function getDefaultInsightEditMenuItems(widget: IInsightWidget, { intl, dispatch, eventDispatch, includeInteractions, includeConfigurations, useWidgetDeleteDialog }: InsightMenuItemDependencies): IInsightMenuItem[]; /** * @internal */ export declare function getDefaultInsightMenuItems(intl: IntlShape, config: IUseInsightMenuConfig, execution?: IExecutionResultEnvelope): IInsightMenuItem[]; /** * @internal */ export declare function getDefaultRichTextEditMode(widget: IRichTextWidget, { intl, dispatch, enableRichTextWidgetFilterConfiguration }: RichTextMenuItemDependencies): IRichTextMenuItem[]; /** * @internal */ export declare function getDrillDownTitle(drillDefinition: IDrillDownDefinition, drillEvent: IDrillEvent, drillDownIntersectionIgnoredAttributes?: IDrillDownIntersectionIgnoredAttributes[], drillTargetDisplayForm?: IAttributeDisplayFormMetadataObject): string | null; /** * @internal */ export declare function getFilterIdentifier(filter: FilterContextItem): string; /** * @internal */ export declare function getKdaKeyDriverCombinations(drillDefinition: IKeyDriveAnalysis, drillEvent: IDrillEvent): IDashboardKeyDriverCombinationItem[]; /** * @internal */ export declare function getKeyDriverCombinationItemTitle(intl: IntlShape, item: IDashboardKeyDriverCombinationItem): string; /** * Safely gets the title from an ExtendedDashboardWidget. * * @param widget - The widget to get title from * @param fallbackTitle - Title to return if widget doesn't have a title property * @returns The widget title if available, otherwise the fallback title * @public */ export declare function getWidgetTitle(widget?: ExtendedDashboardWidget, fallbackTitle?: string): string; /** * Data attributes for export mode to be added to the header. * * @alpha */ export declare type HeaderExportData = { info?: CommonExportDataAttributes; title?: CommonExportDataAttributes; description?: DescriptionExportData; }; /** * @internal */ export declare class HeadlessDashboard { private readonly reduxedStore; protected monitoredActions: Record; protected capturedActions: Array>; protected capturedEvents: Array; constructor(ctx: DashboardContext, config?: IHeadlessDashboardConfig); protected getOrCreateMonitoredAction: (actionType: string) => IMonitoredAction; private onActionCaptured; private eventHandler; dispatch(action: DashboardCommands | PayloadAction): void; /** * Convenience function that combines both {@link HeadlessDashboard.dispatch} and {@link HeadlessDashboard.waitFor}. * * @param action - action (typically a command) to dispatch * @param actionType - type of action (typically an event type) to wait for * @param timeout - timeout after which the wait fails, default is 1000 */ dispatchAndWaitFor(action: DashboardCommands | PayloadAction, actionType: DashboardEventType | DashboardCommandType | string, timeout?: number): Promise; private commandFailedRejectsWaitFor; private commandRejectedEndsWaitFor; /** * Starts a dashboard query. * * @param action - query action */ query(action: IDashboardQuery): Promise; /** * Wait for action to occur. The wait is bounded by a timeout that is 1s by default. * * @param actionType - action type to wait for * @param timeout - timeout after which the wait fails, default is 1000 */ waitFor(actionType: DashboardEventType | DashboardCommandType | string, timeout?: number): Promise; /** * select data from the state */ select any>(selectorFactory: TSelectorFactory): ReturnType; /** * Returns dashboard state. */ protected state(): DashboardState; } /** * This implementation of button bar keeps it out of sight and effectively disables it. * * @alpha */ export declare function HiddenButtonBar(): ReactElement | null; /** * This implementation of dashboard attribute filter keeps the filter hidden out of sight. The attribute filter itself * will still be in effect. * * @alpha */ export declare function HiddenDashboardAttributeFilter(): ReactElement | null; /** * This implementation of dashboard date filter keeps the filter hidden out of sight. The attribute filter itself * will still be in effect. * * @alpha */ export declare function HiddenDashboardDateFilter(): ReactElement | null; /** * This implementation of Filter Bar will ensure that all the filter controls are out of sight. All the dashboard * filtering is still in place however user cannot see or interact with the filters. * * @alpha */ export declare function HiddenFilterBar(_props: IFilterBarProps): ReactElement | null; /** * This implementation of menu button keeps it out of sight and effectively disables it. * * @alpha */ export declare function HiddenMenuButton(): ReactElement | null; /** * This implementation of share button keeps it out of sight and effectively disables it. * * @alpha */ export declare function HiddenShareButton(): ReactElement | null; /** * This implementation of title keeps it out of sight and effectively disables it. * * @alpha */ export declare function HiddenTitle(): ReactElement | null; /** * This implementation of toolbar keeps it out of sight. * * @internal */ export declare function HiddenToolbar(_props: IToolbarProps): null; /** * This implementation of top bar keeps it out of sight. * * @alpha */ export declare function HiddenTopBar(_props: ITopBarProps): ReactElement | null; /** * @alpha */ export declare interface IAccessibleDashboardsState extends EntityState { isLoaded: boolean; } /** * @beta */ export declare interface IAddAttributeFilter extends IDashboardCommand { readonly type: "GDC.DASH/CMD.FILTER_CONTEXT.ATTRIBUTE_FILTER.ADD"; readonly payload: AddAttributeFilterPayload; } /** * @internal */ export declare interface IAddAttributeFilterButtonProps { id?: string; className: string; isOpen: boolean; title?: string; buttonRef?: MutableRefObject; onClick?: () => void; } /** * @internal */ export declare interface IAddAttributeFilterDisplayFormPayload { readonly displayForm: IAttributeDisplayFormMetadataObject; /** * Optional tab local identifier to target a specific tab. * If not provided, the active tab will be used. */ readonly tabLocalIdentifier?: string; } /** * @internal */ export declare interface IAddAttributeFilterPayload { readonly displayForm: ObjRef; readonly index: number; readonly parentFilters?: ReadonlyArray; readonly initialSelection?: IAttributeElements; readonly initialIsNegativeSelection?: boolean; readonly selectionMode?: DashboardAttributeFilterSelectionMode; readonly localIdentifier?: string; readonly title?: string; } /** * @internal */ export declare interface IAddAttributeFilterPlaceholderProps { disabled?: boolean; } /** * @alpha */ export declare interface IAddDateFilter extends IDashboardCommand { readonly type: "GDC.DASH/CMD.FILTER_CONTEXT.DATE_FILTER.ADD"; readonly payload: IAddDateFilterPayload; } /** * Payload of the {@link IAddDateFilter} command. * * @alpha */ export declare interface IAddDateFilterPayload { readonly index: number; readonly dateDataset: ObjRef; } /** * @alpha */ export declare interface IAddDrillDownForInsightWidget extends IDashboardCommand { readonly type: "GDC.DASH/CMD.INSIGHT_WIDGET.ADD_DRILL_DOWN"; readonly payload: IAddDrillDownForInsightWidgetPayload; } /** * Payload of the {@link IAddDrillDownForInsightWidget} command. * @alpha */ export declare interface IAddDrillDownForInsightWidgetPayload { /** * Reference to Insight Widget whose drill items should be added. */ readonly ref: ObjRef; /** * Specify drill localIdentifier and its hierarchy should be added. */ readonly attributeIdentifier: ObjRef; /** * Specify drill down hierarchy localIdentifier that should be added. */ readonly drillDownIdentifier: string; /** * Specify drill down hierarchy reference that should be added. */ readonly drillDownAttributeHierarchyRef: ObjRef; /** * Specify local identifiers of attributes that should be ignored in drill intersection. */ readonly intersectionIgnoredAttributes: string[]; } /** * Add widget drill targets * * @alpha */ export declare interface IAddDrillTargets extends IDashboardCommand { readonly type: "GDC.DASH/CMD.DRILL_TARGETS.ADD"; readonly payload: IAddDrillTargetsPayload; } /** * Payload of the {@link IAddDrillTargets} command. * @alpha */ export declare interface IAddDrillTargetsPayload { readonly ref: ObjRef; readonly availableDrillTargets: IAvailableDrillTargets; } /** * @beta */ export declare interface IAddLayoutSection extends IDashboardCommand { readonly type: "GDC.DASH/CMD.FLUID_LAYOUT.ADD_SECTION"; readonly payload: IAddLayoutSectionPayload; } /** * Payload of the {@link IAddLayoutSection} command. * @beta */ export declare interface IAddLayoutSectionPayload { /** * Index where to place the new section * * @remarks * Index is zero-based and for convenience index -1 means place new section at the end. 0 means place new * section at the beginning. Both 0 and -1 and can be used when inserting the first section into and empty layout. * * {@link RelativeIndex} support will be removed in the next major SDK version. Use {@link ILayoutSectionPath} instead. * * TODO LX-648: Remove RelativeIndex type in the next major version. */ readonly index: RelativeIndex | ILayoutSectionPath; /** * Specify the section header. */ readonly initialHeader?: IDashboardLayoutSectionHeader; /** * Specify one or more items to include in the newly created section. */ readonly initialItems?: DashboardItemDefinition[]; /** * Specify whether dashboard should auto-resolve date dataset to use for date filtering of KPI * and insight widgets. * * @remarks * This is by default disabled. Meaning date filtering will be enabled only for those KPI or Insight widgets * that already specify dateDataset. Those that have dateDataset `undefined` will not be filtered by dashboard's * date filter. * * When you turn on this option, then the dashboard will automatically resolve date dataset for those * KPI and Insight widgets that have it `undefined`. */ readonly autoResolveDateFilterDataset?: boolean; } /** * Command for adding a new dashboard measure value filter. * * @alpha */ export declare interface IAddMeasureValueFilter extends IDashboardCommand { readonly type: "GDC.DASH/CMD.FILTER_CONTEXT.MEASURE_VALUE_FILTER.ADD"; readonly payload: IAddMeasureValueFilterPayload; } /** * Payload of the {@link IAddMeasureValueFilter} command. * * @alpha */ export declare interface IAddMeasureValueFilterPayload { readonly index: number; readonly measure: ObjRef; readonly localIdentifier?: string; readonly title?: string; readonly mode?: DashboardAttributeFilterConfigMode; } /** * Add a parameter to the active tab. Initial `runtimeOverride` is `parameter.value` * (when pinned) otherwise the workspace default supplied by the caller. * * @alpha */ export declare interface IAddParameterPayload { parameter: IDashboardParameter; workspaceDefault: ParameterValue; } /** * @beta */ export declare interface IAddSectionItems extends IDashboardCommand { readonly type: "GDC.DASH/CMD.FLUID_LAYOUT.ADD_ITEMS"; readonly payload: IAddSectionItemsPayload; } /** * Payload of the {@link IAddSectionItems} command. * @beta */ export declare interface IAddSectionItemsPayload { /** * Section to which the item should be added. * * @remarks * Index is zero-based. * * {@link IAddSectionItemsPayload.sectionIndex} support will be removed in the next major SDK version. Use {@link IAddSectionItemsPayload.itemPath} instead. * * TODO LX-648: Remove sectionIndex in the next major version. */ readonly sectionIndex: number; /** * Index within section items where the item should be inserted. * * @remarks * Index is zero-based. For convenience, you may specify -1 to append the new item. * * {@link IAddSectionItemsPayload.itemIndex} support will be removed in the next major SDK version. Use {@link IAddSectionItemsPayload.itemPath} instead. * * TODO LX-648: Remove itemIndex in the next major version. */ readonly itemIndex: RelativeIndex; /** * Path to which the item should be added. * * @remarks * Index is zero-based. * * TODO LX-648: make the prop required */ readonly itemPath?: ILayoutItemPath; /** * Items to add. This item may be a placeholder for KPI or insight, an actual dashboard widget or a previously * stashed dashboard item. * * @remarks * Note: if you use the stashed items identifier, the items will be moved from the stash - you cannot use * the stash identifier again. */ readonly items: DashboardItemDefinition[]; /** * Specify whether dashboard should auto-resolve date dataset to use for date filtering of KPI * and insight widgets. * * @remarks * This is by default disabled. Meaning date filtering will be enabled only for those KPI or Insight widgets * that already specify dateDataset. Those that have dateDataset `undefined` will not be filtered by dashboard's * date filter. * * When you turn on this option, then the dashboard will automatically resolve date dataset for those * KPI and Insight widgets that have it `undefined`. */ readonly autoResolveDateFilterDataset?: boolean; } /** * @beta */ export declare interface IAddTextAttributeFilter extends IDashboardCommand { readonly type: "GDC.DASH/CMD.FILTER_CONTEXT.TEXT_ATTRIBUTE_FILTER.ADD"; readonly payload: IAddTextAttributeFilterPayload; } /** * Payload of the {@link IAddTextAttributeFilter} command. * @beta */ export declare interface IAddTextAttributeFilterPayload { /** * The text attribute filter to add (arbitrary or match). */ readonly filter: DashboardTextAttributeFilter; /** * Index among the attribute filters at which the new filter should be placed. * Index of -1 adds the filter at the end. */ readonly index: number; /** * Specify the visibility mode of the attribute filter. */ readonly mode?: DashboardAttributeFilterConfigMode; } /** * @internal */ export declare interface IAddTextAttributeFilterReducerPayload { readonly filter: DashboardTextAttributeFilter; readonly index: number; } /** * @beta */ export declare interface IAddVisualizationToVisualizationSwitcherWidgetContent extends IDashboardCommand { readonly type: "GDC.DASH/CMD.VISUALIZATION_SWITCHER_WIDGET.ADD_VISUALIZATION"; readonly payload: IAddVisualizationToVisualizationSwitcherWidgetContentPayload; } /** * Payload of the {@link IAddVisualizationToVisualizationSwitcherWidgetContent} command. * @beta */ export declare interface IAddVisualizationToVisualizationSwitcherWidgetContentPayload { /** * Visualization switcher widget reference whose content to change. */ readonly ref: ObjRef; /** * Visualization to add onto switcher widget. */ readonly visualization: IInsightWidget; /** * Insight that is added. */ readonly insight: IInsight; /** * Size info of the added visualization. */ readonly sizeInfo: IVisualizationSizeInfo; } /** * @internal */ export declare interface IAlertDialogContext { /** * Widget to create/edit alert for. */ widgetRef?: ObjRef; /** * Alert to edit. */ alert?: IAutomationMetadataObject; } /** * @alpha */ export declare interface IAlertingDialogProps { /** * In case, we are not creating new alert, but editing existing one, this is the active alert to be edited. */ alertToEdit?: IAutomationMetadataObject; /** * Users in workspace */ users: IWorkspaceUser[]; /** * Error occurred while loading users */ usersError?: GoodDataSdkError; /** * Notification channels in organization */ notificationChannels: INotificationChannelIdentifier[] | INotificationChannelMetadataObject[]; /** * Widget to be used for alert. * * Note: this is available only when alerting for widget, not dashboard. * Typed as IWidget (not ExtendedDashboardWidget) because the dialog only * supports insight widgets; custom widgets and nested layouts are not valid * alert targets and were silently discarded at the connector boundary anyway. */ widget?: IWidget; /** * Insight to be used for alert. * * Note: this is available only when alerting for widget, not dashboard. */ insight?: IInsight; /** * Is alert dialog loading initial data, before it can be rendered? */ isLoading?: boolean; /** * Callback to be called, when user closes the alert dialog. */ onCancel?: () => void; /** * Callback to be called, when error occurs. */ onError?: (error: GoodDataSdkError) => void; /** * Callback to be called, when alerting finishes successfully. */ onSuccess?: (alertDefinition: IAutomationMetadataObject) => void; /** * Callback to be called, when error occurs. */ onSaveError?: (error: GoodDataSdkError) => void; /** * Callback to be called, when alerting finishes successfully. */ onSaveSuccess?: (alert: IAutomationMetadataObject) => void; /** * Callback to be called, when alert is deleted. */ onDeleteSuccess?: (alert: IAutomationMetadataObject) => void; /** * Callback to be called, when alert fails to delete. */ onDeleteError?: (error: GoodDataSdkError) => void; } /** * @alpha */ export declare interface IAlertingManagementDialogProps { /** * Is loading alert data? */ isLoadingAlertingData: boolean; /** * Error occurred while loading alert data? */ alertDataError?: GoodDataSdkError; /** * Notification channels in organization */ notificationChannels: INotificationChannelIdentifier[] | INotificationChannelMetadataObject[]; /** * Automations in workspace */ automations: IAutomationMetadataObject[]; /** * Callback to be called, when user adds new alert item. */ onAdd?: () => void; /** * Callback to be called, when user clicks alert item for editing. */ onEdit?: (alert: IAutomationMetadataObject) => void; /** * Callback to be called, when user closes the alert management dialog. */ onClose?: () => void; /** * Callback to be called, when alert is deleted. * @param alert - alert that was deleted */ onDeleteSuccess?: (alert: IAutomationMetadataObject) => void; /** * Callback to be called, when alert fails to delete. */ onDeleteError?: (error: GoodDataSdkError) => void; /** * Callback to be called, when alert is paused. * @param alert - alert that was paused * @param pause - true if alert was paused, false if it was resumed */ onPauseSuccess: (alert: IAutomationMetadataObject, pause: boolean) => void; /** * Callback to be called, when alert fails to pause. * @param error - error that occurred * @param pause - true if alert was paused, false if it was resumed */ onPauseError: (error: GoodDataSdkError, pause: boolean) => void; } /** * Command for applying all working filters staged for application. * Usually used with setting dashboardApplyFiltersMode: ALL_AT_ONCE * * @remarks * See {@link applyFilterContextWorkingSelection} for a factory function that will help you create this command. * * @alpha */ export declare interface IApplyFilterContextWorkingSelection extends IDashboardCommand { readonly type: "GDC.DASH/CMD.FILTER_CONTEXT.APPLY_WORKING_SELECTION"; } /** * Command for application of a saved filter view. * * @remarks * See {@link applyFilterView} for a factory function that will help you create this command. * * @alpha */ export declare interface IApplyFilterView extends IDashboardCommand { readonly type: "GDC.DASH/CMD.FILTER_CONTEXT.FILTER_VIEW.APPLY"; readonly payload: IApplyFilterViewPayload; } /** * Payload of the {@link IApplyFilterView} command. * @alpha */ export declare interface IApplyFilterViewPayload { readonly ref: ObjRef; } /** * @internal */ export declare interface IApplyWorkingSelectionPayload { readonly enableImmediateAttributeFilterDisplayAsLabelMigration?: boolean; } /** * @alpha */ export declare interface IAttributeFilterConfigsState { /** * Dashboard-level overrides of the workspace-level attribute filter configs. */ attributeFilterConfigs?: IDashboardAttributeFilterConfig[]; } /** * @internal */ export declare type IAttributeFilterDraggingComponentProps = { itemType: "attributeFilter"; item: AttributeFilterDraggableItem; }; /** * Set of functions you can use to customize how attribute filters are rendered. * * @public */ export declare interface IAttributeFiltersCustomizer { /** * Register a provider for React components to render attribute filters. * * @remarks * A provider takes the attribute filter as input and is expected to return * a React component that should be used to render that filter. * * If the provider returns `undefined` then: * * - if there are other providers registered, they will be called to see if they can provide * a component to render the attribute filter * - if there are no other providers registered, the default, built-in component will be used. * * You may register multiple providers. They will be evaluated in the order you register them. * * @param provider - provider to register * @returns self, for call chaining sakes */ withCustomProvider(provider: OptionalAttributeFilterComponentProvider): IAttributeFiltersCustomizer; /** * Register a factory for attribute filter decorator providers. * * @remarks * Decorators are a way to add customizations or embellishments on top * of an existing component. Decorators are more complex to write because they need to work with the component * they should decorate and add 'something' on top of that component. * * This is best illustrated on an example: * * @example * ``` * withCustomDecorator((next) => { * return (filter) => { * if (some_condition_to_prevent_decoration) { * return undefined; * } * * // Make sure you call this outside the component render function, * // otherwise a new instance of the decorated component is created on each re-render. * const Decorated = next(filter); * * function MyCustomDecorator(props) { * return ( *
*

My Custom Decoration

* *
* ) * } * * return MyCustomDecorator; * } * }) * ``` * * The above shows how to register a decorator that will use some condition to determine whether particular * attribute filter is eligible for decoration. * * Note: the factory function that you specify will be called immediately at the registration time. The * provider that it returns will be called at render time. * * @param providerFactory - factory */ withCustomDecorator(providerFactory: (next: AttributeFilterComponentProvider) => OptionalAttributeFilterComponentProvider): IAttributeFiltersCustomizer; } /** * @beta */ export declare interface IAttributeHierarchyModified extends IDashboardCommand { readonly type: "GDC.DASH/CMD.ATTRIBUTE_HIERARCHY_MODIFIED"; } /** * @internal */ export declare interface IAttributesDropdownProps extends IDashboardAttributeFilterPlaceholderProps { /** Addable workspace parameters (automation dialogs only). Renders a "parameters" tab. */ parameters?: IParameterDropdownListItem[]; onParameterSelect?: (ref: IdentifierRef) => void; } /** * Automation filters grouped by tab, returned by {@link selectAutomationFiltersByTab}. * @alpha */ export declare interface IAutomationFiltersTab { /** * Tab local identifier. */ tabId: string; /** * Tab title. */ tabTitle: string; /** * Automation-available filters for the tab (hidden filters removed). */ availableFilters: FilterContextItem[]; /** * Default selected filters for the tab * (no-op filters removed: "all values" attribute filters and "all" measure value filters). */ defaultSelectedFilters: FilterContextItem[]; /** * Locked filters for the tab. */ lockedFilters: FilterContextItem[]; /** * Hidden filters for the tab. */ hiddenFilters: FilterContextItem[]; } /** * @alpha */ export declare interface IAutomationsState { isInitialized: boolean; isLoading: boolean; error?: GoodDataSdkError; userAutomations: IAutomationMetadataObject[]; allAutomationsCount: number; } /** * @beta */ export declare interface IBareUserInteractionPayload { interaction: "kpiAlertDialogClosed" | "poweredByGDLogoClicked" | "filterContextStateReset" | "parametersStateReset" | "interactionPanelOpened" | "addInteractionClicked" | AttributeHierarchiesInteractionType | AttributeFilterInteractionType | DateFilterInteractionType | VisualizationSwitcherInteractionType | NestedLayoutInteractionType; } /** * Information about the broken alert filters. These are filters that are set up on the alert, * but the currently applied filters either do not contain them, or the KPI has started ignoring them * since the alert was first set up. * * @alpha */ export declare interface IBrokenAlertFilterBasicInfo { alertFilter: TFilter; brokenType: BrokenAlertType; } /** * @beta */ export declare interface IButtonBarProps { buttons?: ReactNode; childContentPosition?: "left" | "right"; shareButtonProps: IShareButtonProps; DefaultButtonBar: CustomButtonBarComponent; cancelButtonProps: ICancelButtonProps; editButtonProps: IEditButtonProps; saveButtonProps: ISaveButtonProps; settingButtonProps: ISettingButtonProps; saveAsNewButtonProps: ISaveAsNewButtonProps; children?: ReactNode; left?: ReactNode; right?: ReactNode; } /** * @beta */ export declare interface ICancelButtonProps { isVisible: boolean; onCancelClick: () => void; } /** * @internal */ export declare interface ICancelEditDialogProps { onCancel: () => void; onSubmit: () => void; } /** * Command to cancel renaming mode for a tab. * @alpha */ export declare interface ICancelRenamingDashboardTab extends IDashboardCommand { readonly type: "GDC.DASH/CMD.TAB.RENAME_MODE.CANCEL"; readonly payload: ICancelRenamingDashboardTabPayload; } /** * Payload of the {@link ICancelRenamingDashboardTab} command. * @alpha */ export declare interface ICancelRenamingDashboardTabPayload { /** * Optional identifier of the tab to cancel renaming. If not provided, the active tab is used. */ readonly tabId?: string; } /** * Maps each referenced metric (keyed by `objRefToString(metricRef)`) to the parameter refs the * metric depends on, as reported by the workspace references service. Drives runtime parameter * applicability for widget execution. * * @alpha */ export declare interface ICatalogMeasureParametersState { status: CatalogMeasureParametersStatus; byMetric: Record; } /** * Catalog parameters slice. * * @alpha */ export declare interface ICatalogParametersState { status: CatalogParametersStatus; parameters: IParameterMetadataObject[]; } /** * @internal */ export declare interface IChangeAttributeDisplayFormPayload { readonly filterLocalId: string; readonly displayForm: ObjRef; readonly isWorkingSelectionChange?: boolean; readonly enableImmediateAttributeFilterDisplayAsLabelMigration?: boolean; readonly isResultOfMigration?: boolean; /** * Optional tab local identifier to target a specific tab. * If not provided, the active tab will be used. */ readonly tabLocalIdentifier?: string; } /** * @internal */ export declare interface IChangeAttributeLimitingItemsPayload { readonly filterLocalId: string; readonly limitingItems: ObjRef[]; } /** * @internal */ export declare interface IChangeAttributeSelectionModePayload { readonly filterLocalId: string; readonly selectionMode: DashboardAttributeFilterSelectionMode; } /** * @internal */ export declare interface IChangeAttributeTitlePayload { readonly filterLocalId: string; readonly title?: string; } /** * @alpha */ export declare interface IChangeDashboardDensity extends IDashboardCommand { readonly type: "GDC.DASH/CMD.CHANGE_DENSITY"; readonly payload: IChangeDashboardDensityPayload; } /** * Payload of the {@link IChangeDashboardDensity} command. * * @alpha */ export declare interface IChangeDashboardDensityPayload { readonly density: DashboardDensity; } /** * @alpha */ export declare interface IChangeDrillableItems extends IDashboardCommand { readonly type: "GDC.DASH/CMD.DRILL.DRILLABLE_ITEMS.CHANGE"; readonly payload: IChangeDrillableItemsPayload; } /** * Payload of the {@link IChangeDrillableItems} command. * @alpha */ export declare interface IChangeDrillableItemsPayload { /** * Additional items that can enable drilling of the widgets. * If the item (identifier/uri/predicate) matches attribute or measure in the widget, widget drilling will be enabled. * * @remarks * Note: These items has lower priority than the configured widget drills or drill down. * You can disable configured widget drills and drill down by setting {@link DashboardConfig} disableDefaultDrills property to true. */ readonly drillableItems: ExplicitDrill[]; } /** * Command for changing the ignore logic of execution timestamp. * * When executionTimestamp is provided to the dashboard, each execution is using this timestamp. This command instructs the * application to change the ignore flag for the execution timestamp in all following executions. * * @alpha */ export declare interface IChangeIgnoreExecutionTimestamp extends IDashboardCommand { readonly type: "GDC.DASH/CMD.CHANGE_IGNORE_EXECUTION_TIMESTAMP"; readonly payload: IChangeIgnoreExecutionTimestampPayload; } /** * Payload of the {@link IChangeIgnoreExecutionTimestamp} command. * @alpha */ export declare interface IChangeIgnoreExecutionTimestampPayload { /** * New ignore execution timestamp value. */ ignoreExecutionTimestamp: boolean; } /** * @beta */ export declare interface IChangeInsightWidgetDescription extends IDashboardCommand { readonly type: "GDC.DASH/CMD.INSIGHT_WIDGET.CHANGE_DESCRIPTION"; readonly payload: IChangeInsightWidgetDescriptionPayload; } /** * Payload of the {@link IChangeInsightWidgetDescription} command. * @beta */ export declare interface IChangeInsightWidgetDescriptionPayload { /** * Reference to Insight Widget whose description to change. */ readonly ref: ObjRef; /** * Description to use for the Insight widget. Contents of the provided description will be used as-is and will be * used to replace the current description values. */ readonly description: IWidgetDescription; } /** * @beta */ export declare interface IChangeInsightWidgetFilterSettings extends IDashboardCommand { readonly type: "GDC.DASH/CMD.INSIGHT_WIDGET.CHANGE_FILTER_SETTINGS"; readonly payload: IChangeInsightWidgetFilterSettingsPayload; } /** * Payload of the {@link IChangeInsightWidgetFilterSettings} command. * @beta */ export declare interface IChangeInsightWidgetFilterSettingsPayload { /** * Reference to Insight Widget whose filter settings to change. */ readonly ref: ObjRef; /** * Filter operation to apply. */ readonly operation: IWidgetFilterOperation; } /** * @beta */ export declare interface IChangeInsightWidgetHeader extends IDashboardCommand { readonly type: "GDC.DASH/CMD.INSIGHT_WIDGET.CHANGE_HEADER"; readonly payload: IChangeInsightWidgetHeaderPayload; } /** * Payload of the {@link IChangeInsightWidgetHeader} command. * @beta */ export declare interface IChangeInsightWidgetHeaderPayload { /** * Reference to Insight Widget whose header to change. */ readonly ref: ObjRef; /** * Header to use for the Insight widget. Contents of the provided header will be used as-is and will be * used to replace the current header values. */ readonly header: IWidgetHeader; } /** * @alpha */ export declare interface IChangeInsightWidgetIgnoreCrossFiltering extends IDashboardCommand { readonly type: "GDC.DASH/CMD.INSIGHT_WIDGET.CHANGE_IGNORE_CROSS_FILTERING"; readonly payload: IChangeInsightWidgetIgnoreCrossFilteringPayload; } /** * Payload of the {@link IChangeInsightWidgetIgnoreCrossFiltering} command. * @alpha */ export declare interface IChangeInsightWidgetIgnoreCrossFilteringPayload { /** * Reference to Insight Widget whose ignore cross-filtering setting to change. */ readonly ref: ObjRef; /** * Value for the ignore cross-filtering setting. */ readonly ignoreCrossFiltering: boolean; } /** * XXX: don't think this is needed right away. should definitely allow such flexibility though. Would allow * to switch between insights that are of different vis type but show same data. * * @beta */ export declare interface IChangeInsightWidgetInsight extends IDashboardCommand { readonly type: "GDC.DASH/CMD.INSIGHT_WIDGET.CHANGE_INSIGHT"; readonly payload: IChangeInsightWidgetInsightPayload; } /** * Payload of the {@link IChangeInsightWidgetInsight} command. * @beta */ export declare interface IChangeInsightWidgetInsightPayload { /** * Reference to Insight Widget whose insight to change. */ readonly ref: ObjRef; /** * Reference to the new insight to use inside the widget. */ readonly insightRef: ObjRef; /** * Specify new visualization properties to use for the insight. If none specified, * the properties already included in the widget will be used. * * @remarks * Note: if you don't want to use any custom visualization properties for the new insight, then * pass empty object. */ readonly visualizationProperties?: VisualizationProperties; } /** * @beta */ export declare interface IChangeInsightWidgetVisProperties extends IDashboardCommand { readonly type: "GDC.DASH/CMD.INSIGHT_WIDGET.CHANGE_PROPERTIES"; readonly payload: IChangeInsightWidgetVisPropertiesPayload; } /** * Payload of the {@link IChangeInsightWidgetVisProperties} command. * @beta */ export declare interface IChangeInsightWidgetVisPropertiesPayload { /** * Reference to Insight Widget whose visualization properties to change. */ readonly ref: ObjRef; /** * Visualization properties to use for the insight that is rendered by the widget. * * These will replace the existing visualization properties. To clear any widget-level properties * currently in effect for the widget, set the properties to `undefined`. */ readonly properties: VisualizationProperties | undefined; } /** * @beta */ export declare interface IChangeKpiWidgetComparison extends IDashboardCommand { readonly type: "GDC.DASH/CMD.KPI_WIDGET.CHANGE_COMPARISON"; readonly payload: IChangeKpiWidgetComparisonPayload; } /** * Payload of the {@link IChangeKpiWidgetComparison} command. * @beta */ export declare interface IChangeKpiWidgetComparisonPayload { /** * Reference to KPI Widget whose filter settings to change. */ readonly ref: ObjRef; /** * Comparison settings to use for the KPI Widget. * * To disable comparison you can send empty object here. */ readonly comparison: IKpiWidgetComparison; } /** * @beta */ export declare interface IChangeKpiWidgetConfiguration extends IDashboardCommand { readonly type: "GDC.DASH/CMD.KPI_WIDGET.CHANGE_CONFIGURATION"; readonly payload: IChangeKpiWidgetConfigurationPayload; } /** * Payload of the {@link IChangeKpiWidgetConfiguration} command. * @beta */ export declare interface IChangeKpiWidgetConfigurationPayload { /** * Reference to Kpi Widget whose configuration to change. */ readonly ref: ObjRef; /** * Configuration to use for the kpi that is rendered by the widget. * * These will replace the existing configuration. To clear any widget-level configuration * currently in effect for the widget, set the configuration to `undefined`. */ readonly config: IKpiWidgetConfiguration | undefined; } /** * @beta */ export declare interface IChangeKpiWidgetDescription extends IDashboardCommand { readonly type: "GDC.DASH/CMD.KPI_WIDGET.CHANGE_DESCRIPTION"; readonly payload: IChangeKpiWidgetDescriptionPayload; } /** * Payload of the {@link IChangeKpiWidgetDescription} command. * @beta */ export declare interface IChangeKpiWidgetDescriptionPayload { /** * Reference to Kpi whose description to change. */ readonly ref: ObjRef; /** * Description to use for the Kpi widget. Contents of the provided description will be used as-is and will be * used to replace the current description values. */ readonly description: IWidgetDescription; } /** * @beta */ export declare interface IChangeKpiWidgetFilterSettings extends IDashboardCommand { readonly type: "GDC.DASH/CMD.KPI_WIDGET.CHANGE_FILTER_SETTINGS"; readonly payload: IChangeKpiWidgetFilterSettingsPayload; } /** * Payload of the {@link IChangeKpiWidgetFilterSettings} command. * @beta */ export declare interface IChangeKpiWidgetFilterSettingsPayload { /** * KPI Widget reference whose filter settings to change. */ readonly ref: ObjRef; /** * Filter settings to apply for the widget. The settings are used as-is and * replace current widget settings. */ readonly operation: IWidgetFilterOperation; } /** * @beta */ export declare interface IChangeKpiWidgetHeader extends IDashboardCommand { readonly type: "GDC.DASH/CMD.KPI_WIDGET.CHANGE_HEADER"; readonly payload: IChangeKpiWidgetHeaderPayload; } /** * Payload of the {@link IChangeKpiWidgetHeader} command. * @beta */ export declare interface IChangeKpiWidgetHeaderPayload { /** * KPI Widget reference whose measure to change. */ readonly ref: ObjRef; /** * Header to use for the KPI widget. Contents of the provided header will be used as-is and will be * used to replace the current header values. */ readonly header: IWidgetHeader; } /** * @beta */ export declare interface IChangeKpiWidgetMeasure extends IDashboardCommand { readonly type: "GDC.DASH/CMD.KPI_WIDGET.CHANGE_MEASURE"; readonly payload: IChangeKpiWidgetMeasurePayload; } /** * Payload of the {@link IChangeKpiWidgetMeasure} command. * @beta */ export declare interface IChangeKpiWidgetMeasurePayload { /** * KPI Widget reference whose measure to change. */ readonly ref: ObjRef; /** * Reference to the new measure to use instead of the old measure. */ readonly measureRef: ObjRef; /** * Specify the new header that should be used for the KPI widget with the * changed measure. * * @remarks * You may specify the widget header as 'from-measure'. In that case the title will be automatically * set to the title of measure specified in the `measureRef` property. */ readonly header?: IWidgetHeader | "from-measure"; } /** * Command for changing the condition definition of an existing measure value filter. * * @alpha */ export declare interface IChangeMeasureValueFilterCondition extends IDashboardCommand { readonly type: "GDC.DASH/CMD.FILTER_CONTEXT.MEASURE_VALUE_FILTER.CHANGE_CONDITION"; readonly payload: IChangeMeasureValueFilterConditionPayload; } /** * Payload of the {@link IChangeMeasureValueFilterCondition} command. * * @alpha */ export declare interface IChangeMeasureValueFilterConditionPayload { /** * Local identifier of the measure value filter to update. */ readonly localIdentifier: string; /** * New conditions to apply on the filter. When empty or undefined, the filter is treated * as "All" (no filtering). */ readonly conditions?: MeasureValueFilterCondition[]; /** * Indicates that the change should be staged in the working filter context. */ readonly isWorkingSelectionChange?: boolean; } /** * @internal */ export declare type IChangeMeasureValueFilterConditionReducerPayload = { readonly localIdentifier: string; readonly conditions?: MeasureValueFilterCondition[]; readonly isWorkingSelectionChange?: boolean; }; /** * @internal */ export declare interface IChangeMeasureValueFilterConfigModePayload { localIdentifier: string; mode?: DashboardAttributeFilterConfigMode; } /** * Command for setting runtime parameter overrides on the currently active tab. * * @remarks * See {@link changeParameterValues} for a factory function that will help you create this command. * * @internal */ export declare interface IChangeParameterValues extends IDashboardCommand { readonly type: "GDC.DASH/CMD.PARAMETERS.CHANGE_VALUES"; readonly payload: IChangeParameterValuesPayload; } /** * Payload of the {@link IChangeParameterValues} command. * * @internal */ export declare interface IChangeParameterValuesPayload { readonly parameters: IInsightParameterValue[]; readonly tabLocalIdentifier?: string; } /** * @beta */ export declare interface IChangeRenderMode extends IDashboardCommand { readonly type: "GDC.DASH/CMD.CHANGE_RENDER_MODE"; readonly payload: IChangeRenderModePayload; } /** * Payload of the {@link IChangeRenderMode} command. * @beta */ export declare interface IChangeRenderModePayload { readonly renderMode: RenderMode; readonly renderModeChangeOptions: IRenderModeChangeOptions; } /** * @beta */ export declare interface IChangeRichTextWidgetContent extends IDashboardCommand { readonly type: "GDC.DASH/CMD.RICH_TEXT_WIDGET.CHANGE_CONTENT"; readonly payload: IChangeRichTextWidgetContentPayload; } /** * Payload of the {@link IChangeRichTextWidgetContent} command. * @beta */ export declare interface IChangeRichTextWidgetContentPayload { /** * Rich text widget reference whose content to change. */ readonly ref: ObjRef; /** * Updated rich text widget content. */ readonly content: string; } /** * @beta */ export declare interface IChangeRichTextWidgetFilterSettings extends IDashboardCommand { readonly type: "GDC.DASH/CMD.RICH_TEXT_WIDGET.CHANGE_FILTER_SETTINGS"; readonly payload: IChangeRichTextWidgetFilterSettingsPayload; } /** * Payload of the {@link IChangeRichTextWidgetFilterSettings} command. * @beta */ export declare interface IChangeRichTextWidgetFilterSettingsPayload { /** * Reference to RichText Widget whose filter settings to change. */ readonly ref: ObjRef; /** * Filter operation to apply. */ readonly operation: IWidgetFilterOperation; } /** * @beta */ export declare interface IChangeSharing extends IDashboardCommand { readonly type: "GDC.DASH/CMD.SHARING.CHANGE"; readonly payload: IChangeSharingPayload; } /** * Payload of the {@link IChangeSharing} command. * @beta */ export declare interface IChangeSharingPayload { /** * New sharing-related properties to use. */ readonly newSharingProperties: ISharingApplyPayload_2; } /** * @internal */ export declare interface IChangeTextFilterDisplayFormPayload { readonly filterLocalId: string; readonly displayForm: ObjRef; readonly tabLocalIdentifier?: string; } /** * @internal */ export declare interface IClearAttributeFiltersSelectionPayload { readonly filterLocalIds: string[]; /** * Optional tab local identifier to target a specific tab. * If not provided, the active tab will be used. */ readonly tabLocalIdentifier?: string; } /** * @internal */ export declare interface IConnectingAttribute { title: string; ref: ObjRef; } /** * Creates alert. * * @beta */ export declare interface ICreateAlert extends IDashboardCommand { readonly type: "GDC.DASH/CMD.ALERT.CREATE"; readonly payload: ICreateAlertPayload; } /** * Payload of the {@link ICreateAlert} command. * @beta */ export declare interface ICreateAlertPayload { /** * The alert to be created. */ readonly alert: IAutomationMetadataObjectDefinition; } /** * This event is emitted when an attribute hierarchy is created. * * @internal */ export declare interface ICreateAttributeHierarchyRequested extends IDashboardEvent { readonly type: "GDC.DASH/EVT.CREATE_ATTRIBUTE_HIERARCHY_REQUESTED"; } /** * Command to create a new dashboard tab. * * @remarks * This command will: * - Persist current main dashboard state (layout, filters, configs) into the currently active tab (if any) * - Create a new tab duplicating current main dashboard state * - Insert the tab at requested index (or append) and make it active * * @alpha */ export declare interface ICreateDashboardTab extends IDashboardCommand { readonly type: "GDC.DASH/CMD.TAB.CREATE"; readonly payload: ICreateDashboardTabPayload; } /** * Payload of the {@link ICreateDashboardTab} command. * @alpha */ export declare interface ICreateDashboardTabPayload { /** * Optional title for the new tab. If not provided, empty title will be used. */ readonly title?: string; /** * Optional index at which the new tab should be inserted. Defaults to the end of the list. */ readonly index?: number; /** * Optional flag to indicate whether the new tab should be started in renaming mode. */ readonly shouldStartRenaming?: boolean; } /** * This event is emitted when the create button is clicked. * * @internal */ export declare interface ICreateInsightRequested extends IDashboardEvent { readonly type: "GDC.DASH/EVT.CREATE_INSIGHT_REQUESTED"; } /** * @internal */ export declare interface ICreatePanelItemComponentProps { WrapCreatePanelItemWithDragComponent?: IWrapCreatePanelItemWithDragComponent; disabled?: boolean; } /** * Creates scheduled email. * * @beta */ export declare interface ICreateScheduledEmail extends IDashboardCommand { readonly type: "GDC.DASH/CMD.SCHEDULED_EMAIL.CREATE"; readonly payload: ICreateScheduledEmailPayload; } /** * Payload of the {@link ICreateScheduledEmail} command. * @beta */ export declare interface ICreateScheduledEmailPayload { /** * The scheduled email to create. */ readonly scheduledEmail: IAutomationMetadataObjectDefinition; } /** * @beta */ export declare interface ICrossFiltering extends IDashboardCommand { readonly type: "GDC.DASH/CMD.DRILL.CROSS_FILTERING"; readonly payload: ICrossFilteringPayload; } /** * @beta */ export declare interface ICrossFilteringItem { /** * Widget reference */ widgetRef: ObjRef | undefined; /** * Virtual attribute filter local identifiers added by the widget cross filtering */ filterLocalIdentifiers: string[]; /** * Array of currently selected points. * Each point is represented by an array of drill event intersection elements. */ selectedPoints?: IDrillEventIntersectionElement[][]; } /** * Payload of the {@link ICrossFiltering} command. * @beta */ export declare interface ICrossFilteringPayload { /** * Insight from which the cross-filtering is coming. */ readonly insight: IInsight; /** * Cross-filtering definition to apply. */ readonly drillDefinition: ICrossFiltering_2; /** * Original drill event, that triggered this particular drill interaction. */ readonly drillEvent: IDashboardDrillEvent; } /** * @beta */ export declare interface ICsvExportConfig { format: "csv"; title?: string; delimiter?: string; } /** * @internal */ export declare interface ICustomComponentBase { /** * The main body of the component that is shown by default in view and edit modes. */ MainComponentProvider: (...params: TProviderParams) => ComponentType; } /** * Base type for all custom events. * * @typeParam TPayload - type of the event's additional data * @public */ export declare interface ICustomDashboardEvent { /** * Event type. Always starts with "CUSTOM/EVT". */ readonly type: string; /** * Dashboard context in which the event occurred. */ readonly ctx: DashboardContext; /** * Specify any additional data the custom event needs. */ readonly payload?: TPayload; /** * Metadata about the event useful for logging and handling of the event. */ readonly meta?: { /** * When the event was accepted by the Dashboard store and emitted. */ acceptedTimestamp: number; }; } /** * @internal */ export declare type ICustomDraggingComponentProps = { itemType: "custom"; item: CustomDraggableItem; }; /** * Custom widget with assigned identity. * * @public */ export declare interface ICustomWidget extends ICustomWidgetBase, IDashboardObjectIdentity, Partial { } /** * Base type for custom widgets. Custom widgets may extend this and add extra properties to hold widget-specific * configuration. * * @public */ export declare interface ICustomWidgetBase extends IBaseWidget { readonly type: "customWidget"; readonly customType: string; } /** * Definition of custom widget. The definition may not specify identity. In that case a temporary identity * will be assigned to the widget as it is added onto a dashboard. * * @public */ export declare interface ICustomWidgetDefinition extends ICustomWidgetBase, Partial { } /** * This event is emitted after the alert is successfully saved. * * @beta */ export declare interface IDashboardAlertCreated extends IDashboardEvent { readonly type: "GDC.DASH/EVT.ALERT.CREATED"; readonly payload: IDashboardAlertCreatedPayload; } /** * Payload of the {@link IDashboardAlertCreated} event. * @beta */ export declare interface IDashboardAlertCreatedPayload { /** * The alert created. */ readonly alert: IAutomationMetadataObject; } /** * This event is emitted after the alert is saved. * * @beta */ export declare interface IDashboardAlertSaved extends IDashboardEvent { readonly type: "GDC.DASH/EVT.ALERT.SAVED"; readonly payload: IDashboardAlertSavedPayload; } /** * Payload of the {@link IDashboardAlertCreated} event. * @beta */ export declare interface IDashboardAlertSavedPayload { /** * The alert saved. */ readonly alert: IAutomationMetadataObject; } /** * @internal */ export declare interface IDashboardAttributeFilterAccessibilityConfig { ariaLabelledBy?: string; searchAriaLabel?: string; } /** * This event is emitted after a new dashboard attribute filter is successfully added into dashboard's * filters. * * @beta */ export declare interface IDashboardAttributeFilterAdded extends IDashboardEvent { readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.ATTRIBUTE_FILTER.ADDED"; readonly payload: IDashboardAttributeFilterAddedPayload; } /** * Payload of the {@link IDashboardAttributeFilterAdded} event. * @beta */ export declare interface IDashboardAttributeFilterAddedPayload { /** * Definition of the created attribute filter. The filter's local identifier can be used in subsequent * commands to identify this filter. */ readonly added: IDashboardAttributeFilter; /** * Zero-based index indicating the position of the attribute filter among the other filters. */ readonly index: number; } /** * This event is emitted when the attribute filter limiting items are changed. * * @alpha */ export declare interface IDashboardAttributeFilterConfigLimitingItemsChanged extends IDashboardEvent { readonly type: "GDC.DASH/EVT.ATTRIBUTE_FILTER_CONFIG.LIMITING_ITEMS_CHANGED"; readonly payload: IDashboardAttributeFilterConfigLimitingItemsChangedPayload; } /** * Payload of the {@link isDashboardAttributeFilterConfigLimitingItemsChanged} event. * * @alpha */ export declare interface IDashboardAttributeFilterConfigLimitingItemsChangedPayload { /** * The updated definition of the dashboard attribute filter. * * The definition of mode represents the new state. */ readonly filter: DashboardAttributeFilterItem; } /** * This event is emitted when the attribute filter mode is change. * * @alpha */ export declare interface IDashboardAttributeFilterConfigModeChanged extends IDashboardEvent { readonly type: "GDC.DASH/EVT.ATTRIBUTE_FILTER_CONFIG.MODE_CHANGED"; readonly payload: IDashboardAttributeFilterConfigModeChangedPayload; } /** * Payload of the {@link isDashboardAttributeFilterConfigModeChanged} event. * * @alpha */ export declare interface IDashboardAttributeFilterConfigModeChangedPayload { /** * The updated definition of the dashboard attribute filter. * * The definition of mode represents the new state. */ readonly filter: DashboardAttributeFilterItem; } /** * @internal */ export declare interface IDashboardAttributeFilterDisplayForms { selectedDisplayForm: ObjRef; availableDisplayForms: IAttributeDisplayFormMetadataObject[]; } /** * This event is emitted after a dashboard attribute filter is moved from one position in the filter bar * to a new position * * @beta */ export declare interface IDashboardAttributeFilterMoved extends IDashboardEvent { readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.ATTRIBUTE_FILTER.MOVED"; readonly payload: IDashboardAttributeFilterMovedPayload; } /** * Payload of the {@link IDashboardAttributeFilterMoved} event. * @beta */ export declare interface IDashboardAttributeFilterMovedPayload { /** * Definition of the dashboard attribute filter that was moved. */ readonly moved: DashboardAttributeFilterItem; /** * The original position of the filter. */ readonly fromIndex: number; /** * New absolute position of the filter. */ readonly toIndex: number; } /** * This event is emitted after the parent relationships of a filter change. * * @beta */ export declare interface IDashboardAttributeFilterParentChanged extends IDashboardEvent { readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.ATTRIBUTE_FILTER.PARENT_CHANGED"; readonly payload: IDashboardAttributeFilterParentChangedPayload; } /** * Payload of the {@link IDashboardAttributeFilterParentChanged} event. * @beta */ export declare interface IDashboardAttributeFilterParentChangedPayload { /** * The updated definition of the dashboard attribute filter. * * The definition of parents represents the new state. */ readonly filter: DashboardAttributeFilterItem; } /** * @internal */ export declare interface IDashboardAttributeFilterParentItem { localIdentifier: string; title?: string; displayForm: ObjRef; isSelected: boolean; overAttributes?: ObjRef[]; selectedConnectingAttribute: ObjRef | undefined; } /** * @internal */ export declare interface IDashboardAttributeFilterPlaceholderProps { id?: string; className?: string; bodyClassName?: string; /** * Called when the user selects a filter source. When `selectionType` is omitted, * the selection is treated as an attribute. */ onSelect: (ref: ObjRef, selectionType?: DashboardFilterSelectionType) => void; onOpen?: () => void; onClose?: () => void; returnFocusTo?: RefObject | string; attributes: ICatalogAttribute[]; dateDatasets: ICatalogDateDataset[]; measures?: ICatalogMeasure[]; openOnInit?: boolean; DropdownButtonComponent?: ComponentType; DropdownTitleComponent?: ComponentType; renderNoData?: (props: IDropdownListNoDataRenderProps) => ReactNode; overlayPositionType?: OverlayPositionType; getCustomItemTitle?: (item: ICatalogAttribute | ICatalogDateDataset | ICatalogMeasure) => string | undefined; accessibilityConfig?: IDashboardAttributeFilterAccessibilityConfig; } /** * @public */ export declare interface IDashboardAttributeFilterProps { /** * Definition of filter to render. * * @remarks * This can be any attribute filter type: element-based, arbitrary, or match filter. */ filter: DashboardAttributeFilterItem; /** * Working filter which selection will be used to render. */ workingFilter?: DashboardAttributeFilterItem; /** * When the user interacts with the filter and changes its value, it MUST use this callback to propagate the * new filter value. * * @param filter - new attribute filter value. * @param displayAsLabel - label used for presentation of attribute filter elements in UI * @param isWorkingSelectionChange - if the change is to applied (application of filters) or un-applied filters (filters staged before application). * @param isResultOfMigration - internal value, specifies that filter change was caused by displayAsLabel * ad-hoc migration, the param will be removed once the usage of displayAsLabel is migrated on database * metadata level. * @param isSelectionInvalid - specifies if filter selection is invalid */ onFilterChanged: (filter: DashboardAttributeFilterItem, displayAsLabel?: ObjRef, isWorkingSelectionChange?: boolean, isResultOfMigration?: boolean, isSelectionInvalid?: boolean) => void; /** * Callback to be called, when user closes filter dropdown */ onClose?: () => void; /** * Specify whether dragging handle and grab cursor should be displayed on hover */ isDraggable?: boolean; /** * Specify whether should render filter with open dropdown */ autoOpen?: boolean; /** * Specify whether the filter should be readonly. * * @alpha */ readonly?: boolean; /** * Attribute label to use for UI representation of filter elements */ displayAsLabel?: ObjRef; /** * Optional custom attribute filter component to change or extend the default rendered one. * The default is AttributeFilterButton * Other component which fits this interface provided by GD is AttributeFilter * * Note: Props provided to this component contains many filter customizations. * E.g. parent/child filtering, cross filtering, various subcomponents etc. * see {@link @gooddata/sdk-ui-filters#IAttributeFilterButtonProps} for more details. * * @alpha use at your own risk */ AttributeFilterComponent?: ComponentType; /** * Optional custom attribute filter loading component to change or extend the default rendered one. */ AttributeFilterLoadingComponent?: ComponentType; /** * Specifies the overlay position type for the attribute filter dropdown. */ overlayPositionType?: OverlayPositionType; /** * Optional tab identifier to read filter context from. * When provided, the filter will validate against filters from this specific tab. * When undefined, uses the active tab (default behavior). * * @remarks * This is primarily used in automation/scheduling contexts where filters from * multiple tabs need to be displayed simultaneously. */ tabId?: string; /** * Controls whether the internal implementation of dashboard filter dropdown button should be used. * When true (default), the AttributeFilterButton will receive a DropdownButtonComponent. * When false, the AttributeFilterButton will not receive a DropdownButtonComponent * and therefore can be overridden by the custom component. * * This is useful when extending DashboardAttributeFilterComponent * and want to use a different default dropdown button component internally * but still want to make possible to customize the dropdown button component by user. * Note: It is used in DashboardFilterGroupComponent. * * @alpha */ passDropdownButton?: boolean; } /** * This event is emitted after a dashboard attribute filter is successfully removed. * * If the removed filter figured as a parent to one or more child filters, then the removal * also cleaned up the parent relationship. * * @beta */ export declare interface IDashboardAttributeFilterRemoved extends IDashboardEvent { readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.ATTRIBUTE_FILTER.REMOVED"; readonly payload: IDashboardAttributeFilterRemovedPayload; } /** * Payload of the {@link IDashboardAttributeFilterRemoved} event. * @beta */ export declare interface IDashboardAttributeFilterRemovedPayload { /** * The dashboard attribute filter that has been removed. */ readonly removed: DashboardAttributeFilterItem; /** * If the removed filter figured as a parent filter for some other filters, then * those children have lost their parent - the relationship was removed. * * If any children filters were impacted by the removal, their new definition that does * not include the parent relationship is included here. */ readonly children?: ReadonlyArray; } /** * This event is emitted when the attribute filter selection mode is change. * * @beta */ export declare interface IDashboardAttributeSelectionModeChanged extends IDashboardEvent { readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.ATTRIBUTE_FILTER.SELECTION_MODE_CHANGED"; readonly payload: IDashboardAttributeSelectionModeChangedPayload; } /** * Payload of the {@link IDashboardAttributeSelectionModeChanged} event. * * @beta */ export declare interface IDashboardAttributeSelectionModeChangedPayload { /** * The updated definition of the dashboard attribute filter. * * The definition of selection mode represents the new state. * For text filters (arbitrary, match), selection mode has no effect. */ readonly filter: DashboardAttributeFilterItem; } /** * This event is emitted when the attribute filter title change. * * @beta */ export declare interface IDashboardAttributeTitleChanged extends IDashboardEvent { readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.ATTRIBUTE_FILTER.TITLE_CHANGED"; readonly payload: IDashboardAttributeTitleChangedPayload; } /** * Payload of the {@link IDashboardAttributeTitleChanged} event. * @beta */ export declare interface IDashboardAttributeTitleChangedPayload { /** * The updated definition of the dashboard attribute filter. * * The definition of parents represents the new state. */ readonly filter: DashboardAttributeFilterItem; } /** * This event is emitted after the automations are refreshed (after creating, updating, or removing alerts or scheduled exports). * * @beta */ export declare interface IDashboardAutomationsRefreshed extends IDashboardEvent { readonly type: "GDC.DASH/EVT.AUTOMATIONS.REFRESHED"; } /** * @public */ export declare interface IDashboardBaseProps { /** * Analytical backend from which the dashboard obtains data to render. * * @remarks * If you do not specify instance of analytical backend using this prop, then you MUST have * BackendProvider up in the component tree. */ backend?: IAnalyticalBackend; /** * Identifier of analytical workspace, from which the dashboard obtains data to render. * * @remarks * If you do not specify workspace identifier, then you MUST have WorkspaceProvider up in the * component tree. */ workspace?: string; /** * Specify dashboard to render; you can specify the dashboard either by reference (ObjRef) or * by value (of type IDashboard). * * @remarks * As a convenience, you may also specify a dashboard object * identifier - this is same as using `idRef(objectIdentifier)`. * * If you do not specify dashboard to render, a new default empty dashboard will be rendered. */ dashboard?: string | ObjRef | IDashboard; /** * Specify reference to a filter context that should be used instead of the default, * built-in filter context. * * @remarks * Note: this property only makes sense if you also specify `dashboard` by reference. If you specify * dashboard by value, then the component assumes that the value also contains the desired filter context * and will use it as is. */ filterContextRef?: ObjRef; /** * Explicitly specify which tab should be opened first when the dashboard is rendered. * * @remarks * This prop takes precedence over the dashboard's persisted activeTabId. * If the specified tab ID doesn't exist, the first tab will be used. * * @alpha */ initialTabId?: string; /** * Configuration that can be used to modify dashboard features, capabilities and behavior. * * @remarks * If not specified, then the dashboard will retrieve and use the essential configuration from the backend. */ config?: DashboardConfig; /** * Specify permissions to use when determining availability of the different features of * the dashboard component. * * @remarks * If you do not specify permissions, the dashboard component will load permissions for the currently * logged-in user. */ permissions?: IWorkspacePermissions; /** * Specify tab index and addressable id for the dashboard components used by keyboard navigation */ keyboardNavigation?: KeyboardNavigationConfig; } /** * Base type for all commands. * * @remarks * Commands are dispatched using dispatcher obtained by useDashboardDispatcher(). All the dispatchers are 'contextual' - * they target backend, workspace and dashboard in depending on the Dashboard component tree from which the dispatch * is done. * * @public */ export declare interface IDashboardCommand { /** * Command type. Always starts with "GDC.DASH/CMD" */ readonly type: DashboardCommandType; /** * Correlation ID can be provided when creating a command. * * @remarks * All events emitted during the command processing will contain the same correlation ID. * * If the correlation ID is not specified, a random string will be assigned. */ readonly correlationId?: string; /** * Metadata related to processing of the command by the dashboard component. * * @remarks * Note: this metadata is added by the dashboard component. It will be added dynamically to command * right after its dispatch. */ readonly meta?: CommandProcessingMeta; } /** * This event is emitted if a particular command processing fails. The failure may be for two general reasons: * * - A user error was made; dispatched command is found to have bad payload or the dispatched command is not applicable * in the current state of the dashboard * * - An internal error has occurred in the dashboard component - highly likely due to a bug. * * @beta */ export declare interface IDashboardCommandFailed extends IDashboardEvent { readonly type: "GDC.DASH/EVT.COMMAND.FAILED"; readonly payload: IDashboardCommandFailedPayload; } /** * Payload of the {@link IDashboardCommandFailed} event. * @beta */ export declare interface IDashboardCommandFailedPayload { /** * Reason for the failure. */ readonly reason: ActionFailedErrorReason; /** * Message explaining the nature of the failure. */ readonly message: string; /** * Error that has occurred and caused the command to fail. */ readonly error?: Error; /** * The command that failed. */ readonly command: TCommand; } /** * This event is emitted when the submitted command has been rejected by the dashboard component because it does * not know how to handle the command. * * This typically indicates user error, perhaps a typo in the command type name. * * @beta */ export declare interface IDashboardCommandRejected extends IDashboardEvent { readonly type: "GDC.DASH/EVT.COMMAND.REJECTED"; } /** * This event is emitted when a particular command processing starts. * * @beta */ export declare interface IDashboardCommandStarted extends IDashboardEvent { readonly type: "GDC.DASH/EVT.COMMAND.STARTED"; readonly payload: IDashboardCommandStartedPayload; } /** * Payload of the {@link IDashboardCommandStarted} event. * @beta */ export declare interface IDashboardCommandStartedPayload { /** * The command that started processing. */ readonly command: TCommand; } /** * @internal */ export declare interface IDashboardContentBaseProps { /** * Analytical backend from which the dashboard obtains data to render. * * @remarks * If you do not specify instance of analytical backend using this prop, then you MUST have * BackendProvider up in the component tree. */ backend?: IAnalyticalBackend; /** * Identifier of analytical workspace, from which the dashboard obtains data to render. * * @remarks * If you do not specify workspace identifier, then you MUST have WorkspaceProvider up in the * component tree. */ workspace?: string; /** * Specify dashboard to render; you can specify the dashboard either by reference (ObjRef) or * by value (of type IDashboard). * * @remarks * As a convenience, you may also specify a dashboard object * identifier - this is same as using `idRef(objectIdentifier)`. * * If you do not specify dashboard to render, a new default empty dashboard will be rendered. */ dashboard?: string | ObjRef | IDashboard; /** * Specify reference to a filter context that should be used instead of the default, * built-in filter context. * * @remarks * Note: this property only makes sense if you also specify `dashboard` by reference. If you specify * dashboard by value, then the component assumes that the value also contains the desired filter context * and will use it as is. */ filterContextRef?: ObjRef; /** * Configuration that can be used to modify dashboard features, capabilities and behavior. * * @remarks * If not specified, then the dashboard will retrieve and use the essential configuration from the backend. */ config?: DashboardConfig; /** * Specify permissions to use when determining availability of the different features of * the dashboard component. * * @remarks * If you do not specify permissions, the dashboard component will load permissions for the currently * logged-in user. */ permissions?: IWorkspacePermissions; } /** * @alpha */ export declare interface IDashboardContentCustomizer { /** * Register a factory for dashboard content decorator providers. * * @remarks * Decorators are a way to add customizations or embellishments on top * of an existing component. Decorators are more complex to write because they need to work with the component * they should decorate and add 'something' on top of that component. * * This is best illustrated on an example: * * @example * ``` * withCustomDecorator((next) => { * return (dashboard) => { * if (some_condition_to_prevent_decoration) { * return undefined; * } * * // Make sure you call this outside the component render function, * // otherwise a new instance of the decorated component is created on each re-render. * const Decorated = next(dashboard); * * function MyCustomDecorator(props) { * return ( *
*

My Custom Decoration

* *
* ) * } * * return MyCustomDecorator; * } * }) * ``` * * The above shows how to register a decorator that will use some condition to determine if dashboard content * will be decorated. * * Note: the factory function that you specify will be called immediately at the registration time. The * provider that it returns will be called at render time. * * @param providerFactory - factory */ withCustomDecorator(providerFactory: (next: DashboardContentComponentProvider) => OptionalDashboardContentComponentProvider): IDashboardContentCustomizer; } /** * This event is emitted on start of the resolution of the {@link ICrossFiltering} command. * * @beta */ export declare interface IDashboardCrossFilteringRequested extends IDashboardEvent { readonly type: "GDC.DASH/EVT.DRILL.CROSS_FILTERING.REQUESTED"; readonly payload: IDashboardCrossFilteringRequestedPayload; } /** * Payload of the {@link IDashboardCrossFilteringRequested} event. * @beta */ export declare interface IDashboardCrossFilteringRequestedPayload { /** * Original drill event, that triggered this particular drill interaction. */ readonly drillEvent: IDashboardDrillEvent; /** * Drill definition. */ readonly drillDefinition: ICrossFiltering_2; } /** * This event is emitted as a result of the {@link ICrossFiltering} command. * * @beta */ export declare interface IDashboardCrossFilteringResolved extends IDashboardEvent { readonly type: "GDC.DASH/EVT.DRILL.CROSS_FILTERING.RESOLVED"; readonly payload: IDashboardCrossFilteringResolvedPayload; } /** * Payload of the {@link IDashboardCrossFilteringResolved} event. * @beta */ export declare interface IDashboardCrossFilteringResolvedPayload { /** * Dashboard filters from drill intersection. */ readonly filters: IDashboardAttributeFilter[]; /** * Original drill event, that triggered this particular drill interaction. */ readonly drillEvent: IDashboardDrillEvent; /** * Drill definition with the custom url that was resolved. */ readonly drillDefinition: ICrossFiltering_2; } /** * These props allow you to specify custom components or custom component providers that the Dashboard * component will use for rendering different parts of the dashboard. * * @remarks * IMPORTANT: while this interface is marked as public, you also need to heed the maturity annotations * on each property. A lot of these properties are at this moment alpha or internal level. * * @public */ export declare interface IDashboardCustomComponentProps { /** * Component to render if embedding fails. * * @remarks * This component is also used in all the individual widgets when they have some error occur. * * @privateRemarks * TODO do we need separate component for the dashboard as a whole and individual widgets? * * @alpha */ ErrorComponent?: ComponentType; /** * Component to render while the dashboard or a widget is loading. * * @remarks * This component is also used in all the individual widgets while they are loading. * * @privateRemarks * TODO do we need separate component for the dashboard as a whole and individual widgets? * * @alpha */ LoadingComponent?: ComponentType; /** * Specify component to use for rendering the layout. * * @alpha */ LayoutComponent?: CustomDashboardLayoutComponent; /** * Specify function to obtain custom component to use for rendering a widget. * * @remarks * - If not provided, the default implementation {@link DefaultDashboardWidget} will be used. * - If factory function is provided and it returns undefined, then the default implementation {@link DefaultDashboardWidget}. * This is useful if you want to customize just one particular widget and keep default rendering for the * other widgets. * * @example * * ```tsx * // Simple component that alters the title of every widget * const CustomWidget = (props) => { * const widget: IInsightWidget = { * ...props.widget, * title: `Prepend to ${props.widget.title}`, * }; * * return ; * }; * ``` * * @public */ WidgetComponentProvider?: OptionalWidgetComponentProvider; /** * Specify function to obtain custom component to use for rendering an insight. * * @remarks * - If not provided, the default implementation {@link DefaultDashboardInsight} will be used. * - If factory function is provided and it returns undefined, then the default implementation {@link DefaultDashboardInsight} will be used. * This is useful if you want to customize just one particular insight and keep default rendering for * the other insights. * * @public */ InsightComponentProvider?: OptionalInsightComponentProvider; /** * Specify function to obtain custom component to use for rendering an insight body (i.e. the insight itself) in the {@link DefaultDashboardInsight}. * * @remarks * - If not provided, the default implementation {@link DefaultInsightBody} will be used. * - If factory function is provided and it returns undefined, then the default implementation {@link DefaultInsightBody} will be used. * This is useful if you want to customize just one particular insight and keep default rendering for * the other insights. * * @alpha */ InsightBodyComponentProvider?: OptionalInsightBodyComponentProvider; /** * Specify function to obtain custom component to use for rendering an insight menu button. * * @remarks * - If not provided, the default implementation {@link DefaultDashboardInsightMenuButton} will be used. * - If factory function is provided and it returns undefined, then the default implementation {@link DefaultDashboardInsightMenuButton} will be used. * This is useful if you want to customize just one particular insight and keep default rendering for * the other insights. * * @alpha */ InsightMenuButtonComponentProvider?: OptionalInsightMenuButtonComponentProvider; /** * Specify function to obtain custom component to use for rendering an insight menu. * * @remarks * - If not provided, the default implementation {@link DefaultDashboardInsightMenu} will be used. * - If factory function is provided and it returns undefined, then the default implementation {@link DefaultDashboardInsightMenu} will be used. * This is useful if you want to customize just one particular insight and keep default rendering for * the other insights. * * @alpha */ InsightMenuComponentProvider?: OptionalInsightMenuComponentProvider; /** * Specify function to obtain custom component to use for rendering an rich text menu. * * @remarks * - If not provided, the default implementation {@link DefaultDashboardRichTextMenu} will be used. * - If factory function is provided and it returns undefined, then the default implementation {@link DefaultDashboardRichTextMenu} will be used. * This is useful if you want to customize just one particular insight and keep default rendering for * the other rich texts. * * @alpha */ RichTextMenuComponentProvider?: OptionalRichTextMenuComponentProvider; /** * Specify function to obtain custom component to use for rendering the title of the insight menu. * * @remarks * - If not provided, the default implementation {@link DefaultDashboardInsightMenuTitle} will be used. * - If factory function is provided and it returns undefined, then the default implementation {@link DefaultDashboardInsightMenuTitle} will be used. * This is useful if you want to customize just one particular insight and keep default rendering for * the other insights. * * @internal */ InsightMenuTitleComponentProvider?: OptionalInsightMenuTitleComponentProvider; /** * Specify function to obtain custom component to use for rendering the title of the rich text menu. * * @remarks * - If not provided, the default implementation {@link DefaultDashboardRichTextMenuTitle} will be used. * - If factory function is provided and it returns undefined, then the default implementation {@link DefaultDashboardRichTextMenuTitle} will be used. * This is useful if you want to customize just one particular rich text and keep default rendering for * the other insights. * * @internal */ RichTextMenuTitleComponentProvider?: OptionalRichTextMenuTitleComponentProvider; /** * Specify function to obtain insight component set. * * @remarks * If not provided, the default implementation {@link DefaultDashboardInsightComponentSetFactory} will be used. * * @internal */ InsightComponentSetProvider?: InsightComponentSetProvider; /** * Specify function to obtain custom component to use for rendering a rich text. * * @remarks * - If not provided, the default implementation {@link DefaultDashboardRichText} will be used. * - If factory function is provided and it returns undefined, then the default implementation {@link DefaultDashboardRichText}. * This is useful if you want to customize just one particular rich text and keep default rendering for * the other rich texts. * * @public */ RichTextComponentProvider?: OptionalRichTextComponentProvider; /** * Specify function to obtain custom component to use for rendering a visualization switcher. * * @remarks * - If not provided, the default implementation {@link DefaultDashboardVisualizationSwitcher} will be used. * - If factory function is provided and it returns undefined, then the default implementation {@link DefaultDashboardVisualizationSwitcher}. * This is useful if you want to customize just one particular visualization switcher and keep default rendering for * the other visualization switchers. * * @public */ VisualizationSwitcherComponentProvider?: OptionalVisualizationSwitcherComponentProvider; /** * Specify function to obtain custom component to use for rendering a dashboard layout (nested). * * @remarks * - If not provided, the default implementation {@link DefaultDashboardLayout} will be used. * - If factory function is provided and it returns undefined, then the default implementation {@link DefaultDashboardLayout}. * This is useful if you want to customize just one particular nested layout and keep default rendering for * the other nested layouts. * * @public */ DashboardLayoutComponentProvider?: OptionalDashboardLayoutComponentProvider; /** * Specify function to obtain custom component to use for rendering a visualization switcher toolbar. * * @remarks * - If not provided, the default implementation {@link DefaultVisualizationSwitcherToolbar} will be used. * - If factory function is provided and it returns undefined, then the default implementation {@link DefaultVisualizationSwitcherToolbar}. * This is useful if you want to customize just one particular visualization switcher toolbar and keep default rendering for * the other visualization switchers. * * @public */ VisualizationSwitcherToolbarComponentProvider?: OptionalVisualizationSwitcherToolbarComponentProvider; /** * Specify component to use for rendering the scheduled email dialog. * * @alpha */ ScheduledEmailDialogComponent?: CustomScheduledEmailDialogComponent; /** * Specify component to use for rendering the scheduled email management dialog. * * @alpha */ ScheduledEmailManagementDialogComponent?: CustomScheduledEmailManagementDialogComponent; /** * Specify component to use for rendering the alerting management dialog. * * @alpha */ AlertingManagementDialogComponent?: CustomAlertingManagementDialogComponent; /** * Specify component to use for rendering the alerting dialog. * * @alpha */ AlertingDialogComponent?: CustomAlertingDialogComponent; /** * Specify component to use for rendering the share dialog. * * @alpha */ ShareDialogComponent?: CustomShareDialogComponent; /** * Specify component to use for rendering the save as dialog. * * @alpha */ SaveAsDialogComponent?: CustomSaveAsDialogComponent; /** * Specify component to use for rendering the button bar. * * @alpha */ ButtonBarComponent?: CustomButtonBarComponent; /** * Specify component to use for rendering the menu button. * * @alpha */ MenuButtonComponent?: CustomMenuButtonComponent; /** * Specify component to use for rendering the top bar. * * @remarks * Note that if you override this component, the ButtonBarComponent, MenuButtonComponent and TitleComponent * props might get ignored depending on your implementation. * * @alpha */ TopBarComponent?: CustomTopBarComponent; /** * Specify component to use for rendering the toolbar. * * @internal */ ToolbarComponent?: CustomToolbarComponent; /** * Specify component to use for rendering the title. * * @remarks * Defaults to {@link DefaultTitle}. For an editable title, you can use {@link EditableTitle} instead. * To hide the dashboard title altogether, you can use {@link HiddenTitle}. * * @alpha */ TitleComponent?: CustomTitleComponent; /** * Specify custom component to use for rendering all attribute filters or a factory function to customize the component * per different attribute filter. * * @remarks * If you want to hide some or all filters, you can use the {@link HiddenDashboardAttributeFilter} implementation. * * - If not provided, the default implementation {@link DefaultDashboardAttributeFilter} will be used. * - If factory function is provided and it returns undefined, then the default implementation {@link DefaultDashboardAttributeFilter}. * This is useful if you want to customize just one particular filter and keep all other filters the same. * - Note this only affects attribute filter directly placed in filter bar. Filters placed in filter groups are not affected. * To customize filters in filter groups, use DashboardFilterGroupComponentProvider. * * @example * Here is how to override the component for all filters: * ``` * ComponentFactory: () => MyCustomComponent * ``` * * @alpha */ DashboardAttributeFilterComponentProvider?: OptionalAttributeFilterComponentProvider; /** * Specify component to use for rendering the date filters. * * @alpha */ DashboardDateFilterComponentProvider?: OptionalDateFilterComponentProvider; /** * Specify component to use for rendering the measure value filters. * * @alpha */ DashboardMeasureValueFilterComponentProvider?: OptionalMeasureValueFilterComponentProvider; /** * Specify custom component to use for rendering all filter groups or a factory function to customize the component * per different filter group. * * - If not provided, the default implementation {@link DefaultDashboardFilterGroup} will be used. * - If factory function is provided and it returns undefined, then the default implementation {@link DefaultDashboardFilterGroup}. * This is useful if you want to customize just one particular filter group and keep all other filter groups the same. * - If you want to customize each filter in a filter group, use this provider and customize DefaultDashboardFilterGroup in it. * It accepts some customization props fro deeper component. * * @alpha */ DashboardFilterGroupComponentProvider?: OptionalFilterGroupComponentProvider; /** * Specify function to obtain custom component to use for extend rendering of dashboard content. * * @remarks * - If not provided, the default implementation {@link DefaultDashboardMainContent} will be used. * - If factory function is provided and it returns undefined, then the default implementation {@link DefaultDashboardMainContent} will be used. * This is useful if you want to customize just one particular insight and keep default rendering for * the other insights. * * @alpha */ DashboardContentComponentProvider?: OptionalDashboardContentComponentProvider; /** * Specify component to use for rendering the filter bar. * * @remarks * * Note that if you override this component, the DashboardAttributeFilterComponentFactory and DashboardDateFilterComponent * props might get ignored depending on your implementation. * * @alpha */ FilterBarComponent?: CustomFilterBarComponent; /** * Specify component to use for rendering the sidebar. * * @alpha */ SidebarComponent?: CustomSidebarComponent; /** * Specify the component rendered as the body of the drop zone when the layout is empty. * * @internal * * @privateRemarks * We would ideally replace the whole EmptyLayoutComponent, however integrating with the drop zone is currently too complicated. * */ EmptyLayoutDropZoneBodyComponent?: CustomEmptyLayoutDropZoneBodyComponent; /** * Specify the component rendered as save button. * * @remarks * If not provided, the default implementation {@link DefaultSaveButton} will be used. * * @internal */ SaveButtonComponent?: CustomSaveButtonComponent; /** * Specify the component rendered as setting button. * * @remarks * If not provided, the default implementation {@link DefaultSettingButton} will be used. * * @internal */ SettingButtonComponent?: CustomSettingButtonComponent; /** * Specify the component rendered for dashboard settings dialog. * * @remarks * If not provided, the default implementation {@link DefaultDashboardSettingsDialog} will be used. * * @internal */ DashboardSettingsDialogComponent?: CustomDashboardSettingsDialogComponent; /** * Specify the component rendered as show as table button. * * @remarks * If not provided, the default implementation {@link DefaultShowAsTableButton} will be used. * * @alpha */ ShowAsTableButtonComponentProvider?: OptionalShowAsTableButtonComponentProvider; /** * Specify the component rendered as drill dialog export dropdown. * * @remarks * If not provided, the default implementation {@link DefaultDrillDialogExportDropdown} will be used. * * @alpha */ DrillDialogExportDropdownComponentProvider?: OptionalDrillDialogExportDropdownComponentProvider; } /** * Properties for {@link Dashboard} customization. * * @remarks * IMPORTANT: while this interface is marked as public, you also need to heed the maturity annotations * on each property. A lot of these properties are at this moment alpha level. * * @public */ export declare interface IDashboardCustomizationProps extends IDashboardCustomComponentProps { /** * Provide custom configuration for the Menu button. * * @alpha */ menuButtonConfig?: IMenuButtonConfiguration; /** * Provide custom provider to change items rendered in insight menus. * * @remarks * If the function returns an empty array, the menu will not be rendered at all. * * @alpha */ insightMenuItemsProvider?: InsightMenuItemsProvider; /** * Provide custom provider to change items rendered in rich text menus. * * @remarks * If the function returns an empty array, the menu will not be rendered at all. * * @alpha */ richTextMenuItemsProvider?: RichTextMenuItemsProvider; /** * Specify customization functions. * * @remarks * The dashboard component will call out to these functions * at different points during its lifetime. See documentation of the different functions to learn more. * * @public */ customizationFns?: DashboardModelCustomizationFns; } /** * @public */ export declare interface IDashboardCustomizer { /** * Customize how rendering of insight widgets is done. */ insightWidgets(): IDashboardInsightCustomizer; /** * Register custom widget types. */ customWidgets(): IDashboardWidgetCustomizer; /** * Customize the rich text widget. */ richTextWidgets(): IRichTextCustomizer; /** * Customize the visualisation switcher widget. */ visualizationSwitcherWidgets(): IVisualizationSwitcherCustomizer; /** * Customize dashboard layout. * * @remarks * This allows the plugin to step in during initialization and modify * the existing dashboard layout before it gets stored into dashboard component's state and * before it is rendered. */ layout(): IDashboardLayoutCustomizer; /** * Customize the filter bar. */ filterBar(): IFilterBarCustomizer; /** * Customize how rendering of filters is done. */ filters(): IFiltersCustomizer; /** * Customize dashboard content. */ dashboard(): IDashboardContentCustomizer; /** * Customize topBar content. */ topBar(): ITopBarCustomizer; /** * Customize title content. */ title(): ITitleCustomizer; /** * Customize loading content. */ loading(): ILoadingCustomizer; } /** * Defines the configuration of the DateFilter component. * * @public */ export declare interface IDashboardDateFilterConfig { /** * Granularities available in the Floating range form. * @alpha */ availableGranularities: DateFilterGranularity[]; /** * A {@link @gooddata/sdk-ui-filters#IDateFilterOptionsByType} configuration of the Date Filter. * @alpha */ dateFilterOptions: IDateFilterOptionsByType; /** * Specify custom filter name. Defaults to "Date range" (or its localized equivalent). */ customFilterName?: string; } /** * @public */ export declare interface IDashboardDateFilterProps { /** * Definition of filter to render. */ filter: IDashboardDateFilter | undefined; /** * Definition of working filter used to render selected options. */ workingFilter: IDashboardDateFilter | undefined; /** * When the user interacts with the filter and changes its value, it MUST use this callback to propagate the * new filter value. * * @param filter - new date filter value * @param dateFilterOptionLocalId - localId of the {@link @gooddata/sdk-backend-spi#IDateFilterOption} selected * @param isWorkingSelectionChange - determines if the change is in working filter state (staged for application but not applied yet) */ onFilterChanged: (filter: IDashboardDateFilter | undefined, dateFilterOptionLocalId?: string, isWorkingSelectionChange?: boolean) => void; /** * Additional DateFilter configuration. */ config: IDashboardDateFilterConfig; /** * Specify whether the filter should be readonly. */ readonly?: boolean; /** * Specify whether dragging handle and grab cursor should be displayed on hover */ isDraggable?: boolean; /** * Specify whether should render filter with open dropdown */ autoOpen?: boolean; /** * Specify custom button component * * @alpha */ ButtonComponent?: ComponentType; /** * Specifies the overlay position type for the date filter dropdown. */ overlayPositionType?: OverlayPositionType; /** * Optional tab identifier to read filter context from. * When provided, the filter will use configuration from this specific tab. * When undefined, uses the active tab (default behavior). * * @remarks * This is primarily used in automation/scheduling contexts where filters from * multiple tabs need to be displayed simultaneously. * * @internal */ tabId?: string; } /** * This event is emitted at the end of successful 'dashboard delete' command processing. At this point, * the dashboard no longer exist on the backend and the component are reset to a state when it shows * an empty dashboard. * * @beta */ export declare interface IDashboardDeleted extends IDashboardEvent { readonly type: "GDC.DASH/EVT.DELETED"; readonly payload: { /** * Dashboard that was deleted. */ readonly dashboard: IDashboard; }; } /** * Payload of the {@link IDashboardDeleted} event. * @beta */ export declare interface IDashboardDeletedPayload { /** * Dashboard that was deleted. */ readonly dashboard: IDashboard; } /** * @internal */ export declare interface IDashboardDependentDateFilter { localIdentifier: string; isCommonDate: boolean; type: string; title?: string; isSelected?: boolean; dataSet?: ObjRef; from?: DateString | number; to?: DateString | number; granularity?: DateFilterGranularity; isDisabled?: boolean; } /** * This event is emitted as a result of the {@link IChangeDrillableItems} command, if drillable items was successfully changed. * * @alpha */ export declare interface IDashboardDrillableItemsChanged extends IDashboardEvent { readonly type: "GDC.DASH/EVT.DRILL.DRILLABLE_ITEMS.CHANGED"; readonly payload: IDashboardDrillableItemsChangedPayload; } /** * Payload of the {@link IDashboardDrillableItemsChanged} event. * @alpha */ export declare interface IDashboardDrillableItemsChangedPayload { /** * Drillable items that was set. */ readonly drillableItems: ExplicitDrill[]; } /** * @alpha */ export declare interface IDashboardDrillContext { /** * Particular insight that triggered the drill event. */ insight?: IInsight; /** * Particular widget that triggered the drill event. */ widget?: IWidget; } /** * This event is emitted on start of the resolution of the {@link IDrillDown} command. * It contains the target insight to apply the drill-down on (result of the drill-down application * depends on the particular visualization type). * * @alpha */ export declare interface IDashboardDrillDownRequested extends IDashboardEvent { readonly type: "GDC.DASH/EVT.DRILL.DRILL_DOWN.REQUESTED"; readonly payload: IDashboardDrillDownRequestedPayload; } /** * Payload of the {@link IDashboardDrillDownRequested} event. * @alpha */ export declare interface IDashboardDrillDownRequestedPayload { /** * Drill down definition that was applied. */ readonly drillDefinition: IDrillDownDefinition; /** * Original drill event, that triggered this particular drill interaction. */ readonly drillEvent: IDashboardDrillEvent; /** * The target insight to apply drill down on. */ readonly insight: IInsight; } /** * This event is emitted as a result of the {@link IDrillDown} command. * It contains the target insight with the drill-down definition applied (result of the drill-down application * depends on the particular visualization type). * * In the default dashboard implementation this event also opens drill dialog with the insight * that has this particular drill down definition applied. * * @alpha */ export declare interface IDashboardDrillDownResolved extends IDashboardEvent { readonly type: "GDC.DASH/EVT.DRILL.DRILL_DOWN.RESOLVED"; readonly payload: IDashboardDrillDownResolvedPayload; } /** * Payload of the {@link IDashboardDrillDownResolved} event. * @alpha */ export declare interface IDashboardDrillDownResolvedPayload { /** * Drill down definition that was applied. */ readonly drillDefinition: IDrillDownDefinition; /** * Original drill event, that triggered this particular drill interaction. */ readonly drillEvent: IDashboardDrillEvent; /** * Target insight with the drill-down definition applied. */ readonly insight: IInsight; } /** * A {@link @gooddata/sdk-ui#IDrillEvent} with added information about the drill event specific to the Dashboard context. * @beta */ export declare interface IDashboardDrillEvent extends IDrillEvent { /** * All the drilling interactions set in KPI dashboards that are relevant to the given drill event (including drill downs). */ drillDefinitions: DashboardDrillDefinition[]; /** * Reference to the widget that triggered the drill event. */ widgetRef?: ObjRef; } /** * This event is emitted on start of the resolution of the {@link IDrill} command. * It contains details about all possible drill definitions that are available for this particular drill interaction * * @alpha */ export declare interface IDashboardDrillRequested extends IDashboardEvent { readonly type: "GDC.DASH/EVT.DRILL.REQUESTED"; readonly payload: IDashboardDrillRequestedPayload; } /** * Payload of the {@link IDashboardDrillRequested} event. * @alpha */ export declare interface IDashboardDrillRequestedPayload { /** * Original drill event, that triggered this particular drill interaction. */ readonly drillEvent: IDashboardDrillEvent; /** * Context in which the drill interaction was triggered (widget and insight details - if available). */ readonly drillContext: IDashboardDrillContext; } /** * A general drill event that is emitted each time any dashboard drill is resolved. * It contains only valid drillDefinitions for this particular drill interaction, * so you can select and dispatch relevant more granular drill command(s). * * This is general dashboard drill event with details about all possible more granular drill interactions that can follow. * Reason for this general drill event is that it may happen that multiple drill interactions are possible for one drill event. * * Example: some attribute on the insight has drilled down set and also widget has drilled to insight set. Then this event will be dispatched with both * {@link @gooddata/sdk-ui-ext#IDrillDownDefinition} and {@link @gooddata/sdk-backend-spi#IDrillToInsight} definitions. * * - This must be always the first event that occurs after the drill interaction, and must be dispatched before more granular drill events. * - Specific drill commands that can follow this general drill event are: {@link IDrillDown}, {@link IDrillToInsight}, {@link IDrillToDashboard}, * {@link IDrillToCustomUrl}, {@link IDrillToAttributeUrl}, {@link IDrillToLegacyDashboard} * * @alpha */ export declare interface IDashboardDrillResolved extends IDashboardEvent { readonly type: "GDC.DASH/EVT.DRILL.RESOLVED"; readonly payload: IDashboardDrillResolvedPayload; } /** * Payload of the {@link IDashboardDrillResolved} event. * @alpha */ export declare interface IDashboardDrillResolvedPayload { /** * Original drill event, that triggered this particular drill interaction. */ readonly drillEvent: IDashboardDrillEvent; /** * Context in which the drill interaction was triggered (widget and insight details - if available). */ readonly drillContext: IDashboardDrillContext; } /** * This event is emitted on start of the resolution of the {@link IDrillToAttributeUrl} command. * * @alpha */ export declare interface IDashboardDrillToAttributeUrlRequested extends IDashboardEvent { readonly type: "GDC.DASH/EVT.DRILL.DRILL_TO_ATTRIBUTE_URL.REQUESTED"; readonly payload: IDashboardDrillToAttributeUrlRequestedPayload; } /** * Payload of the {@link IDashboardDrillToAttributeUrlRequested} event. * @alpha */ export declare interface IDashboardDrillToAttributeUrlRequestedPayload { /** * Original drill event, that triggered this particular drill interaction. */ readonly drillEvent: IDashboardDrillEvent; /** * Drill definition with the attribute url that was resolved. */ readonly drillDefinition: IDrillToAttributeUrl_2; } /** * This event is emitted as a result of the {@link IDrillToAttributeUrl} command. * It contains resolved attribute url from the drill definition. * * @alpha */ export declare interface IDashboardDrillToAttributeUrlResolved extends IDashboardEvent { readonly type: "GDC.DASH/EVT.DRILL.DRILL_TO_ATTRIBUTE_URL.RESOLVED"; readonly payload: IDashboardDrillToAttributeUrlResolvedPayload; } /** * Payload of the {@link IDashboardDrillToAttributeUrlResolved} event. * @alpha */ export declare interface IDashboardDrillToAttributeUrlResolvedPayload { /** * Original drill event, that triggered this particular drill interaction. */ readonly drillEvent: IDashboardDrillEvent; /** * Drill definition with the attribute url that was resolved. */ readonly drillDefinition: IDrillToAttributeUrl_2; /** * Resolved attribute url. */ readonly url: string; /** * Information about filters used on the dashboard. */ readonly filtersInfo: FiltersInfo; /** * drill is implicit generated on the fly base on metadata model or configured by user */ readonly isImplicit: boolean; } /** * This event is emitted on start of the resolution of the {@link IDrillToCustomUrl} command. * * @alpha */ export declare interface IDashboardDrillToCustomUrlRequested extends IDashboardEvent { readonly type: "GDC.DASH/EVT.DRILL.DRILL_TO_CUSTOM_URL.REQUESTED"; readonly payload: IDashboardDrillToCustomUrlRequestedPayload; } /** * Payload of the {@link IDashboardDrillToCustomUrlRequested} event. * @alpha */ export declare interface IDashboardDrillToCustomUrlRequestedPayload { /** * Original drill event, that triggered this particular drill interaction. */ readonly drillEvent: IDashboardDrillEvent; /** * Drill definition with the custom url that was resolved. */ readonly drillDefinition: IDrillToCustomUrl_2; } /** * This event is emitted as a result of the {@link IDrillToCustomUrl} command. * It contains resolved custom url from the drill definition. * * @alpha */ export declare interface IDashboardDrillToCustomUrlResolved extends IDashboardEvent { readonly type: "GDC.DASH/EVT.DRILL.DRILL_TO_CUSTOM_URL.RESOLVED"; readonly payload: IDashboardDrillToCustomUrlResolvedPayload; } /** * Payload of the {@link IDashboardDrillToCustomUrlResolved} event. * @alpha */ export declare interface IDashboardDrillToCustomUrlResolvedPayload { /** * Original drill event, that triggered this particular drill interaction. */ readonly drillEvent: IDashboardDrillEvent; /** * Drill definition with the custom url that was resolved. */ readonly drillDefinition: IDrillToCustomUrl_2; /** * Resolved custom url. */ readonly url: string; /** * Information about filters used on the dashboard. */ readonly filtersInfo: FiltersInfo; } /** * This event is emitted on start of the resolution of the {@link IDrillToDashboard} command. * * @alpha */ export declare interface IDashboardDrillToDashboardRequested extends IDashboardEvent { readonly type: "GDC.DASH/EVT.DRILL.DRILL_TO_DASHBOARD.REQUESTED"; readonly payload: IDashboardDrillToDashboardRequestedPayload; } /** * Payload of the {@link IDashboardDrillToDashboardRequested} event. * @alpha */ export declare interface IDashboardDrillToDashboardRequestedPayload { /** * Original drill event, that triggered this particular drill interaction. */ readonly drillEvent: IDashboardDrillEvent; /** * Drill definition with the target dashboard. */ readonly drillDefinition: IDrillToDashboard_2; } /** * This event is emitted as a result of the {@link IDrillToDashboard} command. * It contains the drill intersection filters that can be applied to the target dashboard. * * There is a factory function to create default event handler for drill to same dashboard - see {@link newDrillToSameDashboardHandler}. * * @alpha */ export declare interface IDashboardDrillToDashboardResolved extends IDashboardEvent { readonly type: "GDC.DASH/EVT.DRILL.DRILL_TO_DASHBOARD.RESOLVED"; readonly payload: IDashboardDrillToDashboardResolvedPayload; } /** * Payload of the {@link IDashboardDrillToDashboardResolved} event. * @alpha */ export declare interface IDashboardDrillToDashboardResolvedPayload { /** * Drill intersection filters that can be applied to the target dashboard. */ readonly filters: (IDashboardFilter | FilterContextItem)[]; /** * Attribute filter configs with additional props */ readonly attributeFilterConfigs: IDashboardAttributeFilterConfig[]; /** * Source dashboard's active parameter overrides, applied to the target where parameter refs match. */ readonly parameters: IInsightParameterValue[]; /** * Original drill event, that triggered this particular drill interaction. */ readonly drillEvent: IDashboardDrillEvent; /** * Drill definition with the target dashboard. */ readonly drillDefinition: IDrillToDashboard_2; } /** * This event is emitted on start of the resolution of the {@link IDrillToInsight} command. * It contains the target insight to apply drill intersection filters on. * * @alpha */ export declare interface IDashboardDrillToInsightRequested extends IDashboardEvent { readonly type: "GDC.DASH/EVT.DRILL.DRILL_TO_INSIGHT.REQUESTED"; readonly payload: IDashboardDrillToInsightRequestedPayload; } /** * Payload of the {@link IDashboardDrillToInsightRequested} event. * @alpha */ export declare interface IDashboardDrillToInsightRequestedPayload { /** * Drill definition with the target insight. */ readonly drillDefinition: IDrillToInsight_2; /** * Original drill event, that triggered this particular drill interaction. */ readonly drillEvent: IDashboardDrillEvent; /** * Target insight with the drill intersection filters applied. */ readonly insight: IInsight; } /** * This event is emitted as a result of the {@link IDrillToInsight} command. * It contains the target insight with the drill intersection filters applied. * * In the default dashboard implementation this event also opens drill dialog with the insight * that has the drill intersection filters applied. * * @alpha */ export declare interface IDashboardDrillToInsightResolved extends IDashboardEvent { readonly type: "GDC.DASH/EVT.DRILL.DRILL_TO_INSIGHT.RESOLVED"; readonly payload: IDashboardDrillToInsightResolvedPayload; } /** * Payload of the {@link IDashboardDrillToInsightResolved} event. * @alpha */ export declare interface IDashboardDrillToInsightResolvedPayload { /** * Drill definition with the target insight. */ readonly drillDefinition: IDrillToInsight_2; /** * Original drill event, that triggered this particular drill interaction. */ readonly drillEvent: IDashboardDrillEvent; /** * Target insight with the drill intersection filters applied. */ readonly insight: IInsight; } /** * This event is emitted on start of the resolution of the {@link IDrillToLegacyDashboard} command. * * @alpha */ export declare interface IDashboardDrillToLegacyDashboardRequested extends IDashboardEvent { readonly type: "GDC.DASH/EVT.DRILL.DRILL_TO_LEGACY_DASHBOARD.REQUESTED"; readonly payload: IDashboardDrillToLegacyDashboardRequestedPayload; } /** * Payload of the {@link IDashboardDrillToLegacyDashboardRequested} event. * @alpha */ export declare interface IDashboardDrillToLegacyDashboardRequestedPayload { /** * Original drill event, that triggered this particular drill interaction. */ readonly drillEvent: IDashboardDrillEvent; /** * Drill definition with the drill information. */ readonly drillDefinition: IDrillToLegacyDashboard_2; } /** * This event is emitted as a result of the {@link IDrillToLegacyDashboard} command. * * Drill to legacy dashboard can be configured for Kpi widgets only. * * @alpha */ export declare interface IDashboardDrillToLegacyDashboardResolved extends IDashboardEvent { readonly type: "GDC.DASH/EVT.DRILL.DRILL_TO_LEGACY_DASHBOARD.RESOLVED"; readonly payload: IDashboardDrillToLegacyDashboardResolvedPayload; } /** * Payload of the {@link IDashboardDrillToLegacyDashboardResolved} event. * @alpha */ export declare interface IDashboardDrillToLegacyDashboardResolvedPayload { /** * Original drill event, that triggered this particular drill interaction. */ readonly drillEvent: IDashboardDrillEvent; /** * Drill definition with the drill information. */ readonly drillDefinition: IDrillToLegacyDashboard_2; } /** * Dashboard Engine encapsulates a particular build of the {@link Dashboard} component and provides * factory methods to create the Dashboard component's customization-related props using one or more * plugins. * * @public */ export declare interface IDashboardEngine { /** * Version of the dashboard engine. */ readonly version: string; /** * Drives initialization of loaded dashboard plugins and their registration logic. * * @remarks * During registration, the plugins register their customizations, contributions and event handlers. * * The plugin' contributions will be used to construct the dashboard extension props which can then be * used as input to the dashboard component itself and thus achieve the integration of the plugins * into the dashboard. * * @param ctx - dashboard context in which the plugins operate * @param plugins - plugins to initialize */ initializePlugins(ctx: DashboardContext, plugins: IDashboardPluginContract_V1[]): IDashboardExtensionProps; /** * Returns Dashboard component provided by this dashboard engine. */ getDashboardComponent(): ComponentType; } /** * Base type for all dashboard events. * * @typeParam TPayload - type of the event's additional data * @public */ export declare interface IDashboardEvent { /** * Event type. Always starts with "GDC.DASH/EVT". */ readonly type: DashboardEventType; /** * If this event was triggered as part of a command processing, then the prop will contain command's correlation ID. */ readonly correlationId?: string; /** * Dashboard context in which the event occurred. */ readonly ctx: DashboardContext; /** * Specify any additional data the custom event needs. */ readonly payload?: TPayload; /** * Metadata about the event useful for logging and handling of the event. */ readonly meta?: { /** * When the event was accepted by the Dashboard store and emitted. */ acceptedTimestamp: number; }; } /** * Defines a facade that you can use to register or unregister dashboard event handlers. * * @public */ export declare interface IDashboardEventHandling { /** * Adds a handler for particular event type. * * @remarks * Every time event of that type occurs, the provided callback function will be triggered. * * @param eventType - type of the event to handle; this can be either built-event event type (see {@link DashboardEventType}), a custom * event type or `'*'` to register handler for all events * @param callback - function to call when the event occurs */ addEventHandler(eventType: string, callback: DashboardEventHandlerFn): IDashboardEventHandling; /** * Removes a handler for particular event type. This is reverse operation to {@link IDashboardEventHandling.addEventHandler}. * * @remarks * In order for this method to remove a handler, the arguments must be the same when you added the handler. * * E.g. it is not possible to add a handler for all events using `'*'` and then subtract just one particular event * from handling. * * @param eventType - type of the event to stop handling; this can be either built-event event type (see {@link DashboardEventType}), a custom * event type or `'*'` to register handler for all events * @param callback - originally registered callback function * @returns self, for call chaining sakes */ removeEventHandler(eventType: string, callback: DashboardEventHandlerFn): IDashboardEventHandling; /** * Adds a custom event handler. This is a lower-level API where the handler can include both the function to * evaluate events and the function to trigger when the evaluation succeeds. * * @remarks * Attempts to register same handler twice will be ignored. * * @param handler - event handler to add * @returns self, for call chaining sakes */ addCustomEventHandler(handler: DashboardEventHandler): IDashboardEventHandling; /** * Removes custom event handler. * * @remarks * In order for successful removal the entire handler object must be exactly the same as the one * that was used when you added the handler. * * @param handler - event handler to remove * @returns self, for call chaining sakes */ removeCustomEventHandler(handler: DashboardEventHandler): IDashboardEventHandling; /** * Subscribe to state changes of the dashboard. * * @remarks * There is no need to use this if all you need is your custom React components to get up-to-date state. Your * React component code can (and really should) use the {@link @gooddata/sdk-ui-dashboard#useDashboardSelector} and * {@link @gooddata/sdk-ui-dashboard#useDashboardDispatch} hooks instead. * * Subscription to state changes is only really needed if you have custom code outside of React components and * you need to extract custom data from state using the selectors API. * * See also {@link SingleDashboardStoreAccessor} and {@link DashboardStoreAccessorRepository} for utility classes * that make managing the callback subscriptions more convenient. * * @param callback - function to call when dashboard state changes; the function will be called with * two parameters: the new state and an instance of dispatch to use. * @returns self, for call chaining sakes */ subscribeToStateChanges(callback: DashboardStateChangeCallback): IDashboardEventHandling; /** * Unsubscribe from receiving calls about state changes of the dashboard. * * @param callback - callback that was previously used for subscription * @returns self, for call chaining sakes */ unsubscribeFromStateChanges(callback: DashboardStateChangeCallback): IDashboardEventHandling; } /** * {@link Dashboard} eventing configuration * * @remarks * Dashboard Component eventing is divided into two major groups: * * 1. Domain events describing what is happening on the dashboard or with the dashboard * 2. Infrastructural events required hook into different technical aspects of the dashboard component * implementation. * * Dashboard Component treats the domain events using the typical pub-sub semantics. It is possible to * register any number of subscribers for the different types of events. Types of events are enumerated and * each event comes with its own type describing the contents. Please see {@link @gooddata/sdk-ui-dashboard#DashboardEventType} * and {@link @gooddata/sdk-ui-dashboard#DashboardEvents} to learn more. * * The infrastructural events are handled using callbacks. There are only few of these infr * * @public */ export declare interface IDashboardEventing { /** * Specify event handlers to register at the dashboard creation time. * * @remarks * Note: all events that will be emitted during the initial load processing will have the `initialLoad` * correlationId. */ eventHandlers?: DashboardEventHandler[]; /** * Specify callback that will be called when the dashboard eventing subsystem initializes and * it is possible to register new or unregister existing event handlers. * * @remarks * Note: these callbacks allow modification of event handlers on an existing, initialized dashboard. See * {@link IDashboardEventing.eventHandlers} prop if you want to register handlers _before_ the dashboard * initialization starts. */ onEventingInitialized?: (registerEventHandler: (handler: DashboardEventHandler) => void, unregisterEventHandler: (handler: DashboardEventHandler) => void) => void; /** * Specify callback that will be called each time the state changes. * * @remarks * Note: there is no need to use this in your own React components that you plug into the dashboard. Your * React component code can use {@link @gooddata/sdk-ui-dashboard#useDashboardSelector} and * {@link @gooddata/sdk-ui-dashboard#useDashboardDispatch} hooks instead. */ onStateChange?: (state: DashboardState, dispatch: DashboardDispatch) => void; } /** * @alpha */ export declare interface IDashboardEventsContext { registerHandler: (handler: DashboardEventHandler) => void; unregisterHandler: (handler: DashboardEventHandler) => void; } /** * @alpha * * Specifies the size of the slide where visualization will be fit and rendered. */ export declare interface IDashboardExportSlideConfig { /** * Preferred width of slide in export mode. */ width: number; /** * Preferred height of slide in export mode. */ height: number; } /** * This event is emitted at the start of the 'dashboard export to Excel' command processing. * * @beta */ export declare interface IDashboardExportToExcelRequested extends IDashboardEvent { readonly type: "GDC.DASH/EVT.EXPORT.EXCEL.REQUESTED"; } /** * This event is emitted at the end of successful 'dashboard export to Excel' command processing. * In its payload, there is a uri of the resulting XLS file. * * @beta */ export declare interface IDashboardExportToExcelResolved extends IDashboardEvent { readonly type: "GDC.DASH/EVT.EXPORT.EXCEL.RESOLVED"; readonly payload: IDashboardExportToExcelResolvedPayload; } /** * Payload of the {@link IDashboardExportToExcelResolved} event. * @beta */ export declare interface IDashboardExportToExcelResolvedPayload { /** * URI of the resulting file that can be used to download it. */ readonly resultUri: string; /** * Collection of information used to download the resulting file. */ readonly result: IExportResult; } /** * This event is emitted at the start of the 'dashboard export to image' command processing. * * @beta */ export declare interface IDashboardExportToImageRequested extends IDashboardEvent { readonly type: "GDC.DASH/EVT.EXPORT.IMAGE.REQUESTED"; } /** * This event is emitted at the end of successful 'dashboard export to image' command processing. * In its payload, there is a uri of the resulting image file. * * @beta */ export declare interface IDashboardExportToImageResolved extends IDashboardEvent { readonly type: "GDC.DASH/EVT.EXPORT.IMAGE.RESOLVED"; readonly payload: IDashboardExportToImageResolvedPayload; } /** * Payload of the {@link IDashboardExportToPptPresentationResolved} event. * @beta */ export declare interface IDashboardExportToImageResolvedPayload { /** * URI of the resulting file that can be used to download it. */ readonly resultUri: string; /** * Collection of information used to download the resulting file. */ readonly result: IExportResult; } /** * This event is emitted at the start of the 'dashboard export to PDF presentation' command processing. * * @beta */ export declare interface IDashboardExportToPdfPresentationRequested extends IDashboardEvent { readonly type: "GDC.DASH/EVT.EXPORT.PDF_PRESENTATION.REQUESTED"; } /** * This event is emitted at the end of successful 'dashboard export to PDF presentation' command processing. * In its payload, there is a uri of the resulting PDF file. * * @beta */ export declare interface IDashboardExportToPdfPresentationResolved extends IDashboardEvent { readonly type: "GDC.DASH/EVT.EXPORT.PDF_PRESENTATION.RESOLVED"; readonly payload: IDashboardExportToExcelResolvedPayload; } /** * Payload of the {@link IDashboardExportToPdfPresentationResolved} event. * @beta */ export declare interface IDashboardExportToPdfPresentationResolvedPayload { /** * URI of the resulting file that can be used to download it. */ readonly resultUri: string; /** * Collection of information used to download the resulting file. */ readonly result: IExportResult; } /** * This event is emitted at the start of the 'dashboard export to PDF' command processing. * * @beta */ export declare interface IDashboardExportToPdfRequested extends IDashboardEvent { readonly type: "GDC.DASH/EVT.EXPORT.PDF.REQUESTED"; } /** * This event is emitted at the end of successful 'dashboard export to PDF' command processing. * In its payload, there is a uri of the resulting PDF file. * * @beta */ export declare interface IDashboardExportToPdfResolved extends IDashboardEvent { readonly type: "GDC.DASH/EVT.EXPORT.PDF.RESOLVED"; readonly payload: IDashboardExportToPdfResolvedPayload; } /** * Payload of the {@link IDashboardExportToPdfResolved} event. * @beta */ export declare interface IDashboardExportToPdfResolvedPayload { /** * URI of the resulting file that can be used to download it. */ readonly resultUri: string; /** * Collection of information used to download the resulting file. */ readonly result: IExportResult; } /** * This event is emitted at the start of the 'dashboard export to PPT presentation' command processing. * * @beta */ export declare interface IDashboardExportToPptPresentationRequested extends IDashboardEvent { readonly type: "GDC.DASH/EVT.EXPORT.PPT_PRESENTATION.REQUESTED"; } /** * This event is emitted at the end of successful 'dashboard export to PPT presentation' command processing. * In its payload, there is a uri of the resulting PDF file. * * @beta */ export declare interface IDashboardExportToPptPresentationResolved extends IDashboardEvent { readonly type: "GDC.DASH/EVT.EXPORT.PPT_PRESENTATION.RESOLVED"; readonly payload: IDashboardExportToExcelResolvedPayload; } /** * Payload of the {@link IDashboardExportToPptPresentationResolved} event. * @beta */ export declare interface IDashboardExportToPptPresentationResolvedPayload { /** * URI of the resulting file that can be used to download it. */ readonly resultUri: string; /** * Collection of information used to download the resulting file. */ readonly result: IExportResult; } /** * Cumulative properties for {@link Dashboard} customization. * * @remarks * IMPORTANT: while this interface is marked as public, you also need to heed the maturity annotations * on each property. A lot of these properties are at this moment alpha level. * * @public */ export declare interface IDashboardExtensionProps extends IDashboardEventing, IDashboardCustomizationProps, IDashboardWidgetsOverlayProps, IDashboardThemingProps { /** * Pass instance of ReactReduxContext where the dashboard component's store should be saved. * * @remarks * * This is essential if you are dynamically loading dashboard engine and then enriching the * dashboard with embedded, local plugins. If such plugins are compiled against sdk-ui-dashboard and * use Redux hooks (useDashboardSelect, useDashboardDispatch) then your solution will not work * unless you explicitly send your application's `ReactDashboardContext` into this prop. * * Note: there is no need to use this prop unless you are dynamically loading the engine bundle. */ additionalReduxContext?: Context; } /** * Supported dashboard filter type. * @public */ export declare type IDashboardFilter = IAbsoluteDateFilter | IRelativeDateFilter | IPositiveAttributeFilter | INegativeAttributeFilter | IArbitraryAttributeFilter | IMatchAttributeFilter | IMeasureValueFilter; /** * This event is emitted after dashboard selection filters have been reset. * * @alpha */ export declare interface IDashboardFilterContextSelectionReset extends IDashboardEvent { readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.SELECTION.RESET"; } /** * This event is emitted after dashboard working selection filters have been applied. * * @alpha */ export declare interface IDashboardFilterContextWorkingSelectionApplied extends IDashboardEvent { readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.WORKING_SELECTION.APPLIED"; } /** * @public */ export declare interface IDashboardFilterGroupProps { groupItem: IFilterBarFilterGroupItem; onAttributeFilterChanged: (filter: DashboardAttributeFilterItem) => void; onMeasureValueFilterChanged?: (filter: IDashboardMeasureValueFilter, conditions: MeasureValueFilterCondition[] | undefined, isWorkingSelectionChange?: boolean) => void; DashboardAttributeFilterComponent?: CustomDashboardAttributeFilterComponent; DashboardMeasureValueFilterComponent?: CustomDashboardMeasureValueFilterComponent; } /** * This event is emitted after a dashboard filter view application failed. * * @alpha */ export declare interface IDashboardFilterViewApplicationFailed extends IDashboardEvent { readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.FILTER_VIEW.APPLY.FAILURE"; } /** * This event is emitted after a dashboard filter view is successfully applied. * * @alpha */ export declare interface IDashboardFilterViewApplicationSucceeded extends IDashboardEvent { readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.FILTER_VIEW.APPLY.SUCCESS"; readonly payload: IDashboardFilterViewApplicationSucceededPayload; } /** * Payload of the {@link IDashboardFilterViewApplicationSucceeded} event. * * @alpha */ export declare interface IDashboardFilterViewApplicationSucceededPayload { readonly filterView: IDashboardFilterView; } /** * This event is emitted after a new dashboard filter view creation failed. * * @alpha */ export declare interface IDashboardFilterViewCreationFailed extends IDashboardEvent { readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.FILTER_VIEW.CREATE.FAILURE"; } /** * This event is emitted after a new dashboard filter view is successfully created. * * @alpha */ export declare interface IDashboardFilterViewCreationSucceeded extends IDashboardEvent { readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.FILTER_VIEW.CREATE.SUCCESS"; readonly payload: IDashboardFilterViewCreationSucceededPayload; } /** * Payload of the {@link IDashboardFilterViewCreationSucceeded} event. * * @alpha */ export declare interface IDashboardFilterViewCreationSucceededPayload { readonly filterView: IDashboardFilterView; } /** * This event is emitted after a dashboard filter view default status change failed. * * @alpha */ export declare interface IDashboardFilterViewDefaultStatusChangeFailed extends IDashboardEvent { readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.FILTER_VIEW.CHANGE_DEFAULT_STATUS.FAILURE"; readonly payload: IDashboardFilterViewDefaultStatusChangeFailedPayload; } /** * Payload of the {@link IDashboardFilterViewDefaultStatusChangeFailed} event. * * @alpha */ export declare interface IDashboardFilterViewDefaultStatusChangeFailedPayload { readonly filterView: IDashboardFilterView; } /** * This event is emitted after a dashboard filter view default status is successfully changed. * See the enclosed filterView object in the payload to check its new status. * * @alpha */ export declare interface IDashboardFilterViewDefaultStatusChangeSucceeded extends IDashboardEvent { readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.FILTER_VIEW.CHANGE_DEFAULT_STATUS.SUCCESS"; readonly payload: IDashboardFilterViewDefaultStatusChangeSucceededPayload; } /** * Payload of the {@link IDashboardFilterViewDefaultStatusChangeSucceeded} event. * * @alpha */ export declare interface IDashboardFilterViewDefaultStatusChangeSucceededPayload { readonly filterView: IDashboardFilterView; } /** * This event is emitted after a dashboard filter view deletion failed. * * @alpha */ export declare interface IDashboardFilterViewDeletionFailed extends IDashboardEvent { readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.FILTER_VIEW.DELETE.FAILURE"; } /** * This event is emitted after a dashboard filter view is successfully deleted. * * @alpha */ export declare interface IDashboardFilterViewDeletionSucceeded extends IDashboardEvent { readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.FILTER_VIEW.DELETE.SUCCESS"; readonly payload: IDashboardFilterViewDeletionSucceededPayload; } /** * Payload of the {@link IDashboardFilterViewDeletionSucceeded} event. * * @alpha */ export declare interface IDashboardFilterViewDeletionSucceededPayload { readonly filterView: IDashboardFilterView; } /** * @beta * * Specifies the focus object for the dashboard. */ export declare interface IDashboardFocusObject { /** * @beta * If provided, the dashboard will be opened in the context of the given automation. * This means, that target widget will be focused in the dashboard, * and filter context will be set to the one used in the automation. */ automationId?: Identifier; /** * @beta * If provided, the dashboard will be opened in the context of the given widget. * This means, that target widget will be focused in the dashboard. * * @remarks This property is not a formal MD identifier */ widgetId?: string; /** * @beta * If provided, the dashboard will be opened in the context of the given visualization. * This means, that target visualizations represented by widgets will be focused in the dashboard. */ visualizationId?: Identifier; } /** * This event is emitted at the end of successful 'change ignore execution timestamp' command processing. * * When executionTimestamp is provided to the dashboard, each execution is using this timestamp. This event instructs the * application to react on the ignore flag for execution timestamp in all following executions. * * @alpha */ export declare interface IDashboardIgnoreExecutionTimestampChanged extends IDashboardEvent { readonly type: "GDC.DASH/EVT.IGNORE_EXECUTION_TIMESTAMP_CHANGED"; readonly payload: IDashboardIgnoreExecutionTimestampChangedPayload; } /** * Payload of the {@link IDashboardIgnoreExecutionTimestampChanged} event. * @alpha */ export declare interface IDashboardIgnoreExecutionTimestampChangedPayload { /** * New ignore execution timestamp value. */ ignoreExecutionTimestamp: boolean; } /** * Set of functions you can use to customize how insights are rendered. * * @public */ export declare interface IDashboardInsightCustomizer { /** * A convenience method that will register a specific React component to use for rendering * any insight that is tagged with the provided `tag`. * * @remarks * If plugins register multiple providers for the same tag, then the provider will be picked * using 'last-win' strategy. * * @param tag - tag to look for on the insight, this function will do nothing if this argument is an empty string * @param component - component to use if the tag is found * @returns self, for call chaining sakes */ withTag(tag: string, component: CustomDashboardInsightComponent): IDashboardInsightCustomizer; /** * Register a provider for React components to render insights. * * @remarks * A provider takes the insight and widget that it is part of as input and is expected to return * a React component that should be used to render that insight. * * If the provider returns `undefined` then: * * - if there are other providers registered, they will be called to see if they can provide * a component to render the insight * - if there are no other providers registered, the default, built-in component will be used. * * You may register multiple providers. They will be evaluated in the order you register them. * * See the {@link IDashboardInsightCustomizer.withTag} convenience method to register components for insights * with particular tags. * @param provider - provider to register * @returns self, for call chaining sakes */ withCustomProvider(provider: OptionalInsightComponentProvider): IDashboardInsightCustomizer; /** * Register a provider for React components to render insight body inside of the {@link DefaultDashboardInsight}. * * @remarks * A provider takes the insight and widget that it is part of as input and is expected to return * a React component that should be used to render that insight. * * If the provider returns `undefined` then: * * - if there are other providers registered, they will be called to see if they can provide * a component to render the insight * - if there are no other providers registered, the default, built-in component will be used. * * You may register multiple providers. They will be evaluated in the order you register them. * @param provider - provider to register * @returns self, for call chaining sakes * @alpha */ withCustomInsightBodyProvider(provider: OptionalInsightBodyComponentProvider): IDashboardInsightCustomizer; /** * Register a factory for insight decorator providers. * * @remarks * Decorators are a way to add customizations or embellishments on top * of an existing component. Decorators are more complex to write because they need to work with the component * they should decorate and add 'something' on top of that component. * * This is best illustrated on an example: * * @example * ``` * withCustomDecorator((next) => { * return (insight, widget) => { * if (some_condition_to_prevent_decoration) { * return undefined; * } * * // Make sure you call this outside the component render function, * // otherwise a new instance of the decorated component is created on each re-render. * const Decorated = next(insight, widget); * * function MyCustomDecorator(props) { * return ( *
*

My Custom Decoration

* *
* ) * } * * return MyCustomDecorator; * } * }) * ``` * * The above shows how to register a decorator that will use some condition to determine whether particular * insight is eligible for decoration. If yes, it will add some extra text in front of the insight. Decorator * defers rendering of the actual insight to the underlying provider. * * Note: the factory function that you specify will be called immediately at the registration time. The * provider that it returns will be called at render time. * * @param providerFactory - factory */ withCustomDecorator(providerFactory: (next: InsightComponentProvider) => OptionalInsightComponentProvider): IDashboardInsightCustomizer; } /** * @alpha */ export declare interface IDashboardInsightMenuButtonProps { widget: IInsightWidget; insight?: IInsight; isOpen: boolean; onClick: () => void; items: IInsightMenuItem[]; } /** * @alpha */ export declare interface IDashboardInsightMenuProps { widget: IInsightWidget; insight?: IInsight; isOpen: boolean; onClose: () => void; items: IInsightMenuItem[]; } /** * @internal */ export declare interface IDashboardInsightMenuTitleProps { widget: IInsightWidget; insight?: IInsight; renderMode: RenderMode; titleId?: string; } /** * Insight widget props. * * @remarks * IMPORTANT: this interface is marked as public but not all properties in it are suitable for public consumption * yet. Please heed the per-property API maturity annotations; the alpha level APIs may change in a breaking way * in the next release. * * @public */ export declare interface IDashboardInsightProps { /** * Backend to work with. * * @remarks * Note: the backend must come either from this property or from BackendContext. If you do not specify * backend here, then the component MUST be rendered within an existing BackendContext. * * @alpha */ backend?: IAnalyticalBackend; /** * Workspace where the Insight widget exists. * * @remarks * Note: the workspace must come either from this property or from WorkspaceContext. If you do not specify * workspace here, then the component MUST be rendered within an existing WorkspaceContext. * * @alpha */ workspace?: string; /** * Definition of insight widget to render. * * @public */ widget: IInsightWidget; /** * An insight to render. * * @remarks * Note: the insight object provided here represents the insight as it is stored on the backend. It does * not reflect dashboard filters that should be applied when computing data for this insight. * * Use the `useWidgetFilters()` to obtain filters to use on this insight. Use those filters to replace * all insight filters using `insightSetFilters()` function available in `@gooddata/sdk-model`. * * @public */ insight: IInsight; /** * Error component to use when insight rendering fails for any reason. * * @alpha */ ErrorComponent: ComponentType; /** * Loading component to use while loading and preparing data to render. * * @alpha */ LoadingComponent: ComponentType; /** * @alpha */ clientHeight?: number; /** * @alpha */ clientWidth?: number; /** * @alpha */ onDrill?: OnWidgetDrill; /** * @alpha */ onDrillDown?: OnDrillDownSuccess; /** * @alpha */ onDrillToInsight?: OnDrillToInsightSuccess; /** * @alpha */ onDrillToDashboard?: OnDrillToDashboardSuccess; /** * @alpha */ onDrillToAttributeUrl?: OnDrillToAttributeUrlSuccess; /** * @alpha */ onDrillToCustomUrl?: OnDrillToCustomUrlSuccess; /** * @alpha */ onKeyDriverAnalysisSuccess?: OnKeyDriverAnalysisSuccess; /** * @internal */ onWidgetFiltersReady?: (filters?: IFilter[]) => void; /** * @alpha */ onError?: OnError; /** * @alpha */ onLoadingChanged?: OnLoadingChanged; /** * @alpha */ onExportReady?: OnExportReady; /** * @internal */ pushData?: (data: IPushData) => void; /** * @alpha */ exportData?: WidgetExportDataAttributes; /** * @internal */ afterRender?: () => void; /** * @internal */ minimalHeight?: number; /** * @internal */ minimalWidth?: number; /** * This property contains current drill step context. * * It is undefined if rendered insight is placed directly in the dashboard. * It is defined when the insight is rendered in a drill dialog. */ drillStep?: IDrillStep; /** * @internal */ isWidgetAsTable?: boolean; /** * @internal */ returnFocusToInsight?: (force?: boolean) => void; /** * @internal */ onDrillStart?: OnDashboardDrill; } /** * This event is emitted after any change to Insight Widget configuration. It contains the entire new state of the * Insight Widget. * * @beta */ export declare interface IDashboardInsightWidgetChanged extends IDashboardEvent { readonly type: "GDC.DASH/EVT.INSIGHT_WIDGET.WIDGET_CHANGED"; readonly payload: IDashboardInsightWidgetChangedPayload; } /** * Payload of the {@link IDashboardInsightWidgetChanged} event. * @beta */ export declare interface IDashboardInsightWidgetChangedPayload { /** * The entire definition of the insight widget after the change. */ insightWidget: IInsightWidget | IInsightWidgetDefinition; } /** * This event is emitted when the description of an insight widget changed. The new value of the description (summary) * is included in the event. * * @beta */ export declare interface IDashboardInsightWidgetDescriptionChanged extends IDashboardEvent { readonly type: "GDC.DASH/EVT.INSIGHT_WIDGET.DESCRIPTION_CHANGED"; readonly payload: IDashboardInsightWidgetDescriptionChangedPayload; } /** * Payload of the {@link IDashboardInsightWidgetDescriptionChanged} event. * @beta */ export declare interface IDashboardInsightWidgetDescriptionChangedPayload { /** * Reference to Insight Widget that was changed. */ readonly ref: ObjRef; /** * New widget description that is now used on the widget. */ readonly description: IWidgetDescription; } /** * This event is emitted when the insight widget's drill definitions change. The change may include * addition or change of drill definition for one or more drillable measures. * * @beta */ export declare interface IDashboardInsightWidgetDrillsModified extends IDashboardEvent { readonly type: "GDC.DASH/EVT.INSIGHT_WIDGET.DRILLS_MODIFIED"; readonly payload: IDashboardInsightWidgetDrillsModifiedPayload; } /** * Payload of the {@link IDashboardInsightWidgetDrillsModified} event. * @beta */ export declare interface IDashboardInsightWidgetDrillsModifiedPayload { /** * Reference to Insight Widget that was changed. */ readonly ref: ObjRef; /** * Drill definitions that were newly added. There will be at most one drill definition for drillable * measure. */ readonly added: DrillDefinition[]; /** * Drill definitions that were updated. For each measure that was already set up with a drill definition, * there will be the new drill definition. */ readonly updated: DrillDefinition[]; } /** * This event is emitted when the insight widget's drill definitions are removed. The measures for which * the drill definitions were set up will no longer be clickable. * * @beta */ export declare interface IDashboardInsightWidgetDrillsRemoved extends IDashboardEvent { readonly type: "GDC.DASH/EVT.INSIGHT_WIDGET.DRILLS_REMOVED"; readonly payload: IDashboardInsightWidgetDrillsRemovedPayload; } /** * Payload of the {@link IDashboardInsightWidgetDrillsRemoved} event. * @beta */ export declare interface IDashboardInsightWidgetDrillsRemovedPayload { /** * Reference to Insight Widget that was changed. */ readonly ref: ObjRef; /** * Drill definitions that were removed. */ readonly removed: DrillDefinition[]; } /** * This event is emitted after export of an insight widget is requested. * * @beta */ export declare interface IDashboardInsightWidgetExportRequested extends IDashboardEvent { readonly type: "GDC.DASH/EVT.INSIGHT_WIDGET.EXPORT_REQUESTED"; readonly payload: IDashboardInsightWidgetExportRequestedPayload; } /** * Payload of the {@link IDashboardInsightWidgetExportRequested} event. * @beta */ export declare interface IDashboardInsightWidgetExportRequestedPayload { /** * Reference to the Insight to be exported. */ readonly ref: ObjRef; /** * Additional configuration of the export. */ readonly config: IExportConfig; } /** * This event is emitted after export of an insight widget is resolved. * * @beta */ export declare interface IDashboardInsightWidgetExportResolved extends IDashboardEvent { readonly type: "GDC.DASH/EVT.INSIGHT_WIDGET.EXPORT_RESOLVED"; readonly payload: IDashboardInsightWidgetExportResolvedPayload; } /** * Payload of the {@link IDashboardInsightWidgetExportResolved} event. * @beta */ export declare interface IDashboardInsightWidgetExportResolvedPayload { /** * URI of the resulting file that can be used to download it. */ resultUri: string; /** * Collection of information used to download the resulting file. */ result: IExportResult; } /** * This event is emitted when the insight widget's filter settings change. * * Filter settings influence what date dataset to use for filter or which of the dashboard's attribute filters * should be used for the widget. A change of filter settings means the insight rendered in the widget will * be re-rendered. * * @beta */ export declare interface IDashboardInsightWidgetFilterSettingsChanged extends IDashboardEvent { readonly type: "GDC.DASH/EVT.INSIGHT_WIDGET.FILTER_SETTINGS_CHANGED"; readonly payload: IDashboardInsightWidgetFilterSettingsChangedPayload; } /** * Payload of the {@link IDashboardInsightWidgetFilterSettingsChanged} event. * @beta */ export declare interface IDashboardInsightWidgetFilterSettingsChangedPayload { /** * Reference to Insight Widget that was changed. */ readonly ref: ObjRef; /** * Attribute filters that are ignored for the widget. * * If empty, then all attribute filters defined for the dashboard are in effect. */ readonly ignoredAttributeFilters: IDashboardAttributeFilter[]; /** * Date filters with dimension that are ignored for the widget. * * If empty, then all date filters defined for the dashboard are in effect. */ readonly ignoredDateFilters?: IDashboardDateFilter[]; /** * Date dataset used for date filtering. * * If undefined, then dashboard's date filter is not in effect for the widget. */ readonly dateDatasetForFiltering?: ICatalogDateDataset; } /** * This event is emitted when the header of an insight widget changed. The new value of the header (title) * is included in the event. * * @beta */ export declare interface IDashboardInsightWidgetHeaderChanged extends IDashboardEvent { readonly type: "GDC.DASH/EVT.INSIGHT_WIDGET.HEADER_CHANGED"; readonly payload: IDashboardInsightWidgetHeaderChangedPayload; } /** * Payload of the {@link IDashboardInsightWidgetHeaderChanged} event. * @beta */ export declare interface IDashboardInsightWidgetHeaderChangedPayload { /** * Reference to Insight Widget that was changed. */ readonly ref: ObjRef; /** * New widget header that is now used on the widget. */ readonly header: IWidgetHeader; } /** * This event is emitted when the insight rendered inside an insight widget gets switched for another one. * * That essentially means the insight widget now renders a different visualization * * @beta */ export declare interface IDashboardInsightWidgetInsightSwitched extends IDashboardEvent { readonly type: "GDC.DASH/EVT.INSIGHT_WIDGET.INSIGHT_SWITCHED"; readonly payload: IDashboardInsightWidgetInsightSwitchedPayload; } /** * Payload of the {@link IDashboardInsightWidgetInsightSwitched} event. * @beta */ export declare interface IDashboardInsightWidgetInsightSwitchedPayload { /** * Reference to Insight Widget that was changed. */ readonly ref: ObjRef; /** * The new insight that is now rendered for the widget. */ readonly insight: IInsight; } /** * This event is emitted after an insight widget is refreshed. * * @beta */ export declare interface IDashboardInsightWidgetRefreshed extends IDashboardEvent { readonly type: "GDC.DASH/EVT.INSIGHT_WIDGET.REFRESHED"; readonly payload: IDashboardInsightWidgetRefreshedPayload; } /** * Payload of the {@link IDashboardInsightWidgetRefreshed} event. * @beta */ export declare interface IDashboardInsightWidgetRefreshedPayload { /** * The new value of the insight. */ insight: IInsight; } /** * This event is emitted when the insight widget's visualization configuration change. * * The configuration specified influence how the insight rendered in the widget appears visually * * @beta */ export declare interface IDashboardInsightWidgetVisConfigurationChanged extends IDashboardEvent { readonly type: "GDC.DASH/EVT.INSIGHT_WIDGET.CONFIGURATION_CHANGED"; readonly payload: IDashboardInsightWidgetVisConfigurationChangedPayload; } /** * Payload of the {@link IDashboardInsightWidgetVisPropertiesChanged} event. * @beta */ export declare interface IDashboardInsightWidgetVisConfigurationChangedPayload { /** * Reference to Insight Widget that was changed. */ readonly ref: ObjRef; /** * New visualization config that are now in effect for the insight widget. These config * will be merged with the config defined on the insight itself. They will influence how the * insight visually appears. * * Will be undefined if there are no widget-level visualization config set for the particular * insight widget. */ readonly newConfig: IInsightWidgetConfiguration | undefined; /** * Previous visualization config to detect what has been changed if this info needed. */ readonly oldConfig: IInsightWidgetConfiguration | undefined; } /** * This event is emitted when the insight widget's visualization properties change. * * The properties specified influence how the insight rendered in the widget appears visually (legend, tooltips, * axes, etc.) * * @beta */ export declare interface IDashboardInsightWidgetVisPropertiesChanged extends IDashboardEvent { readonly type: "GDC.DASH/EVT.INSIGHT_WIDGET.PROPERTIES_CHANGED"; readonly payload: IDashboardInsightWidgetVisPropertiesChangedPayload; } /** * Payload of the {@link IDashboardInsightWidgetVisPropertiesChanged} event. * @beta */ export declare interface IDashboardInsightWidgetVisPropertiesChangedPayload { /** * Reference to Insight Widget that was changed. */ readonly ref: ObjRef; /** * New visualization properties that are now in effect for the insight widget. These properties * will be merged with the properties defined on the insight itself. They will influence how the * insight visually appears. * * Will be undefined if there are no widget-level visualization properties set for the particular * insight widget. */ readonly properties: VisualizationProperties | undefined; } /** * This event is emitted on start of the resolution of the {@link IKeyDriverAnalysis} command. * * @beta */ export declare interface IDashboardKeyDriverAnalysisRequested extends IDashboardEvent { readonly type: "GDC.DASH/EVT.DRILL.KEY_DRIVER_ANALYSIS.REQUESTED"; readonly payload: IDashboardKeyDriverAnalysisRequestedPayload; } /** * Payload of the {@link IDashboardKeyDriverAnalysisRequested} event. * @beta */ export declare interface IDashboardKeyDriverAnalysisRequestedPayload { /** * Key driver item to analyze. */ readonly keyDriveItem: IDashboardKeyDriverCombinationItem; /** * Original drill event, that triggered this particular drill interaction. */ readonly drillEvent: IDashboardDrillEvent; /** * Drill definition. */ readonly drillDefinition: IKeyDriveAnalysis; } /** * This event is emitted as a result of the {@link IKeyDriverAnalysis} command. * * @beta */ export declare interface IDashboardKeyDriverAnalysisResolved extends IDashboardEvent { readonly type: "GDC.DASH/EVT.DRILL.KEY_DRIVER_ANALYSIS.RESOLVED"; readonly payload: IDashboardKeyDriverAnalysisResolvedPayload; } /** * Payload of the {@link IDashboardKeyDriverAnalysisResolved} event. * @beta */ export declare interface IDashboardKeyDriverAnalysisResolvedPayload { /** * Key driver item to analyze. */ readonly keyDriveDefinition: IKdaDefinition; /** * Original drill event, that triggered this particular drill interaction. */ readonly drillEvent: IDashboardDrillEvent; /** * Drill definition with key driver analysis */ readonly drillDefinition: IKeyDriveAnalysis; } /** * @internal */ export declare interface IDashboardKeyDriverCombinationItem { where: "before" | "after" | "none"; type: "comparative" | "year-to-year"; measure: IMeasureDescriptor; difference: number; values: [number, number]; range: [ITableDataAttributeScope, ITableDataAttributeScope]; } /** * This event is emitted after any change to KPI Widget configuration. It contains the entire new state of the * KPI Widget. * * @beta */ export declare interface IDashboardKpiWidgetChanged extends IDashboardEvent { readonly type: "GDC.DASH/EVT.KPI_WIDGET.WIDGET_CHANGED"; readonly payload: IDashboardKpiWidgetChangedPayload; } /** * Payload of the {@link IDashboardKpiWidgetChanged} event. * @beta */ export declare interface IDashboardKpiWidgetChangedPayload { /** * The new value of the changed widget. */ kpiWidget: IKpiWidget | IKpiWidgetDefinition; } /** * This event is emitted when dashboard's KPI Widget has its comparison type changed. The event includes * the new definition of the KPI that has uses same measure as before however has new setup of the over-time * comparison. * * @beta */ export declare interface IDashboardKpiWidgetComparisonChanged extends IDashboardEvent { readonly type: "GDC.DASH/EVT.KPI_WIDGET.COMPARISON_CHANGED"; readonly payload: IDashboardKpiWidgetComparisonChangedPayload; } /** * Payload of the {@link IDashboardKpiWidgetComparisonChanged} event. * @beta */ export declare interface IDashboardKpiWidgetComparisonChangedPayload { /** * Reference to changed KPI Widget. */ readonly ref: ObjRef; /** * New setup of KPI. Includes the measure used to calculate KPI and the comparison settings that * are in effect. * * Note: the comparison may be 'none' - meaning */ readonly kpi: IKpi; } /** * This event is emitted when the dashboard's KPI Widget configuration is modified. * * @beta */ export declare interface IDashboardKpiWidgetConfigurationChanged extends IDashboardEvent { readonly type: "GDC.DASH/EVT.KPI_WIDGET.CONFIGURATION_CHANGED"; readonly payload: IDashboardKpiWidgetConfigurationChangedPayload; } /** * Payload of the {@link IDashboardKpiWidgetConfigurationChanged} event. * @beta */ export declare interface IDashboardKpiWidgetConfigurationChangedPayload { /** * Reference to changed KPI Widget. */ readonly ref: ObjRef; /** * New value of the widget configuration. */ readonly configuration: IKpiWidgetConfiguration | undefined; } /** * This event is emitted when the dashboard's KPI Widget description is modified. * * @beta */ export declare interface IDashboardKpiWidgetDescriptionChanged extends IDashboardEvent { readonly type: "GDC.DASH/EVT.KPI_WIDGET.DESCRIPTION_CHANGED"; readonly payload: IDashboardKpiWidgetDescriptionChangedPayload; } /** * Payload of the {@link IDashboardKpiWidgetDescriptionChanged} event. * @beta */ export declare interface IDashboardKpiWidgetDescriptionChangedPayload { /** * Reference to changed KPI Widget. */ readonly ref: ObjRef; /** * New value of the widget description. */ readonly description: IWidgetDescription; } /** * This event is emitted when dashboard's KPI Widget has its drills removed. * * @beta */ export declare interface IDashboardKpiWidgetDrillRemoved extends IDashboardEvent { readonly type: "GDC.DASH/EVT.KPI_WIDGET.DRILL_REMOVED"; readonly payload: IDashboardKpiWidgetDrillRemovedPayload; } /** * Payload of the {@link IDashboardKpiWidgetDrillRemoved} event. * @beta */ export declare interface IDashboardKpiWidgetDrillRemovedPayload { /** * Reference to changed KPI Widget. */ readonly ref: ObjRef; } /** * This event is emitted when dashboard's KPI Widget has its drill set. * * @beta */ export declare interface IDashboardKpiWidgetDrillSet extends IDashboardEvent { readonly type: "GDC.DASH/EVT.KPI_WIDGET.DRILL_SET"; readonly payload: IDashboardKpiWidgetDrillSetPayload; } /** * Payload of the {@link IDashboardKpiWidgetDrillSet} event. * @beta */ export declare interface IDashboardKpiWidgetDrillSetPayload { /** * Reference to changed KPI Widget. */ readonly ref: ObjRef; /** * The drill set. */ readonly drill: IDrillToLegacyDashboard_2; } /** * This event is emitted when dashboard's KPI Widget filter settings are modified. * * @beta */ export declare interface IDashboardKpiWidgetFilterSettingsChanged extends IDashboardEvent { readonly type: "GDC.DASH/EVT.KPI_WIDGET.FILTER_SETTINGS_CHANGED"; readonly payload: IDashboardKpiWidgetFilterSettingsChangedPayload; } /** * Payload of the {@link IDashboardKpiWidgetFilterSettingsChanged} event. * @beta */ export declare interface IDashboardKpiWidgetFilterSettingsChangedPayload { /** * Reference to changed KPI Widget. */ readonly ref: ObjRef; /** * Attribute filters that are ignored for the widget. * * If empty, then all attribute filters defined for the dashboard are in effect. */ readonly ignoredAttributeFilters: IDashboardAttributeFilter[]; /** * Date dataset used for date filtering. * * If undefined, then dashboard's date filter is not in effect for the widget. */ readonly dateDatasetForFiltering?: ICatalogDateDataset; } /** * This event is emitted when the dashboard's KPI Widget header is modified. * * @beta */ export declare interface IDashboardKpiWidgetHeaderChanged extends IDashboardEvent { readonly type: "GDC.DASH/EVT.KPI_WIDGET.HEADER_CHANGED"; readonly payload: IDashboardKpiWidgetHeaderChangedPayload; } /** * Payload of the {@link IDashboardKpiWidgetHeaderChanged} event. * @beta */ export declare interface IDashboardKpiWidgetHeaderChangedPayload { /** * Reference to changed KPI Widget. */ readonly ref: ObjRef; /** * New value of the widget header. */ readonly header: IWidgetHeader; } /** * This event is emitted when the dashboard's KPI Widget measure is modified - the KPI now shows value for * different measure. The change of measure to use may be accompanied by a change of the KPI header (change of * title). In that case new value of header is also included in the event. * * @beta */ export declare interface IDashboardKpiWidgetMeasureChanged extends IDashboardEvent { readonly type: "GDC.DASH/EVT.KPI_WIDGET.MEASURE_CHANGED"; readonly payload: IDashboardKpiWidgetMeasureChangedPayload; } /** * Payload of the {@link IDashboardKpiWidgetMeasureChanged} event. * @beta */ export declare interface IDashboardKpiWidgetMeasureChangedPayload { /** * Reference to changed KPI Widget. */ readonly ref: ObjRef; /** * New setup of KPI. Includes the measure used to calculate KPI and the comparison settings that * are in effect. * * Note: the comparison may be 'none' - meaning */ readonly kpiWidget: IKpiWidget; /** * Metadata object describing the measure that is now used on the KPI. */ readonly measure: IMeasureMetadataObject; /** * If a new header was also set while changing the measure, then the new header value is included here. */ readonly header?: IWidgetHeader; } /** * This event is emitted after any change to the dashboard layout and will include the entire new layout. * * @beta */ export declare interface IDashboardLayoutChanged extends IDashboardEvent { readonly type: "GDC.DASH/EVT.FLUID_LAYOUT.LAYOUT_CHANGED"; readonly payload: IDashboardLayoutChangedPayload; } /** * Payload of the {@link IDashboardLayoutChanged} event. * @beta */ export declare interface IDashboardLayoutChangedPayload { /** * Layout after the change. */ readonly layout: IDashboardLayout; } /** * Set of functions you can use to customize the layout of the dashboard rendered. * * @public */ export declare interface IDashboardLayoutCustomizer { /** * Register customization of the fluid layout that is used to render the dashboard. * * @remarks * At this point, you can register a function which will be called after dashboard component loads * the dashboard and before it starts initializing the layout itself. The function will be called * with two arguments: * * - The actual dashboard layout * - Customizer that allows the plugin to add new sections or section items * * Your customization function may introspect the original layout and then register its customizations. * * If the dashboard is not rendering fluid layout, then the registered function will not * be called. */ customizeFluidLayout(fun: FluidLayoutCustomizationFn): IDashboardLayoutCustomizer; /** * Register customization of the export layout that is used to render the dashboard. * * @remarks * At this point, you can register a function which will be called after dashboard component loads * the dashboard and before it starts rendering the layout itself. The function will be called * with two arguments: * * - The actual dashboard layout * - Customizer that allows the plugin to work with export definition * * Your customization function may introspect the original layout and then register its customizations. * * If the dashboard is not rendering export layout, then the registered function will not * be called. */ customizeExportLayout(fun: ExportLayoutCustomizationFn): IDashboardLayoutCustomizer; /** * Register a provider for React components to render layout. * * @remarks * A provider takes the layout as input and is expected to return * a React component that should be used to render that layout. * * If the provider returns `undefined` then: * * - if there are other providers registered, they will be called to see if they can provide * a component to render the layout * - if there are no other providers registered, the default, built-in component will be used. * * You may register multiple providers. They will be evaluated in the order you register them. * * @param provider - provider to register * @returns self, for call chaining sakes */ withCustomProvider(provider: OptionalLayoutComponentProvider): IDashboardLayoutCustomizer; /** * Register a factory for top bar decorator providers. * * @remarks * Decorators are a way to add customizations or embellishments on top * of an existing component. Decorators are more complex to write because they need to work with the component * they should decorate and add 'something' on top of that component. * * This is best illustrated on an example: * * @example * ``` * withCustomDecorator((next) => { * return (filter) => { * if (some_condition_to_prevent_decoration) { * return undefined; * } * * // Make sure you call this outside the component render function, * // otherwise a new instance of the decorated component is created on each re-render. * const Decorated = next(filter); * * function MyCustomDecorator(props) { * return ( *
*

My Custom Decoration

* *
* ) * } * * return MyCustomDecorator; * } * }) * ``` * * The above shows how to register a decorator that will use some condition to determine whether particular * attribute filter is eligible for decoration. * * Note: the factory function that you specify will be called immediately at the registration time. The * provider that it returns will be called at render time. * * @param providerFactory - factory */ withCustomDecorator(providerFactory: (next: LayoutComponentProvider) => OptionalLayoutComponentProvider): IDashboardLayoutCustomizer; } /** * @internal */ export declare type IDashboardLayoutDraggingComponentProps = { itemType: "dashboardLayout"; item: DashboardLayoutDraggableItem; }; /** * @alpha */ declare interface IDashboardLayoutProps extends INestedLayoutProps { ErrorComponent?: ComponentType; onFiltersChange?: (filters: (IDashboardFilter | FilterContextItem)[], resetOthers?: boolean) => void; onDrill?: OnFiredDashboardDrillEvent; onError?: OnError; } export { IDashboardLayoutProps } export { IDashboardLayoutProps as IDashboardNestedLayoutProps } /** * This event is emitted when a new dashboard layout section is added. * * @beta */ export declare interface IDashboardLayoutSectionAdded extends IDashboardEvent { readonly type: "GDC.DASH/EVT.FLUID_LAYOUT.SECTION_ADDED"; readonly payload: IDashboardLayoutSectionAddedPayload; } /** * Payload of the {@link IDashboardLayoutSectionAdded} event. * @beta */ export declare interface IDashboardLayoutSectionAddedPayload { /** * The new section. */ readonly section: ExtendedDashboardLayoutSection; /** * Index of the new section among other sections in the layout. * * Index is zero-based. * * @deprecated The prop will be removed in the next major SDK version. Use {@link IDashboardLayoutSectionAddedPayload.path} instead. * * TODO LX-648: Remove property in the next major version. */ readonly index: number; /** * Path to the new section among other sections in the layout. */ readonly path: ILayoutSectionPath; } /** * This event is emitted when dashboard layout section changes. * * @beta */ export declare interface IDashboardLayoutSectionHeaderChanged extends IDashboardEvent { readonly type: "GDC.DASH/EVT.FLUID_LAYOUT.SECTION_HEADER_CHANGED"; readonly payload: IDashboardLayoutSectionHeaderChangedPayload; } /** * Payload of the {@link IDashboardLayoutSectionHeaderChanged} event. * @beta */ export declare interface IDashboardLayoutSectionHeaderChangedPayload { /** * The new header of the section. */ readonly newHeader: IDashboardLayoutSectionHeader; /** * Index of the section which had the header updated. * * @deprecated The prop will be removed in the next major SDK version. Use {@link IDashboardLayoutSectionHeaderChangedPayload.sectionPath} instead. * * TODO LX-648: Remove property in the next major version. */ readonly sectionIndex: number; /** * Path of the section which had the header updated. */ readonly sectionPath: ILayoutSectionPath; } /** * This event is emitted when a dashboard item is moved between sections or within a section. * * @beta */ export declare interface IDashboardLayoutSectionItemMoved extends IDashboardEvent { readonly type: "GDC.DASH/EVT.FLUID_LAYOUT.ITEM_MOVED"; readonly payload: IDashboardLayoutSectionItemMovedPayload; } /** * Payload of the {@link IDashboardLayoutSectionItemMoved} event. * @beta */ export declare interface IDashboardLayoutSectionItemMovedPayload { /** * Item that was moved. */ readonly item: ExtendedDashboardItem; /** * Index of section from which the item was moved. * * @deprecated The prop will be removed in the next major SDK version. Use {@link IDashboardLayoutSectionItemMovedPayload.fromPath} instead. * * TODO LX-648: Remove property in the next major version. */ readonly fromSectionIndex: number; /** * Index of section to which the item was moved. * * @deprecated The prop will be removed in the next major SDK version. Use {@link IDashboardLayoutSectionItemMovedPayload.toPath} instead. * * TODO LX-648: Remove property in the next major version. * * This may be the same as `fromSectionIndex` - which means the move happened within the same section. */ readonly toSectionIndex: number; /** * Index within the `fromSection` from where the item was moved. * * @deprecated The prop will be removed in the next major SDK version. Use {@link IDashboardLayoutSectionItemMovedPayload.fromPath} instead. * * TODO LX-648: Remove property in the next major version. */ readonly fromIndex: number; /** * Index in `toSection` at which the item was inserted. * * @deprecated The prop will be removed in the next major SDK version. Use {@link IDashboardLayoutSectionItemMovedPayload.toPath} instead. * * TODO LX-648: Remove property in the next major version. */ readonly toIndex: number; /** * Path from where the item was moved. */ readonly fromPath: ILayoutItemPath; /** * Path at which the item was inserted. */ readonly toPath: ILayoutItemPath; /** * Indicate, that original section has been removed. */ readonly originalSectionRemoved: boolean; } /** * This event is emitted when a dashboard item is moved to new section. * * @beta */ export declare interface IDashboardLayoutSectionItemMovedToNewSection extends IDashboardEvent { readonly type: "GDC.DASH/EVT.FLUID_LAYOUT.ITEM_MOVED_TO_NEW_SECTION"; readonly payload: IDashboardLayoutSectionItemMovedToNewSectionPayload; } /** * Payload of the {@link IDashboardLayoutSectionItemMovedToNewSection} event. * @beta */ export declare interface IDashboardLayoutSectionItemMovedToNewSectionPayload { /** * Item that was moved. */ readonly item: ExtendedDashboardItem; /** * Index of section from which the item was moved. * * @deprecated The prop will be removed in the next major SDK version. Use {@link IDashboardLayoutSectionItemMovedToNewSectionPayload.fromPath} instead. * * TODO LX-648: Remove property in the next major version. */ readonly fromSectionIndex: number; /** * Index of section to which the item was moved. * * This may be the same as `fromSectionIndex` - which means the move happened within the same section. * * @deprecated The prop will be removed in the next major SDK version. Use {@link IDashboardLayoutSectionItemMovedToNewSectionPayload.toPath} instead. * * TODO LX-648: Remove property in the next major version. */ readonly toSectionIndex: number; /** * Index within the `fromSection` from where the item was moved. * * @deprecated The prop will be removed in the next major SDK version. Use {@link IDashboardLayoutSectionItemMovedToNewSectionPayload.fromPath} instead. * * TODO LX-648: Remove property in the next major version. */ readonly fromIndex: number; /** * Index in `toSection` at which the item was inserted. * * @deprecated The prop will be removed in the next major SDK version. Use {@link IDashboardLayoutSectionItemMovedToNewSectionPayload.toPath} instead. * * TODO LX-648: Remove property in the next major version. */ readonly toIndex: number; /** * Index from where the item was moved. */ readonly fromPath: ILayoutItemPath; /** * Index at which the item was inserted. */ readonly toPath: ILayoutItemPath; /** * Indicate, that original section has been removed. */ readonly originalSectionRemoved: boolean; } /** * This event is emitted when an item is removed from dashboard layout section. * * @beta */ export declare interface IDashboardLayoutSectionItemRemoved extends IDashboardEvent { readonly type: "GDC.DASH/EVT.FLUID_LAYOUT.ITEM_REMOVED"; readonly payload: IDashboardLayoutSectionItemRemovedPayload; } /** * Payload of the {@link IDashboardLayoutSectionItemRemoved} event. * @beta */ export declare interface IDashboardLayoutSectionItemRemovedPayload { /** * Item that was removed. */ readonly item: ExtendedDashboardItem; /** * Index where the item resided. * * @deprecated The prop will be removed in the next major SDK version. Use {@link IDashboardLayoutSectionItemRemovedPayload.itemPath} instead. * * TODO LX-648: Remove property in the next major version. */ readonly itemIndex: number; /** * Path where the item resided. */ readonly itemPath: ILayoutItemPath; /** * If the removal was eager and removed the entire section, then that section is included here. * * NOTE: the {@link IDashboardLayoutSectionRemoved} will be fired at the occasion as well. */ readonly section?: ExtendedDashboardLayoutSection; /** * If the removal indicated to stash the item, then the stash identifier is mirrored here. */ readonly stashIdentifier?: StashedDashboardItemsId; } /** * This event is emitted when an item in a dashboard section is replaced. * @beta */ export declare interface IDashboardLayoutSectionItemReplaced extends IDashboardEvent { readonly type: "GDC.DASH/EVT.FLUID_LAYOUT.ITEM_REPLACED"; readonly payload: IDashboardLayoutSectionItemReplacedPayload; } /** * Payload of the {@link IDashboardLayoutSectionItemReplaced} event. * @beta */ export declare interface IDashboardLayoutSectionItemReplacedPayload { /** * Index of section where the replacement happened. * * @deprecated The prop will be removed in the next major SDK version. Use {@link IDashboardLayoutSectionItemReplacedPayload.path} instead. * * TODO LX-648: Remove property in the next major version. */ readonly sectionIndex: number; /** * Index of item within the section that was replaced. * * @deprecated The prop will be removed in the next major SDK version. Use {@link IDashboardLayoutSectionItemReplacedPayload.path} instead. * * TODO LX-648: Remove property in the next major version. */ readonly itemIndex: number; /** * Path of item that was replaced. */ readonly path: ILayoutItemPath; /** * New item definition. */ readonly items: ReadonlyArray; /** * Item that was replaced */ readonly previousItem: ExtendedDashboardItem; /** * If the replacement specified to stash the old item, then the identifier of the * stash is included here. */ readonly stashIdentifier?: StashedDashboardItemsId; } /** * This event is emitted when items are added to a dashboard section. * * @beta */ export declare interface IDashboardLayoutSectionItemsAdded extends IDashboardEvent { readonly type: "GDC.DASH/EVT.FLUID_LAYOUT.ITEMS_ADDED"; readonly payload: IDashboardLayoutSectionItemsAddedPayload; } /** * Payload of the {@link IDashboardLayoutSectionItemsAdded} event. * @beta */ export declare interface IDashboardLayoutSectionItemsAddedPayload { /** * Index of the section to which the items were added. * * @deprecated The prop will be removed in the next major SDK version. Use {@link IDashboardLayoutSectionItemsAddedPayload.path} instead. * * TODO LX-648: Remove property in the next major version. */ readonly sectionIndex: number; /** * Index within the section at which the items were inserted. * * @deprecated The prop will be removed in the next major SDK version. Use {@link IDashboardLayoutSectionItemsAddedPayload.path} instead. * * TODO LX-648: Remove property in the next major version. */ readonly startIndex: number; /** * Path of the inserted item. */ readonly path: ILayoutItemPath; /** * Items that were inserted. */ readonly itemsAdded: ReadonlyArray; /** * If the items from one or more stashes were added and the stashes were cleared, the list of * stash identifiers will be included here. */ readonly stashesUsed?: ReadonlyArray; } /** * This event is emitted when a dashboard layout section is moved from one place to another. * * @beta */ export declare interface IDashboardLayoutSectionMoved extends IDashboardEvent { readonly type: "GDC.DASH/EVT.FLUID_LAYOUT.SECTION_MOVED"; readonly payload: IDashboardLayoutSectionMovedPayload; } /** * Payload of the {@link IDashboardLayoutSectionMoved} event. * @beta */ export declare interface IDashboardLayoutSectionMovedPayload { /** * The section moved. */ readonly section: ExtendedDashboardLayoutSection; /** * Index from which the section was moved. * * @deprecated The prop will be removed in the next major SDK version. Use {@link IDashboardLayoutSectionMovedPayload.fromPath} instead. * * TODO LX-648: Remove property in the next major SDK version. */ readonly fromIndex: number; /** * Path from which the section was moved. */ readonly fromPath: ILayoutSectionPath; /** * Zero-based index to which the section was moved. * * @deprecated The prop will be removed in the next SDK major version. Use {@link IDashboardLayoutSectionMovedPayload.toPath} instead. * * TODO LX-648: Remove property in the next major SDK version. */ readonly toIndex: number; /** * Path to which the section was moved. */ readonly toPath: ILayoutSectionPath; } /** * This event is emitted when a dashboard layout section is removed from the layout. * * Note: this event will be emitted also when the section is removed as part of eager removal of * its items. E.g. item is removed, it is last item in the section, and the whole section is removed * as well. * * @beta */ export declare interface IDashboardLayoutSectionRemoved extends IDashboardEvent { readonly type: "GDC.DASH/EVT.FLUID_LAYOUT.SECTION_REMOVED"; readonly payload: IDashboardLayoutSectionRemovedPayload; } /** * Payload of the {@link IDashboardLayoutSectionRemoved} event. * @beta */ export declare interface IDashboardLayoutSectionRemovedPayload { /** * Section that was removed. * * Note: when the section is eagerly removed, it's items will be empty. */ readonly section: ExtendedDashboardLayoutSection; /** * Index where the section originally resided. * * @deprecated The prop will be removed in the next major SDK version. Use {@link IDashboardLayoutSectionRemovedPayload.path} instead. * * TODO LX-648: Remove property in the next major SDK version. */ readonly index: number; /** * Path where the section originally resided. */ readonly path: ILayoutSectionPath; /** * Indicates that the section was removed as part of eager removal of the section items. */ readonly eagerRemoval?: boolean; /** * If the remove command indicated to stash the items for later reuse, then the stash identifier * provided on the command is mirrored here. */ readonly stashIdentifier?: StashedDashboardItemsId; } /** * This event is emitted after a new dashboard measure value filter is successfully added. * * @alpha */ export declare interface IDashboardMeasureValueFilterAdded extends IDashboardEvent { readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.MEASURE_VALUE_FILTER.ADDED"; readonly payload: IDashboardMeasureValueFilterAddedPayload; } /** * Payload of the {@link IDashboardMeasureValueFilterAdded} event. * * @alpha */ export declare interface IDashboardMeasureValueFilterAddedPayload { /** * Definition of the created measure value filter. */ readonly added: IDashboardMeasureValueFilter; /** * Zero-based index indicating the position of the measure value filter among the draggable filters. */ readonly index: number; } /** * This event is emitted after the conditions of a dashboard measure value filter have been changed. * * @alpha */ export declare interface IDashboardMeasureValueFilterConditionChanged extends IDashboardEvent { readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.MEASURE_VALUE_FILTER.CONDITION_CHANGED"; readonly payload: IDashboardMeasureValueFilterConditionChangedPayload; } /** * Payload of the {@link IDashboardMeasureValueFilterConditionChanged} event. * * @alpha */ export declare interface IDashboardMeasureValueFilterConditionChangedPayload { /** * Local identifier of the measure value filter whose condition was changed. */ readonly localIdentifier: string; /** * Updated definition of the filter. */ readonly filter: IDashboardMeasureValueFilter; /** * The new conditions applied to the filter. Empty or undefined when filter is set to "All". */ readonly conditions?: MeasureValueFilterCondition[]; } /** * This event is emitted when the measure value filter mode changes. * * @alpha */ export declare interface IDashboardMeasureValueFilterConfigModeChanged extends IDashboardEvent { readonly type: "GDC.DASH/EVT.MEASURE_VALUE_FILTER_CONFIG.MODE_CHANGED"; readonly payload: IDashboardMeasureValueFilterConfigModeChangedPayload; } /** * Payload of the {@link IDashboardMeasureValueFilterConfigModeChanged} event. * * @alpha */ export declare interface IDashboardMeasureValueFilterConfigModeChangedPayload { /** * Updated measure value filter. */ readonly filter: IDashboardMeasureValueFilter; } /** * This event is emitted after the dashboard-level dimensionality of a measure value filter changes. * * @alpha */ export declare interface IDashboardMeasureValueFilterDimensionalityChanged extends IDashboardEvent { readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.MEASURE_VALUE_FILTER.DIMENSIONALITY_CHANGED"; readonly payload: IDashboardMeasureValueFilterDimensionalityChangedPayload; } /** * Payload of the {@link IDashboardMeasureValueFilterDimensionalityChanged} event. * * @alpha */ export declare interface IDashboardMeasureValueFilterDimensionalityChangedPayload { /** * Local identifier of the measure value filter whose dimensionality was changed. */ readonly localIdentifier: string; /** * Updated definition of the filter. */ readonly filter: IDashboardMeasureValueFilter; /** * The new dashboard-level dimensionality. Empty or undefined means per-widget inheritance. */ readonly dimensionality?: ObjRef[]; } /** * This event is emitted after a dashboard measure value filter is moved. * * @alpha */ export declare interface IDashboardMeasureValueFilterMoved extends IDashboardEvent { readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.MEASURE_VALUE_FILTER.MOVED"; readonly payload: IDashboardMeasureValueFilterMovedPayload; } /** * Payload of the {@link IDashboardMeasureValueFilterMoved} event. * * @alpha */ export declare interface IDashboardMeasureValueFilterMovedPayload { /** * Moved measure value filter. */ readonly filter: IDashboardMeasureValueFilter; /** * Original zero-based index among draggable filters. */ readonly index: number; /** * New zero-based index among draggable filters. */ readonly newIndex: number; } /** * @alpha */ export declare interface IDashboardMeasureValueFilterProps { /** * Definition of the dashboard measure value filter to render. Always reflects the applied * filter — if/when "Apply together" mode for MVF is added, the working state is meant to be * resolved internally via dashboard selectors rather than threaded through props. */ filter: IDashboardMeasureValueFilter; /** * Index of the filter among the other dashboard filters. */ filterIndex: number; /** * Whether the filter is rendered in read-only mode. */ readonly?: boolean; /** * Whether the dropdown should automatically open on mount. Used to focus newly added filters. */ autoOpen?: boolean; /** * Callback fired when the user changes the filter's conditions. * * @param filter - the dashboard measure value filter being updated * @param conditions - the new conditions; empty or undefined means "All" */ onMeasureValueFilterChanged: (filter: IDashboardMeasureValueFilter, conditions: MeasureValueFilterCondition[] | undefined, isWorkingSelectionChange?: boolean) => void; /** * Callback fired when the filter dropdown is closed. */ onMeasureValueFilterClose?: () => void; /** * Optional tab identifier to read filter config from. When provided, the visibility * icon and any other tab-scoped state will be sourced from this specific tab. When * undefined, the active tab's state is used. */ tabId?: string; /** * Optional custom measure value filter component to change or extend the default rendered one. * * @alpha */ MeasureValueFilterComponent?: ComponentType; /** * Controls whether the internal dashboard dropdown button should be passed to the SDK component. * When false, the SDK component can inject its own button, for example when rendered in a filter group. * * @alpha */ passDropdownButton?: boolean; } /** * This event is emitted after a dashboard measure value filter is removed. * * @alpha */ export declare interface IDashboardMeasureValueFilterRemoved extends IDashboardEvent { readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.MEASURE_VALUE_FILTER.REMOVED"; readonly payload: IDashboardMeasureValueFilterRemovedPayload; } /** * Payload of the {@link IDashboardMeasureValueFilterRemoved} event. * * @alpha */ export declare interface IDashboardMeasureValueFilterRemovedPayload { /** * Removed measure value filter. */ readonly removed: IDashboardMeasureValueFilter; } /** * This event is emitted when the measure value filter title changes. * * @alpha */ export declare interface IDashboardMeasureValueFilterTitleChanged extends IDashboardEvent { readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.MEASURE_VALUE_FILTER.TITLE_CHANGED"; readonly payload: IDashboardMeasureValueFilterTitleChangedPayload; } /** * Payload of the {@link IDashboardMeasureValueFilterTitleChanged} event. * * @alpha */ export declare interface IDashboardMeasureValueFilterTitleChangedPayload { /** * Updated measure value filter. */ readonly filter: IDashboardMeasureValueFilter; } /** * @beta */ export declare interface IDashboardMetaState { /** * This property contains current state of the dashboard's descriptive metadata. This descriptor can * be modified by the dashboard component and the new values will be used during save. */ descriptor?: DashboardDescriptor; /** * This property contains the IDashboard object that is persisted on the backend and that is used * to derive the rest of the dashboard state in the component. * * The persisted dashboard is updated only during the initial load or during SaveDashboard or * SaveAsDashboard command processing (which essentially flush the current dashboard state to backend) */ persistedDashboard?: IDashboard; /** * This property indicates whether the dashboard is dynamically filled. This means that the dashboard * is not loaded from existing persisted dashboard but is instead built from scratch based on the * provided items. */ initialContent?: boolean; } /** * Per-parameter state tracked by the dashboard store. * * `parameter` is the persisted-shape entry (mutated only on Save / on load). `runtimeOverride` * is session-ephemeral and tracks the chip's currently-applied value. The two are kept distinct * so Cancel can discard a draft cleanly and so future Reset / view-mode flows can promote one * to the other independently. * * @alpha */ export declare interface IDashboardParameterEntry { parameter: IDashboardParameter; /** * Currently-applied value for the chip. `undefined` means "use the workspace default" — used * when the parameter has no persisted `value` and the workspace catalog is unresolved (gated * off, failed, or missing for the ref). Such entries are skipped when building widget * execution overrides so the backend keeps using the parameter's own default. */ runtimeOverride: ParameterValue | undefined; } /** * This event is emitted after dashboard parameter runtime values have been reset on the active tab. * * @alpha */ export declare interface IDashboardParametersSelectionReset extends IDashboardEvent { readonly type: "GDC.DASH/EVT.PARAMETERS.SELECTION.RESET"; } /** * Raw, low-level interface that the dashboard plugins need to implement. * * @remarks * Through this interface the plugin communicates its metadata and provides functions that will be * used by dashboard loader to obtain plugins customizations and contributions to apply on top of * the {@link Dashboard} Component. * * See {@link DashboardPluginV1} * * @public */ export declare type IDashboardPluginContract_V1 = DashboardPluginDescriptor & { /** * Version of the SPI that is realized by the plugin. */ readonly _pluginVersion: "1.0"; /** * This function will be called right after the plugin's asset are loaded. * * @remarks * The plugin may do some early initialization and parameter parsing at this point. * * Note that the parameterization that can be specified for the dashboard-plugin link can be edited * freely by the dashboard creator - and may thus be incorrect. * * If this function is not specified, then any parameters specified on the dashboard-plugin link will be * ignored. If this function throws any exception, then your plugin will not be used on the dashboard. * @param ctx - dashboard context into which this plugin was loaded * @param parameters - parameters that the dashboard specifies on its link to this plugin; these parameters * are */ onPluginLoaded?(ctx: DashboardContext, parameters?: string): Promise | void; /** * This function will be called before the dashboard initialization and rendering starts. * * @remarks * At this point, the plugin can use: * * - the `customize` API to add its contribution to the dashboard; modify how rendering is done, add custom * content and so on * - the `eventing` API to add domain event handlers or subscribe to infrastructural events emitted * by the dashboard * * Notes: * * - The plugin code MAY hold onto the `eventing` API and use it event after the registration is finished * to ad-hoc add or remove event handlers. * - The plugin code SHOULD NOT perform any customizations using the `customize` API after its registration * completes. All plugin customizations and contributions must be registered at this point. Trying to * register additional customizations or contributions after the registration will be ignored. * * @param ctx - dashboard context into which this plugin was loaded * @param customize - API through which you can register dashboard customizations; the customize API * should not be used after the registration completes * @param eventing - API through which plugin can add or remove domain event handlers or subscribe to * infrastructural events; it is safe to hold onto the eventing API and use it at later points to * add or remove event handlers */ register(ctx: DashboardContext, customize: IDashboardCustomizer, eventing: IDashboardEventHandling): void; /** * This function will be called when user navigates away from the dashboard that uses an instance of * this plugin. * * @remarks * At this point, the plugin SHOULD perform any essential cleanup. * * @param ctx - dashboard context into which this plugin was loaded */ onPluginUnload?(ctx: DashboardContext): Promise | void; }; /** * @public */ export declare interface IDashboardProps extends IDashboardBaseProps, IDashboardExtensionProps { children?: ReactElement | ((dashboard: any) => ReactElement); /** * Override the persisted dashboard. This is mainly useful for internal use cases. * @internal */ persistedDashboard?: IDashboard; } /** * Base type for all dashboard queries. A dashboard query encapsulates how complex, read-only dashboard-specific logic * can be can be executed. * * @beta */ export declare interface IDashboardQuery { /** * Query type. Always starts with "GDC.DASH/QUERY". */ readonly type: DashboardQueryType; /** * Correlation ID can be provided when creating a query. Events emitted during the query processing * will contain the same correlation ID. */ readonly correlationId?: string; } /** * This event is emitted when query processing completes with success. Both the query payload and the result are * included. * * @beta */ export declare interface IDashboardQueryCompleted extends IDashboardEvent { readonly type: "GDC.DASH/EVT.QUERY.COMPLETED"; readonly payload: IDashboardQueryCompletedPayload; } /** * Payload of the {@link IDashboardQueryCompleted} event. * @beta */ export declare interface IDashboardQueryCompletedPayload { /** * The query that was run to get the given result. */ readonly query: TQuery; /** * The result of the query. */ readonly result: TResult; } /** * This event is emitted if a particular query processing fails. The failure may be for two general reasons: * * - A user error was made; dispatched query is found to have bad payload or the dispatched query is not applicable * in the current state of the dashboard * * - An internal error has occurred in the dashboard component - highly likely due to a bug. * * @beta */ export declare interface IDashboardQueryFailed extends IDashboardEvent { readonly type: "GDC.DASH/EVT.QUERY.FAILED"; readonly payload: IDashboardQueryFailedPayload; } /** * Payload of the {@link IDashboardQueryFailed} event. * @beta */ export declare interface IDashboardQueryFailedPayload { /** * Reason for the failure. */ readonly reason: ActionFailedErrorReason; /** * Message explaining the nature of the failure. */ readonly message: string; /** * Error that has occurred and caused the command to fail. */ readonly error?: Error; } /** * This event is emitted when the submitted query has been rejected by the dashboard component because it does * not know how to handle the query. * * @beta */ export declare interface IDashboardQueryRejected extends IDashboardEvent { readonly type: "GDC.DASH/EVT.QUERY.REJECTED"; } /** * Describes dashboard component's query service. * * Query service is registered into the dashboard component's store and will be used to process actions * of type equal to the query name. * * The responsibility of query service is to perform complex, asynchronous domain logic that spans across the * component state and the data or metadata stored on the analytical backend - and then return a result. * * The dashboard component's infrastructure and hooks ensure that the query result (or query error) will be * pushed to the caller code. * * @internal */ export declare interface IDashboardQueryService { name: DashboardQueryType; generator: (ctx: DashboardContext, query: TQuery, refresh: boolean) => SagaIterator; cache?: QueryCache; } /** * This event is emitted when query processing starts. * * @beta */ export declare interface IDashboardQueryStarted extends IDashboardEvent { readonly type: "GDC.DASH/EVT.QUERY.STARTED"; readonly payload: IDashboardQueryStartedPayload; } /** * Payload of the {@link IDashboardQueryStarted} event. * @beta */ export declare interface IDashboardQueryStartedPayload { /** * The query that is starting to be run. */ readonly query: IDashboardQuery; } /** * This event is emitted at the end of successful 'dashboard rename' command processing. At this point, only the * in-memory title is changed and the changes are not saved on the backend. * * @beta */ export declare interface IDashboardRenamed extends IDashboardEvent { readonly type: "GDC.DASH/EVT.RENAMED"; readonly payload: IDashboardRenamedPayload; } /** * Payload of the {@link IDashboardRenamed} event. * @beta */ export declare interface IDashboardRenamedPayload { /** * The new title of the dashboard. */ readonly newTitle: string; } /** * This event is emitted after render mode change. * * @beta */ export declare interface IDashboardRenderModeChanged extends IDashboardEvent { readonly type: "GDC.DASH/EVT.RENDER_MODE.CHANGED"; readonly payload: IDashboardRenderModeChangedPayload; } /** * Payload of the {@link IDashboardRenderModeChanged} event. * @beta */ export declare interface IDashboardRenderModeChangedPayload { /** * Current render mode value */ renderMode: RenderMode; } /** * @alpha */ export declare interface IDashboardRichTextMenuButtonProps { widget: IRichTextWidget; isOpen: boolean; onClick: () => void; items: IRichTextMenuItem[]; } /** * @alpha */ export declare interface IDashboardRichTextMenuProps { widget: IRichTextWidget; isOpen: boolean; onClose: () => void; items: IRichTextMenuItem[]; } /** * @internal */ export declare interface IDashboardRichTextMenuTitleProps { widget: IRichTextWidget; renderMode: RenderMode; } /** * Rich text widget props. * * @public */ export declare interface IDashboardRichTextProps { /** * Backend to work with. * * @remarks * Note: the backend must come either from this property or from BackendContext. If you do not specify * backend here, then the component MUST be rendered within an existing BackendContext. * * @alpha */ backend?: IAnalyticalBackend; /** * Workspace where the Insight widget exists. * * @remarks * Note: the workspace must come either from this property or from WorkspaceContext. If you do not specify * workspace here, then the component MUST be rendered within an existing WorkspaceContext. * * @alpha */ workspace?: string; /** * Definition of insight widget to render. * * @public */ widget: IRichTextWidget; /** * Height of the rich text widget container. * * @alpha */ clientHeight?: number; /** * Width of the rich text widget container. * * @alpha */ clientWidth?: number; /** * @alpha */ onError?: OnError; /** * Callback to receive notifications about loading state of the widget. */ onLoadingChanged?: OnLoadingChanged; /** * Data for export in export mode. * * @alpha */ exportData?: WidgetExportDataAttributes; /** * Data for export in export mode. * * @alpha */ richTextExportData?: RichTextExportData; } /** * This event is emitted when the dashboard's rich text widget content is changed. * * @beta */ export declare interface IDashboardRichTextWidgetContentChanged extends IDashboardEvent { readonly type: "GDC.DASH/EVT.RICH_TEXT_WIDGET.CONTENT_CHANGED"; readonly payload: IDashboardRichTextWidgetContentChangedPayload; } /** * Payload of the {@link IDashboardRichTextWidgetContentChanged} event. * @beta */ export declare interface IDashboardRichTextWidgetContentChangedPayload { /** * Reference to changed rich text widget. */ readonly ref: ObjRef; /** * New value of the rich text widget content. */ readonly content: string; } /** * This event is emitted when the RichText widget's filter settings change. * * Filter settings influence what date dataset to use for filter or which of the dashboard's attribute filters * should be used for the widget. A change of filter settings means the RichText rendered in the widget will * be re-rendered. * * @beta */ export declare interface IDashboardRichTextWidgetFilterSettingsChanged extends IDashboardEvent { readonly type: "GDC.DASH/EVT.RICH_TEXT_WIDGET.FILTER_SETTINGS_CHANGED"; readonly payload: IDashboardRichTextWidgetFilterSettingsChangedPayload; } /** * Payload of the {@link IDashboardRichTextWidgetFilterSettingsChanged} event. * @beta */ export declare interface IDashboardRichTextWidgetFilterSettingsChangedPayload { /** * Reference to RichText Widget that was changed. */ readonly ref: ObjRef; /** * Attribute filters that are ignored for the widget. * * If empty, then all attribute filters defined for the dashboard are in effect. */ readonly ignoredAttributeFilters: IDashboardAttributeFilter[]; /** * Date filters with dimension that are ignored for the widget. * * If empty, then all date filters defined for the dashboard are in effect. */ readonly ignoredDateFilters?: IDashboardDateFilter[]; /** * Date dataset used for date filtering. * * If undefined, then dashboard's date filter is not in effect for the widget. */ readonly dateDatasetForFiltering?: ICatalogDateDataset; } /** * This event is emitted after the scheduled email is successfully created. * * @beta */ export declare interface IDashboardScheduledEmailCreated extends IDashboardEvent { readonly type: "GDC.DASH/EVT.SCHEDULED_EMAIL.CREATED"; readonly payload: IDashboardScheduledEmailCreatedPayload; } /** * Payload of the {@link IDashboardScheduledEmailCreated} event. * @beta */ export declare interface IDashboardScheduledEmailCreatedPayload { /** * The scheduled email created. */ readonly scheduledEmail: IAutomationMetadataObject; } /** * This event is emitted after the scheduled email is successfully saved. * * @beta */ export declare interface IDashboardScheduledEmailSaved extends IDashboardEvent { readonly type: "GDC.DASH/EVT.SCHEDULED_EMAIL.SAVED"; } /** * @alpha */ export declare interface IDashboardSettingsApplyPayload { disableCrossFiltering: boolean; disableUserFilterSave: boolean; disableUserFilterReset: boolean; disableFilterViews: boolean; evaluationFrequency: string | undefined; sectionHeadersDateDataSet: ObjRef | undefined; disablePersistentFiltersAcrossTabs: boolean; } /** * @alpha */ export declare interface IDashboardSettingsDialogProps { /** * Analytical backend from which the dashboard obtains data to render. */ backend: IAnalyticalBackend; /** * Identifier of analytical workspace, from which the dashboard obtains data to render. */ workspace: string; /** * Is dashboard setting dialog visible. */ isVisible?: boolean; /** * Callback to be called when user apply dashboard settings. */ onApply: (payload: IDashboardSettingsApplyPayload) => void; /** * Callback to be called, when error occurs. */ onError?: (error: GoodDataSdkError) => void; /** * Callback to be called when user closes the dashboard settings dialog. */ onCancel: () => void; } /** * Subset of IDashboardProps required during initialization of the dashboard component's store. * * @internal */ export declare interface IDashboardStoreProviderProps { backend?: IAnalyticalBackend; workspace?: string; dashboard?: ObjRef | IDashboard; persistedDashboard?: IDashboard; filterContextRef?: ObjRef; initialTabId?: string; eventHandlers?: DashboardEventHandler[]; config?: DashboardConfig; permissions?: IWorkspacePermissions; onStateChange?: (state: DashboardState, dispatch: DashboardDispatch) => void; onEventingInitialized?: (registerEventHandler: (handler: DashboardEventHandler) => void, unregisterEventHandler: (handler: DashboardEventHandler) => void) => void; additionalReduxContext?: Context; customizationFns?: DashboardModelCustomizationFns; widgetsOverlayFn?: WidgetsOverlayFn; initialRenderMode?: RenderMode; children?: ReactNode; } /** * This event is emitted when a dashboard tab is created. * * @alpha */ export declare interface IDashboardTabCreated extends IDashboardEvent { readonly type: "GDC.DASH/EVT.TAB.CREATED"; readonly payload: IDashboardTabCreatedPayload; } /** * Payload of the {@link IDashboardTabCreated} event. * @alpha */ export declare interface IDashboardTabCreatedPayload { /** * Identifier of the newly created tab. */ readonly newTabId: string; /** * Index at which the new tab was inserted. */ readonly index: number; } /** * This event is emitted when a dashboard tab is deleted. * * @alpha */ export declare interface IDashboardTabDeleted extends IDashboardEvent { readonly type: "GDC.DASH/EVT.TAB.DELETED"; readonly payload: IDashboardTabDeletedPayload; } /** * Payload of the {@link IDashboardTabDeleted} event. * @alpha */ export declare interface IDashboardTabDeletedPayload { /** * Identifier of the deleted tab. */ readonly deletedTabId: string; /** * Index from which the tab was deleted. */ readonly previousIndex: number; /** * Identifier of the next active tab after deletion. Undefined if none selected. */ readonly nextActiveTabId?: string; } /** * This event is emitted when a dashboard tab is renamed. * @alpha */ export declare interface IDashboardTabRenamed extends IDashboardEvent { readonly type: "GDC.DASH/EVT.TAB.RENAMED"; readonly payload: IDashboardTabRenamedPayload; } /** * Payload of the {@link IDashboardTabRenamed} event. * @alpha */ export declare interface IDashboardTabRenamedPayload { /** * Identifier of the tab that was renamed. */ readonly tabId: string; /** * New title of the tab. */ readonly title: string; } /** * This event is emitted when renaming mode is canceled for a dashboard tab. * @alpha */ export declare interface IDashboardTabRenamingCanceled extends IDashboardEvent { readonly type: "GDC.DASH/EVT.TAB.RENAME_MODE.CANCELED"; readonly payload: IDashboardTabRenamingCanceledPayload; } /** * Payload of the {@link IDashboardTabRenamingCanceled} event. * @alpha */ export declare interface IDashboardTabRenamingCanceledPayload { /** * Identifier of the tab whose renaming has been canceled. */ readonly tabId: string; } /** * This event is emitted when renaming mode is started for a dashboard tab. * @alpha */ export declare interface IDashboardTabRenamingStarted extends IDashboardEvent { readonly type: "GDC.DASH/EVT.TAB.RENAME_MODE.STARTED"; readonly payload: IDashboardTabRenamingStartedPayload; } /** * Payload of the {@link IDashboardTabRenamingStarted} event. * @alpha */ export declare interface IDashboardTabRenamingStartedPayload { /** * Identifier of the tab whose renaming has started. */ readonly tabId: string; } /** * This event is emitted when the active dashboard tab is switched. * * @alpha */ export declare interface IDashboardTabSwitched extends IDashboardEvent { readonly type: "GDC.DASH/EVT.TAB.SWITCHED"; readonly payload: IDashboardTabSwitchedPayload; } /** * Payload of the {@link IDashboardTabSwitched} event. * @alpha */ export declare interface IDashboardTabSwitchedPayload { /** * Identifier of the previously active tab (undefined if no tab was active). */ readonly previousTabId: string | undefined; /** * Identifier of the newly active tab. */ readonly newTabId: string; /** * What triggered this tab switch. * * @remarks * Omit for a regular user-initiated tab switch. See {@link DashboardTabSwitchSource} for the * recognized values and their effect. */ readonly source?: DashboardTabSwitchSource; } /** * @public */ export declare interface IDashboardThemingProps { /** * Theme to use. * * @remarks * Note: the theme can come either from this property or from ThemeContext or from the dashboard. * If you do not specify theme here, it will be taken from an existing ThemeContext or if there is no ThemeContext, * it will be loaded for the dashboard. */ theme?: ITheme; /** * When true, disables the loading of the workspace theme and creation of a ThemeProvider (if there is none * already present in the parent scope). * * @remarks * Currently – for technical reasons – the ThemeProvider changes the theme * globally (i.e. the theme is NOT constrained inside of a ThemeProvider). * * Turn this property to true if you need to avoid the global aspect of the themes, or you do not want to use themes at all. * * Defaults to false. */ disableThemeLoading?: boolean; /** * If provided it is called with loaded theme to allow its modification according to the app needs. * * @remarks * This is only applied to themes loaded from the backend, it is NOT applied to themes provided using * the "theme" prop. */ themeModifier?: (theme: ITheme) => ITheme; } /** * This event is emitted after the user interaction that cannot be tracked by other existing events * is triggered. * * @beta */ export declare interface IDashboardUserInteractionTriggered extends IDashboardEvent { readonly type: "GDC.DASH/EVT.USER_INTERACTION.TRIGGERED"; readonly payload: UserInteractionPayload; } /** * Visualization switcher widget props. * * @public */ export declare interface IDashboardVisualizationSwitcherProps { /** * Backend to work with. * * @remarks * Note: the backend must come either from this property or from BackendContext. If you do not specify * backend here, then the component MUST be rendered within an existing BackendContext. * * @alpha */ backend?: IAnalyticalBackend; /** * Workspace where the Insight widget exists. * * @remarks * Note: the workspace must come either from this property or from WorkspaceContext. If you do not specify * workspace here, then the component MUST be rendered within an existing WorkspaceContext. * * @alpha */ workspace?: string; /** * Definition of insight widget to render. * * @public */ widget: IVisualizationSwitcherWidget; /** * Identifier of visualization currently active. */ activeVisualizationId?: string | undefined; /** * Height of the visualization switcher widget container. * * @alpha */ clientHeight?: number; /** * Width of the visualization switcher widget container. * * @alpha */ clientWidth?: number; /** * Data for export in export mode. * * @alpha */ exportData?: WidgetExportData; onLoadingChanged?: OnLoadingChanged; onExportReady?: OnExportReady; onError?: OnError; screen: ScreenSize; } /** * This event is emitted when the new visualization is added to the dashboard's visualization switcher widget. * * @beta */ export declare interface IDashboardVisualizationSwitcherWidgetVisualizationAdded extends IDashboardEvent { readonly type: "GDC.DASH/EVT.VISUALIZATION_SWITCHER_WIDGET.VISUALIZATION_ADDED"; readonly payload: IDashboardVisualizationSwitcherWidgetVisualizationAddedPayload; } /** * Payload of the {@link IDashboardVisualizationSwitcherWidgetVisualizationAdded} event. * @beta */ export declare interface IDashboardVisualizationSwitcherWidgetVisualizationAddedPayload { /** * Reference to changed visualization switcher widget. */ readonly ref: ObjRef; /** * Visualization to add onto switcher widget. */ readonly visualization: IInsightWidget; } /** * This event is emitted when the dashboard's visualization switcher visualizations is updated. * * @beta */ export declare interface IDashboardVisualizationSwitcherWidgetVisualizationsUpdated extends IDashboardEvent { readonly type: "GDC.DASH/EVT.VISUALIZATION_SWITCHER_WIDGET.VISUALIZATIONS_UPDATED"; readonly payload: IDashboardVisualizationSwitcherWidgetVisualizationsUpdatedPayload; } /** * Payload of the {@link IDashboardVisualizationSwitcherWidgetVisualizationsUpdated} event. * @beta */ export declare interface IDashboardVisualizationSwitcherWidgetVisualizationsUpdatedPayload { /** * Reference to changed visualization switcher widget. */ readonly ref: ObjRef; /** * Visualizations to update from switcher widget. */ readonly visualizations: IInsightWidget[]; } /** * This event is emitted at the end of successful 'dashboard reset' command processing. At this point, the * dashboard is reset to the state it was after initial load. * * @beta */ export declare interface IDashboardWasReset extends IDashboardEvent { readonly type: "GDC.DASH/EVT.RESET"; readonly payload: IDashboardWasResetPayload; } /** * Payload of the {@link IDashboardWasReset} event. * @beta */ export declare interface IDashboardWasResetPayload { /** * Persisted state to which the dashboard was reset. If a new (not yet saved) dashboard was reset * then this property will be undefined. */ dashboard?: IDashboard; } /** * Set of functions you can use to customize custom widgets. * * @public */ export declare interface IDashboardWidgetCustomizer { /** * Adds a new custom widget type. * * @remarks * Custom widget's can be used to render arbitrary content. * * The custom widget must be wrapped inside an element which sets the height and width CSS sizing * properties in order to align the behavior with the provided widget types. * * @param widgetType - unique type name of the custom widget; if plugins register multiple custom * widgets for the same widget type, then the last-registered custom widget wins * @param Component - React component to use for rendering of the custom widget */ addCustomWidget(widgetType: string, Component: CustomDashboardWidgetComponent): IDashboardWidgetCustomizer; } /** * This event is emitted after execution of an insight widget fails. * * @beta */ export declare interface IDashboardWidgetExecutionFailed extends IDashboardEvent { readonly type: "GDC.DASH/EVT.WIDGET.EXECUTION_FAILED"; readonly payload: IDashboardWidgetExecutionFailedPayload; } /** * Payload of the {@link IDashboardWidgetExecutionFailed} event. * @beta */ export declare interface IDashboardWidgetExecutionFailedPayload { /** * Instance of {@link @gooddata/sdk-ui#GoodDataSdkError} with the information about the error the related execution failed with. */ error: GoodDataSdkError; /** * Reference to the widget that this event relates to. */ widgetRef: ObjRef; } /** * This event is emitted after execution of an insight widget starts. * * @beta */ export declare interface IDashboardWidgetExecutionStarted extends IDashboardEvent { readonly type: "GDC.DASH/EVT.WIDGET.EXECUTION_STARTED"; readonly payload: IDashboardWidgetExecutionStartedPayload; } /** * Payload of the {@link IDashboardWidgetExecutionStarted} event. * @beta */ export declare interface IDashboardWidgetExecutionStartedPayload { /** * Reference to the widget that this event relates to. */ widgetRef: ObjRef; /** * Instance of {@link @gooddata/sdk-model#IExecutionDefinition} that the widget executed. */ executionDefinition: IExecutionDefinition; } /** * This event is emitted after execution of an insight widget succeeds. * * @beta */ export declare interface IDashboardWidgetExecutionSucceeded extends IDashboardEvent { readonly type: "GDC.DASH/EVT.WIDGET.EXECUTION_SUCCEEDED"; readonly payload: IDashboardWidgetExecutionSucceededPayload; } /** * Payload of the {@link IDashboardWidgetExecutionSucceeded} event. * @beta */ export declare interface IDashboardWidgetExecutionSucceededPayload { /** * Instance of {@link @gooddata/sdk-backend-spi#IDataView} with the data the widget first requested. */ dataView: IDataView; /** * Reference to the widget that this event relates to. */ widgetRef: ObjRef; } /** * @beta */ export declare interface IDashboardWidgetOverlay { /** * Overlay over widget is display * * @alpha */ showOverlay: boolean; /** * Modifications type for widget * * @remarks * "insertedByPlugin" * Widget is inserted by plugin and is not originally in layout * * "modifiedByPlugin" * Widget is originally in layout but was modified by plugin by adding some decorators, tags, providers and so on * * @alpha */ modification?: "insertedByPlugin" | "modifiedByPlugin"; } /** * Dashboard widget props. * * @remarks * IMPORTANT: this interface is marked as public but not all properties in it are suitable for public consumption * yet. Please heed the per-property API maturity annotations; the alpha level APIs may change in a breaking way * in the next release. * * @public */ export declare interface IDashboardWidgetProps { /** * Backend to work with. * * @remarks * Note: the backend must come either from this property or from BackendContext. If you do not specify * backend here, then the component MUST be rendered within an existing BackendContext. * * @alpha */ backend?: IAnalyticalBackend; /** * Workspace where the widget exists. * * @remarks * Note: the workspace must come either from this property or from WorkspaceContext. If you do not specify * workspace here, then the component MUST be rendered within an existing WorkspaceContext. * * @alpha */ workspace?: string; /** * @public */ widget?: ExtendedDashboardWidget; /** * The size of layout item in which the item is nested. Undefined, when item is in the root layout. * * @alpha */ parentLayoutItemSize?: IDashboardLayoutSizeByScreenSize; /** * The path to the layout item in which the section is nested * * @alpha */ parentLayoutPath?: ILayoutItemPath; /** * Specify date data set to use when passing dashboard date filter to rendered visualization. * * @remarks * If not provided, the date filter will not be applied * * @public */ dateDataset?: ObjRef; /** * Specify what attribute filters to ignore for this widget. * * @remarks * Those filters will not be passed to the rendered visualization. * * @public */ ignoredAttributeFilters?: ObjRefInScope[]; /** * Error component to use when insight rendering fails for any reason. * * @alpha */ ErrorComponent: ComponentType; /** * Loading component to use while loading and preparing data to render. * * @alpha */ LoadingComponent: ComponentType; /** * @alpha */ screen: ScreenSize; /** * @alpha */ onDrill?: OnFiredDashboardDrillEvent; /** * @alpha */ onError?: OnError; /** * @alpha */ onFiltersChange?: (filters: (IDashboardFilter | FilterContextItem)[], resetOthers?: boolean) => void; /** * Callback that the component MUST call when the widget is clicked. * * @alpha */ onWidgetClicked?: () => void; /** * Turn widget header on/off. * * @alpha */ showHeader?: boolean; /** * Turn visibility of the interactions menu on/off. * * @alpha */ showMenu?: boolean; /** * Zero-based index of the row in which the item is rendered, * * @alpha * * @remarks * Optional only for the compatibility reasons with old fluid layout. * Once the flexible layout is the only one supported, it can be set as required. */ rowIndex?: number; /** * Data attributes for export mode to be added to the widget. * * @alpha */ exportData?: WidgetExportData; } /** * Properties for {@link Dashboard} widgets overlay. * * @remarks * IMPORTANT: while this interface is marked as public, you also need to heed the maturity annotations * on each property. A lot of these properties are at this moment alpha level. * * @public */ export declare interface IDashboardWidgetsOverlayProps { /** * Provide settings for widgets overlay * * @alpha */ widgetsOverlayFn?: WidgetsOverlayFn; } /** * @alpha */ export declare interface IDateFilterConfigsState { /** * Dashboard-level overrides of the workspace-level date filter with dimension configs. */ dateFilterConfigs?: IDashboardDateFilterConfigItem[]; } /** * @beta */ export declare interface IDateFilterConfigState { /** * Dashboard-level overrides of the workspace-level date filter config. */ dateFilterConfig?: IDashboardDateFilterConfig_2; /** * The effective date filter config to use for the dashboard. This is obtained by merging the * workspace-level config with the dashboard-level overrides. If the merged result is valid, then it * is used for effective config. If the merged result is invalid, then the workspace-level config is used as * fallback. */ effectiveDateFilterConfig?: IDateFilterConfig; /** * Indicates whether the effectiveDateFilterConfig is actually reflecting the dashboard-level config * overrides or it is just fallback to the workspace-level config. * * This is only true if the dashboard-level overrides are present AND their merge with workspace-level config * resulted in valid config. */ isUsingDashboardOverrides?: boolean; /** * Warnings result of the date filter validation if any. * * @remarks * When loading a date filter configuration, it can have some issues that we surface (e.g. having zero visible items). * These are not blocking though, if any issue is encountered, the config falls back to something sane. * The reason for storing this here is mainly for us to be able to show a warning when some issues are detected. */ dateFilterConfigValidationWarnings?: DateFilterValidationResult[]; } /** * @internal */ export declare type IDateFilterDraggingComponentProps = { itemType: "dateFilter"; item: DateFilterDraggableItem; }; /** * Set of functions you can use to customize how date filters are rendered. * * @public */ export declare interface IDateFiltersCustomizer { /** * Register a provider for React components to render date filters. * * @remarks * A provider takes the date filter as input and is expected to return * a React component that should be used to render that filter. * * If the provider returns `undefined` then: * * - if there are other providers registered, they will be called to see if they can provide * a component to render the date filter * - if there are no other providers registered, the default, built-in component will be used. * * You may register multiple providers. They will be evaluated in the order you register them. * * @param provider - provider to register * @returns self, for call chaining sakes */ withCustomProvider(provider: OptionalDateFilterComponentProvider): IDateFiltersCustomizer; } /** * @alpha */ export declare interface IDefaultDashboardExportVariablesProps { renderMode: RenderMode; } /** * @internal */ export declare interface IDefaultDashboardToolbarButtonProps { icon: string; onClick: () => void; isActive?: boolean; disabled?: boolean; tooltip?: string; } /** * @internal */ export declare interface IDefaultDashboardToolbarGroupProps { title: string; children?: ReactNode; } /** * This event is emitted when an attribute hierarchy is deleted. * * @internal */ export declare interface IDeleteAttributeHierarchyRequested extends IDashboardEvent { readonly type: "GDC.DASH/EVT.DELETE_ATTRIBUTE_HIERARCHY_REQUESTED"; } /** * @beta */ export declare interface IDeleteDashboard extends IDashboardCommand { readonly type: "GDC.DASH/CMD.DELETE"; } /** * Command to delete a dashboard tab. * * @remarks * This command will: * - Remove the tab with the given identifier * - If the deleted tab is currently active, switch to the next available tab (or previous if next does not exist) * - If no tabs remain, clear the active tab * * @alpha */ export declare interface IDeleteDashboardTab extends IDashboardCommand { readonly type: "GDC.DASH/CMD.TAB.DELETE"; readonly payload: IDeleteDashboardTabPayload; } /** * Payload of the {@link IDeleteDashboardTab} command. * @alpha */ export declare interface IDeleteDashboardTabPayload { /** * Identifier of the tab to delete. */ readonly tabId: string; } /** * Command for deletion of a saved filter view. * * @remarks * See {@link deleteFilterView} for a factory function that will help you create this command. * * @alpha */ export declare interface IDeleteFilterView extends IDashboardCommand { readonly type: "GDC.DASH/CMD.FILTER_CONTEXT.FILTER_VIEW.DELETE"; readonly payload: IDeleteFilterViewPayload; } /** * Payload of the {@link IDeleteFilterView} command. * @alpha */ export declare interface IDeleteFilterViewPayload { readonly ref: ObjRef; } /** * Mapping between dashboard object identities. This is typically used to map between temporary identity assigned * to a dashboard object as it is added onto a dashboard and the persistent identity of the object once it * it saved by the backend. * * * @internal */ export declare type IdentityMapping = { original: IDashboardObjectIdentity; updated: IDashboardObjectIdentity; }; /** * @internal */ export declare type IDraggableCreatePanelItemProps = { Component: CustomCreatePanelItemComponent; WrapCreatePanelItemWithDragComponent?: IWrapCreatePanelItemWithDragComponent; dragItem: DraggableItem; hideDefaultPreview?: boolean; disabled?: boolean; onDragStart?: (item: DraggableItem) => void; }; /** * @internal */ export declare interface IDraggingComponentProps { } /** * @alpha */ export declare interface IDrill extends IDashboardCommand { readonly type: "GDC.DASH/CMD.DRILL"; readonly payload: IDrillPayload; } /** * @alpha */ export declare interface IDrillDialogExportDropdownProps { exportAvailable: boolean; exportXLSXEnabled: boolean; exportCSVEnabled: boolean; exportCSVRawEnabled: boolean; exportPDFEnabled: boolean; exportPDFVisible: boolean; onExportXLSX: () => void; onExportCSV: () => void; onExportCSVRaw: () => void; onExportPDF: () => void; isLoading: boolean; isExporting: boolean; isExportRawVisible: boolean; } /** * @alpha */ export declare interface IDrillDown extends IDashboardCommand { readonly type: "GDC.DASH/CMD.DRILL.DRILL_DOWN"; readonly payload: IDrillDownPayload; } /** * Implicit drill down context * * @alpha */ export declare interface IDrillDownContext { drillDefinition: IDrillDownDefinition; event: IDrillEvent; } /** * Information about the DrillDown interaction - the attribute that is next in the drill down hierarchy. * @beta */ export declare interface IDrillDownDefinition { type: "drillDown"; /** * Local identifier of the attribute that triggered the drill down. */ origin: LocalIdRef; /** * Target attribute display form for drill down. */ target: ObjRef; /** * Title for the target attribute. */ title?: string; /** * Reference to the attribute hierarchy that triggered the drill down. * Is required if enableDrillDownIntersectionIgnoredAttributes feature flag is set to true. */ hierarchyRef?: ObjRef; } /** * Payload of the {@link IDrillDown} command. * @alpha */ export declare interface IDrillDownPayload { /** * Insight to which the drill down should be applied. */ readonly insight: IInsight; /** * Drill down definition to apply. */ readonly drillDefinition: IDrillDownDefinition; /** * Original drill event, that triggered this particular drill interaction. */ readonly drillEvent: IDashboardDrillEvent; } /** * Payload of the {@link IDrill} command. * @alpha */ export declare interface IDrillPayload { /** * Original drill event, that triggered this particular drill interaction. */ readonly drillEvent: IDashboardDrillEvent; /** * Context in which the drill interaction was triggered (widget and insight details - if available). */ readonly drillContext: IDashboardDrillContext; } /** * @beta */ export declare interface IDrillState { drillableItems: Record; crossFiltering: Record; } /** * @beta */ export declare interface IDrillStep { drillEvent: IDashboardDrillEvent; drillDefinition: IDrillToInsight_2 | IDrillDownDefinition; insight: IInsight; } /** * Represent state item of widget reported available drill targets. * * @alpha */ export declare interface IDrillTargets { /** * Identifier of widget to which the drills belong. */ identifier: Identifier; /** * URI of the widget to which the drills belong. */ uri: string; /** * widget ref */ ref: ObjRef; /** * widget reported available drill targets */ availableDrillTargets?: IAvailableDrillTargets; } /** * Widget drill targets added event * * @alpha */ export declare interface IDrillTargetsAdded extends IDashboardEvent { readonly type: "GDC.DASH/EVT.DRILL_TARGETS.ADDED"; readonly payload: IDrillTargetsAddedPayload; } /** * Payload of the {@link IDrillTargetsAdded} event. * @alpha */ export declare interface IDrillTargetsAddedPayload { /** * Reference to Insight Widget */ readonly ref: ObjRef; readonly availableDrillTargets: IAvailableDrillTargets; } /** * @alpha */ export declare interface IDrillToAttributeUrl extends IDashboardCommand { readonly type: "GDC.DASH/CMD.DRILL.DRILL_TO_ATTRIBUTE_URL"; readonly payload: IDrillToAttributeUrlPayload; } /** * Payload of the {@link IDrillToAttributeUrl} command. * @alpha */ export declare interface IDrillToAttributeUrlPayload { /** * Drill definition with the attribute url to resolve. */ readonly drillDefinition: IDrillToAttributeUrl_2; /** * Original drill event, that triggered this particular drill interaction. */ readonly drillEvent: IDashboardDrillEvent; } /** * @alpha */ export declare interface IDrillToCustomUrl extends IDashboardCommand { readonly type: "GDC.DASH/CMD.DRILL.DRILL_TO_CUSTOM_URL"; readonly payload: IDrillToCustomUrlPayload; } /** * Payload of the {@link IDrillToCustomUrl} command. * @alpha */ export declare interface IDrillToCustomUrlPayload { /** * Drill definition with the custom url to resolve. */ readonly drillDefinition: IDrillToCustomUrl_2; /** * Original drill event, that triggered this particular drill interaction. */ readonly drillEvent: IDashboardDrillEvent; } /** * @alpha */ export declare interface IDrillToDashboard extends IDashboardCommand { readonly type: "GDC.DASH/CMD.DRILL.DRILL_TO_DASHBOARD"; readonly payload: IDrillToDashboardPayload; } /** * Payload of the {@link IDrillToDashboard} command. * @alpha */ export declare interface IDrillToDashboardPayload { /** * Drill definition with the target dashboard. */ readonly drillDefinition: IDrillToDashboard_2; /** * Original drill event, that triggered this particular drill interaction. */ readonly drillEvent: IDashboardDrillEvent; } /** * @alpha */ export declare interface IDrillToInsight extends IDashboardCommand { readonly type: "GDC.DASH/CMD.DRILL.DRILL_TO_INSIGHT"; readonly payload: IDrillToInsightPayload; } /** * Payload of the {@link IDrillToInsight} command. * @alpha */ export declare interface IDrillToInsightPayload { /** * Drill definition with the target insight. */ readonly drillDefinition: IDrillToInsight_2; /** * Original drill event, that triggered this particular drill interaction. */ readonly drillEvent: IDashboardDrillEvent; } /** * @alpha */ export declare interface IDrillToLegacyDashboard extends IDashboardCommand { readonly type: "GDC.DASH/CMD.DRILL.DRILL_TO_LEGACY_DASHBOARD"; readonly payload: IDrillToLegacyDashboardPayload; } /** * Payload of the {@link IDrillToLegacyDashboard} command. * @alpha */ export declare interface IDrillToLegacyDashboardPayload { /** * Drill definition with the target dashboard. */ readonly drillDefinition: IDrillToLegacyDashboard_2; /** * Original drill event, that triggered this particular drill interaction. */ readonly drillEvent: IDashboardDrillEvent; } /** * @internal */ export declare type IDrillToUrl = IDrillToCustomUrl_2 | IDrillToAttributeUrl_2; /** * @internal */ export declare interface IDrillToUrlAttributeDefinition { type: "drillToUrl"; /** * Local identifier of the attribute that triggered the drill to url. */ origin: LocalIdRef; /** * Target attribute display form for drill to url. */ target: ObjRef; } /** * @internal */ export declare interface IDrillToUrlPlaceholder { placeholder: string; identifier: string; toBeEncoded: boolean; } /** * @internal */ export declare interface IDropTargetComponentProps { } /** * @beta */ export declare interface IEditButtonProps { isVisible: boolean; isEnabled: boolean; onEditClick: () => void; tooltipText: string; } /** * @beta */ export declare interface IEntitlementsState { entitlements?: ResolvedEntitlements; } /** * @beta */ export declare interface IExecutedState { executed: boolean; } /** * @beta */ export declare interface IExecutionResultEnvelope { id: string; isLoading: boolean; executionResult?: IExecutionResult; error?: GoodDataSdkError; warnings?: IResultWarning[]; /** * Limits broken during result computation, causing partial data to be returned for this widget. * * @alpha */ limitBreaks?: IExecutionResultLimitBreak[]; } /** * @beta */ export declare type IExportConfig = ICsvExportConfig | IXlsxExportConfig | IPdfExportConfig; /** * @beta */ export declare interface IExportDashboardToExcel extends IDashboardCommand { readonly type: "GDC.DASH/CMD.EXPORT.EXCEL"; readonly payload: IExportDashboardToExcelPayload; } /** * @beta */ export declare interface IExportDashboardToExcelPayload { mergeHeaders: boolean; exportInfo: boolean; widgetIds?: string[]; fileName?: string; format?: "XLSX" | "PDF"; pdfConfiguration?: PdfConfiguration; } /** * @beta */ export declare interface IExportDashboardToPdf extends IDashboardCommand { readonly type: "GDC.DASH/CMD.EXPORT.PDF"; readonly payload?: IExportDashboardToPdfPayload; } /** * @beta */ export declare interface IExportDashboardToPdfPayload { exportMetadata?: Record; } /** * @beta */ export declare interface IExportDashboardToPdfPresentation extends IDashboardCommand { readonly type: "GDC.DASH/CMD.EXPORT.PDF_PRESENTATION"; readonly payload?: IExportDashboardToPresentationPayload; } /** * @beta */ export declare interface IExportDashboardToPptPresentation extends IDashboardCommand { readonly type: "GDC.DASH/CMD.EXPORT.PPT_PRESENTATION"; readonly payload?: IExportDashboardToPresentationPayload; } /** * @beta */ export declare interface IExportDashboardToPresentationPayload { /** * Overrides current filter context filters with provided custom filters */ filters?: FilterContextItem[]; /** * Adds custom export metadata to the export request. */ exportMetadata?: Record; /** * Overrides export options with custom options. */ options?: IDashboardExportPresentationOptions; } /** * @alpha */ export declare interface IExportImageInsightWidget extends IDashboardCommand { readonly type: "GDC.DASH/CMD.INSIGHT_WIDGET.EXPORT_IMAGE"; readonly payload: IExportImageInsightWidgetPayload; } /** * Payload of the {@link IExportImageInsightWidget} command. * @alpha */ export declare interface IExportImageInsightWidgetPayload { /** * Reference to Insight to export. */ readonly ref: ObjRef; /** * Reference to Insight title to export. */ readonly filename: string; } /** * @beta */ export declare interface IExportInsightWidget extends IDashboardCommand { readonly type: "GDC.DASH/CMD.INSIGHT_WIDGET.EXPORT"; readonly payload: IExportInsightWidgetPayload; } /** * Payload of the {@link IExportInsightWidget} command. * @beta */ export declare interface IExportInsightWidgetPayload { /** * Reference to Insight Widget to export. */ readonly ref: ObjRef; /** * Options for the export. */ readonly config: IExportConfig; /** * Optional transient insight definition to export. */ readonly insight?: IInsight; } /** * Set of functions you can use to customize the export layout of the dashboard rendered. * * @alpha */ export declare interface IExportLayoutCustomizer { addTransformer(fn: SectionSlidesTransformer): IExportLayoutCustomizer; } /** * @alpha */ export declare interface IExportRawInsightWidget extends IDashboardCommand { readonly type: "GDC.DASH/CMD.INSIGHT_WIDGET.EXPORT_RAW"; readonly payload: IExportRawInsightWidgetPayload; } /** * @alpha */ export declare type IExportRawInsightWidgetOptions = IDashboardExportRawOptions; /** * Payload of the {@link IExportRawInsightWidget} command. * @alpha */ export declare interface IExportRawInsightWidgetPayload { /** * Reference to Insight Widget to export. */ readonly ref: ObjRef; /** * Reference to Insight Widget to export. */ readonly widget: IInsightWidget; /** * Reference to Insight definition to export. */ readonly insight: IInsight; /** * Reference to Insight title to export. */ readonly filename: string; /** * Export options. */ readonly options?: IExportRawInsightWidgetOptions; } /** * @alpha */ export declare interface IExportSlidesInsightWidget extends IDashboardCommand { readonly type: "GDC.DASH/CMD.INSIGHT_WIDGET.EXPORT_SLIDES"; readonly payload: IExportSlidesInsightWidgetPayload; } /** * Payload of the {@link IExportSlidesInsightWidget} command. * @alpha */ export declare interface IExportSlidesInsightWidgetPayload { /** * Reference to Insight to export. */ readonly ref: ObjRef; /** * Reference to Insight title to export. */ readonly filename: string; /** * Type of export to perform. */ readonly exportType: "pdf" | "pptx"; /** * Identifier of the export template to use. */ readonly templateId?: string; } /** * @alpha */ export declare interface IExportThemeProviderProps { children: ReactNode; } /** * Set of functions you can use to customize some aspects of the FilterBar. * * @public */ export declare interface IFilterBarCustomizer { /** * Set the rendering mode of the FilterBar. * * @param mode - the mode to use, see {@link FilterBarRenderingMode} for info on individual values */ setRenderingMode(mode: FilterBarRenderingMode): IFilterBarCustomizer; /** * Register a provider for React components to render filter bar. * * @remarks * A provider takes the filter bar as input and is expected to return * a React component that should be used to render that filter bar. * * If the provider returns `undefined` then: * * - if there are other providers registered, they will be called to see if they can provide * a component to render the filter bar * - if there are no other providers registered, the default, built-in component will be used. * * You may register multiple providers. They will be evaluated in the order you register them. * * @param provider - provider to register * @returns self, for call chaining sakes */ withCustomProvider(provider: OptionalFilterBarComponentProvider): IFilterBarCustomizer; /** * Register a factory for top bar decorator providers. * * @remarks * Decorators are a way to add customizations or embellishments on top * of an existing component. Decorators are more complex to write because they need to work with the component * they should decorate and add 'something' on top of that component. * * This is best illustrated on an example: * * @example * ``` * withCustomDecorator((next) => { * return (filter) => { * if (some_condition_to_prevent_decoration) { * return undefined; * } * * // Make sure you call this outside the component render function, * // otherwise a new instance of the decorated component is created on each re-render. * const Decorated = next(filter); * * function MyCustomDecorator(props) { * return ( *
*

My Custom Decoration

* *
* ) * } * * return MyCustomDecorator; * } * }) * ``` * * The above shows how to register a decorator that will use some condition to determine whether particular * attribute filter is eligible for decoration. * * Note: the factory function that you specify will be called immediately at the registration time. The * provider that it returns will be called at render time. * * @param providerFactory - factory */ withCustomDecorator(providerFactory: (next: FilterBarComponentProvider) => OptionalFilterBarComponentProvider): IFilterBarCustomizer; } /** * @alpha */ export declare interface IFilterBarFilterGroupItem { filterIndex: number; groupConfig: IDashboardFilterGroup; filters: FilterBarItem[]; } /** * @alpha */ export declare interface IFilterBarProps { /** * Filters that are set for the dashboard. */ filters: FilterContextItem[]; /** * Working filters that are used to dispaly filter selected values. If undefined, filters are used instead. */ workingFilters?: FilterContextItem[]; /** * Filter groups config. */ filterGroupsConfig?: IDashboardFilterGroupsConfig; /** * When value of an attribute filter that is part of the FilterBar changes, the filter bar MUST propagate the event * using this callback. * * @param filter - filter that has changed */ onAttributeFilterChanged: (filter: DashboardAttributeFilterItem, displayAsLabel?: ObjRef) => void; /** * When value of a date filter that is part of the FilterBar changes, the filter bar MUST propagate the event * using this callback. * * @param filter - filter that has changed, undefined if All time date filter was selected * @param dateFilterOptionLocalId - localId of the {@link @gooddata/sdk-backend-spi#IDateFilterOption} selected */ onDateFilterChanged: (filter: IDashboardDateFilter | undefined, dateFilterOptionLocalId?: string) => void; /** * When the condition of a dashboard measure value filter changes, the filter bar MUST propagate the event * using this callback. * * @param filter - the dashboard measure value filter being updated * @param conditions - the new conditions; empty or undefined means the filter is set to "All" */ onMeasureValueFilterChanged?: (filter: IDashboardMeasureValueFilter, conditions: MeasureValueFilterCondition[] | undefined, isWorkingSelectionChange?: boolean) => void; /** * Contains reference to default implementation of the filter bar. If you are implementing a custom * filter bar that decorates default filter bar, then use this component to render the default filter * bar. */ DefaultFilterBar: ComponentType; } /** * Set of functions you can use to customize how filter groups are rendered. * * @public */ export declare interface IFilterGroupsCustomizer { /** * Register a provider for React components to render filter groups. */ withCustomProvider(provider: OptionalFilterGroupComponentProvider): IFilterGroupsCustomizer; } /** * @beta */ export declare interface IFilterOp { readonly type: FilterOperations; } /** * This filter operation disabled date filtering for the widget. * * @beta */ export declare interface IFilterOpDisableDateFilter extends IFilterOp { type: "disableDateFilter"; } /** * This filter operation enables date filtering for the widget. * * A ref to date data set must be specified as it is passed down to widget content. Insights or KPIs can be typically * date-filtered using different date data sets and so this selection is essential. * * @beta */ export declare interface IFilterOpEnableDateFilter extends IFilterOp { type: "enableDateFilter"; /** * Ref of date data set to use in date filters applied on the content of the widget. * If passed "default", the default date dataset will be resolved and used. */ dateDataset: ObjRef | "default"; } /** * This filter operation appends one or more attribute filters into the widget's filter ignore-list. * * @beta */ export declare interface IFilterOpIgnoreAttributeFilter extends IFilterOp { type: "ignoreAttributeFilter"; /** * The attribute filters to add to ignore-list; specified using the refs of display forms that are used during the * filtering. * * If the list is empty, then the operation will not change the filters in any way. * Attempting to add same attribute filter into the ignore list has no effect. */ displayFormRefs: ObjRef[]; } /** * This filter operation appends one or more date filters into the widget's filter ignore-list. * * @beta */ export declare interface IFilterOpIgnoreDateFilter extends IFilterOp { type: "ignoreDateFilter"; /** * The date filters to add to ignore-list; specified using the refs of date data sets that are used during the * filtering. * * If the list is empty, then the operation will not change the filters in any way. * Attempting to add same attribute filter into the ignore list has no effect. */ dateDataSetRefs: ObjRef[]; } /** * This filter operation appends one or more measure value filters into the widget's filter ignore-list. * * @alpha */ export declare interface IFilterOpIgnoreMeasureValueFilter extends IFilterOp { type: "ignoreMeasureValueFilter"; /** * The measure value filters to add to ignore-list; specified using the refs of measures that are used during * the filtering. */ measureRefs: ObjRef[]; } /** * * This filter operation completely replaces widget's filter settings. Both date data set (and thus date filter) setting * and the attribute filter ignore list will be replaced using the parameters in the operation body. * * @beta */ export declare interface IFilterOpReplaceAll extends IFilterOp { type: "replace"; /** * Dashboard filters to ignore for particular widget. * * Specify ObjRefs of display forms that are used by dashboard's attribute filters which you wish to disable. */ readonly ignoreAttributeFilters?: ObjRef[]; /** * Dashboard date filters to ignore for particular widget. * * Specify ObjRefs of date data sets that are used by dashboard's date filters which you wish to disable. */ readonly ignoreDateFilters?: ObjRef[]; /** * Dashboard measure value filters to ignore for particular widget. * * Specify ObjRefs of measures that are used by dashboard's measure value filters which you wish to disable. */ readonly ignoreMeasureValueFilters?: ObjRef[]; /** * Date data set that will be used when constructing date filter for a widget. * * If the widget does not specify any dateDataSet, then no date filtering is applied to it. */ readonly dateDatasetForFiltering?: ObjRef; } /** * This filter operation replaces the setting which determines which of the dashboard's attribute filters * should be ignored for the widget. * * @beta */ export declare interface IFilterOpReplaceAttributeIgnores extends IFilterOp { type: "replaceAttributeIgnores"; /** * The attribute filters to ignore; specified using the refs of display forms that are used during the * filtering. * * If the list of display forms is empty, then none of the dashboard's attribute filters will be ignored. */ displayFormRefs: ObjRef[]; } /** * This filter operation removes one or more attribute filters from the widget's filter ignore-list. * * @beta */ export declare interface IFilterOpUnignoreAttributeFilter extends IFilterOp { type: "unignoreAttributeFilter"; /** * The attribute filters to remove from the ignore-list; specified using the refs of display forms that are * used during the filtering. * * If the list is empty, then the operation will not change the filters in any way. * Attempting to remove same attribute filter twice has no effect. */ displayFormRefs: ObjRef[]; } /** * This filter operation removes one or more date filters from the widget's filter ignore-list. * * @beta */ export declare interface IFilterOpUnignoreDateFilter extends IFilterOp { type: "unignoreDateFilter"; /** * The attribute filters to remove from the ignore-list; specified using the refs of display forms that are * used during the filtering. * * If the list is empty, then the operation will not change the filters in any way. * Attempting to remove same attribute filter twice has no effect. */ dateDataSetRefs: ObjRef[]; } /** * This filter operation removes one or more measure value filters from the widget's filter ignore-list. * * @alpha */ export declare interface IFilterOpUnignoreMeasureValueFilter extends IFilterOp { type: "unignoreMeasureValueFilter"; /** * The measure value filters to remove from the ignore-list; specified using the refs of measures that are used * during the filtering. */ measureRefs: ObjRef[]; } /** * Set of functions you can use to customize rendering of the filters. * * @public */ export declare interface IFiltersCustomizer { /** * Customize how rendering of date filters is done. */ date(): IDateFiltersCustomizer; /** * Customize how rendering of attribute filters is done. */ attribute(): IAttributeFiltersCustomizer; /** * Customize how rendering of measure value filters is done. * * @alpha */ measureValue(): IMeasureValueFiltersCustomizer; /** * Customize how rendering of filter groups is done. */ filterGroup(): IFilterGroupsCustomizer; } /** * @alpha */ export declare interface IFilterViews { dashboard: ObjRef; filterViews: IDashboardFilterView[]; } /** * @alpha */ export declare interface IFilterViewsState { filterViews: IFilterViews[]; isLoading: boolean; } /** * Set of functions you can use to customize the fluid layout of the dashboard rendered. * * @public */ export declare interface IFluidLayoutCustomizer { /** * Adds a new section with one or more custom widgets onto the fluid layout. * * @remarks * The section to add must not be empty - it must contain at least one item. Attempts to add empty sections * will be ignored and warnings will be reported. * * @param sectionIdx - index to add the new section at * @param section - section to add; note: customizer will make a deep copy of the item before adding it * onto a dashboard. At this moment, the newly added items are read-only. * @deprecated Use {@link IFluidLayoutCustomizer.addSectionToPath} with sectionPath param instead. */ addSection(sectionIdx: number, section: IDashboardLayoutSection): IFluidLayoutCustomizer; /** * Adds a new section with one or more custom widgets onto the layout even to the nested layout. * * @remarks * The section to add must not be empty - it must contain at least one item. Attempts to add empty sections * will be ignored and warnings will be reported. * * @param sectionPath - path in layout to add the new section at * @param section - section to add; note: customizer will make a deep copy of the item before adding it * onto a dashboard. At this moment, the newly added items are read-only. */ addSectionToPath(sectionPath: ILayoutSectionPath, section: IDashboardLayoutSection): IFluidLayoutCustomizer; /** * Adds a new item containing a custom widget onto the dashboard. * * @remarks * New item will be added to * an existing section at index `sectionIdx` and within that section will be placed at `itemIdx`. The item * to add must contain a custom widget data. Attempts to add item that does not contain any widget data * will be ignored and warnings will be reported. Keep in mind that this can lead to further errors or * problems down the line if you are adding more items at specific indexes into the same section. * * Note: new items will be added into existing sections before new sections will be added using the * {@link IFluidLayoutCustomizer.addSectionToPath} method. Therefore, * * @param sectionIdx - index of section where to add the new item * @param itemIdx - index within the section where to add new item; you may specify -1 to add the * item at the end of the section * @param item - item containing custom widget; note: customizer will make a deep copy of the item before adding it * onto a dashboard. At this moment, the newly added items are read-only. * @deprecated Use {@link IFluidLayoutCustomizer.addItemToPath} with itemPath param instead. */ addItem(sectionIdx: number, itemIdx: number, item: IDashboardLayoutItem): IFluidLayoutCustomizer; /** * Adds a new item containing a custom widget onto the dashboard. * * @remarks * New item will be added to * position defined by provided path allowing target also nested layouts/sections. All sections in path already need to exist. The item * to add must contain a custom widget data. Attempts to add item that does not contain any widget data * will be ignored and warnings will be reported. Keep in mind that this can lead to further errors or * problems down the line if you are adding more items at specific indexes into the same section. * * Note: new items will be added into existing sections before new sections will be added using the * IFluidLayoutCustomizer.addSection method. Therefore, * * @param itemPath - layout path where to add new item * @param item - item containing custom widget; note: customizer will make a deep copy of the item before adding it * onto a dashboard. At this moment, the newly added items are read-only. */ addItemToPath(itemPath: ILayoutItemPath, item: IDashboardLayoutItem): IFluidLayoutCustomizer; } /** * @internal */ export declare interface IGlobalDrillDownAttributeHierarchyDefinition { type: "drillDown"; /** * Local identifier of the attribute that triggered the drill down. */ origin: LocalIdRef; /** * Target attribute hierarchy for drill down. */ target: ObjRef; } /** * Creates the ChangeInsightWidgetFilterSettings command for {@link IFilterOpIgnoreDateFilter} operation. * * Dispatching this command will result in addition of one or more filters into Insight widget's date filter ignore-list. * Those date filters that use the provided date data sets for filtering will be ignored by the widget on top of any * other filters that are already ignored. * * Ignored date filters are not passed down to the insight and will not be used to filter that insight. * * The operation is idempotent - trying to ignore a date filter multiple times will have no effect. * * @param ref - reference of the insight widget to modify * @param oneOrMoreDataSets - one or more refs of date dataSets used by date filters that should be added to the ignore-list * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @public */ export declare function ignoreDateFilterOnInsightWidget(ref: ObjRef, oneOrMoreDataSets: ObjRef | ObjRef[], correlationId?: string): IChangeInsightWidgetFilterSettings; /** * Creates the ChangeRichTextWidgetFilterSettings command for {@link IFilterOpIgnoreDateFilter} operation. * * Dispatching this command will result in addition of one or more filters into Rich Text widget's date filter ignore-list. * Ignored date filters are not passed down to the metrics resolved in rich text references. * * The operation is idempotent - trying to ignore a date filter multiple times will have no effect. * * @param ref - reference of the Rich Text widget to modify * @param oneOrMoreDataSets - one or more refs of date datasets used by date filters that should be added to the ignore-list * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @alpha */ export declare function ignoreDateFilterOnRichTextWidget(ref: ObjRef, oneOrMoreDataSets: ObjRef | ObjRef[], correlationId?: string): IChangeRichTextWidgetFilterSettings; /** * Creates the ChangeInsightWidgetFilterSettings command for {@link IFilterOpIgnoreAttributeFilter} operation. * * Dispatching this command will result in addition of one or more filters into Insight widget's attribute filter ignore-list. * Those attribute filters that use the provided displayForms for filtering will be ignored by the widget on top of any * other filters that are already ignored. * * Ignored attribute filters are not passed down to the insight and will not be used to filter that insight. * * The operation is idempotent - trying to ignore an attribute filter multiple times will have no effect. * * @param ref - reference of the insight widget to modify * @param oneOrMoreDisplayForms - one or more refs of display forms used by attribute filters that should be added to the ignore-list * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @public */ export declare function ignoreFilterOnInsightWidget(ref: ObjRef, oneOrMoreDisplayForms: ObjRef | ObjRef[], correlationId?: string): IChangeInsightWidgetFilterSettings; /** * Creates the ChangeKpiWidgetFilterSettings command for {@link IFilterOpIgnoreAttributeFilter} operation. * * Dispatching this command will result in addition of one or more filters into KPI widget's attribute filter ignore-list. * Those attribute filters that use the provided displayForms for filtering will be ignored by the widget on top of any * other filters that are already ignored. * * Ignored attribute filters are not passed down to the KPI and will not be used to filter that KPI. * * The operation is idempotent - trying to ignore an attribute filter multiple times will have no effect. * * @param ref - reference of the KPI widget to modify * @param oneOrMoreDisplayForms - one or more refs of display forms used by attribute filters that should be added to the ignore-list * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function ignoreFilterOnKpiWidget(ref: ObjRef, oneOrMoreDisplayForms: ObjRef | ObjRef[], correlationId?: string): IChangeKpiWidgetFilterSettings; /** * Creates the ChangeRichTextWidgetFilterSettings command for {@link IFilterOpIgnoreAttributeFilter} operation. * * Dispatching this command will result in addition of one or more filters into Rich Text widget's attribute filter ignore-list. * Those attribute filters that use the provided displayForms for filtering will be ignored by the widget on top of any * other filters that are already ignored. * * Ignored attribute filters are not passed down to the metrics and will not be used to filter those metrics. * * The operation is idempotent - trying to ignore an attribute filter multiple times will have no effect. * * @param ref - reference of the rich text widget to modify * @param oneOrMoreDisplayForms - one or more refs of display forms used by attribute filters that should be added to the ignore-list * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @alpha */ export declare function ignoreFilterOnRichTextWidget(ref: ObjRef, oneOrMoreDisplayForms: ObjRef | ObjRef[], correlationId?: string): IChangeRichTextWidgetFilterSettings; /** * @internal */ export declare interface IHeadlessDashboardConfig { queryServices?: IDashboardQueryService[]; backgroundWorkers?: ((context: DashboardContext) => SagaIterator)[]; customizationFns?: DashboardModelCustomizationFns; } /** * @internal */ export declare interface IHeightResizerDragItem { type: "internal-height-resizer"; sectionIndex: number; sectionPath?: ILayoutSectionPath; itemIndexes: number[]; widgetHeights: number[]; initialLayoutDimensions: DOMRect; minLimit: number; maxLimit: number; } /** * @internal */ export declare interface IImplicitDrillWithPredicates { drillDefinition: DashboardDrillDefinition; predicates: IHeaderPredicate[]; } /** * Dashboard which is inaccessible by current user. * * @alpha */ export declare interface IInaccessibleDashboard extends IDashboardObjectIdentity { /** * Dashboard title */ title: string; /** * Type of accessibility limitation */ accessibilityLimitation?: DashboardAccessibilityLimitation; } /** * Initialize dashboard automations by loading essential data such as notification channels. * This initialization is necessary for working with alerts and scheduled exports. * * @beta */ export declare interface IInitializeAutomations extends IDashboardCommand { readonly type: "GDC.DASH/CMD.AUTOMATIONS.INITIALIZE"; } /** * @alpha */ export declare interface IInsightAttributesMeta { /** * High-level break down of how different display forms are used in the insight. */ usage: InsightDisplayFormUsage; /** * List of metadata objects describing display forms used by the insight. */ displayForms: ReadonlyArray; /** * List of attributes to which the used display forms belong. */ attributes: ReadonlyArray; } /** * Insight body props. * * @public */ export declare interface IInsightBodyProps extends Partial { /** * Backend to work with. */ backend: IAnalyticalBackend; /** * Workspace where the insight exists. */ workspace: string; /** * The insight to render. */ insight: IInsight; /** * Definition of insight widget to render. */ widget: IInsightWidget; /** * Configure chart drillability; e.g. which parts of the charts can be clicked. */ drillableItems: ExplicitDrill[] | undefined; /** * Configure color palette to use for the chart. If you do not specify this, then the palette will be * obtained from style settings stored on the backend. */ colorPalette: IColorPalette | undefined; /** * Additional config that should be passed to the underlying visualization. */ config: { mapboxToken?: string; agGridToken?: string; separators?: ISeparators; forceDisableDrillOnAxes?: boolean; isExportMode?: boolean; selectedPoints?: IDrillEventIntersectionElement[][]; }; /** * Locale to use for localization of texts appearing in the chart. * * Note: text values coming from the data itself are not localized. */ locale: ILocale; /** * Component to render if embedding fails. */ ErrorComponent: ComponentType; /** * Component to render while the insight is loading. */ LoadingComponent: ComponentType; /** * The current user settings. */ settings: IUserWorkspaceSettings | undefined; /** * The current workspace permissions. */ permissions?: IWorkspacePermissions; /** * Contains configuration that should be part of insight execution */ execConfig?: IExecutionConfig; /** * This property contains current drill step context. * * It is undefined if rendered insight is placed directly in the dashboard. * It is defined when the insight is rendered in a drill dialog. */ drillStep?: IDrillStep; /** * Optional precomputed per-layer table definitions for layered visualizations "show as table" rendering. * * @alpha */ layerTables?: ILayerTableDefinition[]; } /** * The insight date datasets is a digest of information related to what date datasets are used by the insight and * what date datasets are also relevant to the insight. * * @remarks * The relevancy of date datasets is determined by relation of the entities used by the insight (facts, metric, attributes) * and the data datasets in the workspace's LDM. * * The data included herein can be used to select an appropriate date dataset to filter the insight on a dashboard. * * The `mostImportantFromInsight` date dataset - if available, should be typically picked to use for date filtering. If * it is not available (meaning the insight does not directly use anything related to date datasets) then the `dateDatasetsOrdered` * can be used to pick the date dataset for filtering. * * @alpha */ export declare interface IInsightDateDatasets { /** * Date datasets that are available for filtering of the insight. The available datasets are obtained by inspecting * the LDM entities used in the insight and how they relate to date datasets in the workspace's logical data model. */ readonly dateDatasets: ReadonlyArray; /** * The contents of the `dateDatasets` prop that are ordered according to the relevance. The most relevant and thus * most recommended date dataset is first. */ readonly dateDatasetsOrdered: ReadonlyArray; /** * Date datasets that the insight references in its date filters. * * Will be empty if the insight does not have any date filters. */ readonly usedInDateFilters: ReadonlyArray; /** * Date datasets that the insight references in the attributes used to slice and dice the results. * * The order of appearance matches the order in which display forms from the data sets appear in the {@link IInsightAttributesMeta}'s * `usage.inAttributes`. If some display form does not belong to a date dataset, then the element will be undefined. */ readonly usedInAttributes: ReadonlyArray; /** * Date datasets that the insight references in the attribute filters. * * The order of appearance matches the order in which attribute display forms used for filtering appear in the {@link IInsightAttributesMeta}'s * `usage.inFilters`. If some display form does not belong to a date dataset, then the element will be undefined. */ readonly usedInAttributeFilters: ReadonlyArray; /** * Pinpoints the 'most important' date dataset referenced by the insight itself. This may be undefined if the * insight does not use any date filtering or does not use any date attribute display form's to filter or slice or * dice the results. * * The importance is evaluated as follows: * * 1. Date datasets used directly in date filters have the highest importance. Dataset from first-found filter will be used * 2. Date datasets that own the display forms used to slice or dice the insight's data have the second-highest importance. Dataset from first-found attribute will be used. * 3. Date datasets that own the display forms used for attribute-filtering the insight have the least important. Dataset from first-found attribute filter will be used. */ readonly mostImportantFromInsight: ICatalogDateDataset | undefined; /** * A mapping between original date dataset title and a nicely formatted title that is suitable to display to the end-user. All date datasets * that figure in the result structure have their titles included in this mapping */ readonly dateDatasetDisplayNames: Record; /** * All date datasets that can be used to filter the insight. This list is union of all the categorized * date datasets listed in this result. */ readonly allAvailableDateDatasets: ICatalogDateDataset[]; } /** * @internal */ export declare type IInsightDraggingComponentProps = { itemType: "insight"; item: InsightDraggableItem; }; /** * @internal */ export declare interface IInsightListProps { WrapInsightListItemWithDragComponent?: IWrapInsightListItemWithDragComponent; height?: number; width?: number; searchAutofocus?: boolean; renderItem?: (props: IRenderListItemProps) => ReactElement; selectedRef?: ObjRef; onSelect?: (insight: IInsight) => void; } /** * @beta */ export declare interface IInsightMenuGroup { type: "group"; itemId: string; itemName: string; items: IInsightMenuItem[]; } /** * @beta */ export declare type IInsightMenuItem = IInsightMenuItemButton | IInsightMenuItemSeparator | IInsightMenuSubmenu | IInsightMenuGroup; /** * @beta */ export declare interface IInsightMenuItemButton { type: "button"; itemId: string; itemName: string; onClick?: (e: MouseEvent_2) => void; /** * If specified, the value is shown on hover of the item as a tooltip. */ tooltip?: string | ReactNode; disabled?: boolean; icon?: ReactElement | string; /** * Additional class names to be applied to the item. */ className?: string; isFocused?: boolean; } /** * @beta */ export declare interface IInsightMenuItemSeparator { type: "separator"; itemId: string; } /** * @beta */ export declare interface IInsightMenuSubmenu { type: "submenu"; itemId: string; itemName: string; /** @alpha */ /** * Define either the component to render for the submenu or the items to render by default submenu. * If not provided, the default submenu component will be used. */ SubmenuComponent?: ComponentType; /** * The items to render for the submenu. */ items?: IInsightMenuItem[]; /** * Should the submenu component be rendered only? * If so, it won't be wrapped inside the default container * and the default header won't be rendered. * @alpha */ renderSubmenuComponentOnly?: boolean; /** * If specified, the value is shown on hover of the item as a tooltip. */ tooltip?: string | ReactNode; disabled?: boolean; icon?: ReactElement | string; /** * Additional class names to be applied to the item. */ className?: string; onClick?: (e: MouseEvent_2) => void; } /** * @alpha */ export declare interface IInsightMenuSubmenuComponentProps { /** * The widget for which the menu is rendered. */ widget: IInsightWidget; /** * Closes the insight menu. */ onClose: () => void; /** * Go back to the root menu. */ onGoBack: () => void; /** * If true, the title configuration is shown in submenu. * default: true */ enableTitleConfig?: boolean; } /** * @alpha */ export declare interface IInsightPlaceholderWidget extends ICustomWidget { readonly customType: "gd-insight-placeholder"; } /** * @alpha */ export declare interface IInvalidCustomUrlDrillParameterInfo { widgetId: Identifier; widgetUri: Uri; widgetRef: ObjRef; drillsWithInvalidParametersLocalIds: string[]; showMessage: boolean; } /** * @alpha */ export declare interface IIRichTextMenuItemSeparator { type: "separator"; itemId: string; } /** * Item with its height * * @internal */ export declare interface IItemWithHeight { itemPath: ILayoutItemPath; height: number; } /** * Item with its width * * @internal */ export declare interface IItemWithWidth { itemPath: ILayoutItemPath; width: number; } /** * @internal */ export declare interface IKdaDataPoint { /** * Date string in ISO format related to granularity */ date: string; /** * Valuer of metric for given range */ value: number | undefined; /** * Format of date attribute */ format?: IAttributeDescriptorBody["format"]; } /** * @internal */ export declare interface IKdaDefinition { /** * Metric to analyze */ metric: IMeasure; /** * Metrics related to main metric */ metrics?: IMeasure[]; /** * Attribute filters to apply. * * Attribute filters drive both the KDA "segment-by attribute" UI in the dialog and the * scope of the change analysis computation. */ filters?: DashboardAttributeFilterItem[]; /** * Measure value filters to apply to the change analysis computation. * * They are not editable in the dialog UI (KDA segments by attribute, not by metric value), * but the dashboard MVFs are propagated to the backend so the computation respects the * same metric-driven scope as the rest of the dashboard. */ measureValueFilters?: IDashboardMeasureValueFilter[]; /** * Date attribute */ dateAttribute: ObjRef; /** * Type of period */ type: KdaPeriodType; /** * Ranges */ range: [IKdaDataPoint, IKdaDataPoint]; } /** * @internal */ export declare interface IKdaDialogProps { /** * Locale for the dialog */ locale?: string; /** * CSS class name for the dialog */ className?: string; /** * Whether to show the close button */ showCloseButton?: boolean; /** * Parent overlay controller. If provided, the dialog will be rendered by this controller. * Otherwise, the dialog will be rendered with na internal overlay controller. */ parentOverlayController?: OverlayController; /** * Title element id */ titleElementId?: string; /** * Custom close button handler */ onClose?: () => void; /** * Custom toggle button handler */ onToggle?: (minimized: boolean) => void; } /** * Configuration for keyboard navigation * * @internal */ export declare interface IKeyboardNavigationConfigItem { /** * id which will be set to the target element */ targetElementId?: string; /** * tabIndex which will be set to the target element */ tabIndex?: number; /** * aria-label which will be set to the target element */ ariaLabel?: string; /** * onFocus callback which will be called when the target element is focused */ onFocus?: () => void; } /** * @internal */ export declare interface IKeyDriveInfo { readonly keyDriveDefinition: IKdaDefinition; drillEvent: IDashboardDrillEvent; drillDefinition: IKeyDriveAnalysis; } /** * @beta */ export declare interface IKeyDriverAnalysis extends IDashboardCommand { readonly type: "GDC.DASH/CMD.DRILL.KEY_DRIVER_ANALYSIS"; readonly payload: IKeyDriverAnalysisPayload; } /** * Payload of the {@link IKeyDriverAnalysis} command. * @beta */ export declare interface IKeyDriverAnalysisPayload { /** * Key driver item to analyze. */ readonly keyDriveItem: IDashboardKeyDriverCombinationItem; /** * Key driver analysis definition to apply. */ readonly drillDefinition: IKeyDriveAnalysis; /** * Original drill event, that triggered this particular drill interaction. */ readonly drillEvent: IDashboardDrillEvent; /** * Filters to apply. */ readonly filters: FilterContextItem[]; } /** * @internal */ export declare type IKpiDraggingComponentProps = { itemType: "kpi"; item: KpiDraggableItem; }; /** * @alpha */ export declare interface IKpiPlaceholderWidget extends ICustomWidget { readonly customType: "gd-kpi-placeholder"; } /** * @beta */ export declare interface IKpiWidgetComparison { /** * Type of comparison to do. May be period-over-period, previous period or no * comparison. * * TODO: explain PoP & previous period * * If not specified, defaults to no comparison. */ comparisonType?: IKpiComparisonTypeComparison; /** * Customizes whether growth of the measure compared to previous period is considered * a good thing or a bad thing. This setting influences the visuals (red vs green indicators) */ comparisonDirection?: IKpiComparisonDirection; } /** * Defines a single layer's table conversion result for multi-layer geo charts. * * @alpha */ export declare interface ILayerTableDefinition { /** Stable id — "root" for root layer, layer.id for additional layers */ layerId: string; /** Human-readable name for the tab label */ layerName: string; /** Normalized layer type */ layerType: string; /** Converted table insight for this layer */ tableInsight: IInsight; } /** * Coordinates of an item in a layout. * @beta */ export declare interface ILayoutCoordinates { /** * 0-based index of the section the item is in. */ sectionIndex: number; /** * 0-based index of the item within the section. */ itemIndex: number; } /** * This event is emitted after a layout's direction was changed. * * @alpha */ export declare interface ILayoutDirectionChanged extends IDashboardEvent { readonly type: "GDC.DASH/EVT.FLEXIBLE_LAYOUT.LAYOUT_DIRECTION_CHANGED"; readonly payload: ILayoutDirectionChangedPayload; } /** * Payload of the {@link ILayoutDirectionChanged} event. * @beta */ export declare interface ILayoutDirectionChangedPayload { /** * Layout section path whose direction was changed. */ layoutPath: ILayoutItemPath | undefined; /** * The new direction of the layout. */ direction: IDashboardLayoutContainerDirection; } /** * Coordinates of an item in a nested layout. * @alpha */ export declare type ILayoutItemPath = ILayoutCoordinates[]; /** * This event is emitted after layout section headers were toggled. * * @alpha */ export declare interface ILayoutSectionHeadersToggled extends IDashboardEvent { readonly type: "GDC.DASH/EVT.FLEXIBLE_LAYOUT.LAYOUT_SECTION_HEADERS_TOGGLED"; readonly payload: ILayoutSectionHeadersToggledPayload; } /** * Payload of the {@link ILayoutSectionHeadersToggled} event. * @beta */ export declare interface ILayoutSectionHeadersToggledPayload { /** * Layout that got the section headers state toggled. */ layoutPath: ILayoutItemPath | undefined; /** * The new state of the layout section headers */ areSectionHeadersEnabled: boolean; } /** * Coordinates of a section in a nested layout. * @alpha */ export declare interface ILayoutSectionPath { /** * The path to the parent item that contains this section. * * Undefined when section is in the root layout, otherwise leads to the layout widget in which the section * is nested. */ parent?: ILayoutItemPath; /** * Zero based index. */ sectionIndex: number; } /** * @alpha */ export declare interface ILayoutState extends IUndoEnhancedState { layout?: IDashboardLayout; stash: LayoutStash; screen: ScreenSize | undefined; } /** * Legacy Dashboard (a.k.a. PP Dashboard). * @alpha */ export declare interface ILegacyDashboard { /** * Object ref */ readonly ref: ObjRef; /** * Object uri */ readonly uri: string; /** * Object identifier */ readonly identifier: string; /** * Title of the legacy dashboard */ readonly title: string; /** * Tabs included in the legacy dashboard */ readonly tabs: ILegacyDashboardTab[]; } /** * Legacy Dashboard (a.k.a. PP Dashboard) tab. * @alpha */ export declare interface ILegacyDashboardTab { /** * Title of the tab */ readonly title: string; /** * Unique local identifier of the tab */ readonly localIdentifier: string; } /** * Loads all workspace users. * * @internal */ export declare interface ILoadAllWorkspaceUsers extends IDashboardCommand { readonly type: "GDC.DASH/CMD.USERS.LOAD_ALL"; } /** * Set of functions you can use to customize some aspects of the Loading. * * @public */ export declare interface ILoadingCustomizer { /** * Register a provider for React components to render Loading. * * @remarks * A provider takes the Loading as input and is expected to return * a React component that should be used to render that Loading. * * If the provider returns `undefined` then: * * - if there are other providers registered, they will be called to see if they can provide * a component to render the Loading * - if there are no other providers registered, the default, built-in component will be used. * * You may register multiple providers. They will be evaluated in the order you register them. * * @param provider - provider to register * @returns self, for call chaining sakes */ withCustomProvider(provider: OptionalLoadingComponentProvider): ILoadingCustomizer; /** * Register a factory for Loading decorator providers. * * @remarks * Decorators are a way to add customizations or embellishments on top * of an existing component. Decorators are more complex to write because they need to work with the component * they should decorate and add 'something' on top of that component. * * This is best illustrated on an example: * * @example * ``` * withCustomDecorator((next) => { * return (filter) => { * if (some_condition_to_prevent_decoration) { * return undefined; * } * * // Make sure you call this outside the component render function, * // otherwise a new instance of the decorated component is created on each re-render. * const Decorated = next(filter); * * function MyCustomDecorator(props) { * return ( *
*

My Custom Decoration

* *
* ) * } * * return MyCustomDecorator; * } * }) * ``` * * The above shows how to register a decorator that will use some condition to determine whether particular * attribute filter is eligible for decoration. * * Note: the factory function that you specify will be called immediately at the registration time. The * provider that it returns will be called at render time. * * @param providerFactory - factory */ withCustomDecorator(providerFactory: (next: LoadingComponentProvider) => OptionalLoadingComponentProvider): ILoadingCustomizer; } /** * @beta */ export declare interface ILoadingState { loading: boolean; result?: boolean; error?: Error; } /** * @alpha */ export declare interface ILockedStatusProps { isLocked: boolean; theme?: ITheme; } /** * The measure date datasets holds information about available date datasets that can be used for date-filtering a particular * measure. * * The data included herein can be used to select an appropriate date dataset to filter a KPI widget that renders value * of particular measure. * * @alpha */ export declare interface IMeasureDateDatasets { /** * Date datasets that are available for filtering of the measure. The available datasets are obtained by inspecting * relation of measure and the different date datasets in the workspace's logical data model. */ readonly dateDatasets: ReadonlyArray; /** * The contents of the `dateDatasets` prop that are ordered according to the relevance. The most relevant and thus * most recommended date dataset is first. */ readonly dateDatasetsOrdered: ReadonlyArray; /** * A mapping between original date dataset title and a nicely formatted title that is suitable to display to the end-user. All date datasets * that figure in the result structure have their titles included in this mapping */ readonly dateDatasetDisplayNames: Record; } /** * @alpha */ export declare interface IMeasureValueFilterConfigsState { /** * Dashboard-level overrides of the measure value filter configs (e.g. visibility/lock mode). */ measureValueFilterConfigs?: IDashboardMeasureValueFilterConfig[]; } /** * Set of functions you can use to customize how measure value filters are rendered. * * @alpha */ export declare interface IMeasureValueFiltersCustomizer { /** * Register a provider for React components to render measure value filters. * * @remarks * A provider takes the measure value filter as input and is expected to return * a React component that should be used to render that filter. * * If the provider returns `undefined` then: * * - if there are other providers registered, they will be called to see if they can provide * a component to render the measure value filter * - if there are no other providers registered, the default, built-in component will be used. * * You may register multiple providers. They will be evaluated in the order you register them. * * @param provider - provider to register * @returns self, for call chaining sakes */ withCustomProvider(provider: OptionalMeasureValueFilterComponentProvider): IMeasureValueFiltersCustomizer; } /** * @alpha */ export declare interface IMenuButtonConfiguration { /** * Specify custom items that will be in the menu. * * @remarks * Using this setting fully overrides the menu items. The default items will not be shown. */ menuItems?: ReadonlyArray; /** * Specify additional menu items to add on top of the default items. * * @remarks * If specified, this should be a list of tuples: index to add item at, the menu item to add. If you want * to add item at the end of the list, use index `-1`. */ additionalMenuItems?: ReadonlyArray<[number, IMenuButtonItem]>; } /** * @alpha */ export declare type IMenuButtonItem = IMenuButtonItemButton | IMenuButtonItemSeparator | IMenuButtonItemHeader | IMenuButtonItemMenu; /** * @alpha */ export declare interface IMenuButtonItemButton extends IMenuItemCommonProps { type: "button"; itemName: string; onClick?: () => void; /** * If specified, the value is shown on hover of the item as a tooltip. */ tooltip?: string | ReactNode; /** * If specified, a warning indicator is rendered on the trailing side of the item, shown regardless of * the item's disabled state. The value is the content shown on hover of the warning indicator. Used e.g. * to flag that an export will contain partial results because an execution reached a result limit. */ warning?: ReactNode; disabled?: boolean; icon?: string | ReactNode; opensDialog?: boolean; } /** * @alpha */ export declare interface IMenuButtonItemHeader extends IMenuItemCommonProps { type: "header"; itemName: string; } /** * @alpha */ export declare interface IMenuButtonItemMenu extends IMenuItemCommonProps { type: "menu"; itemName: string; /** * If specified, the value is shown on hover of the item as a tooltip. */ tooltip?: string | ReactNode; disabled?: boolean; icon?: string | ReactNode; items: [ IMenuButtonItemButton | IMenuButtonItemSeparator | IMenuButtonItemHeader, ...(IMenuButtonItemButton | IMenuButtonItemSeparator | IMenuButtonItemHeader)[] ]; } /** * @alpha */ export declare interface IMenuButtonItemSeparator extends IMenuItemCommonProps { type: "separator"; } /** * @beta */ export declare interface IMenuButtonItemsVisibility { /** * If set to true, the Save as new button will be visible. Defaults to false. */ saveAsNewButton?: boolean; /** * If set to true, the Export to PDF button will be visible. Defaults to true. */ pdfExportButton?: boolean; /** * If set to true, the Export to EXCEL button will be visible. Defaults to true. */ excelExportButton?: boolean; /** * If set to true, the Export to PowerPoint button will be visible. Defaults to true. */ powerPointExportButton?: boolean; /** * If set to true, the Schedule emailing button will be visible. Defaults to true. */ scheduleEmailButton?: boolean; /** * If set to true, the Alerting button will be visible. Defaults to true. */ alertingButton?: boolean; /** * If set to true, the Share button will be visible. Defaults to true. */ settingsButton?: boolean; /** * If set to true, the Delete button will be visible. Defaults to true. */ deleteButton?: boolean; } /** * @alpha */ export declare interface IMenuButtonProps { /** * Items that will be in the menu. */ menuItems: ReadonlyArray; DefaultMenuButton: CustomMenuButtonComponent; } /** * @alpha */ export declare interface IMenuItemCommonProps { itemId: string; visible?: boolean; className?: string; } /** * @alpha */ export declare interface IMetricsAndFacts { metrics: ICatalogMeasure[]; facts: ICatalogFact[]; } /** * @alpha */ export declare interface IModifyDrillDownForInsightWidget extends IDashboardCommand { readonly type: "GDC.DASH/CMD.INSIGHT_WIDGET.MODIFY_DRILL_DOWN"; readonly payload: IModifyDrillDownForInsightWidgetPayload; } /** * Payload of the {@link IModifyDrillDownForInsightWidget} command. * @alpha */ export declare interface IModifyDrillDownForInsightWidgetPayload { /** * Reference to Insight Widget whose drill items should be modified. */ readonly ref: ObjRef; /** * Specify drill localIdentifier and its hierarchy should be modified. */ readonly attributeIdentifier: ObjRef; /** * Specify drill attribute hierarchy ref to be modified. */ readonly attributeHierarchyRef: ObjRef; /** * Specify hierarchies that should be added to the ignored hierarchies of the widget. * If no blacklistHierarchies are provided, ignored hierarchies keep unchanged. */ readonly blacklistHierarchies: IDrillDownReference[]; /** * Specify local identifiers of attributes that should be ignored in drill intersection * during drill down. * If no intersectionIgnoredAttributes are provided, ignored attributes keep unchanged. */ readonly intersectionIgnoredAttributes?: string[]; } /** * @beta */ export declare interface IModifyDrillsForInsightWidget extends IDashboardCommand { readonly type: "GDC.DASH/CMD.INSIGHT_WIDGET.MODIFY_DRILLS"; readonly payload: IModifyDrillsForInsightWidgetPayload; } /** * Payload of the {@link IModifyDrillsForInsightWidget} command. * @beta */ export declare interface IModifyDrillsForInsightWidgetPayload { /** * Reference to Insight Widget whose drill items should be modified. */ readonly ref: ObjRef; /** * New drill definitions. The drills are defined per measure in insight and there can * be exactly one drill definition for insight measure. * * The newly provided items will be matches to existing items by the measure they are linked to. The * definition of drill for that measure will be modified. * * Note: this can do upsert. if you specify drill for a measure and there is no existing drill for it, * then the new definition will be used. */ readonly drills: InsightDrillDefinition[]; /** * Specify which drill down localIdentifier and its hierarchy should be removed. */ readonly blacklistHierarchiesToUpdate?: IDrillDownReference[]; } /** * @internal */ export declare interface IMonitoredAction { calls: number; promise: Promise>; resolve: (action: PayloadAction) => void; reject: (e: any) => void; } /** * @beta */ export declare interface IMoveAttributeFilter extends IDashboardCommand { readonly type: "GDC.DASH/CMD.FILTER_CONTEXT.ATTRIBUTE_FILTER.MOVE"; readonly payload: MoveAttributeFilterPayload; } /** * @internal */ export declare interface IMoveAttributeFilterPayload { readonly filterLocalId: string; readonly index: number; } /** * @beta */ export declare interface IMoveDateFilter extends IDashboardCommand { readonly type: "GDC.DASH/CMD.FILTER_CONTEXT.DATE_FILTER.MOVE"; readonly payload: MoveDateFilterPayload; } /** * @internal */ export declare interface IMoveDateFilterPayload { readonly dataSet: ObjRef; readonly index: number; } /** * @beta */ export declare interface IMoveLayoutSection extends IDashboardCommand { readonly type: "GDC.DASH/CMD.FLUID_LAYOUT.MOVE_SECTION"; readonly payload: IMoveLayoutSectionPayload; } /** * Payload of the {@link IMoveLayoutSection} command. * @beta */ export declare interface IMoveLayoutSectionPayload { /** * Index of the section to move. * * Index is zero-based. * * @remarks * "number" support will be removed in the next major SDK version. Use {@link ILayoutSectionPath} instead. * * TODO LX-648: Remove number type in the next major version. */ readonly sectionIndex: number | ILayoutSectionPath; /** * Index where the section should be moved. * * Index is zero-based. For convenience index of -1 means moving the item to the end of the section list. * * @remarks * "number" support will be removed in the next major SDK version. Use {@link ILayoutSectionPath} instead. * * TODO LX-648: Remove number type in the next major version. */ readonly toIndex: number | ILayoutSectionPath; } /** * Command for moving a measure value filter. * * @alpha */ export declare interface IMoveMeasureValueFilter extends IDashboardCommand { readonly type: "GDC.DASH/CMD.FILTER_CONTEXT.MEASURE_VALUE_FILTER.MOVE"; readonly payload: MoveMeasureValueFilterPayload; } /** * @internal */ export declare interface IMoveMeasureValueFilterPayload { readonly localIdentifier: string; readonly index: number; } /** * @beta */ export declare interface IMoveSectionItem extends IDashboardCommand { readonly type: "GDC.DASH/CMD.FLUID_LAYOUT.MOVE_ITEM"; readonly payload: IMoveSectionItemPayload; } /** * Payload of the {@link IMoveSectionItem} command. * @beta */ export declare interface IMoveSectionItemPayload { /** * Index of the section where the item to move is located. * * Index is zero-based. * * @remarks * {@link IMoveSectionItemPayload.sectionIndex} support will be removed in the next major SDK version. Use {@link IMoveSectionItemPayload.fromPath} instead. * * TODO LX-648: Remove sectionIndex in the next major version. */ readonly sectionIndex: number; /** * Index of section item that should be moved. * * Index is zero-based. * * @remarks * {@link IMoveSectionItemPayload.itemIndex} support will be removed in the next major SDK version. Use {@link IMoveSectionItemPayload.fromPath} instead. * * TODO LX-648: Remove itemIndex in the next major version. */ readonly itemIndex: number; /** * Index of section to which the item should be moved. * * Index is zero-based. For convenience you may specify -1 to move to last section. * * @remarks * {@link IMoveSectionItemPayload.toSectionIndex} support will be removed in the next major SDK version. Use {@link IMoveSectionItemPayload.toPath} instead. * * TODO LX-648: Remove toSectionIndex in the next major version. */ readonly toSectionIndex: RelativeIndex; /** * Index within the target section. * * Index is zero-based. For convenience you may specify -1 to append the item at the end of the target section's * items. * * @remarks * {@link IMoveSectionItemPayload.toItemIndex} support will be removed in the next major SDK version. Use {@link IMoveSectionItemPayload.toPath} instead. * * TODO LX-648: Remove toItemIndex in the next major version. */ readonly toItemIndex: RelativeIndex; /** * Path where the item to move is located. * * Index is zero-based. * * TODO LX-648: make the prop required */ readonly fromPath?: ILayoutItemPath; /** * Path to which the item should be moved. * * Index is zero-based. For convenience, you may specify -1 to move to last section. * * TODO LX-648: make the prop required */ readonly toPath?: ILayoutItemPath; /** * If true and original section stays empty after move, then it will be removed. */ readonly removeOriginalSectionIfEmpty: boolean; } /** * @beta */ export declare interface IMoveSectionItemToNewSection extends IDashboardCommand { readonly type: "GDC.DASH/CMD.FLUID_LAYOUT.MOVE_ITEM_TO_NEW_SECTION"; readonly payload: IMoveSectionItemToNewSectionPayload; } /** * Payload of the {@link IMoveSectionItemToNewSection} command. * @beta */ export declare interface IMoveSectionItemToNewSectionPayload { /** * Index of the section where the item to move is located. * * Index is zero-based. * * @remarks * {@link IMoveSectionItemToNewSectionPayload.sectionIndex} support will be removed in the next major SDK version. Use {@link IMoveSectionItemToNewSectionPayload.itemPath} instead. * * TODO LX-648: Remove sectionIndex in the next major version. */ readonly sectionIndex: number; /** * Index of section item that should be moved. * * Index is zero-based. * * @remarks * {@link IMoveSectionItemToNewSectionPayload.itemIndex} support will be removed in the next major SDK version. Use {@link IMoveSectionItemToNewSectionPayload.itemPath} instead. * * TODO LX-648: Remove itemIndex in the next major version. */ readonly itemIndex: number; /** * Index of section to which should be created and the item should be moved into. * * Index is zero-based. For convenience you may specify -1 to move to last section. * * @remarks * {@link IMoveSectionItemToNewSectionPayload.toSectionIndex} support will be removed in the next major SDK version. Use {@link IMoveSectionItemToNewSectionPayload.itemPath} instead. * * TODO LX-648: Remove toSectionIndex in the next major version. */ readonly toSectionIndex: RelativeIndex; /** * Index where the item to move is located. * * TODO LX-648: make the prop required */ readonly itemPath?: ILayoutItemPath; /** * Path of section that should be created and the item should be moved into. * * Index is zero-based. For convenience, you may specify -1 to move to last section. * * TODO LX-648: make the prop required */ readonly toSection?: ILayoutSectionPath; /** * If true and original section stays empty after move, then it will be removed. */ readonly removeOriginalSectionIfEmpty: boolean; } /** * @alpha */ export declare interface INestedLayoutProps { /** * Nested layout widget to render. */ widget?: ExtendedDashboardLayoutWidget; /** * Corresponding layout. * If not provided, root layout from appState will be used. */ layout?: IDashboardLayout; /** * Item size. * If not provided, the layout size will be considered to be default (12 columns) */ parentLayoutItemSize?: IDashboardLayoutSizeByScreenSize; /** * Item path. * If not provided, the layout is expected to be root */ parentLayoutPath?: ILayoutItemPath; /** * CSS classes to apply to the nested layout dashboard item. */ dashboardItemClasses?: string; /** * Backend to work with. * * @remarks * Note: the backend must come either from this property or from BackendContext. If you do not specify * backend here, then the component MUST be rendered within an existing BackendContext. * * @alpha */ backend?: IAnalyticalBackend; /** * Workspace where the Insight widget exists. * * @remarks * Note: the workspace must come either from this property or from WorkspaceContext. If you do not specify * workspace here, then the component MUST be rendered within an existing WorkspaceContext. * * @alpha */ workspace?: string; /** * Height of the visualization switcher widget container. * * @alpha */ clientHeight?: number; /** * Width of the visualization switcher widget container. * * @alpha */ clientWidth?: number; } /** * Creates the InitializeAutomations command. * * Dispatching this command will result in the initializing dashboard automations. * This initialization is necessary for working with alerts and scheduled exports. * * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * @beta */ export declare function initializeAutomations(correlationId?: string): IInitializeAutomations; /** * Loads dashboard from analytical backend. * * @public */ export declare type InitializeDashboard = IDashboardCommand & { readonly type: "GDC.DASH/CMD.INITIALIZE"; readonly payload: InitializeDashboardPayload; }; /** * Creates the InitializeDashboard command. * * @remarks * Dispatching this command will result in the load of all the essential data from the backend and initializing * the state of Dashboard to a point where the dashboard can be rendered. * * Note that the command takes the dashboard to initialize from context - from the properties of the Dashboard * component in which it runs: * * - If Dashboard component is referencing an existing, persisted dashboard, then the dashboard will be loaded and * rendered. * * - If Dashboard component does not reference any dashboard, then the component will initialize for an empty * dashboard with default filter setup. * * In both cases the essential configuration, permissions and additional metadata gets loaded from the backend. * * @param config - specify configuration to use for the Dashboard; you MAY provide partial configuration. * During the LoadDashboard processing the Dashboard component will resolve all the missing parts by reading them * from the backend. * @param permissions - specify permissions to use when determining whether the user is eligible for some * actions with the dashboard; if you do not specify permissions Dashboard component will load the permissions * from the backend. * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * @param initialTabId - * * @public */ export declare function initializeDashboard(config?: DashboardConfig, permissions?: IWorkspacePermissions, correlationId?: string, initialTabId?: string): InitializeDashboard; /** * Payload of the {@link InitializeDashboard} command. * @public */ export declare type InitializeDashboardPayload = { readonly config?: DashboardConfig; readonly permissions?: IWorkspacePermissions; /** * @internal */ readonly persistedDashboard?: IDashboard; /** * Explicitly specify which tab should be opened first. This overrides the dashboard's persisted activeTabId. * @alpha */ readonly initialTabId?: string; }; /** * Creates the InitializeDashboard command with the persisted dashboard overridden. * * @remarks * Dispatching this command will result in the load of all the essential data from the backend and initializing * the state of Dashboard to a point where the dashboard can be rendered. * * Note that the command takes the dashboard to initialize from context - from the properties of the Dashboard * component in which it runs: * * - If Dashboard component is referencing an existing, persisted dashboard, then the dashboard will be loaded and * rendered. * * - If Dashboard component does not reference any dashboard, then the component will initialize for an empty * dashboard with default filter setup. * * In both cases the essential configuration, permissions and additional metadata gets loaded from the backend. * * @param config - specify configuration to use for the Dashboard; you MAY provide partial configuration. * During the LoadDashboard processing the Dashboard component will resolve all the missing parts by reading them * from the backend. * @param permissions - specify permissions to use when determining whether the user is eligible for some * actions with the dashboard; if you do not specify permissions Dashboard component will load the permissions * from the backend. * @param persistedDashboard - dashboard to use for the persisted dashboard state slice in case it needs to be * different from the dashboard param * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * @param initialTabId - specify the initial tab to open when the dashboard is loaded * * @internal */ export declare function initializeDashboardWithPersistedDashboard(config?: DashboardConfig, permissions?: IWorkspacePermissions, persistedDashboard?: IDashboard, correlationId?: string, initialTabId?: string): InitializeDashboard; /** * The initial load of the dashboard will use this correlation id. * * @beta */ export declare const InitialLoadCorrelationId = "initialLoad"; /** * @alpha */ export declare interface INotificationChannelsState { notificationChannelsCount: number; notificationChannels: INotificationChannelIdentifier[] | INotificationChannelMetadataObject[]; } /** * @internal */ export declare const INSIGHT_PLACEHOLDER_WIDGET_ID = "__insightPlaceholder__"; /** * @alpha */ export declare type InsightBodyComponentProvider = (insight: IInsight, widget: IInsightWidget) => CustomInsightBodyComponent; /** * @public */ export declare type InsightComponentProvider = (insight: IInsight, widget: IInsightWidget) => CustomDashboardInsightComponent; /** * @internal */ export declare type InsightComponentSetProvider = (defaultComponentSet: InsightWidgetComponentSet) => InsightWidgetComponentSet; /** * @internal */ export declare type InsightDraggableComponent = { DraggingComponent?: InsightDraggingComponent; type: "insight"; }; /** * @internal */ export declare type InsightDraggableItem = BaseDraggableMovingItem & { type: "insight"; insight: IInsight; }; /** * @internal */ export declare type InsightDraggableListItem = BaseDraggableLayoutItem & { type: "insightListItem"; insight: IInsight; }; /** * @internal */ export declare type InsightDraggingComponent = ComponentType; /** * @internal */ export declare function InsightList({ height, width, searchAutofocus, renderItem, selectedRef, onSelect }: IInsightListProps): JSX.Element; /** * @alpha */ export declare type InsightMenuButtonComponentProvider = (insight: IInsight | undefined, widget: IInsightWidget) => CustomDashboardInsightMenuButtonComponent; /** * @alpha */ export declare type InsightMenuComponentProvider = (insight: IInsight | undefined, widget: IInsightWidget) => CustomDashboardInsightMenuComponent; /** * @internal */ export declare type InsightMenuItemDependencies = { intl: IntlShape; dispatch: ReturnType; eventDispatch: ReturnType; includeInteractions?: boolean; includeConfigurations?: boolean; useWidgetDeleteDialog?: boolean; }; /** * @beta */ export declare type InsightMenuItemsProvider = (insight: IInsight, widget: IInsightWidget, defaultItems: IInsightMenuItem[], closeMenu: () => void, renderMode: RenderMode) => IInsightMenuItem[]; /** * @internal */ export declare type InsightMenuTitleComponentProvider = (insight: IInsight | undefined, widget: IInsightWidget) => CustomDashboardInsightMenuTitleComponent; /** * @internal */ export declare type InsightPlaceholderDraggableItem = BaseDraggableLayoutItem & { type: "insight-placeholder"; }; /** * Given results of a query of date datasets available to use for filtering an insight, this function will * pick a single date dataset to use. * * @param queryResult - insight date datasets query result * @alpha */ export declare function insightSelectDateDataset({ mostImportantFromInsight, dateDatasetsOrdered }: IInsightDateDatasets): ICatalogDateDataset | undefined; /** * Builder for a {@link @gooddata/sdk-model#IInsightWidgetBase} object. * * @remarks * The builder without any modifications returns a widget with all mandatory data. To apply * additional information use builder functions. * * @internal */ export declare class InsightWidgetBuilder { widget: { -readonly [K in keyof IInsightWidgetBase]: IInsightWidgetBase[K]; }; constructor(insightRef: ObjRef, title: string); withIgnoreDashboardFilters(ignoreDashboardFilters: IDashboardFilterReference[]): this; withDrills(drills: InsightDrillDefinition[]): this; withTitle(title: string): this; withDescription(description: string): this; withConfiguration(configuration: IInsightWidgetConfiguration): this; withProperties(properties: VisualizationProperties): this; build(): IInsightWidgetBase; } /** * Definition of Insight widget * @internal */ export declare type InsightWidgetComponentSet = ICustomComponentBase> & DraggableComponent & Partial & Partial> & ConfigurableWidget; /** * @internal */ export declare type InsightWidgetModifications = (builder: InsightWidgetBuilder) => InsightWidgetBuilder; /** * Configuration for the ObjRefMap. * * @alpha */ export declare interface IObjRefMapConfig { /** * Function that extracts `ref` from object */ readonly refExtract: (obj: T) => ObjRef; /** * Function that extracts `id` from object */ readonly idExtract: (obj: T) => Identifier; /** * Function that extracts `uri` from object */ readonly uriExtract: (obj: T) => string; /** * Indicates whether strict idRef type-checking is desired. Some backends (e.g. tiger) have identifier * refs use combination of `id` and `type` and have type-level `id` uniqueness constraints. On those backends, * strict type checks are essential to correctly match objects. * * On other backends, the `type` information coming in the idRef is superfluous and should not be influencing * anything. */ readonly strictTypeCheck: boolean; /** * Type of object stored in the map. */ readonly type?: ObjectType; } /** * Addable workspace parameter offered in the dropdown's "parameters" tab (automation dialogs only). * * @internal */ export declare interface IParameterDropdownListItem { type: "parameter"; ref: IdentifierRef; title: string; } /** * @alpha */ export declare interface IParametersState { parameters: IDashboardParameterEntry[]; } /** * @internal */ export declare interface IParentWithConnectingAttributes { /** * Local identifier of the parent filter. */ filterLocalId: string; /** * Common attributes with the currently opened attribute filter. */ connectingAttributes: IConnectingAttribute[]; } /** * @beta */ export declare interface IPdfExportConfig { format: "pdf"; title?: string; } /** * @alpha */ export declare interface IPlaceholderWidget extends ICustomWidget { readonly customType: "gd-widget-placeholder"; readonly isInitial?: boolean; readonly isLoading?: boolean; } /** * @alpha */ export declare interface IQueryAttributeByDisplayForm extends IDashboardQuery { type: "GDC.DASH/QUERY.DISPLAY.FORM.ATTRIBUTE"; payload: { readonly displayForms: ObjRef[]; }; } /** * @internal */ export declare interface IQueryAttributeDataSet extends IDashboardQuery { type: "GDC.DASH/QUERY.DATA.SET.ATTRIBUTE"; payload: { /** * Display form of the attribute filter. */ readonly displayForm: ObjRef; }; } /** * @internal */ export declare interface IQueryAttributeElements extends IDashboardQuery { type: "GDC.DASH/QUERY.ELEMENTS.ATTRIBUTE"; payload: { /** * Display form of the attribute filter. */ readonly displayForm: ObjRef; /** * Desired max number of elements to retrieve; must be a positive number */ readonly limit?: number; }; } /** * @internal */ export declare interface IQueryAvailableDatasetsForItems extends IDashboardQuery { type: "GDC.DASH/QUERY.AVAILABLE.DATA.SETS.FOR.ITEMS"; payload: { readonly items: IAttributeOrMeasure[]; }; } /** * @alpha */ export declare interface IQueryConnectedAttributes extends IDashboardQuery { type: "GDC.DASH/QUERY.CONNECTED.ATTRIBUTES"; payload: { readonly ref: ObjRef; }; } /** * @alpha */ export declare interface IQueryConnectingAttributes extends IDashboardQuery { type: "GDC.DASH/QUERY.CONNECTING.ATTRIBUTES"; payload: { readonly refs: [ObjRef, ObjRef][]; }; } /** * Given a reference to an insight, this query will obtain metadata about the display forms used in the * insight. For each display form, the result will also contain attribute to which the display form * belongs. * * @alpha */ export declare interface IQueryInsightAttributesMeta extends IDashboardQuery { readonly type: "GDC.DASH/QUERY.INSIGHT.ATTRIBUTE.META"; readonly payload: { readonly insightOrRef: ObjRef | IInsight; }; } /** * Given a reference to an insight, this query will obtain list of all date datasets that may be used * to filter it. * * @alpha */ export declare interface IQueryInsightDateDatasets extends IDashboardQuery { readonly type: "GDC.DASH/QUERY.INSIGHT.DATE.DATASETS"; readonly payload: { readonly insightOrRef: ObjRef | IInsight; }; } /** * Given a reference to a measure, this query will obtain list of all date datasets that may be used * to filter it. * * @alpha */ export declare interface IQueryMeasureDateDatasets extends IDashboardQuery { readonly type: "GDC.DASH/QUERY.MEASURE.DATE.DATASETS"; readonly payload: { readonly measureRef: ObjRef; }; } /** * @alpha */ export declare interface IQueryMetricsAndFacts extends IDashboardQuery { type: "GDC.DASH/QUERY.METRICS_AND_FACTS"; } /** * Given a reference to a KPI widget, this query will obtain the total number of alerts all the users have set on it. * * @alpha */ export declare interface IQueryWidgetAlertCount extends IDashboardQuery { readonly type: "GDC.DASH/QUERY.WIDGET.ALERT_COUNT"; readonly payload: { readonly widgetRef: ObjRef; }; } /** * This query base on given kpi widgetRef calculate BrokenAlertFilterBasicInfo {@link IBrokenAlertFilterBasicInfo} * In case any broken alert filters query return empty array. * @alpha */ export declare interface IQueryWidgetBrokenAlerts extends IDashboardQuery { readonly type: "GDC.DASH/QUERY.WIDGET.BROKEN_ALERTS"; readonly payload: { readonly widgetRef: ObjRef; }; } /** * Given a reference to a widget, this query will obtain the filters that should be used when executing it. * These will respect the ignored filters on widget level as well as the filters specified in the insight itself. * Filters returned by this query should be used with {@link @gooddata/sdk-model#insightSetFilters} to obtain * insight that is ready for execution or used to execute a KPI. * * @alpha */ export declare interface IQueryWidgetFilters extends IDashboardQuery { readonly type: "GDC.DASH/QUERY.WIDGET.FILTERS"; readonly payload: { readonly widgetRef: ObjRef; readonly insight?: IInsightDefinition | null; }; } /** * Refresh the current dashboard's automation data. * This is particularly useful after creating, updating, or removing alerts or scheduled exports, * ensuring that the local data remains synchronized with the backend. * * @beta */ export declare interface IRefreshAutomations extends IDashboardCommand { readonly type: "GDC.DASH/CMD.AUTOMATIONS.REFRESH"; } /** * @beta */ export declare interface IRefreshInsightWidget extends IDashboardCommand { readonly type: "GDC.DASH/CMD.INSIGHT_WIDGET.REFRESH"; readonly payload: IRefreshInsightWidgetPayload; } /** * Payload of the {@link IRefreshInsightWidget} command. * @beta */ export declare interface IRefreshInsightWidgetPayload { /** * Reference to Insight Widget to refresh. */ readonly ref: ObjRef; } /** * @beta */ export declare interface IRefreshKpiWidget extends IDashboardCommand { readonly type: "GDC.DASH/CMD.KPI_WIDGET.REFRESH"; readonly payload: IRefreshKpiWidgetPayload; } /** * Payload of the {@link IRefreshKpiWidget} command. * @beta */ export declare interface IRefreshKpiWidgetPayload { /** * Reference to KPI Widget to refresh. */ readonly ref: ObjRef; } /** * Command for refreshing of the cache with saved filter views from persistent storage. * * @remarks * See {@link reloadFilterViews} for a factory function that will help you create this command. * * @alpha */ export declare interface IReloadFilterViews extends IDashboardCommand { readonly type: "GDC.DASH/CMD.FILTER_CONTEXT.FILTER_VIEW.RELOAD"; } /** * @internal */ export declare interface IRemoveAttributeFilterPayload { readonly filterLocalId: string; } /** * @beta */ export declare interface IRemoveAttributeFilters extends IDashboardCommand { readonly type: "GDC.DASH/CMD.FILTER_CONTEXT.ATTRIBUTE_FILTER.REMOVE"; readonly payload: IRemoveAttributeFiltersPayload; } /** * Payload of the {@link IRemoveAttributeFilters} command. * @beta */ export declare interface IRemoveAttributeFiltersPayload { /** * XXX: we do not necessarily need to remove multiple filters atm, but this should * be very easy to do and adds some extra flexibility. */ readonly filterLocalIds: string[]; } /** * @internal */ export declare interface IRemoveDateFilterPayload { readonly dataSet: ObjRef; } /** * @beta */ export declare interface IRemoveDateFilters extends IDashboardCommand { readonly type: "GDC.DASH/CMD.FILTER_CONTEXT.DATE_FILTER.REMOVE"; readonly payload: IRemoveDateFiltersPayload; } /** * Payload of the {@link IRemoveDateFilters} command. * @beta */ export declare interface IRemoveDateFiltersPayload { /** * XXX: we do not necessarily need to remove multiple filters atm, but this should * be very easy to do and adds some extra flexibility. */ readonly dataSets: ObjRef[]; } /** * @alpha */ export declare interface IRemoveDrillDownForInsightWidget extends IDashboardCommand { readonly type: "GDC.DASH/CMD.INSIGHT_WIDGET.REMOVE_DRILL_DOWN"; readonly payload: IRemoveDrillDownForInsightWidgetPayload; } /** * Payload of the {@link IRemoveDrillDownForInsightWidget} command. * @alpha */ export declare interface IRemoveDrillDownForInsightWidgetPayload { /** * Reference to Insight Widget whose drill items should be removed. */ readonly ref: ObjRef; /** * Specify drill localIdentifier and its hierarchy should be removed. * Ignored intersection attributes for specified hierarchies will be removed as well. */ readonly blacklistHierarchies: IDrillDownReference[]; } /** * @beta */ export declare interface IRemoveDrillForKpiWidget extends IDashboardCommand { readonly type: "GDC.DASH/CMD.KPI_WIDGET.REMOVE_DRILL"; readonly payload: IRemoveDrillForKpiWidgetPayload; } /** * Payload of the {@link IRemoveDrillForKpiWidget} command. * @beta */ export declare interface IRemoveDrillForKpiWidgetPayload { /** * Reference to KPI Widget to modify. */ readonly ref: ObjRef; } /** * @beta */ export declare interface IRemoveDrillsForInsightWidget extends IDashboardCommand { readonly type: "GDC.DASH/CMD.INSIGHT_WIDGET.REMOVE_DRILLS"; readonly payload: IRemoveDrillsForInsightWidgetPayload; } /** * Payload of the {@link IRemoveDrillsForInsightWidget} command. * @beta */ export declare interface IRemoveDrillsForInsightWidgetPayload { /** * Reference to Insight Widget whose drill items should be removed. */ readonly ref: ObjRef; /** * Specify drill localIdentifiers whose drills to remove or '*' to remove all defined drills. */ readonly localIdentifiers: RemoveDrillsSelector; } /** * @alpha */ export declare interface IRemoveDrillToUrlForInsightWidget extends IDashboardCommand { readonly type: "GDC.DASH/CMD.INSIGHT_WIDGET.REMOVE_DRILL_TO_URL"; readonly payload: IRemoveDrillToUrlForInsightWidgetPayload; } /** * @alpha */ export declare interface IRemoveDrillToUrlForInsightWidgetPayload { /** * Reference to Insight Widget whose drill items should be removed. */ readonly ref: ObjRef; /** * Specify attribute display forms which should be ignored. */ readonly blacklistAttributes: ObjRef[]; } /** * @beta */ export declare interface IRemoveLayoutSection extends IDashboardCommand { readonly type: "GDC.DASH/CMD.FLUID_LAYOUT.REMOVE_SECTION"; readonly payload: IRemoveLayoutSectionPayload; } /** * Payload of the {@link IRemoveLayoutSection} command. * @beta */ export declare interface IRemoveLayoutSectionPayload { /** * Index of section to remove. * * Zero based. For convenience -1 can be used to remove the last section. * * @remarks * {@link RelativeIndex} support will be removed in the next major SDK version. Use {@link ILayoutSectionPath} instead. * * TODO LX-648: Remove RelativeIndex type in the next major version. */ readonly index: RelativeIndex | ILayoutSectionPath; /** * Specify stash identifier. * * @remarks * If provided, the items from the removed section will not be * permanently removed but will be stored in the stash under this identifier. You can then * use the stash identifier to 'resurrect' the items in different section. * * Default behavior with no stashIdentifier is to also remove all items in the section. */ readonly stashIdentifier?: StashedDashboardItemsId; } /** * Backwards-compatible alias for the batch command shape. * * @alpha */ export declare type IRemoveMeasureValueFilter = IRemoveMeasureValueFilters; /** * @internal */ export declare interface IRemoveMeasureValueFilterReducerPayload { readonly localIdentifier: string; } /** * Command for removing one or more measure value filters in a single batch. * * @alpha */ export declare interface IRemoveMeasureValueFilters extends IDashboardCommand { readonly type: "GDC.DASH/CMD.FILTER_CONTEXT.MEASURE_VALUE_FILTER.REMOVE"; readonly payload: IRemoveMeasureValueFiltersPayload; } /** * Payload of the {@link IRemoveMeasureValueFilters} command. * * @alpha */ export declare interface IRemoveMeasureValueFiltersPayload { /** * Local identifiers of the measure value filters to remove. The command processes them as a * single batch — every entry must reference an existing dashboard MVF or the command fails. */ readonly localIdentifiers: string[]; } /** * @alpha */ export declare interface IRemoveParameterPayload { ref: ObjRef; } /** * @beta */ export declare interface IRemoveSectionItem extends IDashboardCommand { readonly type: "GDC.DASH/CMD.FLUID_LAYOUT.REMOVE_ITEM"; readonly payload: IRemoveSectionItemPayload; } /** * @beta */ export declare interface IRemoveSectionItemByWidgetRef extends IDashboardCommand { readonly type: "GDC.DASH/CMD.FLUID_LAYOUT.REMOVE_ITEM_BY_WIDGET_REF"; readonly payload: IRemoveSectionItemByWidgetRefPayload; } /** * Payload of the {@link IRemoveSectionItemByWidgetRef} command. * @beta */ export declare interface IRemoveSectionItemByWidgetRefPayload { /** * Widget reference of the item to remove. */ readonly widgetRef: ObjRef; /** * Specify stash identifier. * * @remarks * If provided, the item will not be permanently removed but will be * stored in the stash under this identifier. You can then use the stash identifier to 'resurrect' the item * in different section. * * Default behavior with no stashIdentifier is to permanently remove the item as well. */ readonly stashIdentifier?: StashedDashboardItemsId; /** * Specify whether to eagerly remove the entire section if the item being removed was the only * item in the section. * * @remarks * Default is false. Meaning an empty section will be left. */ readonly eager?: boolean; } /** * Payload of the {@link IRemoveSectionItem} command. * @beta */ export declare interface IRemoveSectionItemPayload { /** * Index of the section where the item to move is located. * * @remarks * Index is zero-based. * * {@link IRemoveSectionItemPayload.sectionIndex} support will be removed in the next major SDK version. Use {@link IRemoveSectionItemPayload.itemPath} instead. * * TODO LX-648: Remove sectionIndex in the next major version. */ readonly sectionIndex: number; /** * Index of section item that should be moved. * * @remarks * Index is zero-based. For convenience you may use index of -1 to remove last item from section. * * {@link IRemoveSectionItemPayload.itemIndex} support will be removed in the next major SDK version. Use {@link IRemoveSectionItemPayload.itemPath} instead. * * TODO LX-648: Remove itemIndex in the next major version. */ readonly itemIndex: RelativeIndex; /** * Index where the item to remove is located. * * @remarks * Index is zero-based. * * TODO LX-648: make the prop required */ readonly itemPath?: ILayoutItemPath; /** * Specify stash identifier. * * @remarks * If provided, the item will not be permanently removed but will be * stored in the stash under this identifier. You can then use the stash identifier to 'resurrect' the item * in different section. * * Default behavior with no stashIdentifier is to permanently remove the item as well. */ readonly stashIdentifier?: StashedDashboardItemsId; /** * Specify whether to eagerly remove the entire section if the item being removed was the only * item in the section. * * @remarks * Default is false. Meaning an empty section will be left. */ readonly eager?: boolean; } /** * @beta */ export declare interface IRenameDashboard extends IDashboardCommand { readonly type: "GDC.DASH/CMD.RENAME"; readonly payload: IRenameDashboardPayload; } /** * Payload of the {@link IRenameDashboard} command. * @beta */ export declare interface IRenameDashboardPayload { /** * New title to use for the dashboard. */ readonly newTitle: string; } /** * Command to rename a dashboard tab. * @alpha */ export declare interface IRenameDashboardTab extends IDashboardCommand { readonly type: "GDC.DASH/CMD.TAB.RENAME"; readonly payload: IRenameDashboardTabPayload; } /** * Payload of the {@link IRenameDashboardTab} command. * @alpha */ export declare interface IRenameDashboardTabPayload { /** * New title for the tab. */ readonly title: string; /** * Optional identifier of the tab to rename. If not provided, the active tab is used. */ readonly tabId?: string; } /** * @beta */ export declare interface IRenderingWorkerConfiguration { /** * Maximum time limit for rendering the dashboard. * Somehow in sync with limits of exporter * https://github.com/gooddata/gdc-exporters-microservices/blob/master/microservices/visual-exporter-service/src/main/kotlin/com/gooddata/exporters/visual/config/TabSessionConfig.kt * * Default: 20*60000 (20min). * @privateRemarks * If changing this value update it also in documentation of {@link requestAsyncRender} command creator and {@link useDashboardAsyncRender} hook. */ maxTimeout: number; /** * Maximum time limit for the first asynchronous rendering request. * If no asynchronous rendering request is fired in this time limit, the dashboard will announce that it is rendered. * * Default: 5000 (5s). */ asyncRenderRequestedTimeout: number; /** * Maximum time limit to re-request asynchronous rendering of the component once it's resolved. * * Default: 2000 (2s). */ asyncRenderResolvedTimeout: number; /** * Generator of correlation ids * * Default: uuid4 */ correlationIdGenerator: () => string; /** * Wait for given number of async requests. * If provided, we'll not wait full asyncRenderRequestedTimeout and * terminate the waiting if we reach the given number * */ asyncRenderExpectedCount?: number; /** * Indicates whether rendering worker is triggered inside export mode * * Default: false */ isExport?: boolean; } /** * @beta */ export declare interface IRenderModeChangeOptions { readonly resetDashboard: boolean; } /** * @beta */ export declare interface IRenderModeState { renderMode: RenderMode; } /** * Payload for replacing an attribute filter item (standard, arbitrary, or match) in the filter context. * @internal */ export declare interface IReplaceAttributeFilterItemPayload { readonly filterLocalId: string; readonly filter: DashboardAttributeFilterItem; readonly isWorkingSelectionChange?: boolean; readonly isSelectionInvalid?: boolean; /** * Optional tab local identifier to target a specific tab. * If not provided, the active tab will be used. */ readonly tabLocalIdentifier?: string; } /** * @beta */ export declare interface IReplaceSectionItem extends IDashboardCommand { readonly type: "GDC.DASH/CMD.FLUID_LAYOUT.REPLACE_ITEM"; readonly payload: IReplaceSectionItemPayload; } /** * Payload of the {@link IReplaceSectionItem} command. * @beta */ export declare interface IReplaceSectionItemPayload { /** * Index of section where the item to modify resides. * * @remarks * {@link IReplaceSectionItemPayload.sectionIndex} support will be removed in the next major SDK version. Use {@link IReplaceSectionItemPayload.itemPath} instead. * * TODO LX-648: Remove sectionIndex in the next major version. */ readonly sectionIndex: number; /** * Index of item within section that should be modified. * * @remarks * {@link IReplaceSectionItemPayload.itemIndex} support will be removed in the next major SDK version. Use {@link IReplaceSectionItemPayload.itemPath} instead. * * TODO LX-648: Remove itemIndex in the next major version. */ readonly itemIndex: number; /** * Index where the item to modify resides. * * TODO LX-648: make the prop required */ readonly itemPath?: ILayoutItemPath; /** * New item definition. */ readonly item: DashboardItemDefinition; /** * Specify identifier for stash where the old item should be stored. * * @remarks * If no stashIdentifier provided, then the old item will be thrown away. */ readonly stashIdentifier?: StashedDashboardItemsId; /** * Specify whether dashboard should auto-resolve date dataset to use for date filtering of the KPI * or insight widget that will be used to replace item on a dashboard. * * @remarks * This is by default disabled. Meaning date filtering will be enabled only if the KPI or Insight widget * already specifies dateDataset. If the dateDataset is `undefined` the widget will not be filtered * by dashboard's date filter. * * When you turn on this option, then the dashboard will automatically resolve date dataset for those * KPI and Insight widgets that have it `undefined`. */ readonly autoResolveDateFilterDataset?: boolean; } /** * Command to reposition a dashboard tab. * * @remarks * This command will: * - Reorder the tabs in the dashboard to reflect the new position of the tab * * @alpha */ export declare interface IRepositionDashboardTab extends IDashboardCommand { readonly type: "GDC.DASH/CMD.TAB.REPOSITION"; readonly payload: IRepositionDashboardTabPayload; } /** * Payload of the {@link IRepositionDashboardTab} command. * @alpha */ export declare interface IRepositionDashboardTabPayload { /** * Old index of the tab before the reposition. */ readonly oldIndex: number; /** * New index of the tab after the reposition. */ readonly newIndex: number; } /** * @alpha */ export declare interface IRequestOpenDensityDialog extends IDashboardCommand { readonly type: "GDC.DASH/CMD.OPEN_DENSITY_DIALOG"; } /** * @beta */ export declare interface IResetDashboard extends IDashboardCommand { readonly type: "GDC.DASH/CMD.RESET"; } /** * Command for resetting all working filters. * It resets the working filters in to same state as applied filters. * * @remarks * This command ot usually used with setting dashboardApplyFiltersMode: ALL_AT_ONCE * * If you want to reset applied filters too, you may use {@link changeFilterContextSelection} and pass all available filters to it. * * @remarks * See {@link applyFilterContextWorkingSelection} for a factory function that will help you create this command. * * @alpha */ export declare interface IResetFilterContextWorkingSelection extends IDashboardCommand { readonly type: "GDC.DASH/CMD.FILTER_CONTEXT.RESET_WORKING_SELECTION"; } /** * @beta */ export declare interface IResizeHeight extends IDashboardCommand { readonly type: "GDC.DASH/CMD.FLUID_LAYOUT.RESIZE_HEIGHT"; readonly payload: IResizeHeightPayload; } /** * Payload of the {@link IResizeHeight} command. * @beta */ export declare interface IResizeHeightPayload { /** * Index of the section to resize. * * Index is zero-based. * * @remarks * "number" support will be removed in the next major SDK version. Use {@link ILayoutSectionPath} instead. * * TODO LX-648: Remove number type in the next major version. */ readonly sectionIndex: number | ILayoutSectionPath; /** * Indexes of the items to resize. * * Index is zero-based. */ readonly itemIndexes: number[]; /** * Height to resize. */ readonly height: number; } /** * @beta */ export declare interface IResizeWidth extends IDashboardCommand { readonly type: "GDC.DASH/CMD.FLUID_LAYOUT.RESIZE_WIDTH"; readonly payload: IResizeWidthPayload; } /** * Payload of the {@link IResizeWidth} command. * @beta */ export declare interface IResizeWidthPayload { /** * Index of the section to resize. * * Index is zero-based. * * @remarks * {@link IResizeWidthPayload.sectionIndex} support will be removed in the next major SDK version. Use {@link IResizeWidthPayload.itemPath} instead. * * TODO LX-648: Remove sectionIndex in the next major version. */ readonly sectionIndex: number; /** * Indexes of the item to resize. * * Index is zero-based. * * @remarks * {@link IResizeWidthPayload.itemIndex} support will be removed in the next major SDK version. Use {@link IResizeWidthPayload.itemPath} instead. * * TODO LX-648: Remove itemIndex in the next major version. */ readonly itemIndex: number; /** * Index of the item to resize. * * Index is zero-based. * * TODO LX-648: make the prop required */ readonly itemPath?: ILayoutItemPath; /** * width to resize. */ readonly width: number; } /** * @alpha */ export declare interface IResolvedAttributeFilterValues { [elementRef: string]: string | undefined | null; } /** * @alpha */ export declare interface IResolvedDateFilterValue { from: string; to: string; } /** * Resolved values types for all resolvable filters. * * @alpha */ export declare interface IResolvedFilterValues { dateFilters: ResolvedDateFilterValues; attributeFilters: { [filterStringRef: string]: IResolvedAttributeFilterValues; }; } /** * Set of functions you can use to customize some aspects of the RichText. * * @public */ export declare interface IRichTextCustomizer { /** * Register a provider for React components to render RichText. * * @remarks * A provider takes the RichText as input and is expected to return * a React component that should be used to render that RichText. * * If the provider returns `undefined` then: * * - if there are other providers registered, they will be called to see if they can provide * a component to render the RichText * - if there are no other providers registered, the default, built-in component will be used. * * You may register multiple providers. They will be evaluated in the order you register them. * * @param provider - provider to register * @returns self, for call chaining sakes */ withCustomProvider(provider: OptionalRichTextComponentProvider): IRichTextCustomizer; /** * Register a factory for RichText decorator providers. * * @remarks * Decorators are a way to add customizations or embellishments on top * of an existing component. Decorators are more complex to write because they need to work with the component * they should decorate and add 'something' on top of that component. * * This is best illustrated on an example: * * @example * ``` * withCustomDecorator((next) => { * return (filter) => { * if (some_condition_to_prevent_decoration) { * return undefined; * } * * // Make sure you call this outside the component render function, * // otherwise a new instance of the decorated component is created on each re-render. * const Decorated = next(filter); * * function MyCustomDecorator(props) { * return ( *
*

My Custom Decoration

* *
* ) * } * * return MyCustomDecorator; * } * }) * ``` * * The above shows how to register a decorator that will use some condition to determine whether particular * attribute filter is eligible for decoration. * * Note: the factory function that you specify will be called immediately at the registration time. The * provider that it returns will be called at render time. * * @param providerFactory - factory */ withCustomDecorator(providerFactory: (next: RichTextComponentProvider) => OptionalRichTextComponentProvider): IRichTextCustomizer; } /** * @internal */ export declare type IRichTextDraggingComponentProps = { itemType: "richText"; item: RichTextDraggableItem; }; /** * @alpha */ export declare type IRichTextMenuItem = IRichTextMenuItemButton | IIRichTextMenuItemSeparator | IRichTextMenuSubmenu; /** * @alpha */ export declare interface IRichTextMenuItemButton { type: "button"; itemId: string; itemName: string; onClick?: (e: MouseEvent_2) => void; /** * If specified, the value is shown on hover of the item as a tooltip. */ tooltip?: string | ReactNode; disabled?: boolean; icon?: ReactElement | string; /** * Additional class names to be applied to the item. */ className?: string; } /** * @alpha */ export declare interface IRichTextMenuSubmenu { type: "submenu"; itemId: string; itemName: string; /** @alpha */ SubmenuComponent: ComponentType; /** * Should the submenu component be rendered only? * If so, it won't be wrapped inside the default container * and the default header won't be rendered. * @alpha */ renderSubmenuComponentOnly?: boolean; /** * If specified, the value is shown on hover of the item as a tooltip. */ tooltip?: string | ReactNode; disabled?: boolean; icon?: ReactElement | string; /** * Additional class names to be applied to the item. */ className?: string; onClick?: (e: MouseEvent_2) => void; } /** * @alpha */ export declare interface IRichTextMenuSubmenuComponentProps { /** * The widget for which the menu is rendered. */ widget: IRichTextWidget; /** * Closes the insight menu. */ onClose: () => void; /** * Go back to the root menu. */ onGoBack: () => void; /** * If true, the title configuration is shown in submenu. * default: true */ enableTitleConfig?: boolean; } /** * Tests whether an object is any type of placeholder widgets. * * @param obj - object to test * @alpha */ export declare function isAnyPlaceholderWidget(obj: unknown): obj is IPlaceholderWidget | IInsightPlaceholderWidget | IKpiPlaceholderWidget; /** * @internal */ export declare function isAttributeFilterDraggableItem(item: DraggableContentItem): item is AttributeFilterDraggableItem; /** * @internal */ export declare function isAttributeFilterPlaceholderDraggableItem(item: any): item is AttributeFilterPlaceholderDraggableItem; /** * Saves alert. * * @beta */ export declare interface ISaveAlert extends IDashboardCommand { readonly type: "GDC.DASH/CMD.ALERT.SAVE"; readonly payload: ISaveAlertPayload; } /** * Payload of the {@link ISaveAlert} command. * @beta */ export declare interface ISaveAlertPayload { /** * The alert to be saved. */ readonly alert: IAutomationMetadataObject; } /** * @alpha */ export declare interface ISaveAsDialogProps { /** * Is SaveAs dialog visible? */ isVisible?: boolean; /** * Callback to be called, when user submits the save as dialog. */ onSubmit?: (title: string, switchToCopy?: boolean) => void; /** * Callback to be called, when user closes the save as dialog. */ onCancel?: () => void; /** * Callback to be called, when error occurs. */ onError?: (error: GoodDataSdkError) => void; /** * Callback to be called, when save as finished successfully. */ onSuccess?: (dashboard: IDashboard) => void; } /** * @beta */ export declare interface ISaveAsNewButtonProps { isVisible: boolean; onSaveAsNewClick: () => void; } /** * @beta */ export declare interface ISaveButtonProps { isVisible: boolean; isEnabled: boolean; isSaving: boolean; buttonTitle: MessageDescriptor; onSaveClick: () => void; } /** * @beta */ export declare interface ISaveDashboard extends IDashboardCommand { readonly type: "GDC.DASH/CMD.SAVE"; readonly payload: ISaveDashboardPayload; } /** * Payload of the {@link ISaveDashboard} command. * @beta */ export declare interface ISaveDashboardPayload { /** * Specify new title for the dashboard that will be created during the Save operation. If not specified, * the current dashboard title will be used. */ readonly title?: string; } /** * @alpha */ export declare interface ISavedFilterViewInteractionData { type: SavedFilterViewInteractionType; countOfSavedViews: number; } /** * Command for snapshotting current filter context and saving it as a filter view. * * @remarks * See {@link saveFilterView} for a factory function that will help you create this command. * * @alpha */ export declare interface ISaveFilterView extends IDashboardCommand { readonly type: "GDC.DASH/CMD.FILTER_CONTEXT.FILTER_VIEW.SAVE"; readonly payload: ISaveFilterViewPayload; } /** * Payload of the {@link ISaveFilterView} command. * @alpha */ export declare interface ISaveFilterViewPayload { readonly name: string; readonly isDefault: boolean; } /** * Saves scheduled email. * * @beta */ export declare interface ISaveScheduledEmail extends IDashboardCommand { readonly type: "GDC.DASH/CMD.SCHEDULED_EMAIL.SAVE"; readonly payload: ISaveScheduledEmailPayload; } /** * Payload of the {@link ISaveScheduledEmail} command. * @beta */ export declare interface ISaveScheduledEmailPayload { /** * The scheduled email to save. */ readonly scheduledEmail: IAutomationMetadataObject; } /** * @internal */ export declare function isBaseDraggableLayoutItem(item: any): item is BaseDraggableMovingItem; /** * @internal */ export declare function isBaseDraggableMovingItem(item: any): item is BaseDraggableMovingItem; /** * Tests whether the provided object is an instance of {@link BrokenAlertAttributeFilterInfo} * * @param item - object to test * * @alpha */ export declare function isBrokenAlertAttributeFilterInfo(item: IBrokenAlertFilterBasicInfo): item is BrokenAlertAttributeFilterInfo; /** * Tests whether the provided object is an instance of {@link BrokenAlertDateFilterInfo} * * @param item - object to test * * @alpha */ export declare function isBrokenAlertDateFilterInfo(item: IBrokenAlertFilterBasicInfo): item is BrokenAlertDateFilterInfo; /** * @alpha */ export declare interface IScheduledEmailDialogProps { /** * In case, we are not creating new schedule, but editing existing one, this is the active schedule to be edited. */ scheduledExportToEdit?: IAutomationMetadataObject; /** * Users in workspace */ users: IWorkspaceUser[]; /** * Error occurred while loading users */ usersError?: GoodDataSdkError; /** * Notification channels in organization */ notificationChannels: INotificationChannelIdentifier[] | INotificationChannelMetadataObject[]; /** * Widget to be used for scheduled email. * * Note: this is available only when scheduling export for widget, not dashboard. * Typed as IWidget (not ExtendedDashboardWidget) because the dialog only * supports insight widgets; custom widgets and nested layouts are not valid * export targets and were silently discarded at the connector boundary anyway. */ widget?: IWidget; /** * Insight to be used for scheduled email. * * Note: this is available only when scheduling export for widget, not dashboard. */ insight?: IInsight; /** * Dashboard filters to be used for scheduled email. * * Note: * - Provided filters exclude cross-filtering filters, as these are typically not desired in exported reports. * * - If the current dashboard filters (excluding cross-filtering) match the saved dashboard filters, this will be undefined. * In such cases, the scheduled export will use the most recent saved dashboard filters, guaranteeing that * the export reflects the latest intended filter configuration and we don't want to save them. * * - If we are editing an existing scheduled export, this will contain its filters, as changing saved filters is currently not allowed. */ dashboardFilters?: FilterContextItem[]; /** * Widget filters to be used for scheduled email. * * Note: * - Provided filters are a combination of insight and dashboard filters, following these rules: * - Cross-filtering filters are excluded as they are typically not desired in the scheduled export. * - The widget's ignored filters configuration is honored (ignored filters are not overridden by dashboard filters and remain as is). * - If the resulting filters include all-time date filter, it is excluded as it has no effect on the scheduled export execution. * * - If we are editing an existing scheduled export, this will contain its filters, as changing saved filters is currently not allowed. */ widgetFilters?: IFilter[]; /** * Is scheduled email dialog loading initial data, before it can be rendered? */ isLoading?: boolean; /** * Callback to be called, when user submits the scheduled email dialog. */ onSubmit?: (scheduledEmailDefinition: IAutomationMetadataObject | IAutomationMetadataObjectDefinition) => void; /** * Callback to be called, when user save the existing scheduled email. */ onSave?: (scheduledEmailDefinition: IAutomationMetadataObject) => void; /** * Callback to be called, when user closes the scheduled email dialog. */ onCancel?: () => void; /** * Callback to be called, when user goes back to the scheduled email management dialog. */ onBack?: () => void; /** * Callback to be called, when error occurs. */ onError?: (error: GoodDataSdkError) => void; /** * Callback to be called, when scheduling finishes successfully. */ onSuccess?: (scheduledEmailDefinition: IAutomationMetadataObject) => void; /** * Callback to be called, when error occurs. */ onSaveError?: (error: GoodDataSdkError) => void; /** * Callback to be called, when scheduling finishes successfully. */ onSaveSuccess?: () => void; /** * Callback to be called, when scheduled email is deleted. */ onDeleteSuccess?: () => void; /** * Callback to be called, when schedule fails to delete. */ onDeleteError?: (error: GoodDataSdkError) => void; } /** * * @alpha */ export declare interface IScheduledEmailManagementDialogProps { /** * Is loading schedule data? */ isLoadingScheduleData: boolean; /** * Error occurred while loading schedule data? */ scheduleDataError?: GoodDataSdkError; /** * Notification channels in organization */ notificationChannels: INotificationChannelIdentifier[] | INotificationChannelMetadataObject[]; /** * Automations in workspace */ automations: IAutomationMetadataObject[]; /** * Callback to be called, when user adds new scheduled email item. */ onAdd?: () => void; /** * Callback to be called, when user clicks scheduled email item for editing. */ onEdit?: (scheduledMail: IAutomationMetadataObject) => void; /** * Callback to be called, when user closes the scheduled email management dialog. */ onClose?: () => void; /** * Callback to be called, when scheduled email is deleted. */ onDeleteSuccess?: () => void; /** * Callback to be called, when schedule fails to delete. */ onDeleteError?: (error: GoodDataSdkError) => void; } /** * @internal */ export declare interface IScheduleEmailContext { /** * Widget to schedule email for. */ widgetRef?: ObjRef | undefined; /** * Schedule to edit. */ schedule?: IAutomationMetadataObject; } /** * Tests whether the provided object is an instance of {@link ICreateAttributeHierarchyRequested}. * * @param obj - object to test * @internal */ export declare const isCreateAttributeHierarchyRequested: (obj: unknown) => obj is ICreateAttributeHierarchyRequested; /** * Tests whether the provided object is an instance of {@link ICreateInsightRequested}. * * @param obj - object to test * @internal */ export declare const isCreateInsightRequested: (obj: unknown) => obj is ICreateInsightRequested; /** * This event is emitted after change of the dashboard layout screen size. * * @beta */ export declare interface IScreenSizeChanged extends IDashboardEvent { readonly type: "GDC.DASH/EVT.FLUID_LAYOUT.SCREEN_SIZE_CHANGED"; readonly payload: IScreenSizeChangedPayload; } /** * Payload of the {@link IScreenSizeChanged} event. * @beta */ export declare interface IScreenSizeChangedPayload { /** * New screen size. */ readonly screenSize: ScreenSize; } /** * Tests whether object is an instance of {@link ICustomDashboardEvent}. * * @param obj - object to test * @public */ export declare function isCustomDashboardEvent(obj: unknown): obj is ICustomDashboardEvent; /** * Type-guard that tests whether an object is an instance of {@link ICustomWidget}. * * @param obj - object to test * @public */ export declare function isCustomWidget(obj: unknown): obj is ICustomWidget; /** * Type-guard that tests whether an object is an instance of {@link ICustomWidgetBase}. * * @param obj - object to test * @public */ export declare function isCustomWidgetBase(obj: unknown): obj is ICustomWidgetBase; /** * Type-guard that tests whether an object is an instance of {@link ICustomWidgetDefinition}. * * @param obj - object to test * @public */ export declare function isCustomWidgetDefinition(obj: unknown): obj is ICustomWidgetDefinition; /** * Tests whether the provided object is an instance of {@link IDashboardAlertCreated}. * * @param obj - object to test * @beta */ export declare const isDashboardAlertCreated: (obj: unknown) => obj is IDashboardAlertCreated; /** * Tests whether the provided object is an instance of {@link IDashboardAlertSaved}. * * @param obj - object to test * @beta */ export declare const isDashboardAlertSaved: (obj: unknown) => obj is IDashboardAlertSaved; /** * Tests whether the provided object is an instance of {@link DashboardAsyncRenderRequested}. * * @param obj - object to test * @public */ export declare const isDashboardAsyncRenderRequested: (obj: unknown) => obj is DashboardAsyncRenderRequested; /** * Tests whether the provided object is an instance of {@link DashboardAsyncRenderResolved}. * * @param obj - object to test * @public */ export declare const isDashboardAsyncRenderResolved: (obj: unknown) => obj is DashboardAsyncRenderResolved; /** * Tests whether the provided object is an instance of {@link IDashboardAttributeFilterAdded}. * * @param obj - object to test * @beta */ export declare const isDashboardAttributeFilterAdded: (obj: unknown) => obj is IDashboardAttributeFilterAdded; /** * Tests whether the provided object is an instance of {@link IDashboardAttributeFilterConfigLimitingItemsChanged}. * * @param obj - object to test * @alpha */ export declare const isDashboardAttributeFilterConfigLimitingItemsChanged: (obj: unknown) => obj is IDashboardAttributeFilterConfigLimitingItemsChanged; /** * Tests whether the provided object is an instance of {@link IDashboardAttributeFilterConfigModeChanged}. * * @param obj - object to test * @alpha */ export declare const isDashboardAttributeFilterConfigModeChanged: (obj: unknown) => obj is IDashboardAttributeFilterConfigModeChanged; /** * Tests whether the provided object is an instance of {@link DashboardAttributeFilterItemSelectionReplaced}. * * @param obj - object to test * @public */ export declare const isDashboardAttributeFilterItemSelectionReplaced: (obj: unknown) => obj is DashboardAttributeFilterItemSelectionReplaced; /** * Tests whether the provided object is an instance of {@link IDashboardAttributeFilterMoved}. * * @param obj - object to test * @beta */ export declare const isDashboardAttributeFilterMoved: (obj: unknown) => obj is IDashboardAttributeFilterMoved; /** * Tests whether the provided object is an instance of {@link IDashboardAttributeFilterParentChanged}. * * @param obj - object to test * @beta */ export declare const isDashboardAttributeFilterParentChanged: (obj: unknown) => obj is IDashboardAttributeFilterParentChanged; /** * Tests whether the provided object is an instance of {@link IDashboardAttributeFilterRemoved}. * * @param obj - object to test * @beta */ export declare const isDashboardAttributeFilterRemoved: (obj: unknown) => obj is IDashboardAttributeFilterRemoved; /** * Tests whether the provided object is an instance of {@link DashboardAttributeFilterSelectionChanged}. * * @param obj - object to test * @public */ export declare const isDashboardAttributeFilterSelectionChanged: (obj: unknown) => obj is DashboardAttributeFilterSelectionChanged; /** * Tests whether the provided object is an instance of {@link IDashboardAttributeSelectionModeChanged}. * * @param obj - object to test * @beta */ export declare const isDashboardAttributeFilterSelectionModeChanged: (obj: unknown) => obj is IDashboardAttributeSelectionModeChanged; /** * Tests whether the provided object is an instance of {@link IDashboardAttributeTitleChanged}. * * @param obj - object to test * @beta */ export declare const isDashboardAttributeFilterTitleChanged: (obj: unknown) => obj is IDashboardAttributeTitleChanged; /** * Tests whether the provided object is an instance of {@link IDashboardAutomationsRefreshed}. * * @param obj - object to test * @beta */ export declare const isDashboardAutomationsRefreshed: (obj: unknown) => obj is IDashboardAutomationsRefreshed; /** * Tests whether the provided object is an instance of {@link IDashboardCommandFailed}. * * @param obj - object to test * @beta */ export declare const isDashboardCommandFailed: (obj: unknown) => obj is IDashboardCommandFailed; /** * Tests whether the provided object is an instance of {@link IDashboardCommandRejected}. * * @param obj - object to test * @beta */ export declare const isDashboardCommandRejected: (obj: unknown) => obj is IDashboardCommandRejected; /** * Tests whether the provided object is an instance of {@link IDashboardCommandStarted}. * * @param obj - object to test * @beta */ export declare const isDashboardCommandStarted: (obj: unknown) => obj is IDashboardCommandStarted; /** * Tests whether the provided object is an instance of {@link DashboardCopySaved}. * * @param obj - object to test * @public */ export declare const isDashboardCopySaved: (obj: unknown) => obj is DashboardCopySaved; /** * Tests whether the provided object is an instance of {@link IDashboardCrossFilteringRequested}. * * @param obj - object to test * @beta */ export declare const isDashboardCrossFilteringRequested: (obj: unknown) => obj is IDashboardCrossFilteringRequested; /** * Tests whether the provided object is an instance of {@link IDashboardCrossFilteringResolved}. * * @param obj - object to test * @beta */ export declare const isDashboardCrossFilteringResolved: (obj: unknown) => obj is IDashboardCrossFilteringResolved; /** * Tests whether the provided object is an instance of {@link DashboardDateFilterSelectionChanged}. * * @param obj - object to test * @public */ export declare const isDashboardDateFilterSelectionChanged: (obj: unknown) => obj is DashboardDateFilterSelectionChanged; /** * Tests whether the provided object is an instance of {@link DashboardDeinitialized}. * * @param obj - object to test * @public */ export declare const isDashboardDeinitialized: (obj: unknown) => obj is DashboardDeinitialized; /** * Tests whether the provided object is an instance of {@link IDashboardDeleted} * * @param obj - object to test * @beta */ export declare const isDashboardDeleted: (obj: unknown) => obj is IDashboardDeleted; /** * Type-guard that tests whether an object is an instance of {@link IDashboardDependentDateFilter}. * * @param obj - object to test * @internal */ export declare function isDashboardDependentDateFilter(obj: unknown): obj is IDashboardDependentDateFilter; /** * Tests whether the provided object is an instance of {@link IDashboardDrillableItemsChanged}. * * @param obj - object to test * @alpha */ export declare const isDashboardDrillableItemsChanged: (obj: unknown) => obj is IDashboardDrillableItemsChanged; /** * Tests whether the provided object is an instance of {@link IDashboardDrillDownRequested}. * * @param obj - object to test * @alpha */ export declare const isDashboardDrillDownRequested: (obj: unknown) => obj is IDashboardDrillDownRequested; /** * Tests whether the provided object is an instance of {@link IDashboardDrillDownResolved}. * * @param obj - object to test * @alpha */ export declare const isDashboardDrillDownResolved: (obj: unknown) => obj is IDashboardDrillDownResolved; /** * Tests whether the provided object is an instance of {@link IDashboardDrillRequested}. * * @param obj - object to test * @alpha */ export declare const isDashboardDrillRequested: (obj: unknown) => obj is IDashboardDrillRequested; /** * Tests whether the provided object is an instance of {@link IDashboardDrillResolved}. * * @param obj - object to test * @alpha */ export declare const isDashboardDrillResolved: (obj: unknown) => obj is IDashboardDrillResolved; /** * Tests whether the provided object is an instance of {@link IDashboardDrillToAttributeUrlRequested}. * * @param obj - object to test * @alpha */ export declare const isDashboardDrillToAttributeUrlRequested: (obj: unknown) => obj is IDashboardDrillToAttributeUrlRequested; /** * Tests whether the provided object is an instance of {@link IDashboardDrillToAttributeUrlResolved}. * * @param obj - object to test * @alpha */ export declare const isDashboardDrillToAttributeUrlResolved: (obj: unknown) => obj is IDashboardDrillToAttributeUrlResolved; /** * Tests whether the provided object is an instance of {@link IDashboardDrillToCustomUrlRequested}. * * @param obj - object to test * @alpha */ export declare const isDashboardDrillToCustomUrlRequested: (obj: unknown) => obj is IDashboardDrillToCustomUrlRequested; /** * Tests whether the provided object is an instance of {@link IDashboardDrillToCustomUrlResolved}. * * @param obj - object to test * @alpha */ export declare const isDashboardDrillToCustomUrlResolved: (obj: unknown) => obj is IDashboardDrillToCustomUrlResolved; /** * Tests whether the provided object is an instance of {@link IDashboardDrillToDashboardRequested}. * * @param obj - object to test * @alpha */ export declare const isDashboardDrillToDashboardRequested: (obj: unknown) => obj is IDashboardDrillToDashboardRequested; /** * Tests whether the provided object is an instance of {@link IDashboardDrillToDashboardResolved}. * * @param obj - object to test * @alpha */ export declare const isDashboardDrillToDashboardResolved: (obj: unknown) => obj is IDashboardDrillToDashboardResolved; /** * Tests whether the provided object is an instance of {@link IDashboardDrillToInsightRequested}. * * @param obj - object to test * @alpha */ export declare const isDashboardDrillToInsightRequested: (obj: unknown) => obj is IDashboardDrillToInsightRequested; /** * Tests whether the provided object is an instance of {@link IDashboardDrillToInsightResolved}. * * @param obj - object to test * @alpha */ export declare const isDashboardDrillToInsightResolved: (obj: unknown) => obj is IDashboardDrillToInsightResolved; /** * Tests whether the provided object is an instance of {@link IDashboardDrillToLegacyDashboardRequested}. * * @param obj - object to test * @alpha */ export declare const isDashboardDrillToLegacyDashboardRequested: (obj: unknown) => obj is IDashboardDrillToLegacyDashboardRequested; /** * Tests whether the provided object is an instance of {@link IDashboardDrillToLegacyDashboardResolved}. * * @param obj - object to test * @alpha */ export declare const isDashboardDrillToLegacyDashboardResolved: (obj: unknown) => obj is IDashboardDrillToLegacyDashboardResolved; /** * Tests whether object is an instance of {@link IDashboardEvent}. * * @param obj - object to test * @public */ export declare function isDashboardEvent(obj: unknown): obj is IDashboardEvent; /** * Tests whether object is an instance of {@link IDashboardEvent} or {@link ICustomDashboardEvent}. * * @param obj - object to test * @public */ export declare function isDashboardEventOrCustomDashboardEvent(obj: unknown): obj is IDashboardEvent | ICustomDashboardEvent; /** * Tests whether the provided object is an instance of {@link IDashboardExportToExcelRequested}. * * @param obj - object to test * @beta */ export declare const isDashboardExportToExcelRequested: (obj: unknown) => obj is IDashboardExportToExcelRequested; /** * Tests whether the provided object is an instance of {@link IDashboardExportToExcelResolved}. * * @param obj - object to test * @beta */ export declare const isDashboardExportToExcelResolved: (obj: unknown) => obj is IDashboardExportToExcelResolved; /** * Tests whether the provided object is an instance of {@link IDashboardExportToPptPresentationRequested}. * * @param obj - object to test * @beta */ export declare const isDashboardExportToImageRequested: (obj: unknown) => obj is IDashboardExportToImageRequested; /** * Tests whether the provided object is an instance of {@link IDashboardExportToPptPresentationResolved}. * * @param obj - object to test * @beta */ export declare const isDashboardExportToImageResolved: (obj: unknown) => obj is IDashboardExportToImageResolved; /** * Tests whether the provided object is an instance of {@link IDashboardExportToPdfPresentationRequested}. * * @param obj - object to test * @beta */ export declare const isDashboardExportToPdfPresentationRequested: (obj: unknown) => obj is IDashboardExportToPdfPresentationRequested; /** * Tests whether the provided object is an instance of {@link IDashboardExportToPdfPresentationResolved}. * * @param obj - object to test * @beta */ export declare const isDashboardExportToPdfPresentationResolved: (obj: unknown) => obj is IDashboardExportToPdfPresentationResolved; /** * Tests whether the provided object is an instance of {@link IDashboardExportToPdfRequested}. * * @param obj - object to test * @beta */ export declare const isDashboardExportToPdfRequested: (obj: unknown) => obj is IDashboardExportToPdfRequested; /** * Tests whether the provided object is an instance of {@link IDashboardExportToPdfResolved}. * * @param obj - object to test * @beta */ export declare const isDashboardExportToPdfResolved: (obj: unknown) => obj is IDashboardExportToPdfResolved; /** * Tests whether the provided object is an instance of {@link IDashboardExportToPptPresentationRequested}. * * @param obj - object to test * @beta */ export declare const isDashboardExportToPptPresentationRequested: (obj: unknown) => obj is IDashboardExportToPptPresentationRequested; /** * Tests whether the provided object is an instance of {@link IDashboardExportToPptPresentationResolved}. * * @param obj - object to test * @beta */ export declare const isDashboardExportToPptPresentationResolved: (obj: unknown) => obj is IDashboardExportToPptPresentationResolved; /** * Type-guard testing whether the provided object is an instance of {@link IDashboardFilter}. * * @alpha */ export declare function isDashboardFilter(obj: unknown): obj is IDashboardFilter; /** * Tests whether the provided object is an instance of {@link DashboardFilterContextChanged}. * * @param obj - object to test * @public */ export declare const isDashboardFilterContextChanged: (obj: unknown) => obj is DashboardFilterContextChanged; /** * Tests whether the provided object is an instance of {@link IDashboardFilterContextSelectionReset}. * * @param obj - object to test * * @alpha */ export declare const isDashboardFilterContextSelectionReset: (obj: unknown) => obj is IDashboardFilterContextSelectionReset; /** * Tests whether the provided object is an instance of {@link IDashboardFilterContextWorkingSelectionApplied}. * * @param obj - object to test * * @alpha */ export declare const isDashboardFilterContextWorkingSelectionApplied: (obj: unknown) => obj is IDashboardFilterContextWorkingSelectionApplied; /** * Tests whether the provided object is an instance of {@link IDashboardFilterViewApplicationFailed}. * * @param obj - object to test * * @alpha */ export declare const isDashboardFilterViewApplicationFailed: (obj: unknown) => obj is IDashboardFilterViewApplicationFailed; /** * Tests whether the provided object is an instance of {@link IDashboardFilterViewApplicationSucceeded}. * * @param obj - object to test * @beta */ export declare const isDashboardFilterViewApplicationSucceeded: (obj: unknown) => obj is IDashboardFilterViewApplicationSucceeded; /** * Tests whether the provided object is an instance of {@link IDashboardFilterViewCreationFailed}. * * @param obj - object to test * * @alpha */ export declare const isDashboardFilterViewCreationFailed: (obj: unknown) => obj is IDashboardFilterViewCreationFailed; /** * Tests whether the provided object is an instance of {@link IDashboardFilterViewCreationSucceeded}. * * @param obj - object to test * @beta */ export declare const isDashboardFilterViewCreationSucceeded: (obj: unknown) => obj is IDashboardFilterViewCreationSucceeded; /** * Tests whether the provided object is an instance of {@link IDashboardFilterViewDefaultStatusChangeFailed}. * * @param obj - object to test * * @alpha */ export declare const isDashboardFilterViewDefaultStatusChangeFailed: (obj: unknown) => obj is IDashboardFilterViewDefaultStatusChangeFailed; /** * Tests whether the provided object is an instance of {@link IDashboardFilterViewDefaultStatusChangeSucceeded}. * * @param obj - object to test * @beta */ export declare const isDashboardFilterViewDefaultStatusChangeSucceeded: (obj: unknown) => obj is IDashboardFilterViewDefaultStatusChangeSucceeded; /** * Tests whether the provided object is an instance of {@link IDashboardFilterViewDeletionFailed}. * * @param obj - object to test * * @alpha */ export declare const isDashboardFilterViewDeletionFailed: (obj: unknown) => obj is IDashboardFilterViewDeletionFailed; /** * Tests whether the provided object is an instance of {@link IDashboardFilterViewDeletionSucceeded}. * * @param obj - object to test * @beta */ export declare const isDashboardFilterViewDeletionSucceeded: (obj: unknown) => obj is IDashboardFilterViewDeletionSucceeded; /** * Tests whether the provided object is an instance of {@link IDashboardIgnoreExecutionTimestampChanged}. * * @param obj - object to test * @alpha */ export declare const isDashboardIgnoreExecutionTimestampChanged: (obj: unknown) => obj is IDashboardIgnoreExecutionTimestampChanged; /** * Tests whether the provided object is an instance of {@link DashboardInitialized}. * * @param obj - object to test * @public */ export declare const isDashboardInitialized: (obj: unknown) => obj is DashboardInitialized; /** * Tests whether the provided object is an instance of {@link IDashboardInsightWidgetChanged}. * * @param obj - object to test * @beta */ export declare const isDashboardInsightWidgetChanged: (obj: unknown) => obj is IDashboardInsightWidgetChanged; /** * Tests whether the provided object is an instance of {@link IDashboardInsightWidgetDescriptionChanged}. * * @param obj - object to test * @beta */ export declare const isDashboardInsightWidgetDescriptionChanged: (obj: unknown) => obj is IDashboardInsightWidgetDescriptionChanged; /** * Tests whether the provided object is an instance of {@link IDashboardInsightWidgetDrillsModified}. * * @param obj - object to test * @beta */ export declare const isDashboardInsightWidgetDrillsModified: (obj: unknown) => obj is IDashboardInsightWidgetDrillsModified; /** * Tests whether the provided object is an instance of {@link IDashboardInsightWidgetDrillsRemoved}. * * @param obj - object to test * @beta */ export declare const isDashboardInsightWidgetDrillsRemoved: (obj: unknown) => obj is IDashboardInsightWidgetDrillsRemoved; /** * Tests whether the provided object is an instance of {@link IDashboardInsightWidgetExportRequested}. * * @param obj - object to test * @beta */ export declare const isDashboardInsightWidgetExportRequested: (obj: unknown) => obj is IDashboardInsightWidgetExportRequested; /** * Tests whether the provided object is an instance of {@link IDashboardInsightWidgetExportResolved}. * * @param obj - object to test * @beta */ export declare const isDashboardInsightWidgetExportResolved: (obj: unknown) => obj is IDashboardInsightWidgetExportResolved; /** * Tests whether the provided object is an instance of {@link IDashboardInsightWidgetFilterSettingsChanged}. * * @param obj - object to test * @beta */ export declare const isDashboardInsightWidgetFilterSettingsChanged: (obj: unknown) => obj is IDashboardInsightWidgetFilterSettingsChanged; /** * Tests whether the provided object is an instance of {@link IDashboardInsightWidgetHeaderChanged}. * * @param obj - object to test * @beta */ export declare const isDashboardInsightWidgetHeaderChanged: (obj: unknown) => obj is IDashboardInsightWidgetHeaderChanged; /** * Tests whether the provided object is an instance of {@link IDashboardInsightWidgetInsightSwitched}. * * @param obj - object to test * @beta */ export declare const isDashboardInsightWidgetInsightSwitched: (obj: unknown) => obj is IDashboardInsightWidgetInsightSwitched; /** * Tests whether the provided object is an instance of {@link IDashboardInsightWidgetRefreshed}. * * @param obj - object to test * @beta */ export declare const isDashboardInsightWidgetRefreshed: (obj: unknown) => obj is IDashboardInsightWidgetRefreshed; /** * Tests whether the provided object is an instance of {@link IDashboardInsightWidgetVisConfigurationChanged}. * * @param obj - object to test * @beta */ export declare const isDashboardInsightWidgetVisConfigurationChanged: (obj: unknown) => obj is IDashboardInsightWidgetVisConfigurationChanged; /** * Tests whether the provided object is an instance of {@link IDashboardInsightWidgetVisPropertiesChanged}. * * @param obj - object to test * @beta */ export declare const isDashboardInsightWidgetVisPropertiesChanged: (obj: unknown) => obj is IDashboardInsightWidgetVisPropertiesChanged; /** * Tests whether the provided item is a dashboard item with visualization. * @param item - item to test * * @public */ export declare function isDashboardItemVisualization(item: unknown): item is DashboardItemVisualization; /** * Tests whether the provided item is a dashboard item with visualization content. * @param item - item to test * * @public */ export declare function isDashboardItemVisualizationContent(item: unknown): item is DashboardItemVisualizationContent; /** * Tests whether the provided object is an instance of {@link IDashboardKeyDriverAnalysisRequested}. * * @param obj - object to test * @beta */ export declare const isDashboardKeyDriverAnalysisRequested: (obj: unknown) => obj is IDashboardKeyDriverAnalysisRequested; /** * Tests whether the provided object is an instance of {@link IDashboardKeyDriverAnalysisResolved}. * * @param obj - object to test * @beta */ export declare const isDashboardKeyDriverAnalysisResolved: (obj: unknown) => obj is IDashboardKeyDriverAnalysisResolved; /** * Tests whether the provided object is an instance of {@link IDashboardKpiWidgetChanged}. * * @param obj - object to test * @beta */ export declare const isDashboardKpiWidgetChanged: (obj: unknown) => obj is IDashboardKpiWidgetChanged; /** * Tests whether the provided object is an instance of {@link IDashboardKpiWidgetComparisonChanged}. * * @param obj - object to test * @beta */ export declare const isDashboardKpiWidgetComparisonChanged: (obj: unknown) => obj is IDashboardKpiWidgetComparisonChanged; /** * Tests whether the provided object is an instance of {@link IDashboardKpiWidgetConfigurationChanged}. * * @param obj - object to test * @beta */ export declare const isDashboardKpiWidgetConfigurationChanged: (obj: unknown) => obj is IDashboardKpiWidgetConfigurationChanged; /** * Tests whether the provided object is an instance of {@link IDashboardKpiWidgetDescriptionChanged}. * * @param obj - object to test * @beta */ export declare const isDashboardKpiWidgetDescriptionChanged: (obj: unknown) => obj is IDashboardKpiWidgetDescriptionChanged; /** * Tests whether the provided object is an instance of {@link IDashboardKpiWidgetDrillRemoved}. * * @param obj - object to test * @beta */ export declare const isDashboardKpiWidgetDrillRemoved: (obj: unknown) => obj is IDashboardKpiWidgetDrillRemoved; /** * Tests whether the provided object is an instance of {@link IDashboardKpiWidgetDrillSet}. * * @param obj - object to test * @beta */ export declare const isDashboardKpiWidgetDrillSet: (obj: unknown) => obj is IDashboardKpiWidgetDrillSet; /** * Tests whether the provided object is an instance of {@link IDashboardKpiWidgetFilterSettingsChanged}. * * @param obj - object to test * @beta */ export declare const isDashboardKpiWidgetFilterSettingsChanged: (obj: unknown) => obj is IDashboardKpiWidgetFilterSettingsChanged; /** * Tests whether the provided object is an instance of {@link IDashboardKpiWidgetHeaderChanged}. * * @param obj - object to test * @beta */ export declare const isDashboardKpiWidgetHeaderChanged: (obj: unknown) => obj is IDashboardKpiWidgetHeaderChanged; /** * Tests whether the provided object is an instance of {@link IDashboardKpiWidgetMeasureChanged}. * * @param obj - object to test * @beta */ export declare const isDashboardKpiWidgetMeasureChanged: (obj: unknown) => obj is IDashboardKpiWidgetMeasureChanged; /** * Tests whether the provided object is an instance of {@link IDashboardLayoutChanged}. * * @param obj - object to test * @beta */ export declare const isDashboardLayoutChanged: (obj: unknown) => obj is IDashboardLayoutChanged; /** * @internal */ export declare function isDashboardLayoutDraggableItem(item: any): item is DashboardLayoutDraggableItem; /** * @internal */ export declare function isDashboardLayoutDraggableListItem(item: any): item is DashboardLayoutDraggableListItem; /** * Tests whether the provided object is an instance of {@link IDashboardLayoutSectionAdded}. * * @param obj - object to test * @beta */ export declare const isDashboardLayoutSectionAdded: (obj: unknown) => obj is IDashboardLayoutSectionAdded; /** * Tests whether the provided object is an instance of {@link IDashboardLayoutSectionHeaderChanged}. * * @param obj - object to test * @beta */ export declare const isDashboardLayoutSectionHeaderChanged: (obj: unknown) => obj is IDashboardLayoutSectionHeaderChanged; /** * Tests whether the provided object is an instance of {@link IDashboardLayoutSectionItemMoved}. * * @param obj - object to test * @beta */ export declare const isDashboardLayoutSectionItemMoved: (obj: unknown) => obj is IDashboardLayoutSectionItemMoved; /** * Tests whether the provided object is an instance of {@link IDashboardLayoutSectionItemMovedToNewSection}. * * @param obj - object to test * @beta */ export declare const isDashboardLayoutSectionItemMovedToNewSection: (obj: unknown) => obj is IDashboardLayoutSectionItemMovedToNewSection; /** * Tests whether the provided object is an instance of {@link IDashboardLayoutSectionItemRemoved}. * * @param obj - object to test * @beta */ export declare const isDashboardLayoutSectionItemRemoved: (obj: unknown) => obj is IDashboardLayoutSectionItemRemoved; /** * Tests whether the provided object is an instance of {@link IDashboardLayoutSectionItemReplaced}. * * @param obj - object to test * @beta */ export declare const isDashboardLayoutSectionItemReplaced: (obj: unknown) => obj is IDashboardLayoutSectionItemReplaced; /** * Tests whether the provided object is an instance of {@link IDashboardLayoutSectionItemsAdded}. * * @param obj - object to test * @beta */ export declare const isDashboardLayoutSectionItemsAdded: (obj: unknown) => obj is IDashboardLayoutSectionItemsAdded; /** * Tests whether the provided object is an instance of {@link IDashboardLayoutSectionMoved}. * * @param obj - object to test * @beta */ export declare const isDashboardLayoutSectionMoved: (obj: unknown) => obj is IDashboardLayoutSectionMoved; /** * Tests whether the provided object is an instance of {@link IDashboardLayoutSectionRemoved}. * * @param obj - object to test * @beta */ export declare const isDashboardLayoutSectionRemoved: (obj: unknown) => obj is IDashboardLayoutSectionRemoved; /** * Tests whether the provided object is an instance of {@link IDashboardMeasureValueFilterAdded}. * * @param obj - object to test * @alpha */ export declare const isDashboardMeasureValueFilterAdded: (obj: unknown) => obj is IDashboardMeasureValueFilterAdded; /** * Tests whether the provided object is an instance of {@link IDashboardMeasureValueFilterConditionChanged}. * * @param obj - object to test * @alpha */ export declare const isDashboardMeasureValueFilterConditionChanged: (obj: unknown) => obj is IDashboardMeasureValueFilterConditionChanged; /** * Tests whether the provided object is an instance of {@link IDashboardMeasureValueFilterConfigModeChanged}. * * @alpha */ export declare const isDashboardMeasureValueFilterConfigModeChanged: (obj: unknown) => obj is IDashboardMeasureValueFilterConfigModeChanged; /** * Tests whether the provided object is an instance of {@link IDashboardMeasureValueFilterDimensionalityChanged}. * * @param obj - object to test * @alpha */ export declare const isDashboardMeasureValueFilterDimensionalityChanged: (obj: unknown) => obj is IDashboardMeasureValueFilterDimensionalityChanged; /** * Tests whether the provided object is an instance of {@link IDashboardMeasureValueFilterMoved}. * * @alpha */ export declare const isDashboardMeasureValueFilterMoved: (obj: unknown) => obj is IDashboardMeasureValueFilterMoved; /** * Tests whether the provided object is an instance of {@link IDashboardMeasureValueFilterRemoved}. * * @alpha */ export declare const isDashboardMeasureValueFilterRemoved: (obj: unknown) => obj is IDashboardMeasureValueFilterRemoved; /** * Tests whether the provided object is an instance of {@link IDashboardMeasureValueFilterTitleChanged}. * * @alpha */ export declare const isDashboardMeasureValueFilterTitleChanged: (obj: unknown) => obj is IDashboardMeasureValueFilterTitleChanged; /** * Tests whether the provided object is an instance of {@link IDashboardParametersSelectionReset}. * * @param obj - object to test * * @alpha */ export declare const isDashboardParametersSelectionReset: (obj: unknown) => obj is IDashboardParametersSelectionReset; /** * Tests whether the provided object is an instance of {@link IDashboardQueryCompleted}. * * @param obj - object to test * @beta */ export declare const isDashboardQueryCompleted: (obj: unknown) => obj is IDashboardQueryCompleted; /** * Tests whether the provided object is an instance of {@link IDashboardCommandFailed}. * * @param obj - object to test * @beta */ export declare const isDashboardQueryFailed: (obj: unknown) => obj is IDashboardQueryFailed; /** * Tests whether the provided object is an instance of {@link IDashboardQueryRejected}. * * @param obj - object to test * @beta */ export declare const isDashboardQueryRejected: (obj: unknown) => obj is IDashboardQueryRejected; /** * Tests whether the provided object is an instance of {@link IDashboardQueryStarted}. * * @param obj - object to test * @beta */ export declare const isDashboardQueryStarted: (obj: unknown) => obj is IDashboardQueryStarted; /** * Tests whether the provided object is an instance of {@link IDashboardRenamed}. * * @param obj - object to test * @beta */ export declare const isDashboardRenamed: (obj: unknown) => obj is IDashboardRenamed; /** * Tests whether the provided object is an instance of {@link IDashboardRenderModeChanged}. * * @param obj - object to test * @beta */ export declare const isDashboardRenderModeChanged: (obj: unknown) => obj is IDashboardRenderModeChanged; /** * Tests whether the provided object is an instance of {@link DashboardRenderRequested}. * * @param obj - object to test * @public */ export declare const isDashboardRenderRequested: (obj: unknown) => obj is DashboardRenderRequested; /** * Tests whether the provided object is an instance of {@link DashboardRenderResolved}. * * @param obj - object to test * @public */ export declare const isDashboardRenderResolved: (obj: unknown) => obj is DashboardRenderResolved; /** * Tests whether the provided object is an instance of {@link IDashboardRichTextWidgetContentChanged}. * * @param obj - object to test * @beta */ export declare const isDashboardRichTextWidgetContentChanged: (obj: unknown) => obj is IDashboardRichTextWidgetContentChanged; /** * Tests whether the provided object is an instance of {@link IDashboardInsightWidgetFilterSettingsChanged}. * * @param obj - object to test * @beta */ export declare const isDashboardRichTextWidgetFilterSettingsChanged: (obj: unknown) => obj is IDashboardRichTextWidgetFilterSettingsChanged; /** * Tests whether the provided object is an instance of {@link DashboardSaved}. * * @param obj - object to test * @public */ export declare const isDashboardSaved: (obj: unknown) => obj is DashboardSaved; /** * Tests whether the provided object is an instance of {@link IDashboardScheduledEmailCreated}. * * @param obj - object to test * @beta */ export declare const isDashboardScheduledEmailCreated: (obj: unknown) => obj is IDashboardScheduledEmailCreated; /** * Tests whether the provided object is an instance of {@link IDashboardScheduledEmailSaved}. * * @param obj - object to test * @beta */ export declare const isDashboardScheduledEmailSaved: (obj: unknown) => obj is IDashboardScheduledEmailSaved; /** * Tests whether the provided object is an instance of {@link DashboardSharingChanged}. * * @param obj - object to test * @public */ export declare const isDashboardSharingChanged: (obj: unknown) => obj is DashboardSharingChanged; /** * Type guard that checks if an event is a DashboardTabCreated event. * * @alpha */ export declare const isDashboardTabCreated: (event: any) => event is IDashboardTabCreated; /** * Type guard that checks if an event is a DashboardTabDeleted event. * * @param event - event to check * @returns true if the event is a DashboardTabDeleted event * * @alpha */ export declare const isDashboardTabDeleted: (event: any) => event is IDashboardTabDeleted; /** * Type guard for {@link IDashboardTabRenamed}. * @alpha */ export declare const isDashboardTabRenamed: (event: any) => event is IDashboardTabRenamed; /** * Type guard for {@link IDashboardTabRenamingCanceled}. * @alpha */ export declare const isDashboardTabRenamingCanceled: (event: any) => event is IDashboardTabRenamingCanceled; /** * Type guard for {@link IDashboardTabRenamingStarted}. * @alpha */ export declare const isDashboardTabRenamingStarted: (event: any) => event is IDashboardTabRenamingStarted; /** * Type guard that checks if an event is a DashboardTabSwitched event. * * @param event - event to check * @returns true if the event is a DashboardTabSwitched event * * @alpha */ export declare const isDashboardTabSwitched: (event: any) => event is IDashboardTabSwitched; /** * Tests whether the provided object is an instance of {@link IDashboardUserInteractionTriggered}. * * @param obj - object to test * @beta */ export declare const isDashboardUserInteractionTriggered: (obj: unknown) => obj is IDashboardUserInteractionTriggered; /** * Tests whether the provided object is an instance of {@link IDashboardVisualizationSwitcherWidgetVisualizationAdded}. * * @param obj - object to test * @beta */ export declare const isDashboardVisualizationSwitcherWidgetVisualizationAdded: (obj: unknown) => obj is IDashboardVisualizationSwitcherWidgetVisualizationAdded; /** * Tests whether the provided object is an instance of {@link IDashboardVisualizationSwitcherWidgetVisualizationsUpdated}. * * @param obj - object to test * @beta */ export declare const isDashboardVisualizationSwitcherWidgetVisualizationsUpdated: (obj: unknown) => obj is IDashboardVisualizationSwitcherWidgetVisualizationsUpdated; /** * Tests whether the provided object is an instance of {@link IDashboardWasReset}. * * @param obj - object to test * @beta */ export declare const isDashboardWasReset: (obj: unknown) => obj is IDashboardWasReset; /** * Tests whether the provided object is an instance of {@link IDashboardWidgetExecutionFailed}. * * @param obj - object to test * @beta */ export declare const isDashboardWidgetExecutionFailed: (obj: unknown) => obj is IDashboardWidgetExecutionFailed; /** * Tests whether the provided object is an instance of {@link IDashboardWidgetExecutionStarted}. * * @param obj - object to test * @beta */ export declare const isDashboardWidgetExecutionStarted: (obj: unknown) => obj is IDashboardWidgetExecutionStarted; /** * Tests whether the provided object is an instance of {@link IDashboardWidgetExecutionSucceeded}. * * @param obj - object to test * @beta */ export declare const isDashboardWidgetExecutionSucceeded: (obj: unknown) => obj is IDashboardWidgetExecutionSucceeded; /** * @internal */ export declare function isDateFilterDraggableItem(item: DraggableContentItem): item is DateFilterDraggableItem; /** * Tests whether the provided object is an instance of {@link DateFilterValidationFailed}. * * @param obj - object to test * @beta */ export declare const isDateFilterValidationFailed: (obj: unknown) => obj is DateFilterValidationFailed; /** * Tests whether the provided object is an instance of {@link IDeleteAttributeHierarchyRequested}. * * @param obj - object to test * @internal */ export declare const isDeleteAttributeHierarchyRequested: (obj: unknown) => obj is IDeleteAttributeHierarchyRequested; /** * @internal */ export declare function isDraggableInternalItemType(type: string): type is DraggableInternalItemType; /** * Type-guard testing whether the provided object is an instance of {@link IDrillDownDefinition}. * @beta */ export declare function isDrillDownDefinition(obj: unknown): obj is IDrillDownDefinition; /** * Tests whether the provided object is an instance of {@link IDrillTargetsAdded}. * * @param obj - object to test * @alpha */ export declare const isDrillTargetsAdded: (obj: unknown) => obj is IDrillTargetsAdded; /** * @alpha */ export declare interface ISectionSlidesTransformerFunction { /** * Default transformer for the section. This is used as default transformation method for the section in * case that no plugin override it. Can be used to provide default transformation for the section in custom * plugin. * * @param section - Section to transform */ defaultSection: (section: IDashboardLayoutSection) => IDashboardLayoutSection[] | undefined; /** * Default transformer for the items. This is used as default transformation method for the items in * section in case that no plugin override it. Can be used to provide default transformation for the items in * custom plugin. * * @param section - Section to transform */ defaultItems: (section: IDashboardLayoutSection) => IDashboardLayoutSection[] | undefined; /** * This transformer ís used to extract break up slide from current section. Break up slide is created * from section title and description. This transformer only create slide when section has title or description. * * @param section - Section to transform */ breakUpSlide: (section: IDashboardLayoutSection) => IDashboardLayoutSection[] | undefined; /** * This transformer is used to extract widget slide from current section and provided item. Widget slide is created from * provided item. Widget slide always contains only one item that mean there will be one item on created slide. * * @param item - Layout item (widget, kpi, ...) to transform */ widgetSlide: (item: IDashboardLayoutItem) => IDashboardLayoutSection[] | undefined; /** * This transformer is used to create multiple slides from switcher widget. Each slide contains one visualization * that is part of the switcher. * * @param item - Layout item specifically visualization switcher to transform */ switcherSlide: (item: IDashboardLayoutItem) => IDashboardLayoutSection[] | undefined; /** * This is more complex transformer that is used to transform container item in the layout to a slide. Container item is * transformed as a structured slide, but if it contains a visualization switcher, it is transformed to a flat list of visualizations * that are part of container item. * * @param item - Layout item specifically container to transform * @param transform - function to transform each section in the layout */ containerSlide: (item: IDashboardLayoutItem, transform: (section: IDashboardLayoutSection) => IDashboardLayoutSection[] | undefined) => IDashboardLayoutSection[] | undefined; /** * This is more complex transformer that is used to transform container item in the layout to a slide. Container item is * transformed as a structured slide, but if it contains a visualization switcher, switcher is spread into multiple slides * where each slide contains one visualization from each switcher. * * @remarks * If there are 2 switchers in the container, one with 3 visualizations and the other with 2 visualizations, then * this transformer will create 3 slides. First slide will contain first visualizations from both switchers, second slide * will contain second visualizations from both switchers and last slide will contain third visualization from the first * switcher and empty item from the second switcher. * * @param item - Layout item specifically container to transform * @param transform - function to transform each section in the layout */ containerSwitcherSlide: (item: IDashboardLayoutItem, transform: (section: IDashboardLayoutSection) => IDashboardLayoutSection[] | undefined) => IDashboardLayoutSection[] | undefined; /** * This is helper function that is used to iterate all items in the section. On every item * it calls provided transform function. This function is used to transform all items in the section. * * @param section - Section to transform * @param transform - function to transform each item in the layout */ itemsSlide: (section: IDashboardLayoutSection, transform: (item: IDashboardLayoutItem) => IDashboardLayoutSection[]) => IDashboardLayoutSection[] | undefined; /** * This function is used to determine if the section contains visualization switcher. * * @param section - Section to check */ containsVisualisationSwitcher: (section: IDashboardLayoutSection) => boolean; } /** * @beta */ export declare interface ISetAttributeFilterDependentDateFilters extends IDashboardCommand { readonly type: "GDC.DASH/CMD.FILTER_CONTEXT.ATTRIBUTE_FILTER.SET_DEPENDENT_DATE_FILTERS"; readonly payload: SetAttributeFilterDependentDateFiltersPayload; } /** * @internal */ export declare interface ISetAttributeFilterDependentDateFiltersPayload { readonly filterLocalId: string; readonly dependentDateFilters: ReadonlyArray; } /** * @beta */ export declare interface ISetAttributeFilterDisplayForm extends IDashboardCommand { readonly type: "GDC.DASH/CMD.FILTER_CONTEXT.ATTRIBUTE_FILTER.SET_DISPLAY_FORM"; readonly payload: ISetAttributeFilterDisplayFormPayload; } /** * @beta */ export declare interface ISetAttributeFilterDisplayFormPayload { filterLocalId: string; displayForm: ObjRef; isWorkingSelectionChange?: boolean; isResultOfMigration?: boolean; } /** * Command for changing of attribute filter limiting items. * @alpha */ export declare interface ISetAttributeFilterLimitingItems extends IDashboardCommand { readonly type: "GDC.DASH/CMD.ATTRIBUTE_FILTER_CONFIG.SET_LIMITING_ITEMS"; readonly payload: ISetAttributeFilterLimitingItemsPayload; } /** * Payload of the {@link ISetAttributeFilterLimitingItems} command. * @alpha */ export declare interface ISetAttributeFilterLimitingItemsPayload { /** * Local identifier of the filter to change mode. */ localIdentifier: string; /** * Limiting items applied on attribute filter elements. */ limitingItems: ObjRef[]; } /** * @beta */ export declare interface ISetAttributeFilterParents extends IDashboardCommand { readonly type: "GDC.DASH/CMD.FILTER_CONTEXT.ATTRIBUTE_FILTER.SET_PARENTS"; readonly payload: SetAttributeFilterParentsPayload; } /** * @internal */ export declare interface ISetAttributeFilterParentsPayload { readonly filterLocalId: string; readonly parentFilters: ReadonlyArray; } /** * @beta */ export declare interface ISetAttributeFilterSelectionMode extends IDashboardCommand { readonly type: "GDC.DASH/CMD.FILTER_CONTEXT.ATTRIBUTE_FILTER.SET_SELECTION_MODE"; readonly payload: ISetAttributeFilterSelectionModePayload; } /** * @beta */ export declare interface ISetAttributeFilterSelectionModePayload { filterLocalId: string; selectionMode: DashboardAttributeFilterSelectionMode; } /** * Command for changing attribute filter title. * @beta */ export declare interface ISetAttributeFilterTitle extends IDashboardCommand { readonly type: "GDC.DASH/CMD.FILTER_CONTEXT.ATTRIBUTE_FILTER.SET_TITLE"; readonly payload: ISetAttributeFilterTitlePayload; } /** * Payload of the {@link ISetAttributeFilterTitle} command. * @beta */ export declare interface ISetAttributeFilterTitlePayload { /** * Local identifier of the filter to rename. */ filterLocalId: string; /** * Title of the filter. */ title?: string; } /** * Command for changing attribute filter mode. * @alpha */ export declare interface ISetDashboardAttributeFilterConfigDisplayAsLabel extends IDashboardCommand { readonly type: "GDC.DASH/CMD.ATTRIBUTE_FILTER_CONFIG.SET_DISPLAY_AS_LABEL"; readonly payload: ISetDashboardAttributeFilterConfigDisplayAsLabelPayload; } /** * Payload of the {@link ISetDashboardAttributeFilterConfigDisplayAsLabel} command. * @alpha */ export declare interface ISetDashboardAttributeFilterConfigDisplayAsLabelPayload { /** * Local identifier of the filter to change display as label (= display form). */ localIdentifier: string; /** * Display as label of the attribute filter. Used to present filter in UI */ displayAsLabel: ObjRef | undefined; /** * Optional tab local identifier to target a specific tab. * If not provided, the active tab will be used. * * @internal */ tabLocalIdentifier?: string; } /** * Command for changing attribute filter mode. * @alpha */ export declare interface ISetDashboardAttributeFilterConfigMode extends IDashboardCommand { readonly type: "GDC.DASH/CMD.ATTRIBUTE_FILTER_CONFIG.SET_MODE"; readonly payload: ISetDashboardAttributeFilterConfigModePayload; } /** * Payload of the {@link ISetDashboardAttributeFilterConfigMode} command. * @alpha */ export declare interface ISetDashboardAttributeFilterConfigModePayload { /** * Local identifier of the filter to change mode. */ localIdentifier: string; /** * Mode of the attribute filter. */ mode?: DashboardAttributeFilterConfigMode; } /** * Command for changing attribute filter available mode. * @alpha */ export declare interface ISetDashboardAttributeFilterSelectionType extends IDashboardCommand { readonly type: "GDC.DASH/CMD.ATTRIBUTE_FILTER_CONFIG.SET_AVAILABLE_MODE"; readonly payload: ISetDashboardAttributeFilterSelectionTypePayload; } /** * Payload of the {@link ISetDashboardAttributeFilterSelectionType} command. * @alpha */ export declare interface ISetDashboardAttributeFilterSelectionTypePayload { /** * Local identifier of the filter to change available mode. */ localIdentifier: string; /** * Available mode of the attribute filter — controls which presentation modes * (list, text, or both) are available to the user in Dashboard View mode. */ selectionType?: DashboardAttributeFilterSelectionType; } /** * A command that set the mode of a date filter configuration in a dashboard. * * @alpha */ export declare interface ISetDashboardDateFilterConfigMode extends IDashboardCommand { readonly type: "GDC.DASH/CMD.DATE_FILTER_CONFIG.SET_MODE"; readonly payload: ISetDashboardDateFilterConfigModePayload; } /** * Payload of the {@link ISetDashboardDateFilterConfigMode} command. * @alpha */ export declare interface ISetDashboardDateFilterConfigModePayload { mode: DashboardDateFilterConfigMode; } /** * Command for changing date filter mode. * @alpha */ export declare interface ISetDashboardDateFilterWithDimensionConfigMode extends IDashboardCommand { readonly type: "GDC.DASH/CMD.DATE_FILTER_WITH_DIMENSION_CONFIG.SET_MODE"; readonly payload: ISetDashboardDateFilterWithDimensionConfigModePayload; } /** * Payload of the {@link ISetDashboardDateFilterConfigMode} command. * @alpha */ export declare interface ISetDashboardDateFilterWithDimensionConfigModePayload { /** * Date data set ref of the filter to change mode. */ dataSet: ObjRef; /** * Mode of the date filter. */ mode?: DashboardDateFilterConfigMode; } /** * Command for changing measure value filter mode. * @alpha */ export declare interface ISetDashboardMeasureValueFilterConfigMode extends IDashboardCommand { readonly type: "GDC.DASH/CMD.MEASURE_VALUE_FILTER_CONFIG.SET_MODE"; readonly payload: ISetDashboardMeasureValueFilterConfigModePayload; } /** * Payload of the {@link ISetDashboardMeasureValueFilterConfigMode} command. * @alpha */ export declare interface ISetDashboardMeasureValueFilterConfigModePayload { /** * Local identifier of the measure value filter to change mode. */ localIdentifier: string; /** * Mode of the measure value filter. */ mode?: DashboardAttributeFilterConfigMode; } /** * Command for changing date filter title. * @beta */ export declare interface ISetDateFilterConfigTitle extends IDashboardCommand { readonly type: "GDC.DASH/CMD.DATE_FILTER_CONFIG.SET_TITLE"; readonly payload: ISetDateFilterConfigTitlePayload; } /** * Payload of the {@link ISetDateFilterConfigTitle} command. * @beta */ export declare interface ISetDateFilterConfigTitlePayload { /** * Date data set ref of the filter to rename. * If not provided title is set to common date filter. */ dataSet?: ObjRef; /** * Title of the filter. */ title?: string; } /** * @beta */ export declare interface ISetDrillForKpiWidget extends IDashboardCommand { readonly type: "GDC.DASH/CMD.KPI_WIDGET.SET_DRILL"; readonly payload: ISetDrillForKpiWidgetPayload; } /** * Payload of the {@link ISetDrillForKpiWidget} command. * @beta */ export declare interface ISetDrillForKpiWidgetPayload { /** * Reference to KPI Widget to modify. */ readonly ref: ObjRef; readonly legacyDashboardRef: ObjRef; readonly legacyDashboardTabIdentifier: string; } /** * Command for setting a saved filter view as a default one or removing the default status from it. * * @remarks * See {@link setFilterViewAsDefault} for a factory function that will help you create this command. * * @alpha */ export declare interface ISetFilterViewAsDefault extends IDashboardCommand { readonly type: "GDC.DASH/CMD.FILTER_CONTEXT.FILTER_VIEW.CHANGE_DEFAULT_STATUS"; readonly payload: ISetFilterViewAsDefaultPayload; } /** * Payload of the {@link ISetFilterViewAsDefault} command. * @alpha */ export declare interface ISetFilterViewAsDefaultPayload { readonly ref: ObjRef; readonly isDefault: boolean; } /** * @internal */ export declare interface ISetMeasureValueFilterConfigsPayload { measureValueFilterConfigs?: IDashboardMeasureValueFilterConfig[]; } /** * Command for changing the dashboard-level dimensionality of an existing measure value filter. * * @alpha */ export declare interface ISetMeasureValueFilterDimensionality extends IDashboardCommand { readonly type: "GDC.DASH/CMD.FILTER_CONTEXT.MEASURE_VALUE_FILTER.SET_DIMENSIONALITY"; readonly payload: ISetMeasureValueFilterDimensionalityPayload; } /** * Payload of the {@link ISetMeasureValueFilterDimensionality} command. * * @alpha */ export declare interface ISetMeasureValueFilterDimensionalityPayload { /** * Local identifier of the measure value filter to update. */ readonly localIdentifier: string; /** * Fixed dashboard-level dimensionality to apply. When empty or undefined, the filter * falls back to widget-level granularity inheritance. */ readonly dimensionality?: ObjRef[]; } /** * Command for changing measure value filter title. * * @alpha */ export declare interface ISetMeasureValueFilterTitle extends IDashboardCommand { readonly type: "GDC.DASH/CMD.FILTER_CONTEXT.MEASURE_VALUE_FILTER.SET_TITLE"; readonly payload: ISetMeasureValueFilterTitlePayload; } /** * Payload of the {@link ISetMeasureValueFilterTitle} command. * * @alpha */ export declare interface ISetMeasureValueFilterTitlePayload { /** * Local identifier of the measure value filter to update. */ filterLocalId: string; /** * Custom title to set. Pass undefined to reset to the default metric title. */ title?: string; } /** * @alpha */ export declare interface ISetParameterRuntimeValuePayload { ref: ObjRef; value: ParameterValue | undefined; } /** * @alpha */ export declare interface ISetParameterRuntimeValuesPayload { values: ISetParameterRuntimeValuePayload[]; /** * Target tab. When omitted, the active tab is used. */ tabLocalIdentifier?: string; } /** * @internal */ export declare interface ISetScreenSize extends IDashboardCommand { readonly type: "GDC.DASH/CMD.FLUID_LAYOUT.SET_SCREEN_SIZE"; readonly payload: ISetScreenSizePayload; } /** * Payload of the {@link ISetScreenSize} command. * @internal */ export declare interface ISetScreenSizePayload { screenSize: ScreenSize; } /** * @beta */ export declare interface ISetShowWidgetAsTable extends IDashboardCommand { readonly type: "GDC.DASH/CMD.SHOW_WIDGET_AS_TABLE.SET"; readonly payload: ISetShowWidgetAsTablePayload; } /** * @beta */ export declare interface ISetShowWidgetAsTablePayload { ref: ObjRef; showAsTable: boolean; } /** * @beta */ export declare interface ISettingButtonProps { isVisible: boolean; isEnabled: boolean; isSaving: boolean; buttonTitle: MessageDescriptor; buttonValue: MessageDescriptor; onSettingClick: () => void; } /** * Type-guard testing whether the provided object is an instance of {@link ExtendedDashboardLayoutWidget}. * @public */ export declare function isExtendedDashboardLayoutWidget(obj: unknown): obj is ExtendedDashboardLayoutWidget; /** * @beta */ export declare interface IShareButtonProps { isVisible: boolean; onShareButtonClick: () => void; } /** * @alpha */ export declare interface IShareDialogProps { /** * Analytical backend from which the dashboard obtains data to render. */ backend: IAnalyticalBackend; /** * Identifier of analytical workspace, from which the dashboard obtains data to render. */ workspace: string; /** * Is share dialog visible? */ isVisible?: boolean; /** * Object to share */ sharedObject: ISharedObject; /** * Current user */ currentUser: IUser; /** * Is locking of the dashboard supported by the currently logged user and backend? */ isLockingSupported: boolean; /** * Is currently logger user a workspace manager? */ isCurrentUserWorkspaceManager: boolean; /** * Dashboard permissions for current user. */ currentUserPermissions: CurrentUserPermissions; /** * Dashboard filters */ dashboardFilters: FilterContextItem[]; /** * Dashboard parameters */ dashboardParameters?: IDashboardParameter[]; /** * Is share grant hidden? */ isShareGrantHidden: boolean; /** * Apply share grant on select, without confirming? */ applyShareGrantOnSelect: boolean; /** * Show dashboard share link? */ showDashboardShareLink: boolean; /** * Is grantee share loading? */ isGranteeShareLoading: boolean; /** * Callback to be called when user copies share link */ onShareLinkCopy: (shareLink: string) => void; /** * Callback to be called when user apply share dialog */ onApply: (payload: ISharingApplyPayload, closeOnApply?: boolean) => void; /** * Callback to be called, when error occurs. */ onError?: (error: GoodDataSdkError) => void; /** * Callback to be called when user closes the share dialog. */ onCancel: () => void; /** * Callback to be called on specific share dialog interactions. */ onInteraction?: (data: IShareDialogInteractionData) => void; } /** * @alpha */ export declare interface IShareStatusProps { shareStatus: ShareStatus; isUnderStrictControl: boolean; } /** * @alpha */ export declare interface ISharingApplyPayload extends ISharingApplyPayload_2 { } /** * All sharing properties describing sharing changes * * @public */ export declare interface ISharingProperties { /** * Dashboard share status * * @remarks * private - dashboard accessible only by its creator * shared - dashboard shared with closed set of users/groups * public - accessible by everyone in the workspace */ shareStatus: ShareStatus; /** * For backends NOT forcing strict access this prop reflects its current setting of strict access * * @remarks * If set to true then object is not accessible via its URI/ref for people without access rights. * Otherwise object is accessible by its URI/ref, eg. when drilling to it. */ isUnderStrictControl: boolean; /** * When set to true, the dashboard is locked and no one other than the administrator can edit it. */ isLocked: boolean; /** * Access grantees to grant access to the dashboard to. */ granteesToAdd: IAccessGrantee[]; /** * Access grantees whose access to the dashboard to revoke. */ granteesToDelete: IAccessGrantee[]; } /** * @alpha */ export declare interface IShowAsTableButtonProps { widget: IInsightWidget; isWidgetAsTable: boolean; onClick: () => void; } /** * This event is emitted after a widget's show as table state has been set. * * @beta */ export declare interface IShowWidgetAsTableSet extends IDashboardEvent { readonly type: "GDC.DASH/EVT.SHOW_WIDGET_AS_TABLE.SET"; readonly payload: IShowWidgetAsTableSetPayload; } /** * Payload of the {@link IShowWidgetAsTableSet} event. * @beta */ export declare interface IShowWidgetAsTableSetPayload { /** * Reference to the widget */ ref: ObjRef; /** * Whether the widget is shown as table */ showAsTable: boolean; } /** * @beta */ export declare interface IShowWidgetAsTableState { widgetRefs: ObjRef[]; } /** * @alpha */ export declare interface ISidebarProps { /** * Contains reference to default implementation of the sidebar. If you are implementing a custom * sidebar that decorates default side bar, then use this component to render the default sidebar. */ DefaultSidebar: ComponentType; /** * Specify className for configurationPanel. */ configurationPanelClassName?: string; /** * Component, that adds dnd functionality to a create panel item. * Do not set or override this property, it's injected by the Dashboard. * * @internal */ WrapCreatePanelItemWithDragComponent?: IWrapCreatePanelItemWithDragComponent; /** * Component, that adds dnd functionality to a insight list item. * Do not set or override this property, it's injected by the Dashboard. * * @internal */ WrapInsightListItemWithDragComponent?: IWrapInsightListItemWithDragComponent; /** * Attribute filter component set. * Do not set or override this property, it's injected by the Dashboard. * * @internal */ AttributeFilterComponentSet?: AttributeFilterComponentSet; /** * Insight widget component set. * Do not set or override this property, it's injected by the Dashboard. * * @internal */ InsightWidgetComponentSet?: InsightWidgetComponentSet; /** * Rich text widget component set. * Do not set or override this property, it's injected by the Dashboard. * * @internal */ RichTextWidgetComponentSet?: RichTextWidgetComponentSet; /** * Visualization switcher widget component set. * Do not set or override this property, it's injected by the Dashboard. * * @internal */ VisualizationSwitcherWidgetComponentSet?: VisualizationSwitcherWidgetComponentSet; /** * Layout (nested) widget component set. * Do not set or override this property, it's injected by the Dashboard. * * @internal */ DashboardLayoutWidgetComponentSet?: DashboardLayoutWidgetComponentSet; /** * Component, that renders delete drop zone. * Do not set or override this property, it's injected by the Dashboard. * * @internal */ DeleteDropZoneComponent?: ComponentType; } /** * Tests whether an object is a {@link IPlaceholderWidget} and is initial. * * @param obj - object to test * @internal */ export declare function isInitialPlaceholderWidget(obj: unknown): obj is IPlaceholderWidget; /** * @internal */ export declare function isInsightDraggableItem(item: any): item is InsightDraggableItem; /** * @internal */ export declare function isInsightDraggableListItem(item: any): item is InsightDraggableListItem; /** * @internal */ export declare function isInsightPlaceholderDraggableItem(item: any): item is InsightPlaceholderDraggableItem; /** * Tests whether an object is a {@link IInsightPlaceholderWidget}. * * @param obj - object to test * @alpha */ export declare function isInsightPlaceholderWidget(obj: unknown): obj is IInsightPlaceholderWidget; /** * @internal */ export declare function isKpiDraggableItem(item: any): item is KpiDraggableItem; /** * @internal */ export declare function isKpiPlaceholderDraggableItem(item: any): item is KpiPlaceholderDraggableItem; /** * Tests whether an object is a {@link IKpiPlaceholderWidget}. * * @param obj - object to test * @alpha */ export declare function isKpiPlaceholderWidget(obj: unknown): obj is IKpiPlaceholderWidget; /** * Tests whenever the provided object is layout coordinates object. * @alpha */ export declare function isLayoutCoordinates(obj: unknown): obj is ILayoutCoordinates; /** * Tests whether the provided object is an instance of {@link ILayoutDirectionChanged}. * * @param obj - object to test * @beta */ export declare const isLayoutDirectionChanged: (obj: unknown) => obj is ILayoutDirectionChanged; /** * Tests whenever the provided object is section path. * @alpha */ export declare function isLayoutItemPath(obj: unknown): obj is ILayoutItemPath; /** * Tests whether the provided object is an instance of {@link ILayoutSectionHeadersToggled}. * * @param obj - object to test * @beta */ export declare const isLayoutSectionHeadersToggled: (obj: unknown) => obj is ILayoutSectionHeadersToggled; /** * Tests whenever the provided object is section path. * @alpha */ export declare function isLayoutSectionPath(obj: unknown): obj is ILayoutSectionPath; /** * Tests whether an object is a {@link IPlaceholderWidget} and is loading. * * @param obj - object to test * @internal */ export declare function isLoadingPlaceholderWidget(obj: unknown): obj is IPlaceholderWidget; /** * @internal */ export declare function isMeasureValueFilterDraggableItem(item: DraggableContentItem): item is MeasureValueFilterDraggableItem; /** * @internal */ export declare function isParameterDraggableItem(item: DraggableContentItem): item is ParameterDraggableItem; /** * Tests whether an object is a {@link IPlaceholderWidget}. * * @param obj - object to test * @alpha */ export declare function isPlaceholderWidget(obj: unknown): obj is IPlaceholderWidget; /** * @internal */ export declare function isRichTextDraggableItem(item: any): item is InsightDraggableItem; /** * @internal */ export declare function isRichTextDraggableListItem(item: any): item is RichTextDraggableListItem; /** * Tests whether the provided object is an instance of {@link IScreenSizeChanged}. * * @param obj - object to test * @beta */ export declare const isScreenSizeChanged: (obj: unknown) => obj is IScreenSizeChanged; /** * Tests whether the provided object is an instance of {@link IShowWidgetAsTableSet}. * * @param obj - object to test * @beta */ export declare const isShowWidgetAsTableSet: (obj: unknown) => obj is IShowWidgetAsTableSet; /** * Command to start renaming mode for a tab. * @alpha */ export declare interface IStartRenamingDashboardTab extends IDashboardCommand { readonly type: "GDC.DASH/CMD.TAB.RENAME_MODE.START"; readonly payload: IStartRenamingDashboardTabPayload; } /** * Payload of the {@link IStartRenamingDashboardTab} command. * @alpha */ export declare interface IStartRenamingDashboardTabPayload { /** * Optional identifier of the tab to start renaming. If not provided, the active tab is used. */ readonly tabId?: string; /** * Optional flag to indicate whether the tab should be auto-selected before starting renaming. * Defaults to true. */ readonly shouldSelectTab?: boolean; } /** * Tests whether the provided object is/has a temporary identity. A temporary identity is used for those * objects which are not yet persisted however need to be reference-able from the dashboard itself. * * @param obj - object to test * @internal */ export declare function isTemporaryIdentity(obj: IDashboardObjectIdentity): boolean; /** * @internal */ export declare function isVisualizationSwitcherDraggableItem(item: any): item is VisualizationSwitcherDraggableItem; /** * @internal */ export declare function isVisualizationSwitcherDraggableListItem(item: any): item is VisualizationSwitcherDraggableListItem; /** * Command to switch to a different dashboard tab. * * @remarks * This command will: * - Save the current layout and filter context to the currently active tab * - Switch to the specified tab * - Load the new tab's layout and filter context into the main dashboard state * * @alpha */ export declare interface ISwitchDashboardTab extends IDashboardCommand { readonly type: "GDC.DASH/CMD.TAB.SWITCH"; readonly payload: ISwitchDashboardTabPayload; } /** * Payload of the {@link ISwitchDashboardTab} command. * @alpha */ export declare interface ISwitchDashboardTabPayload { /** * Identifier of the tab to switch to. */ readonly tabId: string; /** * What triggered this tab switch. * * @remarks * Omit for a regular user-initiated tab switch. See {@link DashboardTabSwitchSource} for the * recognized values and their effect. */ readonly source?: DashboardTabSwitchSource; } /** * @alpha */ export declare interface ITabsState { /** * Array of tabs with their configurations. */ tabs?: ITabState[]; /** * Local identifier of the currently active tab. */ activeTabLocalIdentifier?: string; /** * Attribute metadata objects with referenced objects for all attribute filters across all tabs. * @beta */ attributesWithReferences?: IAttributeWithReferences[]; } /** * @alpha */ export declare interface ITabState { title?: string; localIdentifier: string; dateFilterConfig?: IDateFilterConfigState; dateFilterConfigs?: IDateFilterConfigsState; attributeFilterConfigs?: IAttributeFilterConfigsState; measureValueFilterConfigs?: IMeasureValueFilterConfigsState; filterContext?: FilterContextState; filterGroupsConfig?: IDashboardFilterGroupsConfig; layout?: ILayoutState; parameters?: IParametersState; /** * UI-only flag indicating the tab is currently being renamed. * @internal */ isRenaming?: boolean; } /** * Set of functions you can use to customize some aspects of the Title. * * @public */ export declare interface ITitleCustomizer { /** * Register a provider for React components to render Title. * * @remarks * A provider takes the Title as input and is expected to return * a React component that should be used to render that Title. * * If the provider returns `undefined` then: * * - if there are other providers registered, they will be called to see if they can provide * a component to render the Title * - if there are no other providers registered, the default, built-in component will be used. * * You may register multiple providers. They will be evaluated in the order you register them. * * @param provider - provider to register * @returns self, for call chaining sakes */ withCustomProvider(provider: OptionalTitleComponentProvider): ITitleCustomizer; /** * Register a factory for Title decorator providers. * * @remarks * Decorators are a way to add customizations or embellishments on top * of an existing component. Decorators are more complex to write because they need to work with the component * they should decorate and add 'something' on top of that component. * * This is best illustrated on an example: * * @example * ``` * withCustomDecorator((next) => { * return (filter) => { * if (some_condition_to_prevent_decoration) { * return undefined; * } * * // Make sure you call this outside the component render function, * // otherwise a new instance of the decorated component is created on each re-render. * const Decorated = next(filter); * * function MyCustomDecorator(props) { * return ( *
*

My Custom Decoration

* *
* ) * } * * return MyCustomDecorator; * } * }) * ``` * * The above shows how to register a decorator that will use some condition to determine whether particular * attribute filter is eligible for decoration. * * Note: the factory function that you specify will be called immediately at the registration time. The * provider that it returns will be called at render time. * * @param providerFactory - factory */ withCustomDecorator(providerFactory: (next: TitleComponentProvider) => OptionalTitleComponentProvider): ITitleCustomizer; } /** * @alpha */ export declare interface ITitleProps { title: string; onTitleChanged?: (newTitle: string) => void; } /** * @internal */ export declare interface IToggleLayoutDirection extends IDashboardCommand { readonly type: "GDC.DASH/CMD.FLEXIBLE_LAYOUT.TOGGLE_LAYOUT_DIRECTION"; readonly payload: IToggleLayoutDirectionPayload; } /** * Payload of the {@link IToggleLayoutDirection} command. * @internal */ export declare interface IToggleLayoutDirectionPayload { layoutPath: ILayoutItemPath | undefined; direction: IDashboardLayoutContainerDirection; } /** * @internal */ export declare interface IToggleLayoutSectionHeaders extends IDashboardCommand { readonly type: "GDC.DASH/CMD.FLEXIBLE_LAYOUT.TOGGLE_LAYOUT_SECTION_HEADERS"; readonly payload: IToggleLayoutSectionHeadersPayload; } /** * Payload of the {@link IToggleLayoutSectionHeaders} command. * @internal */ export declare interface IToggleLayoutSectionHeadersPayload { layoutPath: ILayoutItemPath | undefined; enableSectionHeaders: boolean; } /** * @internal */ export declare interface IToolbarProps { children?: ReactNode; } /** * Set of functions you can use to customize some aspects of the TopBar. * * @public */ export declare interface ITopBarCustomizer { /** * Register a provider for React components to render top bar. * * @remarks * A provider takes the top bar as input and is expected to return * a React component that should be used to render that top bar. * * If the provider returns `undefined` then: * * - if there are other providers registered, they will be called to see if they can provide * a component to render the top bar * - if there are no other providers registered, the default, built-in component will be used. * * You may register multiple providers. They will be evaluated in the order you register them. * * @param provider - provider to register * @returns self, for call chaining sakes */ withCustomProvider(provider: OptionalTopBarComponentProvider): ITopBarCustomizer; /** * Register a factory for top bar decorator providers. * * @remarks * Decorators are a way to add customizations or embellishments on top * of an existing component. Decorators are more complex to write because they need to work with the component * they should decorate and add 'something' on top of that component. * * This is best illustrated on an example: * * @example * ``` * withCustomDecorator((next) => { * return (filter) => { * if (some_condition_to_prevent_decoration) { * return undefined; * } * * // Make sure you call this outside the component render function, * // otherwise a new instance of the decorated component is created on each re-render. * const Decorated = next(filter); * * function MyCustomDecorator(props) { * return ( *
*

My Custom Decoration

* *
* ) * } * * return MyCustomDecorator; * } * }) * ``` * * The above shows how to register a decorator that will use some condition to determine whether particular * attribute filter is eligible for decoration. * * Note: the factory function that you specify will be called immediately at the registration time. The * provider that it returns will be called at render time. * * @param providerFactory - factory */ withCustomDecorator(providerFactory: (next: TopBarComponentProvider) => OptionalTopBarComponentProvider): ITopBarCustomizer; } /** * @alpha */ export declare interface ITopBarProps { menuButtonProps: IMenuButtonProps; titleProps: ITitleProps; buttonBarProps: IButtonBarProps; shareStatusProps: IShareStatusProps; lockedStatusProps: ILockedStatusProps; DefaultTopBar: CustomTopBarComponent; } /** * Triggers an event. * * @beta */ export declare interface ITriggerEvent extends IDashboardCommand { readonly type: "GDC.DASH/CMD.EVENT.TRIGGER"; readonly payload: ITriggerEventPayload; } /** * Payload of the {@link ITriggerEvent} command. * @beta */ export declare interface ITriggerEventPayload { /** * Event body without the {@link DashboardContext} property. That will be filled when the command is processed. */ readonly eventBody: DashboardEventBody; } /** * @beta */ export declare interface IUiState { scheduleEmailManagementDialog: { open: boolean; context?: IScheduleEmailContext; }; scheduleEmailDialog: { open: boolean; defaultAttachmentRef: ObjRef | undefined; returnFocusTo?: string; context?: IScheduleEmailContext; }; alertsManagementDialog: { open: boolean; context?: IAlertDialogContext; }; alertsDialog: { open: boolean; returnFocusTo?: string; context?: IAlertDialogContext; }; automationsManagement: { invalidationId: number; }; saveAsDialog: { open: boolean; }; settingsDialog: { open: boolean; }; densityDialog: { open: boolean; }; density: DashboardDensity; shareDialog: { open: boolean; }; deleteDialog: { open: boolean; }; widgetDeleteDialog: { open: boolean; widgetRef: ObjRef | undefined; }; filterViews: { open: boolean; mode: FilterViewDialogMode; }; kpiDeleteDialog: { /** * Undefined means the dialog should be closed */ widgetCoordinates: ILayoutItemPath | undefined; }; cancelEditModeDialog: { open: boolean; }; filterBar: { expanded: boolean; }; kpiAlerts: { openedWidgetRef: ObjRef | undefined; highlightedWidgetRef: ObjRef | undefined; }; menuButton: { itemsVisibility: IMenuButtonItemsVisibility; }; selectedWidgetRef: ObjRef | undefined; configurationPanelOpened: boolean; widgetDateDatasetAutoSelect: boolean; insightListLastUpdateRequested: number; widgetsLoadingAdditionalData: ObjRef[]; filterAttributeSelectionOpen: boolean; selectedFilterIndex: number | undefined; activeSection: ILayoutSectionPath | undefined; ignoreExecutionTimestamp: boolean; filterValidationMessages: { incompatibleDefaultFiltersOverride: boolean; }; /** @alpha */ drillValidationMessages: { invalidDrillWidgetRefs: ObjRef[]; sanitizedDrillWidgetRefs: ObjRef[]; invalidCustomUrlDrillParameterWidgets: IInvalidCustomUrlDrillParameterInfo[]; }; /** @internal */ draggingWidgetSource: DraggableLayoutItem | undefined; draggingWidgetTarget: ILayoutItemPath | undefined; /** @internal */ draggingWidgetTriggeringDropZoneType: DropZoneType | undefined; widgetsOverlay: Record; } /** * Slice that can be undo-enabled needs to include the undo section which will contain the essential undo metadata. * * @alpha */ export declare interface IUndoEnhancedState { _undo: { undoPointer: number; undoStack: IUndoEntry[]; }; } /** * An entry on undo stack contains patches required * * @alpha */ export declare interface IUndoEntry { /** * Dashboard command that has initiated the state changes. */ cmd: T; /** * Patches to apply in order to undo the changes. */ undoPatches: Patch[]; /** * Patches to apply in order to redo the undone changes. */ redoPatches: Patch[]; } /** * @beta */ export declare interface IUndoLayoutChanges extends IDashboardCommand { readonly type: "GDC.DASH/CMD.FLUID_LAYOUT.UNDO"; readonly payload: IUndoLayoutChangesPayload; } /** * Payload of the {@link IUndoLayoutChanges} command. * @beta */ export declare interface IUndoLayoutChangesPayload { /** * Specify a function that will be used to select a command up to which the undo should be done. * * @remarks * If not provided then the default selector will be used and will undo the very last command. * * The undo point selector is essential if you are implementing complex user-facing features that are achieved * using multiple commands. For instance drag-and-drop. On drag start, an item is removed - that is one command, and * then user drops the item at the new location - that is another command. The commands are dispatched by your * code separately, yet if user is able to do undo drag-and-drop operation, you need to get layout to a point * before * * If you want to trigger a proper undo in this case, then you need to undo both commands. Building on the * example above, you can proceed as follows: * * - Your drag-and-drop feature should use correlationId convention to tie commands to user-facing feature. * - Upon interaction start, your feature computes a correlationId `prefix` = "dnd-" * - The first command to remove the dragged item from layout will have correlationId = `${prefix}-drag` * - The second command to add the dropped item to a new place on layout will have correlationId = `${prefix}-drop` * - When the user clicks 'Undo', you dispatch the UndoLayoutChanges with a greedy selector. This will check whether * the last command is a 'drop' in the dnd interaction. If so, look at previous command, check if it matches * the correlationId and if so undo up to and including that command. */ readonly undoPointSelector?: UndoPointSelector; } /** * Actions that can be undone need to contain extra information in order to perform the undo correctly. * * * @internal */ export declare interface IUndoPayload { /** * Undo-related information. If not specified, then no undo will be possible for the action */ undo: { /** * Command that has initiated the undoable reductions. Command processing establishes the boundary for undo * processing: undo needs to roll back everything that a command has done to the state. Single command may do * multiple modifications in succession and may create several entries in the undo stack. All of those need * to be undone. */ cmd: T; }; } /** * @internal */ export declare interface IUpdateAttributeFilterSelectionPayload { readonly filterLocalId: string; readonly elements: IAttributeElements; readonly negativeSelection: boolean; readonly isWorkingSelectionChange?: boolean; readonly enableImmediateAttributeFilterDisplayAsLabelMigration?: boolean; readonly isResultOfMigration?: boolean; readonly isSelectionInvalid?: boolean; /** * Optional tab local identifier to target a specific tab. * If not provided, the active tab will be used. */ readonly tabLocalIdentifier?: string; } /** * @beta */ export declare interface IUpdateVisualizationsFromVisualizationSwitcherWidgetContent extends IDashboardCommand { readonly type: "GDC.DASH/CMD.VISUALIZATION_SWITCHER_WIDGET.UPDATE_VISUALIZATIONS"; readonly payload: IUpdateVisualizationsFromVisualizationSwitcherWidgetContentPayload; } /** * Payload of the {@link IUpdateVisualizationsFromVisualizationSwitcherWidgetContent} command. * @beta */ export declare interface IUpdateVisualizationsFromVisualizationSwitcherWidgetContentPayload { /** * Visualization switcher widget reference whose content to change. */ readonly ref: ObjRef; /** * Visualization to update from switcher widget. */ readonly visualizations: IInsightWidget[]; } /** * @internal */ export declare interface IUpsertDateFilterAllTimePayload { readonly type: "allTime"; readonly dataSet?: ObjRef; readonly isWorkingSelectionChange?: boolean; readonly localIdentifier?: string; readonly emptyValueHandling?: EmptyValues; /** * Optional tab local identifier to target a specific tab. * If not provided, the active tab will be used. */ readonly tabLocalIdentifier?: string; } /** * @internal */ export declare interface IUpsertDateFilterNonAllTimePayload { readonly type: DateFilterType; readonly granularity: DateFilterGranularity; readonly dataSet?: ObjRef; readonly from?: DateString | number; readonly to?: DateString | number; readonly isWorkingSelectionChange?: boolean; readonly localIdentifier?: string; readonly boundedFilter?: IUpperBoundedFilter | ILowerBoundedFilter; readonly emptyValueHandling?: EmptyValues; /** * Optional tab local identifier to target a specific tab. * If not provided, the active tab will be used. */ readonly tabLocalIdentifier?: string; } /** * @internal */ export declare type IUpsertDateFilterPayload = IUpsertDateFilterAllTimePayload | IUpsertDateFilterNonAllTimePayload; /** * Triggers an event. * * @beta */ export declare interface IUpsertExecutionResult extends IDashboardCommand { readonly type: "GDC.DASH/CMD.EXECUTION_RESULT.UPSERT"; readonly payload: IExecutionResultEnvelope; } /** * @internal */ export declare interface IUseAttributeElements { elements: IAttributeElement[]; totalCount: number; } /** * Configuration options for the {@link useCustomWidgetExecutionDataView} hook. * * @public */ export declare interface IUseCustomWidgetExecutionDataViewConfig { /** * Custom widget in the context of which the execution should be run. This affects which filters will be used. */ widget: ICustomWidget; /** * Definition of the execution to execute (without filters). The filters will be filled automatically. * * @remarks * Note: When the execution is not provided, hook is locked in a "pending" state. */ execution?: Exclude; /** * Enable or disable real execution cancellation. * * This means that if the execution request is not yet finished and the execution changes, * the request will be cancelled and the new execution will be started. */ enableExecutionCancelling?: boolean; } /** * Configuration options for the {@link useCustomWidgetInsightDataView} hook. * * @public */ export declare interface IUseCustomWidgetInsightDataViewConfig { /** * Custom widget in the context of which the execution should be run. This affects which filters will be used. */ widget: ICustomWidget; /** * Insight to execute or a reference to it. * * @remarks * The filters will be automatically merged with the filters on the dashboard. * Note: When the insight is not provided, hook is locked in a "pending" state. */ insight?: IInsightDefinition | ObjRef; /** * Enable or disable real execution cancellation. * * This means that if the execution request is not yet finished and the execution changes, * the request will be cancelled and the new execution will be started. */ enableExecutionCancelling?: boolean; } /** * @internal */ export declare interface IUseDrillDownProps { onSuccess?: (event: IDashboardDrillDownResolved) => void; onError?: (event: IDashboardCommandFailed) => void; onBeforeRun?: (cmd: IDrillDown) => void; } /** * @internal */ export declare interface IUseDrillProps { onSuccess?: (event: IDashboardDrillResolved) => void; onError?: (event: IDashboardCommandFailed) => void; onBeforeRun?: (cmd: IDrill) => void; } /** * @internal */ export declare interface IUseDrillToAttributeUrlProps { onSuccess?: (event: IDashboardDrillToAttributeUrlResolved) => void; onError?: (event: IDashboardCommandFailed) => void; onBeforeRun?: (cmd: IDrillToAttributeUrl) => void; } /** * @internal */ export declare interface IUseDrillToCustomUrlProps { onSuccess?: (event: IDashboardDrillToCustomUrlResolved) => void; onError?: (event: IDashboardCommandFailed) => void; onBeforeRun?: (cmd: IDrillToCustomUrl) => void; } /** * @internal */ export declare interface IUseDrillToDashboardProps { onSuccess?: (event: IDashboardDrillToDashboardResolved) => void; onError?: (event: IDashboardCommandFailed) => void; onBeforeRun?: (cmd: IDrillToDashboard) => void; } /** * @internal */ export declare interface IUseDrillToInsightProps { onSuccess?: (event: IDashboardDrillToInsightResolved) => void; onError?: (event: IDashboardCommandFailed) => void; onBeforeRun?: (cmd: IDrillToInsight) => void; } /** * @internal */ export declare interface IUseDrillToLegacyDashboardProps { onSuccess?: (event: IDashboardDrillToLegacyDashboardResolved) => void; onError?: (event: IDashboardCommandFailed) => void; onBeforeRun?: (cmd: IDrillToLegacyDashboard) => void; } /** * @internal */ export declare interface IUseInsightMenuConfig { exportXLSXDisabled: boolean; exportCSVDisabled: boolean; exportCSVRawDisabled: boolean; isExporting: boolean; scheduleExportDisabled: boolean; scheduleExportDisabledReason?: SchedulingDisabledReason; scheduleExportManagementDisabled: boolean; exportPdfPresentationDisabled: boolean; exportPowerPointPresentationDisabled: boolean; exportPngImageDisabled: boolean; exportPdfTabularDisabled: boolean; onExportXLSX: () => void; onExportCSV: () => void; onExportRawCSV: () => void; onScheduleExport: () => void; onScheduleManagementExport: () => void; onAlertingManagementOpen: () => void; onExportPowerPointPresentation: () => void; onExportPdfPresentation: () => void; onExportPngImage: () => void; onExportPdfTabular: () => void; isExportRawVisible: boolean; isExportVisible: boolean; isExportPngImageVisible: boolean; isExportPdfTabularVisible: boolean; isScheduleExportVisible: boolean; isScheduleExportManagementVisible: boolean; isDataError: boolean; isAlertingVisible: boolean; isAlertManagementVisible: boolean; alertingDisabled: boolean; alertingDisabledReason?: AlertingDisabledReason; canCreateAutomation: boolean; disabledReason?: DisabledReason; } /** * Configuration for the `useInsightWidgetDataView` hook. * * @public */ export declare interface IUseInsightWidgetDataView { /** * Insight widget to get data view for. * * @remarks * Note: When the insight widget is not provided, hook is locked in a "pending" state. */ insightWidget?: IInsightWidget; } /** * @beta */ export declare interface IUserInteractionPayloadWithDataBase { interaction: TType; data: TData; } /** * @alpha */ export declare interface IUsersState { users?: IWorkspaceUser[]; error?: GoodDataSdkError; status: "pending" | "loading" | "success" | "error"; } /** * @internal */ export declare interface IUseWidgetSelectionResult { /** * Flag indicating the given item can be selected. */ isSelectable: boolean; /** * Flag indicating the given item is selected. */ isSelected: boolean; /** * Callback to call when an item is selected. Called with the relevant mouse event if originating from a click. */ onSelected: (e?: MouseEvent_2) => void; /** * Callback to call when you want to close the config panel. */ closeConfigPanel: () => void; /** * Callback to call to deselect widgets. Called with the relevant mouse event if originating from a click. */ deselectWidgets: (e?: MouseEvent_2) => void; /** * Flag indicating the given item has its config panel open. */ hasConfigPanelOpen: boolean; } /** * Set of functions you can use to customize some aspects of the VisualizationSwitcher. * * @public */ export declare interface IVisualizationSwitcherCustomizer { /** * Register a provider for React components to render VisualizationSwitcher. * * @remarks * A provider takes the VisualizationSwitcher as input and is expected to return * a React component that should be used to render that VisualizationSwitcher. * * If the provider returns `undefined` then: * * - if there are other providers registered, they will be called to see if they can provide * a component to render the VisualizationSwitcher * - if there are no other providers registered, the default, built-in component will be used. * * You may register multiple providers. They will be evaluated in the order you register them. * * @param provider - provider to register * @returns self, for call chaining sakes */ withCustomSwitcherProvider(provider: OptionalVisualizationSwitcherComponentProvider): IVisualizationSwitcherCustomizer; /** * Register a factory for RichText decorator providers. * * @remarks * Decorators are a way to add customizations or embellishments on top * of an existing component. Decorators are more complex to write because they need to work with the component * they should decorate and add 'something' on top of that component. * * This is best illustrated on an example: * * @example * ``` * withCustomDecorator((next) => { * return (filter) => { * if (some_condition_to_prevent_decoration) { * return undefined; * } * * // Make sure you call this outside the component render function, * // otherwise a new instance of the decorated component is created on each re-render. * const Decorated = next(filter); * * function MyCustomDecorator(props) { * return ( *
*

My Custom Decoration

* *
* ) * } * * return MyCustomDecorator; * } * }) * ``` * * The above shows how to register a decorator that will use some condition to determine whether particular * attribute filter is eligible for decoration. * * Note: the factory function that you specify will be called immediately at the registration time. The * provider that it returns will be called at render time. * * @param providerFactory - factory */ withCustomSwitcherDecorator(providerFactory: (next: VisualizationSwitcherComponentProvider) => OptionalVisualizationSwitcherComponentProvider): IVisualizationSwitcherCustomizer; /** * Register a provider for React components to render VisualizationSwitcherToolbar. * * @remarks * A provider takes the VisualizationSwitcherToolbar as input and is expected to return * a React component that should be used to render that VisualizationSwitcherToolbar. * * If the provider returns `undefined` then: * * - if there are other providers registered, they will be called to see if they can provide * a component to render the VisualizationSwitcherToolbar * - if there are no other providers registered, the default, built-in component will be used. * * You may register multiple providers. They will be evaluated in the order you register them. * * @param provider - provider to register * @returns self, for call chaining sakes */ withCustomToolbarProvider(provider: OptionalVisualizationSwitcherToolbarComponentProvider): IVisualizationSwitcherCustomizer; /** * Register a factory for RichText decorator providers. * * @remarks * Decorators are a way to add customizations or embellishments on top * of an existing component. Decorators are more complex to write because they need to work with the component * they should decorate and add 'something' on top of that component. * * This is best illustrated on an example: * * @example * ``` * withCustomDecorator((next) => { * return (filter) => { * if (some_condition_to_prevent_decoration) { * return undefined; * } * * // Make sure you call this outside the component render function, * // otherwise a new instance of the decorated component is created on each re-render. * const Decorated = next(filter); * * function MyCustomDecorator(props) { * return ( *
*

My Custom Decoration

* *
* ) * } * * return MyCustomDecorator; * } * }) * ``` * * The above shows how to register a decorator that will use some condition to determine whether particular * attribute filter is eligible for decoration. * * Note: the factory function that you specify will be called immediately at the registration time. The * provider that it returns will be called at render time. * * @param providerFactory - factory */ withCustomToolbarDecorator(providerFactory: (next: VisualizationSwitcherToolbarComponentProvider) => OptionalVisualizationSwitcherToolbarComponentProvider): IVisualizationSwitcherCustomizer; } /** * @internal */ export declare type IVisualizationSwitcherDraggingComponentProps = { itemType: "visualizationSwitcher"; item: VisualizationSwitcherDraggableItem; }; /** * @alpha */ export declare interface IVisualizationSwitcherToolbarProps { widget: IVisualizationSwitcherWidget; onWidgetDelete: () => void; onVisualizationsChanged: (visualizations: IInsightWidget[]) => void; onVisualizationAdded: (insightWidget: IInsightWidget, insight: IInsight, sizeInfo: IVisualizationSizeInfo) => void; onSelectedVisualizationChanged: (visualizationId: string) => void; onClose: () => void; } /** * @internal */ export declare interface IWidgetConfigPanelProps { widget: TWidget; } /** * @beta */ export declare interface IWidgetDescription { /** * Description to set. If not defined then widget will have no description. */ description?: string; } /** * Widget's filter settings can be manipulated using multiple different granular operations. This is the union * type containing all the available operations. * * @beta */ export declare type IWidgetFilterOperation = IFilterOpEnableDateFilter | IFilterOpDisableDateFilter | IFilterOpReplaceAttributeIgnores | IFilterOpIgnoreAttributeFilter | IFilterOpUnignoreAttributeFilter | IFilterOpIgnoreDateFilter | IFilterOpUnignoreDateFilter | IFilterOpIgnoreMeasureValueFilter | IFilterOpUnignoreMeasureValueFilter | IFilterOpReplaceAll; /** * @beta */ export declare interface IWidgetHeader { /** * Title to set. If not defined then widget will have no title. */ title?: string; } /** * @internal */ export declare interface IWidthResizerDragItem { type: "internal-width-resizer"; sectionIndex: number; itemIndex: number; layoutPath?: ILayoutItemPath; gridColumnWidth: number; gridColumnHeightInPx: number; currentWidth: number; initialLayoutDimensions: DOMRect; minLimit: number; maxLimit: number; rowIndex?: number; } /** * @internal */ export declare interface IWithDrillSelectProps { widgetRef: ObjRef; insight: IInsight; visualizationId?: string; returnFocusToInsight?: (force?: boolean) => void; onDrillStart?: OnDashboardDrill; onDrillDownSuccess?: OnDrillDownSuccess; onDrillToInsightSuccess?: OnDrillToInsightSuccess; onDrillToDashboardSuccess?: OnDrillToDashboardSuccess; onDrillToAttributeUrlSuccess?: OnDrillToAttributeUrlSuccess; onDrillToCustomUrlSuccess?: OnDrillToCustomUrlSuccess; onKeyDriverAnalysisSuccess?: OnKeyDriverAnalysisSuccess; onError?: (error: any) => void; children: (props: { onDrill: OnWidgetDrill; }) => ReactElement; } /** * Working filter context. * * @alpha */ export declare interface IWorkingFilterContextDefinition { /** * Partial attribute, date, or measure value filters */ readonly filters: WorkingFilterContextItem[]; } /** * @internal */ export declare type IWrapCreatePanelItemWithDragComponent = ComponentType; /** * @internal */ export declare type IWrapCreatePanelItemWithDragInnerProps = { children: ReactElement; dragItem: DraggableItem; hideDefaultPreview?: boolean; disabled?: boolean; canDrag: boolean; onDragStart?: (item: DraggableItem) => void; onDragEnd?: (didDrop: boolean) => void; }; /** * @internal */ export declare type IWrapCreatePanelItemWithDragProps = { children: ReactElement; dragItem: DraggableItem; hideDefaultPreview?: boolean; disabled?: boolean; onDragStart?: (item: DraggableItem) => void; }; /** * @internal */ export declare type IWrapInsightListItemWithDragComponent = ComponentType; /** * @internal */ export declare interface IWrapInsightListItemWithDragProps { children: ReactElement; insight: IInsight; onDragStart?: (item: DraggableItem) => void; } /** * @beta */ export declare interface IXlsxExportConfig { format: "xlsx"; /** * Specify title of the workbook. */ title?: string; /** * Indicate whether headers and cells in the sheet * should be merged. */ mergeHeaders?: boolean; /** * Specify filters to include as comments / metadata in the Excel sheet. * * @remarks * Filters provided here are purely to paint a better context for the * person looking at the XLSX file. They serve no other purpose and are merely serialized * into the XLSX in a human readable form. */ showFilters?: boolean; } /** * @internal */ export declare function KdaDialog(props: IKdaDialogProps): JSX.Element; /** * @internal */ export declare type KdaPeriodType = "same_period_previous_year" | "previous_period"; /** * Configurations for keyboard navigation for individual parts of the dashboard * @internal */ export declare type KeyboardNavigationConfig = { [key in DashboardPartId]?: IKeyboardNavigationConfigItem; }; /** * Creates the {@link IKeyDriverAnalysis} command. * Dispatching this command will result into applying intersection attribute filters to the dashboard and insight will ignore these filters further * Eventually a {@link IDashboardKeyDriverAnalysisResolved} event will be dispatched at the end. * * @beta * @param drillDefinition - drill definition to apply. * @param drillEvent - original drill event, that triggered this particular drill interaction. * @param filters - filters to apply. * @param keyDriveItem - key driver item to analyze. * @param correlationId - specify correlation id. It will be included in all events that will be emitted during the command processing. * @returns cross filtering command */ export declare function keyDriverAnalysis(drillDefinition: IKeyDriveAnalysis, drillEvent: IDashboardDrillEvent, filters: FilterContextItem[], keyDriveItem: IDashboardKeyDriverCombinationItem, correlationId?: string): IKeyDriverAnalysis; /** * @internal */ export declare const keyDriverAnalysisSupportedGranularities: DateAttributeGranularity[]; /** * @internal */ export declare const keyDriverAnalysisSupportedStringGranularities: string[]; /** * @internal */ export declare const keyDriverYearGranularity: string[]; /** * @internal */ export declare const KPI_PLACEHOLDER_WIDGET_ID = "__kpiPlaceholder__"; /** * @beta */ export declare type KpiAlertDialogOpenedPayload = IUserInteractionPayloadWithDataBase<"kpiAlertDialogOpened", { alreadyHasAlert: boolean; }>; /** * @internal */ export declare type KpiDraggableComponent = { DraggingComponent?: KpiDraggingComponent; type: "kpi"; }; /** * @internal */ export declare type KpiDraggableItem = BaseDraggableMovingItem & { type: "kpi"; kpi: IKpi; }; /** * @internal */ export declare type KpiDraggingComponent = ComponentType; /** * @internal */ export declare type KpiPlaceholderDraggableItem = BaseDraggableLayoutItem & { type: "kpi-placeholder"; }; /** * @public */ export declare type LayoutComponentProvider = (props: IDashboardLayoutProps) => CustomDashboardLayoutComponent; /** * @beta */ export declare type LayoutStash = Record; /** * Creates the LoadAllWorkspaceUsers command. * * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @internal */ export declare function loadAllWorkspaceUsers(correlationId?: string): ILoadAllWorkspaceUsers; /** * @public */ export declare type LoadingComponentProvider = (props: ILoadingProps) => ComponentType; /** * @alpha */ export declare function LockedStatusIndicator(props: ILockedStatusProps): ReactElement | null; /** * @alpha */ export declare type MeasureValueFilterComponentProvider = (filter: IDashboardMeasureValueFilter) => CustomDashboardMeasureValueFilterComponent; /** * @internal */ export declare type MeasureValueFilterDraggableItem = { type: "measureValueFilter"; filter: IDashboardMeasureValueFilter; filterIndex: number; }; /** * @internal */ export declare function MenuButton(props: IMenuButtonProps): ReactElement; /** * @internal */ export declare const metaActions: { setMeta: ActionCreatorWithPayload< { dashboard?: IDashboard | undefined; initialContent?: boolean | undefined; }, "meta/setMeta">; setDashboardTitle: ActionCreatorWithPayload; setDisableCrossFiltering: ActionCreatorWithPayload; setDisablePersistentFiltersAcrossTabs: ActionCreatorWithPayload; setDisableUserFilterReset: ActionCreatorWithPayload; setDisableUserFilterSave: ActionCreatorWithPayload; setDisableFilterViews: ActionCreatorWithPayload; setEvaluationFrequency: ActionCreatorWithOptionalPayload; setSectionHeadersDateDataSet: ActionCreatorWithOptionalPayload; }; /** * Data attributes for export mode to be added to the header. * * @alpha */ export declare type MetaExportData = { root?: CommonExportDataAttributes; id?: MetaExportDataAttributes; title?: MetaExportDataAttributes; description?: MetaExportDataAttributes; user?: MetaExportDataAttributes; workspace?: MetaExportDataAttributes; tags?: { root: MetaExportDataAttributes; tag: MetaExportDataAttributes; }; filters?: { root: MetaExportDataAttributes; rootData: (isLoading: boolean, isError: boolean) => MetaExportDataAttributes; dateFilter: MetaExportDataAttributes; attributeFilter: MetaExportDataAttributes; measureValueFilter: MetaExportDataAttributes; parameter: MetaExportDataAttributes; filter: { name: MetaExportDataAttributes; value: MetaExportDataAttributes; filterData: (data: DashboardRelatedFilter, isLoading: boolean, isError: boolean) => MetaExportDataAttributes; }; }; }; /** * Data attributes with export specification for meta. * * @alpha */ export declare type MetaExportDataAttributes = { "data-export-meta-type"?: ExportMetaType; "data-export-meta-filter-type"?: "date" | "attribute" | "measureValue" | "parameter"; "data-export-meta-filter-mode"?: "readonly" | "hidden" | "active"; "data-export-meta-filter-status"?: "loading" | "loaded" | "error"; "data-export-meta-filters-status"?: "loading" | "loaded" | "error"; "data-export-meta-image-status"?: "loading" | "loaded" | "error"; "data-export-palette-key"?: string; "data-export-palette-value"?: string; }; /** * Creates the ModifyDrillDownForInsightWidget command. Dispatching the created command will update insight widget's * drill definition for the provided measure. * * @param ref - reference of insight widget whose drill should be modified * @param attributeIdentifier - drill localIdentifier and its hierarchy should be modified. * @param attributeHierarchyRef - drill attribute hierarchy ref to be modified. * @param blacklistHierarchies - drill localIdentifiers and its hierarchy should be modified * @param intersectionIgnoredAttributes - specify local identifiers of attributes that should be ignored in drill intersection during drill down. * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @alpha */ export declare function modifyDrillDownForInsightWidget(ref: ObjRef, attributeIdentifier: ObjRef, attributeHierarchyRef: ObjRef, blacklistHierarchies: IDrillDownReference[], intersectionIgnoredAttributes?: string[], correlationId?: string): IModifyDrillDownForInsightWidget; /** * Creates the ModifyDrillsForInsightWidget command. Dispatching the created command will add or modify a new drill for * the insight widget. * * Drill can be setup for particular measure - meaning elements in the insight will be clickable. Exactly one drill * can be specified for a measure. * * What happens on click depends on the context in which the dashboard lives: * * - When in KPI Dashboard (embedded or not) the defined action is actually triggered and done - it may open a new tab, * open overlay with insight, navigate to a new dashboard and carry over the filters. * - When the dashboard is embedded using Dashboard component, an event will be emitted describing the defined * drill action. * * @param ref - reference to insight widget whose drills should be modified * @param drills - drills to add or modify. * @param blacklistHierarchiesToUpdate - * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function modifyDrillsForInsightWidget(ref: ObjRef, drills: InsightDrillDefinition[], blacklistHierarchiesToUpdate?: IDrillDownReference[], correlationId?: string): IModifyDrillsForInsightWidget; /** * Creates the MoveAttributeFilter command. Dispatching this command will result in move of the dashboard attribute * filter with the provided local id to a new spot. The new spot is defined by index. For convenience the index * of -1 means move to the end of the attribute filter list. * * @param filterLocalId - dashboard filter's local identifier * @param index - specify index among the attribute filters at which the new filter should be placed. * The index starts at zero and there is convenience that index of -1 would add the filter at the end. * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function moveAttributeFilter(filterLocalId: string, index: number, correlationId?: string): IMoveAttributeFilter; /** * Payload of the {@link IMoveAttributeFilter} command. * @beta */ export declare type MoveAttributeFilterPayload = { /** * Local identifier of the filter to move. */ readonly filterLocalId: string; /** * Index to move the filter to. */ readonly index: number; }; /** * Creates the MoveDateFilter command. Dispatching this command will result in move of the dashboard date * filter with the provided dataSet to a new spot. The new spot is defined by index. For convenience the index * of -1 means move to the end of the filter list. * * @param dataSet - dashboard filter's dataSet - no duplicates allowed * @param index - specify index among the draggable filters (attribute filters and date filters with dataSet) at which the new filter should be placed. * The index starts at zero and there is convenience that index of -1 would add the filter at the end. * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function moveDateFilter(dataSet: ObjRef, index: number, correlationId?: string): IMoveDateFilter; /** * Payload of the {@link IMoveDateFilter} command. * @beta */ export declare type MoveDateFilterPayload = { /** * Data set of the filter to move. */ readonly dataSet: ObjRef; /** * Index to move the filter to. */ readonly index: number; }; /** * Creates the MoveLayoutSection command. Dispatching this command will result in move of the section located at `sectionIndex` * to a new place indicated by `toIndex`. * * @remarks * This command operates only on the root layout. For nested layouts, use {@link moveNestedLayoutSection}. * * @param sectionIndex - index of section to move * @param toIndex - the new index for the section * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function moveLayoutSection(sectionIndex: number, toIndex: number, correlationId?: string): IMoveLayoutSection; /** * Creates the MoveMeasureValueFilter command. * * @alpha * @param localIdentifier - local identifier of the measure value filter * @param index - target index among draggable filters * @param correlationId - correlation id propagated through emitted events * @returns move measure value filter command */ export declare function moveMeasureValueFilter(localIdentifier: string, index: number, correlationId?: string): IMoveMeasureValueFilter; /** * Payload of the {@link IMoveMeasureValueFilter} command. * * @alpha */ export declare type MoveMeasureValueFilterPayload = { /** * Local identifier of the measure value filter to move. */ readonly localIdentifier: string; /** * Index among draggable filters to move the filter to. */ readonly index: number; }; /** * Creates the MoveLayoutSection command. Dispatching this command will result in move of the section located at `sectionIndex` * to a new place indicated by `toIndex`. * * @param sectionIndex - index of section to move * @param toIndex - the new index for the section * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @alpha */ export declare function moveNestedLayoutSection(sectionIndex: ILayoutSectionPath, toIndex: ILayoutSectionPath, correlationId?: string): IMoveLayoutSection; /** * Creates the MoveSectionItem command. * * @remarks * Dispatching this command will result in move of single item within * section or from one section to another. * * @param fromPath - source item path * @param toPath - target path; you may specify -1 to move to last section/to be last item * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @alpha */ export declare function moveNestedLayoutSectionItem(fromPath: ILayoutItemPath, toPath: ILayoutItemPath, correlationId?: string): IMoveSectionItem; /** * Creates the MoveSectionItem command. * * @remarks * Dispatching this command will result in move of single item within * section or from one section to another. If original section stays empty after move, then it will be removed. * * @param fromPath - source item path * @param toPath - target path; you may specify -1 to move to last section/to be last item * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @alpha */ export declare function moveNestedLayoutSectionItemAndRemoveOriginalSectionIfEmpty(fromPath: ILayoutItemPath, toPath: ILayoutItemPath, correlationId?: string): IMoveSectionItem; /** * Creates the MoveSectionItemToNewSection command. * * @remarks * Dispatching this command will result in move of single item within * section or from one section to another. * * @param itemPath - source item path * @param toSection - target section path; you may specify -1 to move to last section * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @alpha */ export declare function moveNestedLayoutSectionItemToNewSection(itemPath: ILayoutItemPath, toSection: ILayoutSectionPath, correlationId?: string): IMoveSectionItemToNewSection; /** * Creates the MoveSectionItemToNewSection command. * * @remarks * Dispatching this command will result in move of single item within * section or from one section to another. If original section stays empty after move, then it will be removed. * * @param itemPath - source item index * @param toSection - target section index; you may specify -1 to move to last section * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @alpha */ export declare function moveNestedLayoutSectionItemToNewSectionAndRemoveOriginalSectionIfEmpty(itemPath: ILayoutItemPath, toSection: ILayoutSectionPath, correlationId?: string): IMoveSectionItemToNewSection; /** * Creates the MoveSectionItem command. * * @remarks * Dispatching this command will result in move of single item within * section or from one section to another. * * This command operates only on the root layout. For nested layouts, use {@link moveNestedLayoutSectionItem}. * * @param sectionIndex - source section index * @param itemIndex - index of item to move * @param toSectionIndex - target section index; you may specify -1 to move to last section * @param toItemIndex - index within target section where the item should be inserted; you may specify -1 to append * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta * * TODO LX-648: Consider removing this command variant and leave only a nested variant */ export declare function moveSectionItem(sectionIndex: number, itemIndex: number, toSectionIndex: number, toItemIndex: number, correlationId?: string): IMoveSectionItem; /** * Creates the MoveSectionItem command. * * @remarks * Dispatching this command will result in move of single item within * section or from one section to another. If original section stays empty after move, then it will be removed. * * This command operates only on the root layout. For nested layouts, use {@link moveNestedLayoutSectionItemAndRemoveOriginalSectionIfEmpty}. * * @param sectionIndex - source section index * @param itemIndex - index of item to move * @param toSectionIndex - target section index; you may specify -1 to move to last section * @param toItemIndex - index within target section where the item should be inserted; you may specify -1 to append * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta * * TODO LX-648: Consider removing this command variant and leave only a nested variant */ export declare function moveSectionItemAndRemoveOriginalSectionIfEmpty(sectionIndex: number, itemIndex: number, toSectionIndex: number, toItemIndex: number, correlationId?: string): IMoveSectionItem; /** * Creates the MoveSectionItemToNewSection command. * * @remarks * Dispatching this command will result in move of single item within * section or from one section to another. * * This command operates only on the root layout. For nested layouts, use {@link moveNestedLayoutSectionItemToNewSection}. * * @param sectionIndex - source section index * @param itemIndex - index of item to move * @param toSectionIndex - target section index; you may specify -1 to move to last section * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta * * TODO LX-648: Consider removing this command variant and leave only a nested variant */ export declare function moveSectionItemToNewSection(sectionIndex: number, itemIndex: number, toSectionIndex: number, correlationId?: string): IMoveSectionItemToNewSection; /** * Creates the MoveSectionItemToNewSection command. * * @remarks * Dispatching this command will result in move of single item within * section or from one section to another. If original section stays empty after move, then it will be removed. * * This command operates only on the root layout. For nested layouts, use {@link moveNestedLayoutSectionItemToNewSectionAndRemoveOriginalSectionIfEmpty}. * * @param sectionIndex - source section index * @param itemIndex - index of item to move * @param toSectionIndex - target section index; you may specify -1 to move to last section * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta * * TODO LX-648: Consider removing this command variant and leave only a nested variant */ export declare function moveSectionItemToNewSectionAndRemoveOriginalSectionIfEmpty(sectionIndex: number, itemIndex: number, toSectionIndex: number, correlationId?: string): IMoveSectionItemToNewSection; /** * @beta */ export declare type NestedLayoutInteractionType = "nestedLayoutDirectionColumn" | "nestedLayoutDirectionRow" | "nestedLayoutRemoved" | "nestedLayoutHeaderEnabled" | "nestedLayoutHeaderDisabled" | "nestedLayoutDirectionConfigurationOpened" | "nestedLayoutDirectionConfigurationClosed"; /** * Creates a new custom widget. * * @param identifier - identifier for custom widget; once added onto a dashboard, widget will be referencable using this identifier * @param customType - custom widget type * @param extras - provide extra data to include on the custom widget; the content of this argument can be an * arbitrary plain object. note: the factory will make a copy of all the extra data. at this moment it is not possible * to modify the data once the widget is added onto a dashboard. * @public */ export declare function newCustomWidget(identifier: string, customType: string, extras?: TExtra & Partial): TExtra & ICustomWidget; /** * A factory function to obtain an instance of {@link IDashboardEngine}. * * @remarks * This is the main, well-known entry point to the Dashboard Engine that is used during both static and dynamic * loading of the dashboard engine instances by the DashboardLoader. * * @public */ export declare function newDashboardEngine(): IDashboardEngine; /** * Creates DashboardEvent predicate that test whether the provided event matches it. * * @alpha * @param eventType - dashboard event type * @param pred - predicate to test * @returns boolean - matches? */ export declare function newDashboardEventPredicate(eventType: T, pred?: (event: DashboardEvents & { type: T; }) => boolean): (event: Action) => boolean; /** * Creates a new dashboard item containing the provided custom widget. * * @param widget - custom widget to include * @param sizeOrColSize - item size specification; for convenience you can specify the size as number which will be * interpreted as number of columns in a 12-col grid that the item should use when rendered on an XL screen. * @public */ export declare function newDashboardItem(widget: T, sizeOrColSize: IDashboardLayoutSizeByScreenSize | number): ExtendedDashboardItem; /** * Creates a new dashboard section. * * @param titleOrHeader - header to use for this section (if any); for convenience, you may provide just string containing the title instead * of specifying full header. if you specify empty string for title, then there will be no header. * @param items - dashboard items to include in the section; note: a deep copy of each item will be used on the new section * * @public */ export declare function newDashboardSection>>(titleOrHeader: IDashboardLayoutSectionHeader | string | undefined, ...items: T): IDashboardLayoutSection>; /** * Creates {@link ObjRefMap} for attribute display form metadata objects. * * @param items - items to add into map * @param strictTypeCheck - whether to do strict type checking when getting by identifierRef * @alpha */ export declare function newDisplayFormMap(items: ReadonlyArray, strictTypeCheck?: boolean): ObjRefMap; /** * Event handler with the default implementation for drill to the same dashboard. * * When {@link IDashboardDrillToDashboardResolved} event is fired and contains dashboard ref that matches the provided dashboard ref, * or dashboard ref in the event is missing, it sets relevant drill intersection filters to the current dashboard. * * Note that only filters that are already stored in the dashboard filter context will be applied * (attribute filters that are not visible in the filter bar will not be applied). * * @alpha * @param dashboardRef - reference to the current dashboard * @returns event handler */ export declare const newDrillToSameDashboardHandler: (dashboardRef: ObjRef) => DashboardEventHandler; /** * @internal */ export declare function newInitialPlaceholderWidget(): IPlaceholderWidget; /** * @alpha */ export declare function newInsightPlaceholderWidget(): IInsightPlaceholderWidget; /** * Creates a new insightWidget with specified identifier and title and with optional modifications. * * @param insight - the insight object to create widget for. * @param modifications - optional modifications * * @internal */ export declare function newInsightWidget(insight: IInsight, modifications?: InsightWidgetModifications): IInsightWidgetBase; /** * @alpha */ export declare function newKpiPlaceholderWidget(): IKpiPlaceholderWidget; /** * @internal */ export declare function newLoadingPlaceholderWidget(): IPlaceholderWidget; /** * @alpha */ export declare function newPlaceholderWidget(): IPlaceholderWidget; /** * Dashboard component may offer users to pick objects to use on the dashboard. * * @remarks * User can, for instance, select a metric to use on KPI, select an attribute or a date dataset to filter by. * * The object availability configuration can be used to filter objects that the user can pick. * * By default, all objects * * @public */ export declare type ObjectAvailabilityConfig = { /** * Specify tags to exclude objects by. * * @remarks * If any of these tags appears on an object, then it will be not available for use. */ excludeObjectsWithTags?: string[]; /** * Specify tags to include objects by. * * @remarks * This option does not make sense on its own - as all objects are * included by default. However, it can be used in conjunction with {@link ObjectAvailabilityConfig.excludeObjectsWithTags} - a wide * range of objects may be excluded at first and then a subset will be cherry-picked using this prop. */ includeObjectsWithTags?: string[]; }; /** * Utility class that assists with type-agnostic mapping of metadata objects by ObjRef. * * Problem * ======= * * The challenges with ObjRef's start in context of backend that supports both uri and id ref (e.g. bear) and the client. * * Backend according to contract creates one type of ref - uri ref - so that is fine. However when instances of `ref` are created * by the client code and are passed in through the public API (as is the case with the dashboard component) - problems start. * * For clients it is often more convenient to use ID refs.. because they are transferable across workspaces and because * they appear in the catalog export. * * Doing strict ref-to-ref matching between user input and the data stored in state will result in no matches because * the types of ref's do not match. * * --- * * This class addresses the problem by having the `get` method check the type of ObjRef first and then perform * lookups into either id to item or uri to item mapping. * * @alpha */ export declare class ObjRefMap { private readonly config; readonly [Symbol.toStringTag]: string; size: number; private items; private itemsByIdentifier; private itemsByUri; constructor(config: IObjRefMapConfig); private idRefToKey; private addItem; private cleanupUnmappedItems; fromItems: (items: readonly T[]) => ObjRefMap; [Symbol.iterator](): IterableIterator<[ObjRef, T]>; entries(): IterableIterator<[ObjRef, T]>; get(key: ObjRef): T | undefined; has(key: ObjRef): boolean; keys(): IterableIterator; values(): IterableIterator; } /** * @internal */ export declare type OnDashboardDrill = (cmd: IDrill) => void; /** * @internal */ export declare type OnDashboardDrillError = (event: IDashboardCommandFailed) => void; /** * @internal */ export declare type OnDashboardDrillSuccess = (event: IDashboardDrillResolved) => void; /** * @internal */ export declare type OnDrillDown = (cmd: IDrillDown) => void; /** * @alpha */ export declare type OnDrillDownSuccess = (event: IDashboardDrillDownResolved) => void; /** * @internal */ export declare type OnDrillToAttributeUrl = (cmd: IDrillToAttributeUrl) => void; /** * @alpha */ export declare type OnDrillToAttributeUrlSuccess = (event: IDashboardDrillToAttributeUrlResolved) => void; /** * @internal */ export declare type OnDrillToCustomUrl = (cmd: IDrillToCustomUrl) => void; /** * @alpha */ export declare type OnDrillToCustomUrlSuccess = (event: IDashboardDrillToCustomUrlResolved) => void; /** * @internal */ export declare type OnDrillToDashboard = (cmd: IDrillToDashboard) => void; /** * @alpha */ export declare type OnDrillToDashboardSuccess = (event: IDashboardDrillToDashboardResolved) => void; /** * @internal */ export declare type OnDrillToInsight = (cmd: IDrillToInsight) => void; /** * @alpha */ export declare type OnDrillToInsightSuccess = (event: IDashboardDrillToInsightResolved) => void; /** * @internal */ export declare type OnDrillToLegacyDashboard = (cmd: IDrillToLegacyDashboard) => void; /** * @internal */ export declare type OnDrillToLegacyDashboardSuccess = (event: IDashboardDrillToLegacyDashboardResolved) => void; /** * Callback called when a drill event occurs. * @beta */ export declare type OnFiredDashboardDrillEvent = (event: IDashboardDrillEvent) => ReturnType; /** * @internal */ export declare type OnKeyDriverAnalysis = (cmd: IKeyDriverAnalysis) => void; /** * @internal */ export declare type OnKeyDriverAnalysisError = OnDashboardDrillError; /** * @internal */ export declare type OnKeyDriverAnalysisSuccess = (event: IDashboardKeyDriverAnalysisResolved) => void; /** * @alpha */ export declare type OnWidgetDrill = (drillEvent: IDashboardDrillEvent, drillContext: IDashboardDrillContext) => void; /** * @public */ export declare type OptionalAttributeFilterComponentProvider = OptionalProvider; /** * @alpha */ export declare type OptionalDashboardContentComponentProvider = OptionalProvider; /** * @alpha */ export declare type OptionalDashboardLayoutComponentProvider = OptionalProvider; /** * @public */ export declare type OptionalDateFilterComponentProvider = OptionalProvider; /** * @alpha */ export declare type OptionalDrillDialogExportDropdownComponentProvider = OptionalProvider; /** * @public */ export declare type OptionalFilterBarComponentProvider = OptionalProvider; /** * @public */ export declare type OptionalFilterGroupComponentProvider = OptionalProvider; /** * @alpha */ export declare type OptionalInsightBodyComponentProvider = OptionalProvider; /** * @public */ export declare type OptionalInsightComponentProvider = OptionalProvider; /** * @alpha */ export declare type OptionalInsightMenuButtonComponentProvider = OptionalProvider; /** * @alpha */ export declare type OptionalInsightMenuComponentProvider = OptionalProvider; /** * @internal */ export declare type OptionalInsightMenuTitleComponentProvider = OptionalProvider; /** * @public */ export declare type OptionalLayoutComponentProvider = OptionalProvider; /** * @public */ export declare type OptionalLoadingComponentProvider = OptionalProvider; /** * @alpha */ export declare type OptionalMeasureValueFilterComponentProvider = OptionalProvider; /** * @public */ export declare type OptionalProvider = T extends (...args: infer TArgs) => infer TRes ? (...args: TArgs) => TRes | undefined : never; /** * @public */ export declare type OptionalRichTextComponentProvider = OptionalProvider; /** * @alpha */ export declare type OptionalRichTextMenuComponentProvider = OptionalProvider; /** * @internal */ export declare type OptionalRichTextMenuTitleComponentProvider = OptionalProvider; /** * @alpha */ export declare type OptionalShowAsTableButtonComponentProvider = OptionalProvider; /** * @public */ export declare type OptionalTitleComponentProvider = OptionalProvider; /** * @public */ export declare type OptionalTopBarComponentProvider = OptionalProvider; /** * @alpha */ export declare type OptionalVisualizationSwitcherComponentProvider = OptionalProvider; /** * @alpha */ export declare type OptionalVisualizationSwitcherToolbarComponentProvider = OptionalProvider; /** * @public */ export declare type OptionalWidgetComponentProvider = OptionalProvider; /** * @internal */ export declare type ParameterDraggableItem = { type: "parameter"; ref: ObjRef; }; /** * @alpha */ export declare function parametersSelectionReset(correlationId?: string): DashboardEventBody; /** * @beta */ export declare type PdfConfiguration = { pageSize?: "A3" | "A4" | "LETTER"; pageOrientation?: "PORTRAIT" | "LANDSCAPE"; showInfoPage?: boolean; }; /** * @public */ export declare type PermissionsState = { permissions?: IWorkspacePermissions; }; /** * @internal */ export declare const PLACEHOLDER_WIDGET_ID = "__placeholder__"; /** * @internal */ export declare type PrivateDashboardContext = DashboardModelCustomizationFns & { /** * If specified, the dashboard initialization should use this dashboard definition instead of * loading dashboard from backend. */ preloadedDashboard?: IDashboard; /** * Provide a function that will be used during dashboard initialization and can add overlays with some info * about modification or insertion by plugin * * @remarks * * - If the function is not defined, then no overlays will be rendered */ widgetsOverlayFn?: WidgetsOverlayFn; }; /** * This is a specialization of toolkit's CaseReducerActions to correctly type the action creators. * * @internal */ export declare type QueryActions = CaseReducerActions, string>; /** * Dispatches a query and returns a promise to its result. * * @param dispatch - dashboard dispatch to use * @param query - query to trigger and wait for results of * @returns Promise of the query result * @alpha */ export declare function queryAndWaitFor(dispatch: DashboardDispatch, query: TQuery): Promise; /** * Creates action through which you can query attributes for given display forms * * @param displayForms - attribute display forms * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * @returns attribute metadata for given display forms * * @alpha */ export declare function queryAttributeByDisplayForm(displayForms: ObjRef[], correlationId?: string): IQueryAttributeByDisplayForm; /** * Creates action through which you can query attribute data set for given display form * * @param displayForm - attribute display form * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * @returns attribute data set for given display form * * @internal */ export declare function queryAttributeDataSet(displayForm: ObjRef, correlationId?: string): IQueryAttributeDataSet; /** * Creates action through which you can query attribute elements for given display form * * @param displayForm - attribute display form * @param limit - desired max number of elements to retrieve * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * @returns attribute elements for given display form * * @internal */ export declare function queryAttributeElements(displayForm: ObjRef, limit?: number, correlationId?: string): IQueryAttributeElements; /** * Creates action through which you can query available data sets data set for given item * * @param items - attribute or measure * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * @returns attribute data set for given display form * * @internal */ export declare function queryAvailableDatasetsForItems(items: IAttributeOrMeasure[], correlationId?: string): IQueryAvailableDatasetsForItems; /** * Contains all essentials of query cache that can be integrated into redux store and redux sagas. * * @internal */ export declare type QueryCache = { /** * A name to use as key in _queryCache part of the redux state. */ cacheName: string; /** * Cache's slice reducer. This needs to be integrated into the dashboard store. */ reducer: Reducer, EntityId>>; /** * Cache's action creators. */ actions: QueryActions; /** * Factory for selectors to get cache entry by its identifier. * * Important: the use-case for this selector is purely internal. It is intended to be used by the internal * sagas that add caching layer on top of the actual query processing saga. * * @param id - cache key */ selectById: (id: EntityId) => Selector | undefined>; /** * Factory for selectors that obtain query result stored in state. This is intended for consumption by presentational components. * * The selected result may be undefined - which means that query to obtain the result has not (yet) started: * it has never even been dispatched or it is on its way to be processed. Once the query is running the status in the * result will change to `loading` and then eventually to either `success` or `error`. * * @param query - query to get result of * @internal */ selectQueryResult: (query: TQuery) => Selector | undefined>; }; /** * Entry in the per-query cache. The entry must also contain the query itself; this is because code uses * the entity adapter. The adapter needs to calculate cache key (string) from the entity it stores. Query is the * only reasonable candidate here. * * @internal */ export declare type QueryCacheEntry = QueryCacheEntryResult & { query: TQuery; }; /** * Describes the result part of the cache entry. * * @internal */ export declare type QueryCacheEntryResult = { /** * */ status: "loading" | "success" | "error"; result?: TResult; error?: string; }; /** * Each slice reducer is typed as toolkit's CaseReducer. This type specializes the case reducer to the purpose of * doing reductions on state that holds results for particular query type. * * @internal */ export declare type QueryCacheReducer = CaseReducer, EntityId>, PayloadAction>; /** * Creates action through which you can query connected attributes for the information about * possibility of parent-child attribute filter relationship as only connected attributes may * be dependent on each other. * * @param ref - reference of the attribute filter display form * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * @returns array of connected attributes for given reference * * @alpha */ export declare function queryConnectedAttributes(ref: ObjRef, correlationId?: string): IQueryConnectedAttributes; /** * Creates action through which you can query connecting attributes for the information about * possibility of parent-child attribute filter relationship. * * @param refs - references of the attributes * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * @returns connecting attributes for given array of references * * @alpha */ export declare function queryConnectingAttributes(refs: [ObjRef, ObjRef][], correlationId?: string): IQueryConnectingAttributes; /** * Creates action through which you can query dashboard component for information about the date data sets * that are applicable for the provided insight. * * @param insightOrRef - insight body or a reference to an insight. if the reference is provided, then it is expected * to be a reference of an insight that is already placed on a dashboard * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * @alpha */ export declare function queryDateDatasetsForInsight(insightOrRef?: ObjRef | IInsight, correlationId?: string): IQueryInsightDateDatasets; /** * Creates action through which you can query dashboard component for information about the date data sets * that are applicable for filtering of the provided measure. measures are typically used to obtain value to render on KPIs. * * @param measureRef - reference to measure * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * @alpha */ export declare function queryDateDatasetsForMeasure(measureRef: ObjRef, correlationId?: string): IQueryMeasureDateDatasets; /** * Creates action thought which you can query dashboard component for information about display forms and * attributes used by an insight. * * @param insightOrRef - insight body or a reference to an insight on the dashboard * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * @alpha */ export declare function queryInsightAttributesMeta(insightOrRef: ObjRef | IInsight, correlationId?: string): IQueryInsightAttributesMeta; /** * Creates action through which you can query metrics and facts * * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * @returns metrics and facts from catalog * * @alpha */ export declare function queryMetricsAndFacts(correlationId?: string): IQueryMetricsAndFacts; /** * @public */ export declare type QueryProcessingErrorState = { status: "error"; error: GoodDataSdkError; result: undefined; }; /** * @public */ export declare type QueryProcessingPendingState = { status: "pending"; error: undefined; result: undefined; }; /** * @public */ export declare type QueryProcessingRejectedState = { status: "rejected"; error: undefined; result: undefined; }; /** * @public */ export declare type QueryProcessingRunningState = { status: "running"; error: undefined; result: undefined; }; /** * @public */ export declare type QueryProcessingState = QueryProcessingPendingState | QueryProcessingRunningState | QueryProcessingErrorState | QueryProcessingRejectedState | QueryProcessingSuccessState; /** * @internal */ export declare type QueryProcessingStatus = QueryProcessingState["status"]; /** * @public */ export declare type QueryProcessingSuccessState = { status: "success"; error: undefined; result: TResult; }; /** * Creates action through which you can query dashboard component for information about the total number of alerts * all the users have set on a given KPI widget. * * @param widgetRef - reference to the KPI widget * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * @alpha */ export declare function queryWidgetAlertCount(widgetRef: ObjRef, correlationId?: string): IQueryWidgetAlertCount; /** * Creates action thought which you can query dashboard component for broken alert filters. * * @param widgetRef - reference to insight kpi widget * @param correlationId - specify correlation id to use for this command. * @returns * * @alpha */ export declare function queryWidgetBrokenAlerts(widgetRef: ObjRef, correlationId?: string): IQueryWidgetBrokenAlerts; /** * Creates action thought which you can query dashboard component for filters that should be used by a given widget. * * @param widgetRef - reference to insight widget * @param insight - specify insight to evaluate the filters for in context of the widget. * If null, InsightWidgets will ignore the insight the are referencing. * If not specified, InsightWidgets will default to the insights they reference, Custom- and KpiWidgets will ignore it. * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * @alpha */ export declare function queryWidgetFilters(widgetRef: ObjRef, insight?: IInsightDefinition | null, correlationId?: string): IQueryWidgetFilters; /** * @alpha */ export declare const ReactDashboardContext: Context | null>; /** * Creates the RefreshAutomations command. * * Dispatching this command will result in refreshing the current dashboard's automation data. * This is particularly useful after creating, updating, or removing alerts or scheduled exports, * ensuring that the local data remains synchronized with the backend. * * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * @beta */ export declare function refreshAutomations(correlationId?: string): IRefreshAutomations; /** * Creates the RefreshInsightWidget command. Dispatching this command will result in re-calculation of the widget's * insight and re-render. * * @param ref - reference to the Insight widget to refresh * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function refreshInsightWidget(ref: ObjRef, correlationId?: string): IRefreshInsightWidget; /** * Creates the RefreshKpiWidget command. Dispatching this command will result in re-calculation of the KPI's value. * * @param ref - reference of the KPI widget to refresh * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function refreshKpiWidget(ref: ObjRef, correlationId?: string): IRefreshKpiWidget; /** * This is a mark-up type that is used for properties and arguments that can contain relative index: a zero-based index * with added convenience of referencing last spot using index of `-1`. * * @beta */ export declare type RelativeIndex = number; /** * Creates the {@link IReloadFilterViews} command. * * @remarks * Dispatching this command will result with refreshing of the cache with saved filter views from * persistent storage and updating the local cache in redux store. * * @alpha * @param correlationId - specify correlation id. It will be included in all events that will be emitted during the command processing. * @returns delete filter view command */ export declare function reloadFilterViews(correlationId?: string): IReloadFilterViews; /** * Creates the RemoveAttributeFilters command. Dispatching this command will result in the removal * of dashboard's attribute filter with the provided local identifier. * * @param filterLocalId - dashboard attribute filter's local identifier * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * @beta */ export declare function removeAttributeFilter(filterLocalId: string, correlationId?: string): IRemoveAttributeFilters; /** * Creates the RemoveAttributeFilters command. Dispatching this command will result in the removal * of dashboard's attribute filters with the provided local identifiers. * * @param filterLocalIds - an array of dashboard attribute filter's local identifiers * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * @beta */ export declare function removeAttributeFilters(filterLocalIds: string[], correlationId?: string): IRemoveAttributeFilters; /** * Creates the RemoveDateFilters command. Dispatching this command will result in the removal * of dashboard's date filter with the provided date data set. * * @param dataSet - dashboard date filter's date data set ref * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * @beta */ export declare function removeDateFilter(dataSet: ObjRef, correlationId?: string): IRemoveDateFilters; /** * Creates the RemoveDrillDownForInsightWidget command. Dispatching the created command will remove insight widget's * drill definition for the provided measure. * * @param ref - reference of insight widget whose drill should be removed * @param blacklistHierarchies - drill localIdentifiers and its hierarchy should be removed * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @alpha */ export declare function removeDrillDownForInsightWidget(ref: ObjRef, blacklistHierarchies: IDrillDownReference[], correlationId?: string): IRemoveDrillDownForInsightWidget; /** * Creates the RemoveDrillForKpiWidget command. Dispatching this command will result in KPI having its drill removed. * * @param ref - reference of the KPI widget to modify * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function removeDrillForKpiWidget(ref: ObjRef, correlationId?: string): IRemoveDrillForKpiWidget; /** * Creates the RemoveDrillsForInsightWidget command. Dispatching the created command will remove insight widget's * drill definition for the provided measure. * * @param ref - reference of insight widget whose drill should be removed * @param localIdentifiers - drill localIdentifiers whose drill definitions should be removed * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function removeDrillsForInsightWidget(ref: ObjRef, localIdentifiers: RemoveDrillsSelector, correlationId?: string): IRemoveDrillsForInsightWidget; /** * @beta */ export declare type RemoveDrillsSelector = LocalIdRef[] | "*"; /** * Creates the RemoveDrillToUrlForInsightWidget command. Dispatching the created command will remove insight widget's * drill definition for the provided attribute. * * @param ref - reference of insight widget whose drill should be removed * @param blacklistAttributes - displayForm refs of drill to url attributes which should be removed. * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @alpha */ export declare function removeDrillToUrlForInsightWidget(ref: ObjRef, blacklistAttributes: ObjRef[], correlationId?: string): IRemoveDrillToUrlForInsightWidget; /** * @internal */ export declare function removeIgnoredWidgetFilters(filters: FilterContextItem[], widget: ExtendedDashboardWidget | undefined): FilterContextItem[]; /** * Creates the RemoveLayoutSection command. * * @remarks * Dispatching this command will result in removal of the entire dashboard * section. You can optionally specify that the items in the section should not be physically removed but instead be * stashed for later 'resurrection'. * * This command operates only on the root layout. For nested layouts, use {@link removeNestedLayoutSection}. * * @param index - index of section to remove * @param stashIdentifier - specify identifier to stash items under; if you do not specify this, then the dashboard items in the removed section will also be removed * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function removeLayoutSection(index: number, stashIdentifier?: StashedDashboardItemsId, correlationId?: string): IRemoveLayoutSection; /** * Creates the RemoveMeasureValueFilters command for a single filter. * * @alpha * @param localIdentifier - local identifier of the measure value filter * @param correlationId - correlation id propagated through emitted events * @returns remove measure value filter command */ export declare function removeMeasureValueFilter(localIdentifier: string, correlationId?: string): IRemoveMeasureValueFilters; /** * Creates the RemoveMeasureValueFilters command for a batch of filters. The handler processes * them in one pass — each removal emits its own `DashboardMeasureValueFilterRemoved` event and * the whole batch settles with a single `DashboardFilterContextChanged`. * * @alpha * @param localIdentifiers - local identifiers of the measure value filters to remove * @param correlationId - correlation id propagated through emitted events */ export declare function removeMeasureValueFilters(localIdentifiers: string[], correlationId?: string): IRemoveMeasureValueFilters; /** * Creates the RemoveLayoutSection command. * * @remarks * Dispatching this command will result in removal of the entire dashboard * section. You can optionally specify that the items in the section should not be physically removed but instead be * stashed for later 'resurrection'. * * @param index - index of section to remove * @param stashIdentifier - specify identifier to stash items under; if you do not specify this, then the dashboard items in the removed section will also be removed * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @alpha */ export declare function removeNestedLayoutSection(index: ILayoutSectionPath, stashIdentifier?: StashedDashboardItemsId, correlationId?: string): IRemoveLayoutSection; /** * Creates the RemoveSectionItem command. * * @remarks * Dispatching this command will result in removal * of the item from a section. If the removed item was last in the section, the section will be left on the layout * and will contain no items. * * You may optionally specify the stashIdentifier in order to stash the removed item for later resurrection. * * @param itemPath - index from which to remove the item * @param stashIdentifier - stash identifier to store the removed item under; if not specified the item will be removed * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @alpha */ export declare function removeNestedLayoutSectionItem(itemPath: ILayoutItemPath, stashIdentifier?: StashedDashboardItemsId, correlationId?: string): IRemoveSectionItem; /** * Creates the RemoveSectionItem command. * * @remarks * Dispatching this command will result in removal * of the item from a section. If the removed item was last in the section, the section will be left on the layout * and will contain no items. * * You may optionally specify the stashIdentifier in order to stash the removed item for later resurrection. * * This command operates only on the root layout. For nested layouts, use {@link removeNestedLayoutSectionItem}. * * @param sectionIndex - index of section from which to remove the item * @param itemIndex - index of item to remove * @param stashIdentifier - stash identifier to store the removed item under; if not specified the item will be removed * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta * * TODO LX-648: Consider removing this command variant and leave only a nested variant */ export declare function removeSectionItem(sectionIndex: number, itemIndex: number, stashIdentifier?: StashedDashboardItemsId, correlationId?: string): IRemoveSectionItem; /** * Creates the RemoveSectionItemByWidgetRef command. * * @remarks * Dispatching this command will result in removal * of the item from a section. If the removed item was last in the section, the section will be left on the layout * and will contain no items. * * @param widgetRef - widget reference of the item to remove; * @param stashIdentifier - stash identifier to store the removed item under; if not specified the item will be removed * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function removeSectionItemByWidgetRef(widgetRef: ObjRef, stashIdentifier?: StashedDashboardItemsId, correlationId?: string): IRemoveSectionItemByWidgetRef; /** * Creates the RenameDashboard command. Dispatching this command will result in rename of the dashboard. The changes * will be done only in-memory and have to be flushed to backend using the SaveDashboard command. * * @param newTitle - new dashboard title * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * @beta */ export declare function renameDashboard(newTitle: string, correlationId?: string): IRenameDashboard; /** * Creates the RenameDashboardTab command. * @alpha */ export declare function renameDashboardTab(title: string, tabId?: string, correlationId?: string): IRenameDashboardTab; /** * @beta */ export declare type RenderMode = "view" | "edit" | "export"; /** * Actions to control renderMode state of the dashboard. * * @internal */ export declare const renderModeActions: { setRenderMode: ActionCreatorWithPayload; setEditRenderMode: ActionCreatorWithoutPayload<"renderModeSlice/setEditRenderMode">; setExportRenderMode: ActionCreatorWithoutPayload<"renderModeSlice/setExportRenderMode">; setViewRenderMode: ActionCreatorWithoutPayload<"renderModeSlice/setViewRenderMode">; }; /** * Returns a component that wraps components for different render modes and automatically chooses the correct one. * If component for current render mode is not defined, component for "view" mode is used. * * @param components - the components to choose from * @internal */ export declare function renderModeAware>(components: { view: T; } & Partial>): ComponentType>; /** * @internal */ export declare const RenderModeAwareFilterBar: ComponentType; /** * @internal */ export declare const RenderModeAwareTitle: ComponentType; /** * @internal */ export declare const RenderModeAwareTopBar: ComponentType; /** * Command for replacing an attribute filter item's selection. * * @remarks * This command replaces the entire filter item in the filter context. It supports all attribute filter * types including standard element-based, arbitrary text, and match text filters. * * @public */ export declare type ReplaceAttributeFilterItemSelection = IDashboardCommand & { readonly type: "GDC.DASH/CMD.FILTER_CONTEXT.ATTRIBUTE_FILTER_ITEM.REPLACE_SELECTION"; readonly payload: ReplaceAttributeFilterItemSelectionPayload; }; /** * Creates the ReplaceAttributeFilterItemSelection command for applied filters. * * @remarks * Dispatching this command will result in replacement of the attribute filter item with the provided * filter in the dashboard filter context. * * @param filterLocalId - dashboard attribute filter's local id * @param filter - the replacement filter item * @param correlationId - specify correlation id to use for this command * * @internal */ export declare function replaceAttributeFilterItemSelection(filterLocalId: string, filter: DashboardAttributeFilterItem, correlationId?: string, isSelectionInvalid?: boolean): ReplaceAttributeFilterItemSelection; /** * Payload type for {@link ReplaceAttributeFilterItemSelection} command. * * @internal */ export declare type ReplaceAttributeFilterItemSelectionPayload = { /** * Dashboard attribute filter's local identifier. */ readonly filterLocalId: string; /** * The full replacement filter item (can be standard, arbitrary, or match attribute filter). */ readonly filter: DashboardAttributeFilterItem; /** * Determines if this command should change working (staged for application) filters or applied filters. * Default is false - command changes applied filters. */ readonly isWorkingSelectionChange?: boolean; /** * Specifies if filter selection is invalid (e.g. text filter with missing value/literal). */ readonly isSelectionInvalid?: boolean; }; /** * Creates the ChangeInsightWidgetFilterSettings command for {@link IFilterOpReplaceAll} operation. * * Dispatching this command will result in replacement of Insight widget's filter settings; this includes change of * data set used for common date filter, disabling common date filtering, ignoring attribute/date filters that are defined on the dashboard for the widget. * * @param ref - reference of the insight widget to modify * @param settings - new filter settings to apply * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function replaceInsightWidgetFilterSettings(ref: ObjRef, settings: Omit, correlationId?: string): IChangeInsightWidgetFilterSettings; /** * Creates the ChangeInsightWidgetFilterSettings command for {@link IFilterOpReplaceAttributeIgnores} operation. * * Dispatching this command will result in replacement of Insight widget's attribute filter ignore-list. Those attribute filters * that use the provided displayForms for filtering will be ignored by the widget. * * @param ref - reference of the insight widget to modify * @param displayForms - refs of display forms used by attribute filters that should be ignored * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function replaceInsightWidgetIgnoredFilters(ref: ObjRef, displayForms?: ObjRef[], correlationId?: string): IChangeInsightWidgetFilterSettings; /** * Creates the ChangeKpiWidgetFilterSettings command. Dispatching this command will result in change of KPI widget's * filter settings; this includes change of data set used for date filter, disabling date filtering, ignoring * attribute filters that are defined on the dashboard for the widget. * * @param ref - reference of the KPI widget to modify * @param settings - new filter settings to apply * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function replaceKpiWidgetFilterSettings(ref: ObjRef, settings: Omit, correlationId?: string): IChangeKpiWidgetFilterSettings; /** * Creates the ChangeKpiWidgetFilterSettings command for {@link IFilterOpReplaceAttributeIgnores} operation. * * Dispatching this command will result in replacement of KPI widget's attribute filter ignore-list. Those attribute filters * that use the provided displayForms for filtering will be ignored by the widget. * * @param ref - reference of the KPI widget to modify * @param displayForms - refs of display forms used by attribute filters that should be ignored * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function replaceKpiWidgetIgnoredFilters(ref: ObjRef, displayForms?: ObjRef[], correlationId?: string): IChangeKpiWidgetFilterSettings; /** * Creates the ReplaceSectionItem command. Dispatching this command will result in replacement of particular dashboard * item with a new item. By default, the old item will be discarded, however you may specify to stash it for later use. * * @param itemPath - path where the item to replace resides * @param item - new item definition * @param stashIdentifier - specify identifier of stash where the old item should be stored * @param autoResolveDateFilterDataset - specify whether dashboard should auto-resolve date dataset * to use for date filtering of KPI or insight widget that is replacing the existing item; default is disabled * meaning date filtering will be enabled only for those KPI or Insight widgets that already specify dateDataset. * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @alpha */ export declare function replaceNestedLayoutSectionItem(itemPath: ILayoutItemPath, item: DashboardItemDefinition, stashIdentifier?: StashedDashboardItemsId, autoResolveDateFilterDataset?: boolean, correlationId?: string): IReplaceSectionItem; /** * Creates the ReplaceSectionItem command. Dispatching this command will result in replacement of particular dashboard * item with a new item. By default, the old item will be discarded, however you may specify to stash it for later use. * * @remarks * This command operates only on the root layout. For nested layouts, use {@link replaceNestedLayoutSectionItem}. * * @param sectionIndex - index of section where the item to replace resides * @param itemIndex - index of item within the section * @param item - new item definition * @param stashIdentifier - specify identifier of stash where the old item should be stored * @param autoResolveDateFilterDataset - specify whether dashboard should auto-resolve date dataset * to use for date filtering of KPI or insight widget that is replacing the existing item; default is disabled * meaning date filtering will be enabled only for those KPI or Insight widgets that already specify dateDataset. * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta * * TODO LX-648: Consider removing this command variant and leave only a nested variant */ export declare function replaceSectionItem(sectionIndex: number, itemIndex: number, item: DashboardItemDefinition, stashIdentifier?: StashedDashboardItemsId, autoResolveDateFilterDataset?: boolean, correlationId?: string): IReplaceSectionItem; /** * Creates the ReplaceAttributeFilterItemSelection command for working filters. * * @param filterLocalId - dashboard attribute filter's local id * @param filter - the replacement filter item * @param correlationId - specify correlation id to use for this command * * @internal */ export declare function replaceWorkingAttributeFilterItemSelection(filterLocalId: string, filter: DashboardAttributeFilterItem, correlationId?: string, isSelectionInvalid?: boolean): ReplaceAttributeFilterItemSelection; /** * Creates the RepositionDashboardTab command. * * @param oldIndex - old index of the tab before the reposition * @param newIndex - new index of the tab after the reposition * @param correlationId - specify correlation id to use for this command * @returns reposition dashboard tab command * * @alpha */ export declare function repositionDashboardTab(oldIndex: number, newIndex: number, correlationId?: string): IRepositionDashboardTab; /** * @public */ export declare type RequestAsyncRender = IDashboardCommand & { readonly type: "GDC.DASH/CMD.RENDER.ASYNC.REQUEST"; readonly payload: RequestAsyncRenderPayload; }; /** * Notify the dashboard about asynchronous rendering (eg when the component needs to load some asynchronous data to be rendered) of the component. * * @remarks * * Mechanism is following: * - You must request async rendering for at least 1 component within 5 seconds of the {@link DashboardInitialized} event. * (If you do not register any asynchronous rendering, after 5 seconds the dashboard will announce that it is rendered by dispatching {@link DashboardRenderResolved} event.) * - You can request async rendering for any number of components. Requests are valid if the first rule is met * and not all asynchronous renderings have been resolved and the maximum timeout (20min by default) has not elapsed. * - The component may again request asynchronous rendering within 5 seconds of resolution. Maximum 3x. * (this is necessary to cover possible re-renders caused by data received from the components themselves, after they are rendered) * - Maximum rendering time of the dashboard is 20min - if some asynchronous renderings are not yet resolved at this time, {@link DashboardRenderResolved} event is dispatched anyway. * * - Each component on the dashboard that is rendered asynchronously should fire this command. * - Once the component is rendered, it should notify the dashboard by dispatching {@link resolveAsyncRender} command * with the corresponding identifier. * * By registering and resolving asynchronous data retrieval of the each widget, the dashboard is able to recognize and notify that it is fully rendered. * This mechanism is necessary for dashboard exports to PDF to work properly. * * @public * @param id - async render identifier * @param correlationId - specify correlation id to use for this command. * this will be included in all events that will be emitted during the command processing * @returns */ export declare function requestAsyncRender(id: string, correlationId?: string): RequestAsyncRender; /** * Payload of the {@link RequestAsyncRender} command. * @public */ export declare type RequestAsyncRenderPayload = { /** * Async render identifier (eg stringified widget {@link @gooddata/sdk-model#ObjRef}). */ readonly id: string; }; /** * Creates the RequestOpenDensityDialog command. * * @remarks * Dispatching this command will open the content density dialog. * * @param correlationId - specify correlation id to use for this command * * @alpha */ export declare function requestOpenDensityDialog(correlationId?: string): IRequestOpenDensityDialog; /** * A convenience function that will create ChangeAttributeFilterSelection command that will select all * elements of the dashboard attribute filter with the provided local id. * * @remarks * This is same as creating the ChangeAttributeFilterSelection command with empty elements and NOT_IN selection type. * * @param filterLocalId - dashboard attribute filter's local id * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @public */ export declare function resetAttributeFilterSelection(filterLocalId: string, correlationId?: string): ChangeAttributeFilterSelection; /** * Creates the ResetDashboard command. Dispatching this command will result in dropping all in-memory modifications * of the dashboard and reverting to a state that is persisted on the backend. In other words reset will get * dashboard to a state after the last save. * * Note: if a dashboard is not saved on a backend, then reset will clear the dashboard to an empty state. * * Limitation: reset command will have no impact on alerts or scheduled emails. These entites are persisted outside * the dashboard and have their own lifecycle. * * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function resetDashboard(correlationId?: string): IResetDashboard; /** * Creates the {@link IResetFilterContextWorkingSelection} command. * * @param correlationId - specify correlation id. It will be included in all events that will be emitted during the command processing. * @returns apply reset working filters command * * @alpha */ export declare function resetFilterContextWorkingSelection(correlationId?: string): IResetFilterContextWorkingSelection; /** * Creates the ResizeHeight command. * * @remarks * This command operates only on the root layout. For nested layouts, use {@link resizeNestedLayoutItemsHeight}. * * @param sectionIndex - index of the section * @param itemIndexes - indexes of the items * @param height - height in Grid Rows (by default 1 Grid Row is 20px) * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function resizeHeight(sectionIndex: number, itemIndexes: number[], height: number, correlationId?: string): IResizeHeight; /** * Creates the ResizeHeight command. * * @param sectionIndex - index of the section * @param itemIndexes - indexes of the items * @param height - height in Grid Rows (by default 1 Grid Row is 20px) * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @alpha */ export declare function resizeNestedLayoutItemsHeight(sectionIndex: ILayoutSectionPath, itemIndexes: number[], height: number, correlationId?: string): IResizeHeight; /** * Creates the ResizeWidth command. * * @param itemPath - index of the section * @param width - width in Grid Rows (by default 1 Grid Row is 20px) * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @alpha */ export declare function resizeNestedLayoutItemWidth(itemPath: ILayoutItemPath, width: number, correlationId?: string): IResizeWidth; /** * Creates the ResizeWidth command. * * @remarks * This command operates only on the root layout. For nested layouts, use {@link resizeNestedLayoutItemWidth}. * * @param sectionIndex - index of the section * @param itemIndex - index of the item * @param width - width in Grid Rows (by default 1 Grid Row is 20px) * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta * * TODO LX-648: Consider removing this command variant and leave only a nested variant */ export declare function resizeWidth(sectionIndex: number, itemIndex: number, width: number, correlationId?: string): IResizeWidth; /** * Supported dashboard filter types for values resolution. * * @remarks * Excludes {@link @gooddata/sdk-model#IMeasureValueFilter} — measure value filters carry static * comparison values, not values that need to be resolved against the backend. * * TODO INE: drill payload coverage of MVF will be finalised in * https://gooddata.atlassian.net/browse/CQ-2285 (drill-to-dashboard) and * https://gooddata.atlassian.net/browse/CQ-2286 (drill-to-URL); audit callers of * `resolveFilterValues` and any signatures previously typed as `IDashboardFilter[]` * when those tickets land. * * @alpha */ export declare type ResolvableFilter = Exclude; /** * @public */ export declare type ResolveAsyncRender = IDashboardCommand & { readonly type: "GDC.DASH/CMD.RENDER.ASYNC.RESOLVE"; readonly payload: ResolveAsyncRenderPayload; }; /** * Notify the dashboard about resolved asynchronous rendering of the component. * * @remarks * - Each component on the dashboard that is rendered asynchronously should fire this command. * - This command should only be dispatched if a {@link requestAsyncRender} command with the corresponding identifier * has already been dispatched. * * @public * @param id - async render identifier * @param correlationId - specify correlation id to use for this command. * this will be included in all events that will be emitted during the command processing * @returns */ export declare function resolveAsyncRender(id: string, correlationId?: string): ResolveAsyncRender; /** * Payload of the {@link ResolveAsyncRender} command. * @public */ export declare type ResolveAsyncRenderPayload = { /** * Async render identifier (eg stringified widget {@link @gooddata/sdk-model#ObjRef}). */ readonly id: string; }; /** * Dashboard configuration resolved using the config passed in via props and any essential data retrieved from * backend. * * @remarks * Note: the resolved config may still contain some undefined properties: * * - `mapboxToken` - has to be provided by the context * - `agGridToken` - has to be provided by the context * - `maxZoomLevel` - can be undefined if neither explicit config nor backend settings provide it * - `exportId` - optional, used for fetching filters during export mode * - `isReadOnly` - is purely choice of context in which the dashboard is used * * @public */ export declare type ResolvedDashboardConfig = Omit, "mapboxToken" | "agGridToken" | "maxZoomLevel" | "exportId" | "exportType" | "exportMetadata" | "focusObject" | "slideConfig" | "references" | "entitlements" | "initialContent" | "executionTimestamp" | "user" | "overrideDefaultFilters" | "overrideDefaultParameters" | "overrideTitle" | "hideWidgetTitles" | "workspaceDescriptor" | "evaluationFrequency" | "externalRecipient" | "openAutomationOnLoad" | "hideAddTabButton"> & DashboardConfig; /** * @alpha */ export declare type ResolvedDateFilterValues = IResolvedDateFilterValue[]; /** * * @beta */ export declare type ResolvedEntitlements = IEntitlementDescriptor[]; /** * Resolves filter values * * @param filters - Filters with resolvable values * = all selected elements of attribute filter * + from/to limits of relative date filter * + from/to limits of absolute date filter * @param backend - Analytical backend instance * @param workspace - Workspace id * @returns Map of resolved filter values per filter's identifier (date dimension ref or attribute DF ref) * @alpha */ export declare function resolveFilterValues(filters: ResolvableFilter[], backend?: IAnalyticalBackend, workspace?: string): Promise; /** * Resolves translation messages for the given locale. * Memoized to cache promises and prevent duplicate async imports. * * @internal */ export declare const resolveMessages: (locale: string) => Promise; /** * A convenience function to create UndoLayoutChanges command that will revert the very last command and toss it out * of history. * * @remarks * This is useful if you are implementing complex and cancellable interactions. For instance if you are building * drag-and-drop interaction which upon drag start removes item from a section using the RemoveSectionItem command and * upon drop places item in a new location using AddSectionItems command. * * When the user starts drag, you submit the RemoveSectionItem command (keeping the item in stash). Then user does * something to cancel the interaction: you need to restore the layout to the original state: that means to revert * the last layout change that was done by your interaction. * * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @alpha */ export declare function revertLastLayoutChange(correlationId?: string): IUndoLayoutChanges; /** * @public */ export declare type RichTextComponentProvider = (widget: IRichTextWidget) => CustomDashboardRichTextComponent; /** * Data attributes for export mode to be added to the rich text widget. * * @alpha */ export declare type RichTextDataAttributes = { "data-export-content-type"?: "markdown"; }; /** * @internal */ export declare type RichTextDraggableComponent = { DraggingComponent?: RichTextDraggingComponent; type: "richText"; }; /** * @internal */ export declare type RichTextDraggableItem = BaseDraggableMovingItem & { type: "richText"; }; /** * @internal */ export declare type RichTextDraggableListItem = BaseDraggableLayoutItem & { type: "richTextListItem"; }; /** * @internal */ export declare type RichTextDraggingComponent = ComponentType; /** * Data attributes for export mode to be added to the rich text widget and its components. * * When customizing a rich text widget component, spread these properties in the element intended * for export. * * @alpha */ export declare type RichTextExportData = { markdown?: RichTextDataAttributes; }; /** * @alpha */ export declare type RichTextMenuComponentProvider = (widget: IRichTextWidget) => CustomDashboardRichTextMenuComponent; /** * @internal */ export declare type RichTextMenuItemDependencies = { intl: IntlShape; dispatch: ReturnType; eventDispatch: ReturnType; enableRichTextWidgetFilterConfiguration?: boolean; }; /** * @alpha */ export declare type RichTextMenuItemsProvider = (widget: IRichTextWidget, defaultItems: IRichTextMenuItem[], closeMenu: () => void, renderMode: RenderMode) => IRichTextMenuItem[]; /** * @internal */ export declare type RichTextMenuTitleComponentProvider = (widget: IRichTextWidget) => CustomDashboardRichTextMenuTitleComponent; /** * Definition of RichText widget * @internal */ export declare type RichTextWidgetComponentSet = ICustomComponentBase> & DraggableComponent & Partial & Partial> & ConfigurableWidget; /** * @internal */ export declare function richTextWidgetContentChanged(ctx: DashboardContext, ref: ObjRef, content: string, correlationId?: string): IDashboardRichTextWidgetContentChanged; /** * @internal */ export declare function richTextWidgetFilterSettingsChanged(ctx: DashboardContext, ref: ObjRef, ignoredAttributeFilters: IDashboardAttributeFilter[], dateDatasetForFiltering: ICatalogDateDataset | undefined, correlationId?: string, ignoredDateFilters?: IDashboardDateFilter[]): IDashboardRichTextWidgetFilterSettingsChanged; /** * Creates the SaveAlert command. Dispatching this command will result in the saving alert on the backend. * * @param alert - specify alert to save. * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * @beta */ export declare function saveAlert(alert: IAutomationMetadataObject, correlationId?: string): ISaveAlert; /** * @internal */ export declare function SaveAsDialog(props: ISaveAsDialogProps): ReactElement; /** * @internal */ export declare function SaveAsNewButton(props: ISaveAsNewButtonProps): ReactElement; /** * @internal */ export declare function SaveButton(props: ISaveButtonProps): ReactElement; /** * Creates the SaveDashboard command. Dispatching this command will result in persisting all the accumulated * dashboard modification to backend. * * The command will not have any effect if dashboard is not initialized or is empty. * * @param title - new title for the dashboard; if not specified, the current title of the dashboard will be used * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function saveDashboard(title?: string, correlationId?: string): ISaveDashboard; /** * @public */ export declare type SaveDashboardAs = IDashboardCommand & { readonly type: "GDC.DASH/CMD.SAVEAS"; readonly payload: SaveDashboardAsPayload; }; /** * Creates the SaveDashboardAs command. * * @remarks * Dispatching this command will result in creation of a copy of the * current dashboard. The copy will reflect the current state of the dashboard including any modifications done * on top of the original dashboard. * * Upon success, a copy of the dashboard will be persisted on the backend. The context of the dashboard component * that processed the command is unchanged - it still works with the original dashboard. * * @param title - new title for the dashboard; if not specified, the title of original dashboard will be used * @param switchToCopy - indicate whether the dashboard component should switch to the dashboard that will * be created during save-as; the default is false * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * @param useOriginalFilterContext - indicate whether new dashboard should use original filter context * or the one with current filter selection. * @public */ export declare function saveDashboardAs(title?: string, switchToCopy?: boolean, useOriginalFilterContext?: boolean, correlationId?: string): SaveDashboardAs; /** * Payload of the {@link SaveDashboardAs} command. * @public */ export declare type SaveDashboardAsPayload = { /** * Specify new title for the dashboard that will be created during the Save As operation. */ readonly title?: string; /** * Indicate whether the dashboard component should switch to the copy of the dashboard or whether * it should stay on the current dashboard. */ readonly switchToCopy?: boolean; /** * Indicates whether new dashboard should use the original filter context or whether to use the one * with current filter selection. */ readonly useOriginalFilterContext?: boolean; }; /** * @alpha */ export declare type SavedFilterViewInteractionPayload = IUserInteractionPayloadWithDataBase<"savedFilterViewInteraction", ISavedFilterViewInteractionData>; /** * @alpha */ export declare type SavedFilterViewInteractionType = "DIALOG_OPENED"; /** * Creates the {@link ISaveFilterView} command. * * @remarks * Dispatching this command will result into snapshotting of the current dashboard filter context into a * filter view that will be persisted. User can later apply it to the filter context to restore it to the * saved state. * * @alpha * @param name - name of the filter view under which it will be listed in UI. * @param isDefault - determine if new filter view should be set as a default. * @param correlationId - specify correlation id. It will be included in all events that will be emitted during the command processing. * @returns save filter view command */ export declare function saveFilterView(name: string, isDefault: boolean, correlationId?: string): ISaveFilterView; /** * Saves existing SaveScheduledEmail command. Dispatching this command will result in saving scheduled email on the backend. * * @param scheduledEmail - specify scheduled email to save. * @param correlationId - optionally specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * @beta */ export declare function saveScheduledEmail(scheduledEmail: IAutomationMetadataObject, correlationId?: string): ISaveScheduledEmail; /** * @public */ export declare type SavingState = { /** @beta */ saving: boolean; /** @beta */ result?: boolean; /** @beta */ error?: Error; }; /** * @internal */ export declare function ScheduledEmailDialog(props: IScheduledEmailDialogProps): ReactElement; /** * @internal */ export declare function ScheduledEmailManagementDialog(props: IScheduledEmailManagementDialogProps): ReactElement; /** * @internal */ export declare type SchedulingDisabledReason = "incompatibleWidget" | "oldWidget" | "disabledOnInsight"; /** * Data attributes with export specification for section description component. * * @alpha */ export declare type SectionDescriptionExportDataAttributes = CommonExportDataAttributes & { "data-export-description-status"?: "loading" | "loaded" | "error"; }; /** * Data attributes for export mode to be added to the layout section header and its components. * * @alpha */ export declare type SectionExportData = HeaderExportData & { section?: CommonExportDataAttributes; }; /** * @alpha */ export declare type SectionSlidesTransformer = (section: IDashboardLayoutSection, fn: ISectionSlidesTransformerFunction) => IDashboardLayoutSection[] | undefined; /** * Select all accessible dashboard in project. * * @alpha */ export declare const selectAccessibleDashboards: (state: DashboardState) => IListedDashboard[]; /** * Select if accessible dashboards were loaded * * @alpha */ export declare const selectAccessibleDashboardsLoaded: DashboardSelector; /** * Select all accessible dashboard in project and returns them in a mapping of obj ref to the insight object. * * @alpha */ export declare const selectAccessibleDashboardsMap: DashboardSelector>; /** * Returns the active calendars configuration from workspace settings. * Controls which calendar types (standard/fiscal) are available. * * @alpha */ export declare const selectActiveCalendars: DashboardSelector; /** * The selector returns layout path of active section. * * @internal */ export declare const selectActiveSection: DashboardSelector; /** * The selector returns index of active section. * * @internal * @deprecated The selector returns index in its parent section layout. The information is not useful on its * own when dashboard uses nested layout. For this case use {@link selectActiveSection} instead. * * TODO LX-648: remove this selector, exported only for backward compatible reasons. */ export declare const selectActiveSectionIndex: DashboardSelector; /** * Returns the currently active tab, or undefined if no tab is active or tabs are not present. * * @alpha */ export declare const selectActiveTab: DashboardSelector; /** * Returns the local identifier of the currently active tab. * * @alpha */ export declare const selectActiveTabLocalIdentifier: DashboardSelector; /** * @alpha */ export declare const selectAdhocDateHierarchies: DashboardSelector; /** * Returns AgGrid token. * * @internal */ export declare const selectAgGridToken: DashboardSelector; /** * @internal */ export declare const selectAlertingDialogReturnFocusTo: DashboardSelector; /** * Selects all non-custom widgets in the layout. * * @alpha */ export declare const selectAllAnalyticalWidgets: DashboardSelector; /** * Returns workspace automations count. * * @alpha */ export declare const selectAllAutomationsCount: DashboardSelector; /** * @alpha */ export declare const selectAllCatalogAttributeHierarchies: DashboardSelector<(ICatalogAttributeHierarchy | ICatalogDateAttributeHierarchy)[]>; /** * Selects all attributes in the catalog as a mapping of ref to catalog's attribute object. The mapping * will include both 'normal' attributes and attributes from date datasets. * * @remarks see `isCatalogAttribute` guard; this can be used to determine type of attribute * @alpha */ export declare const selectAllCatalogAttributesMap: DashboardSelector>; /** * Selects all date datasets in the catalog as a mapping of obj ref to date dataset. * * @alpha */ export declare const selectAllCatalogDateDatasetsMap: DashboardSelector>; /** * Selects all display forms in the catalog as a mapping of obj ref to display form * * @alpha */ export declare const selectAllCatalogDisplayFormsMap: DashboardSelector>; /** * Selects all measures in the catalog as a mapping of ref to catalog's measure object. * * @alpha */ export declare const selectAllCatalogMeasuresMap: DashboardSelector>; /** * Selects all custom widgets in the layout. * * @alpha */ export declare const selectAllCustomWidgets: DashboardSelector; /** * Selects all insight widgets in the layout. * * @alpha */ export declare const selectAllInsightWidgets: DashboardSelector; /** * Selects all KPI widgets in the layout. * * @alpha */ export declare const selectAllKpiWidgets: DashboardSelector; /** * Returns whether creating new insight from dashboard is enabled. * * @internal */ export declare const selectAllowCreateInsightRequest: DashboardSelector; /** * Selector for {@link @gooddata/sdk-backend-spi#IBackendCapabilities.allowMultipleInteractionsPerAttributeAndMeasure} * * @internal */ export declare const selectAllowMultipleInteractionsPerAttributeAndMeasure: DashboardSelector; /** * Returns whether unfinished features are allowed. * * @internal */ export declare const selectAllowUnfinishedFeatures: DashboardSelector; /** * Selects analytical widget by its ref. This selector will return undefined if the provided * widget ref is not analytical widget, eg. custom widget or nested layout. * * @remarks * To include custom widgets as well, use {@link selectWidgetByRef}. * * @alpha */ export declare const selectAnalyticalWidgetByRef: (ref: ObjRef | undefined) => DashboardSelector; /** * Get a map of attribute filter displayAsLabels * * @alpha */ export declare const selectAttributeFilterConfigsDisplayAsLabelMap: DashboardSelector>; /** * Get a map of attribute filter modes directly from dashboard attribute filter configurations. * * @alpha */ export declare const selectAttributeFilterConfigsModeMap: DashboardSelector>; /** * Get a map of attribute filter modes keyed by tab identifier. * * @remarks * Returns a record where each key is a tab identifier and the value is a Map of attribute filter modes * for that tab. Useful when you need to access filter modes for all tabs at once. * * @internal */ export declare const selectAttributeFilterConfigsModeMapByTab: DashboardSelector>>; /** * Returns attribute filter configs that is specified on the loaded dashboard. * * The dashboard-level attribute filter configuration MAY contain overrides and additional configuration to apply * on top of the workspace-level attribute filter config. If the dashboard-level overrides are not specified, then * the workspace-level config should be taken as-is. * * @alpha */ export declare const selectAttributeFilterConfigsOverrides: DashboardSelector; /** * Returns attribute filter config overrides keyed by tab identifier. * * @internal */ export declare const selectAttributeFilterConfigsOverridesByTab: DashboardSelector>; /** * Get a map of attribute filter available modes from dashboard attribute filter configurations. * * @internal */ export declare const selectAttributeFilterConfigsSelectionTypeMap: DashboardSelector>; /** * Get a map of attribute filter selection types keyed by tab identifier. * * @remarks * Returns a record where each key is a tab identifier and the value is a Map of attribute filter * `selectionType` values for that tab. Use when rendering filters for a specific tab (not only the active one). * * @internal */ export declare const selectAttributeFilterConfigsSelectionTypeMapByTab: DashboardSelector>>; /** * Creates a selector for selecting all descendants of the attribute filter with given localId. * * @remarks * Invocations before initialization lead to invariant errors. * This selector should only be used when circular filter dependencies are not allowed. * * @public */ export declare const selectAttributeFilterDescendants: (localId: string) => DashboardSelector; /** * Creates a selector to get a display form of an element-based filter defined by its local identifier. * * @internal * @deprecated Use {@link selectAttributeFilterItemDisplayFormByLocalId} to include all attribute filter types. */ export declare const selectAttributeFilterDisplayFormByLocalId: (localId: string) => DashboardSelector; /** * Selects list of display form metadata objects referenced by attribute filters. * * @remarks * Invocations before initialization lead to invariant errors. * * @returns an array of {@link @gooddata/sdk-backend-spi#IAttributeDisplayFormMetadataObject} * * @public */ export declare const selectAttributeFilterDisplayForms: DashboardSelector; /** * Selects map of display form metadata objects referenced by attribute filters. * * @remarks * Invocations before initialization lead to invariant errors. * * @returns a {@link ObjRefMap} of {@link @gooddata/sdk-backend-spi#IAttributeDisplayFormMetadataObject} * * @internal */ export declare const selectAttributeFilterDisplayFormsMap: DashboardSelector>; /** * Creates a selector to get a display form of any attribute-based filter defined by its local identifier. * Matches element-based, arbitrary, and match attribute filters. * * @internal */ export declare const selectAttributeFilterItemDisplayFormByLocalId: (localId: string) => DashboardSelector; /** * @alpha */ export declare const selectAttributesWithDrillDown: DashboardSelector<(ICatalogAttribute | ICatalogDateAttribute)[]>; /** * @alpha */ export declare const selectAutomationAvailableDashboardFilters: DashboardSelector; /** * @alpha */ export declare const selectAutomationCommonDateFilterId: DashboardSelector; /** * @alpha */ export declare const selectAutomationDefaultSelectedFilters: DashboardSelector; /** * Returns automation-available filters structured per tab. * Each entry includes tab information and the filters applicable to that tab. * This selector is useful for whole dashboard automations when dashboard tabs are enabled. * * @alpha */ export declare const selectAutomationFiltersByTab: DashboardSelector; /** * Returns organization automations error * * @alpha */ export declare const selectAutomationsError: DashboardSelector; /** * Returns the invalidation ID for automations management. * When this value changes (and is not 0 or undefined), the Automations component should reload its data. * * @alpha */ export declare const selectAutomationsInvalidationId: DashboardSelector; /** * Returns workspace automations loading * * @alpha */ export declare const selectAutomationsIsInitialized: DashboardSelector; /** * Returns workspace automations loading * * @alpha */ export declare const selectAutomationsIsLoading: DashboardSelector; /** * This selector returns capabilities of the backend with which the dashboard works. * * @public */ export declare const selectBackendCapabilities: DashboardSelector; /** * This selector returns whether any more attribute filters can be added. * * @remarks * It is expected that the selector is called only after the filter context state is correctly initialized. * Invocations before initialization lead to invariant errors. * * @public * @deprecated use selectCanAddMoreFilters instead */ export declare const selectCanAddMoreAttributeFilters: DashboardSelector; /** * This selector returns whether any more attribute filters can be added. * * @remarks * It is expected that the selector is called only after the filter context state is correctly initialized. * Invocations before initialization lead to invariant errors. * * @public */ export declare const selectCanAddMoreFilters: DashboardSelector; /** * Returns whether the current user has permissions to create a KPI dashboard object via API. * * @public */ export declare const selectCanCreateAnalyticalDashboard: DashboardSelector; /** * Returns whether the current user has permissions to create automation. * * @internal */ export declare const selectCanCreateAutomation: DashboardSelector; /** * Returns whether the current user has permissions necessary to create a filter view * * @public */ export declare const selectCanCreateFilterView: DashboardSelector; /** * Returns whether the current user has permissions to create a scheduled email object and a KPI alert object. * * @public */ export declare const selectCanCreateScheduledMail: DashboardSelector; /** * Returns whether the current user has permissions to create a KPI object, KPI widget object, and an insight object via API. * * @public */ export declare const selectCanCreateVisualization: DashboardSelector; /** * Returns whether the current user has permissions to edit dashboard. * * @public */ export declare const selectCanEditDashboardPermission: DashboardSelector; /** * Returns whether the current user has permissions to edit locked dashboard. * * @public */ export declare const selectCanEditLockedDashboardPermission: DashboardSelector; /** * @internal */ export declare const selectCanEnterEditMode: DashboardSelector; /** * @internal */ export declare const selectCanEnterEditModeAndIsLoaded: DashboardSelector; /** * Returns whether the current user has permissions necessary to export insights to CSV.. * * @public */ export declare const selectCanExecuteRaw: DashboardSelector; /** * Returns whether the current user has permissions necessary to export insights in visual form (pdf, pptx, png) * * @public */ export declare const selectCanExportPdf: DashboardSelector; /** * Returns whether the current user has permissions necessary to export insights. * * @public */ export declare const selectCanExportReport: DashboardSelector; /** * Returns whether the current user has permissions necessary to export insights in tabular form (csv, xlsx) * * @public */ export declare const selectCanExportTabular: DashboardSelector; /** * Returns whether the current user has permissions to run MAQL DDL and DML, access a workspace staging directory. * * @public */ export declare const selectCanInitData: DashboardSelector; /** * Returns whether the current user has permissions to invite a user to a workspace or delete an invitation. * * @public */ export declare const selectCanInviteUserToWorkspace: DashboardSelector; /** * Returns whether the current user has permissions to list users, roles, and permissions. * * @public */ export declare const selectCanListUsersInWorkspace: DashboardSelector; /** * Returns whether the current user has permissions to add, remove, and list ACLs (Access Control Lists) on an object. * * @public */ export declare const selectCanManageACL: DashboardSelector; /** * Returns whether the current user has permissions to modify and delete a KPI dashboard object. * * @public */ export declare const selectCanManageAnalyticalDashboard: DashboardSelector; /** * Returns whether the current user has permissions to create/edit/delete attribute hierarchy. * * @internal */ export declare const selectCanManageAttributeHierarchy: DashboardSelector; /** * Returns whether the current user has permissions to modify and delete a domain, run MAQL DDL. * * @public */ export declare const selectCanManageDomain: DashboardSelector; /** * Returns whether the current user has permissions to modify and delete a metric, run MAQL DDL, run the MAQL validator, change metric visibility via the `unlisted` flag. * * @public */ export declare const selectCanManageMetric: DashboardSelector; /** * Returns whether the current user has permissions to manage scheduled email objects. * * @public */ export declare const selectCanManageScheduledMail: DashboardSelector; /** * Returns whether the current user has permissions to modify workspace metadata, see the workspace token, lock and unlock objects, delete locked objects, set and unset the restricted flag on objects, clear cache, delete a workspace. * * @public */ export declare const selectCanManageWorkspace: DashboardSelector; /** * Returns whether the current user has permissions to run uploads, load date dimensions, access a workspace staging directory. * * @public */ export declare const selectCanRefreshData: DashboardSelector; /** * @internal */ export declare function selectCanSaveDashboard(state: DashboardState): boolean; /** * Returns whether the current user has permissions to share dashboard. * * @public */ export declare const selectCanShareDashboardPermission: DashboardSelector; /** * Returns whether the current user has permissions to share a locked dashboard. * * @public */ export declare const selectCanShareLockedDashboardPermission: DashboardSelector; /** * Returns whether the current user has permissions to upload CSV files via CSV Uploader. * * @public */ export declare const selectCanUploadNonProductionCSV: DashboardSelector; /** * Returns whether the current user has permissions to use AI assistant. * * @internal */ export declare const selectCanUseAiAssistant: DashboardSelector; /** * Returns whether the current user has permissions to view dashboard. * * @public */ export declare const selectCanViewDashboardPermission: DashboardSelector; /** * @public */ export declare const selectCatalogAttributeDisplayForms: DashboardSelector; /** * @public */ export declare const selectCatalogAttributeDisplayFormsById: DashboardSelector>; /** * @beta */ export declare const selectCatalogAttributeHierarchies: DashboardSelector; /** * @public */ export declare const selectCatalogAttributes: DashboardSelector; /** * @public */ export declare const selectCatalogDateAttributes: DashboardSelector; /** * @public */ export declare const selectCatalogDateDatasets: DashboardSelector; /** * @public */ export declare const selectCatalogFacts: DashboardSelector; /** * @alpha */ export declare const selectCatalogIsLoaded: DashboardSelector; /** * Returns the dashboard-wide map from metric ref string to the parameter refs the metric depends on. * The map is populated during dashboard initialization from the workspace references service. * * @alpha */ export declare const selectCatalogMeasureParameters: DashboardSelector>; /** * Returns the load status of the dashboard-wide metric → parameter dependency map. * * @alpha */ export declare const selectCatalogMeasureParametersStatus: DashboardSelector; /** * @public */ export declare const selectCatalogMeasures: DashboardSelector; /** * Returns the workspace parameters loaded into the dashboard catalog. * * @alpha */ export declare const selectCatalogParameters: DashboardSelector; /** * Returns true once the catalog parameters loader has succeeded. * * @alpha */ export declare const selectCatalogParametersIsLoaded: DashboardSelector; /** * Returns the load status of catalog parameters. * * @alpha */ export declare const selectCatalogParametersStatus: DashboardSelector; /** * Returns the color palette for dashboard charts. * * @public */ export declare const selectColorPalette: DashboardSelector; /** * Selects whether the common export is available. * * @internal */ export declare const selectCommonExportAvailable: DashboardSelector; /** * Returns dashboard's config. * * @remarks * It is expected that the selector is called only after the config state * is correctly initialized. Invocations before initialization lead to invariant errors. * * @public */ export declare const selectConfig: DashboardSelector; /** * @internal */ export declare const selectConfigurationPanelOpened: DashboardSelector; /** * @internal */ export declare const selectConfiguredAndImplicitDrillsByWidgetRef: (ref: ObjRef) => DashboardSelector; /** * @internal */ export declare const selectConfiguredDrillsByWidgetRef: (ref: ObjRef) => DashboardSelector; /** * @internal */ export declare const selectCrossFilteringEnabledAndSupported: DashboardSelector; /** * @beta */ export declare const selectCrossFilteringFiltersLocalIdentifiers: DashboardSelector; /** * @beta */ export declare const selectCrossFilteringFiltersLocalIdentifiersByWidgetRef: (ref: ObjRef | undefined) => DashboardSelector; /** * @beta */ export declare const selectCrossFilteringItemByWidgetRef: (ref: ObjRef | undefined) => DashboardSelector; /** * Returns cross filtering items for the active tab (when tabs enabled) or default tab (when tabs disabled). * * @beta */ export declare const selectCrossFilteringItems: DashboardSelector; /** * @beta */ export declare const selectCrossFilteringSelectedPointsByWidgetRef: (ref: ObjRef | undefined) => DashboardSelector; /** * This selector returns current logged in user. * * @remarks * It is expected that the selector is called only after the permission state is correctly initialized. * Invocations before initialization lead to invariant errors. * * @example - on how to use `selectCurrentUser` selector within a Dashboard Plugin. * ``` * // create the component using current user selector * const Greetings = () => { * // read the currently logged in user information * const user = useDashboardSelector(selectCurrentUser); * * return
Hello, {user.fullName}
; * } * * // in a plugin's register function just use the component as a custom widget type * customize.customWidgets().addCustomWidget("greetingsWidget", Greetings); * * customize.layout().customizeFluidLayout((_layout, customizer) => { * customizer.addSection( * 0, * newDashboardSection( * "Greetings by Plugin", * newDashboardItem(newCustomWidget("greetings", "greetingsWidget"), { * xl: { * // all 12 columns of the grid will be 'allocated' for this new item * gridWidth: 12, * // minimum height since the custom widget now has just some one-liner text * gridHeight: 1, * }, * }), * ), * ); * }); * * ``` * * @returns - an {@link @gooddata/sdk-model#IUser} object for logged in user. * @public */ export declare const selectCurrentUser: DashboardSelector; /** * This selector returns current logged in user ref. * * @remarks * It is expected that the selector is called only after the permission state is correctly initialized. * Invocations before initialization lead to invariant errors. * * @returns - an {@link @gooddata/sdk-model#ObjRef} of the logged in user. * @public */ export declare const selectCurrentUserRef: DashboardSelector; /** * Returns the current dashboard density setting. * * @remarks * The value reflects either the theme-enforced density or the user's local preference. * Defaults to "comfortable". * * @alpha */ export declare const selectDashboardDensity: DashboardSelector; /** * Selects current dashboard description. * * @public */ export declare const selectDashboardDescription: DashboardSelector; /** * Selects dashboard's descriptor. * * @internal */ export declare const selectDashboardDescriptor: DashboardSelector; /** * Setting of dashboard filters apply mode. The value is resolved in the following order: * If set on workspace level, workspace setting is used. * If not set on workspace level, organization setting is used. * If none of them are set, INDIVIDIAL mode is default. * @alpha */ export declare const selectDashboardFiltersApplyMode: DashboardSelector; /** * @alpha */ export declare const selectDashboardFiltersWithoutCrossFiltering: DashboardSelector; /** * @alpha */ export declare const selectDashboardHiddenFilters: DashboardSelector; /** * Selects identifier of the persisted dashboard object that backs and is rendered-by the dashboard component. * * @remarks * Note that this may be undefined when the dashboard component works with a dashboard that has not yet * been persisted (typically newly created dashboard being edited). * * @public */ export declare const selectDashboardId: DashboardSelector; /** * Selects idRef of the persisted dashboard object that backs and is rendered-by the dashboard component. * * @remarks * Note that this may be undefined when the dashboard component works with a dashboard that has not yet * been persisted (typically newly created dashboard being edited). * * @public */ export declare const selectDashboardIdRef: DashboardSelector; /** * @internal */ export declare const selectDashboardLoading: DashboardSelector; /** * @alpha */ export declare const selectDashboardLockedFilters: DashboardSelector; /** * Selects dashboard lock status. * * @alpha */ export declare const selectDashboardLockStatus: DashboardSelector; /** * Returns the full per-parameter entries (persisted shape + ephemeral `runtimeOverride`) for the * active tab. * * @internal */ export declare const selectDashboardParameterEntries: DashboardSelector; /** * Returns the persisted-shape parameter entries currently held by the active tab. * * @alpha */ export declare const selectDashboardParameters: DashboardSelector; /** * This selector returns user's dashboard permissions. * * @remarks * It is expected that the selector is called only after the dashboard permission state is correctly initialized. * Invocations before initialization lead to invariant errors. * * If the permission is not supported by GoodData Cloud and GoodData.CN backends, the selector always returns `false` value. * * In case you need multiple permissions available in your application, use this common selector. * * @public */ export declare const selectDashboardPermissions: DashboardSelector; /** * Selects ref of the persisted dashboard object that backs and is rendered-by the dashboard component. * * @remarks * Note that this may be undefined when the dashboard component works with a dashboard that has not yet * been persisted (typically newly created dashboard being edited). * * @public */ export declare const selectDashboardRef: DashboardSelector; /** * @internal */ export declare const selectDashboardSaving: DashboardSelector; /** * Selects complete dashboard share info. * * @alpha */ export declare const selectDashboardShareInfo: DashboardSelector; /** * Selects dashboard share status. * * @alpha */ export declare const selectDashboardShareStatus: DashboardSelector; /** * Selects dashboard tags. * * @public */ export declare const selectDashboardTags: DashboardSelector; /** * Selects current dashboard title. * * @public */ export declare const selectDashboardTitle: DashboardSelector; /** * Selects URI of the persisted dashboard object that backs and is rendered-by the dashboard component. * * @remarks * Note that this may be undefined when the dashboard component works with a dashboard that has not yet * been persisted (typically newly created dashboard being edited). * * @public */ export declare const selectDashboardUri: DashboardSelector; /** * Selects uriRef of the persisted dashboard object that backs and is rendered-by the dashboard component. * * @remarks * Note that this may be undefined when the dashboard component works with a dashboard that has not yet * been persisted (typically newly created dashboard being edited). * * @public */ export declare const selectDashboardUriRef: DashboardSelector; /** * Returns workspace alerts. * * @alpha */ export declare const selectDashboardUserAutomationAlerts: DashboardSelector; /** * Returns workspace alerts for current dashboard, widget and user context. * * @alpha */ export declare const selectDashboardUserAutomationAlertsInContext: (widgetLocalIdentifier: string | undefined) => DashboardSelector; /** * Returns workspace automations. * * @alpha */ export declare const selectDashboardUserAutomations: DashboardSelector; /** * Returns workspace schedules. * * @alpha */ export declare const selectDashboardUserAutomationSchedules: DashboardSelector; /** * Returns workspace schedules for current dashboard, widget and user context. * * @alpha */ export declare const selectDashboardUserAutomationSchedulesInContext: (widgetLocalIdentifier: string | undefined) => DashboardSelector; /** * @internal */ export declare const selectDashboardWorkingDefinition: DashboardSelector>; /** * Selector that will return date datasets for insight. The input to the selector is the dashboard query that is used * to obtain and cache the data. * * This selector will return undefined if the query to obtain the data for particular insight was not yet fired or * processed. Otherwise, will return object containing `status` of the data retrieval; if the `status` is * `'success'` then the `result` prop will contain the data. * * @remarks see {@link IQueryInsightDateDatasets} * @internal */ export declare const selectDateDatasetsForInsight: selectDateDatasetsForInsightType; /** * Type of the selector that will return date datasets for insight. * @internal */ export declare type selectDateDatasetsForInsightType = (query: IQueryInsightDateDatasets) => (state: DashboardState, ...params: any[]) => QueryCacheEntryResult | undefined; /** * Selector that will return date datasets for a measure. The input to the selector is the dashboard query that is used * to obtain and cache the data. * * This selector will return undefined if the query to obtain the data for a particular measure was not yet fired or * processed. Otherwise, will return object containing `status` of the data retrieval; if the `status` is * `'success'` then the `result` prop will contain the data. * * @remarks see {@link IQueryMeasureDateDatasets} * @internal */ export declare const selectDateDatasetsForMeasure: selectDateDatasetsForMeasureType; /** * Type of the selector that will return date datasets for a measure. * @internal */ export declare type selectDateDatasetsForMeasureType = (query: IQueryMeasureDateDatasets) => (state: DashboardState, ...params: any[]) => QueryCacheEntryResult | undefined; /** * Returns workspace-level configuration for the of the date filter options and presets. * * @remarks * Note: this configuration SHOULD be further augmented by the dashboard-level overrides to obtain * the effective date filter configuration. * * @public */ export declare const selectDateFilterConfig: DashboardSelector; /** * Returns date filter config that is specified on the loaded dashboard. * * The dashboard-level date filter configuration MAY contain overrides and additional configuration to apply * on top of the workspace-level date filter config. If the dashboard-level overrides are not specified, then * the workspace-level config should be taken as-is. * * @remarks See {@link selectEffectiveDateFilterConfig} - you can use this selector to obtain the effective * date filter config that contains the final config obtained by merging the workspace-level config and the * dashboard-level overrides. * * @alpha */ export declare const selectDateFilterConfigOverrides: DashboardSelector; /** * Returns date filter config overrides keyed by tab identifier. * * @internal */ export declare const selectDateFilterConfigOverridesByTab: DashboardSelector>; /** * Get a map of date filter modes directly from dashboard date filter configurations. * * @alpha */ export declare const selectDateFilterConfigsModeMap: DashboardSelector>; /** * Get a map of date filter modes keyed by tab identifier. * * @remarks * Returns a record where each key is a tab identifier and the value is a Map of date filter modes * for that tab. Useful when you need to access filter modes for all tabs at once. * * @internal */ export declare const selectDateFilterConfigsModeMapByTab: DashboardSelector>>; /** * Returns date filter configs that is specified on the loaded dashboard. * * The dashboard-level date filter configuration MAY contain overrides and additional configuration to apply * on top of the workspace-level date filter config. If the dashboard-level overrides are not specified, then * the workspace-level config should be taken as-is. * * @alpha */ export declare const selectDateFilterConfigsOverrides: DashboardSelector; /** * Returns date filter configs keyed by tab identifier. * * @internal */ export declare const selectDateFilterConfigsOverridesByTab: DashboardSelector>; /** * Returns the date filter config validation result warnings indicating any problems encountered during the date filter config resolution. * * @alpha */ export declare const selectDateFilterConfigValidationWarnings: DashboardSelector; /** * Returns date format. * * @public */ export declare const selectDateFormat: DashboardSelector; /** * @alpha */ export declare const selectDateHierarchyTemplates: DashboardSelector; /** * Selects default filter overrides for the dashboard. * * @beta */ export declare const selectDefaultFilterOverrides: DashboardSelector; /** * Selects whether the delete button is visible. * * @internal */ export declare const selectDeleteVisible: DashboardSelector; /** * Selects whether dashboard cross filtering is disabled. * * @public */ export declare const selectDisableDashboardCrossFiltering: DashboardSelector; /** * Selects whether user filter reset is disabled. * * @public */ export declare const selectDisableDashboardUserFilterReset: DashboardSelector; /** * Selects whether user filter save is disabled. * * @public */ export declare const selectDisableDashboardUserFilterSave: DashboardSelector; /** * Returns whether the default drills configured on the widgets or implicit drills (eg. drill down) are disabled. * This option does not affect drilling enabled by drillableItems. * * @public */ export declare const selectDisableDefaultDrills: DashboardSelector; /** * Selects whether filter views are disabled. * * @public */ export declare const selectDisableFilterViews: DashboardSelector; /** * Returns whether we should disable the underline in KPIs when they are drillable. * * @internal */ export declare const selectDisableKpiDashboardHeadlineUnderline: DashboardSelector; /** * @internal */ export declare const selectDraggingWidgetSource: DashboardSelector; /** * @internal * * @deprecated The selector returns coordinates in its parent section layout. The information is not useful on its * own when dashboard uses nested layout. For this case use {@link selectDraggingWidgetTargetLayoutPath} instead. * * TODO LX-648: remove this selector, exported only for backward compatible reasons. */ export declare const selectDraggingWidgetTarget: DashboardSelector; /** * @internal */ export declare const selectDraggingWidgetTargetLayoutPath: DashboardSelector; /** * @internal */ export declare const selectDraggingWidgetTriggeringDropZoneType: DashboardSelector; /** * Returns drillable items for the active tab (when tabs enabled) or default tab (when tabs disabled). * * @alpha */ export declare const selectDrillableItems: DashboardSelector; /** * @internal */ export declare const selectDrillableItemsByAvailableDrillTargets: (availableDrillTargets: IAvailableDrillTargets | undefined, ignoredDrillDownHierarchies: IDrillDownReference[] | undefined, disableDrillIntoURL: boolean | undefined) => DashboardSelector; /** * @internal */ export declare const selectDrillableItemsByWidgetRef: (ref: ObjRef) => DashboardSelector; /** * @internal */ export declare const selectDrillsToUrlAttributeByWidgetRef: (ref: ObjRef) => DashboardSelector; /** * Return all widgets drill targets * @alpha */ export declare const selectDrillTargets: DashboardSelector>; /** * Selects drill targets by widget ref. * * @alpha */ export declare const selectDrillTargetsByWidgetRef: (ref: ObjRef) => DashboardSelector; /** * Get a map of attribute filter modes based on the current screen mode (edit or view). * * @remarks * The mode will always be active in edit mode; otherwise, the mode is taken from the dashboard attribute filter. * * @alpha */ export declare const selectEffectiveAttributeFiltersModeMap: DashboardSelector>; /** * Returns effective date filter options from. This is created by merging the workspace-level * date filter config and the dashboard-level date filter config. * * These are the date filter options that the DateFilter SHOULD use when rendering filtering presets. * * @alpha */ export declare const selectEffectiveDateFilterAvailableGranularities: DashboardSelector; /** * Returns effective date filter available granularities for a specific tab. * * @param tabLocalIdentifier - Tab local identifier * @returns Available granularities for the specified tab * * @internal */ export declare const selectEffectiveDateFilterAvailableGranularitiesForTab: (tabLocalIdentifier: string) => DashboardSelector; /** * Returns effective date filter config. The effective date filter config is created by merging the workspace-level * date filter config and the dashboard-level date filter config. * * This is the configuration that the DateFilter SHOULD use when rendering filtering presets. * * @alpha */ export declare const selectEffectiveDateFilterConfig: DashboardSelector; /** * Returns effective date filter config for a specific tab. * * @param tabLocalIdentifier - Tab local identifier * @returns Effective date filter config for the specified tab * * @internal */ export declare const selectEffectiveDateFilterConfigForTab: (tabLocalIdentifier: string) => DashboardSelector; /** * Returns display mode for the effective date filter. This always comes from the dashboard-level date filter config overrides - regardless whether * the rest of the overrides are actually used. * * @alpha */ export declare const selectEffectiveDateFilterMode: DashboardSelector; /** * Returns effective date filter options. This is created by merging the workspace-level * date filter config and the dashboard-level date filter config. * * These are the date filter options that the DateFilter SHOULD use when rendering filtering presets. * * @alpha */ export declare const selectEffectiveDateFilterOptions: DashboardSelector; /** * Returns effective date filter options for a specific tab. * * @param tabLocalIdentifier - Tab local identifier * @returns Date filter options for the specified tab * * @internal */ export declare const selectEffectiveDateFilterOptionsForTab: (tabLocalIdentifier: string) => DashboardSelector; /** * Get a map of date filter modes based on the current screen mode (edit or view). * * @remarks * The mode will always be active in edit mode; otherwise, the mode is taken from the dashboard date filter. * * @alpha */ export declare const selectEffectiveDateFiltersModeMap: DashboardSelector>; /** * Returns custom title to use for the date filter. Custom title comes from the dashboard-level date filter config overrides. If no overrides * were defined OR the effective date filter config is not using them (because applying them means the final date filter config is invalid), * then no custom filter should be used. * * @alpha */ export declare const selectEffectiveDateFilterTitle: DashboardSelector; /** * Returns the parameter values to inject into the widget's `IExecutionConfig.parameterValues`. * * @remarks * For each parameter referenced by the widget's metrics (via the dashboard-wide MAQL * metric → parameter dependency map), the value is resolved in this order: * * 1. dashboard chip on the widget's tab with `runtimeOverride !== undefined`, * 2. else `insight.parameters` entry for that ref (AD-authored per-insight override), * 3. else nothing (backend uses workspace default). * * Parameters not referenced by the widget's metrics are excluded so that adding/removing * unrelated parameters does not invalidate the widget's `defFingerprint`. Returns `[]` when * `enableParameters` is off or while the dependency map has not been loaded. * * @alpha */ export declare const selectEffectiveParameterValuesForWidget: (ref: ObjRef | undefined) => DashboardSelector; /** * Selector for the accessible mode feature flag * * @internal */ export declare const selectEnableAccessibilityMode: DashboardSelector; /** * Returns whether anomaly detection alert is enabled. * * @internal */ export declare const selectEnableAnomalyDetectionAlert: DashboardSelector; /** * Selector for the automation evaluation mode feature flag * * @internal */ export declare const selectEnableAutomationEvaluationMode: DashboardSelector; /** * Returns whether the dashboard density setting is enabled. * * @internal */ export declare const selectEnableDashboardDensitySetting: DashboardSelector; /** * Returns whether dynamic height of the dashboard section description fields in dashboard edit mode is enabled. * * @internal */ export declare const selectEnableDashboardDescriptionDynamicHeight: DashboardSelector; /** * Returns whether dashboard filter group feature is enabled. * * @alpha */ export declare const selectEnableDashboardFilterGroups: DashboardSelector; /** * Returns whether dashboard-level date dataset configuration for section headers is enabled. * * @alpha */ export declare const selectEnableDashboardSectionHeadersDateDataSet: DashboardSelector; /** * Selector for the dashboard share link in the share dialog feature flag * * @internal */ export declare const selectEnableDashboardShareDialogLink: DashboardSelector; /** * * * @internal */ export declare const selectEnableDashboardTabularExport: DashboardSelector; /** * @internal */ export declare const selectEnableExecutionCancelling: DashboardSelector; /** * Returns whether the early loading export status signal in export mode is enabled. * * @internal */ export declare const selectEnableExportTimeoutFix: DashboardSelector; /** * Selector for the export to document storage and send scheduled exports to notification channels feature flag * * @internal */ export declare const selectEnableExportToDocumentStorage: DashboardSelector; /** * Returns whether filter values in drill events should be resolved. * * @public */ export declare const selectEnableFilterValuesResolutionInDrillEvents: DashboardSelector; /** * Returns whether fiscal calendars feature flag is enabled. * * @alpha */ export declare const selectEnableFiscalCalendars: DashboardSelector; /** * Returns whether attribute filter displays duplicated values when filter uses secondary label value. * * @internal */ export declare const selectEnableImmediateAttributeFilterDisplayAsLabelMigration: DashboardSelector; /** * Returns whether new KD dependent filters are enabled. * * @internal */ export declare const selectEnableKDDependentFilters: DashboardSelector; /** * Returns whether measure value (numeric) filter is enabled in dashboards. * * @alpha */ export declare const selectEnableMeasureValueFilterKD: DashboardSelector; /** * * * @internal */ export declare const selectEnableOrchestratedTabularExports: DashboardSelector; /** * Returns whether dashboard-level parameter controls are enabled. * * @alpha */ export declare const selectEnableParameters: DashboardSelector; /** * Returns whether rich text widget filter configuration is enabled. * * @alpha */ export declare const selectEnableRichTextWidgetFilterConfiguration: DashboardSelector; /** * @internal */ export declare const selectEnableSlideshowExports: DashboardSelector; /** * Selector for the snapshot export feature flag * * @internal */ export declare const selectEnableSnapshotExport: DashboardSelector; /** * Returns whether snapshot export accessibility is enabled. * * @internal */ export declare const selectEnableSnapshotExportAccessibility: DashboardSelector; /** * Returns whether the unrelated data datasets are shown. * * @internal */ export declare const selectEnableUnavailableItemsVisibility: DashboardSelector; /** * @alpha */ export declare const selectEntitlementMaxAutomationRecipients: DashboardSelector; /** * @alpha */ export declare const selectEntitlementMaxAutomations: DashboardSelector; /** * @alpha */ export declare const selectEntitlementMinimumRecurrenceMinutes: DashboardSelector; /** * @alpha */ export declare const selectEntitlementUnlimitedAutomationRecipients: DashboardSelector; /** * @alpha */ export declare const selectEntitlementUnlimitedAutomations: DashboardSelector; /** * Returns error if users loading failed. * * @alpha */ export declare const selectErrorUsers: DashboardSelector; /** * Selects evaluation frequency. * * @public */ export declare const selectEvaluationFrequency: DashboardSelector; /** * @alpha */ export declare const selectExecutionResult: (state: DashboardState, id: EntityId) => { id: string; isLoading: boolean; executionResult?: IExecutionResult | undefined; error?: GoodDataSdkError | undefined; warnings?: IResultWarning[] | undefined; limitBreaks?: IExecutionResultLimitBreak[] | undefined; }; /** * @alpha */ export declare const selectExecutionResultByRef: (ref: ObjRef | undefined) => DashboardSelector; /** * Selects the execution result limit breaks for the widget with the given ref. * * @remarks * Limit breaks indicate that the widget's execution hit a row/column/cell limit and only partial * data was returned. Returns an empty array when there are no limit breaks or the result is not available. * * @alpha */ export declare const selectExecutionResultLimitBreaksByRef: (ref: ObjRef | undefined) => DashboardSelector; /** * @internal */ export declare const selectExecutionTimestamp: DashboardSelector; /** * Returns the per-tab parameter overrides to send on dashboard tabular export, keyed by * tab `localIdentifier`. The shape matches the backend's `dashboardTabsParametersOverrides` * field directly. * * @remarks * Scope rules: * - When `widgetIds` is empty/undefined (whole-dashboard export), every tab in scope contributes * parameter entries with a `runtimeOverride`. * - When `widgetIds` is non-empty, each widget's owning tab contributes only entries with a * `runtimeOverride` whose ref is referenced by the widget's insight metrics via the dashboard-wide * metric → parameter dependency map. Multi-widget across distinct owning tabs yields one * map entry per owning tab; entries for the same tab are unioned and deduplicated by ref. * * Returns `{}` (signalling "omit the field on the wire") when: * - `enableParameters` is off, * - the workspace catalog parameters are not loaded, * - (widget scope only) the `measureParameters` dependency map is not loaded, * - or no in-scope parameter has a `runtimeOverride`. * * @alpha */ export declare const selectExportEffectiveParameters: (widgetIds: string[] | undefined) => DashboardSelector>; /** * Returns custom export metadata. * * @beta */ export declare const selectExportMetadata: DashboardSelector | undefined>; /** * Returns the timeout to use when polling for export results (in milliseconds). * * @alpha */ export declare const selectExportResultPollingTimeout: DashboardSelector; /** * Returns the external recipient from the dashboard config * * @internal */ export declare const selectExternalRecipient: DashboardSelector; /** * Selects filterable widget by its ref (including custom widgets). * This selector will return undefined if the provided ref to non-filterable widget. * * @remarks * To limit the scope only to analytical widgets, use {@link selectAnalyticalWidgetByRef}. * * @alpha */ export declare const selectFilterableWidgetByRef: (ref: ObjRef | undefined) => DashboardSelector; /** * @alpha */ export declare const selectFilterBarExpanded: DashboardSelector; /** * Creates a selector for selecting element-based attribute filter by its displayForm {@link @gooddata/sdk-model#ObjRef}. * * @remarks * Invocations before initialization lead to invariant errors. * * Note: This selector does not match arbitrary or match (text) attribute filters. * Use {@link selectFilterContextAttributeFilterItemByDisplayForm} to match all attribute filter types. * * @public * @deprecated Use {@link selectFilterContextAttributeFilterItemByDisplayForm} to include all attribute filter types. */ export declare const selectFilterContextAttributeFilterByDisplayForm: (displayForm: ObjRef) => (state: DashboardState) => IDashboardAttributeFilter | undefined; /** * Creates a selector for selecting element-based attribute filter by its display form from a specific tab. * * @param displayForm - Display form ref * @param tabLocalIdentifier - Tab local identifier * @returns Attribute filter matching the display form, or undefined if not found * * @internal * @deprecated Use {@link selectFilterContextAttributeFilterItemByDisplayFormForTab} to include all attribute filter types. */ export declare const selectFilterContextAttributeFilterByDisplayFormForTab: (displayForm: ObjRef, tabLocalIdentifier: string) => DashboardSelector; /** * Creates a selector for selecting element-based attribute filter by its localId. * * @remarks * Invocations before initialization lead to invariant errors. * * Note: This selector does not match arbitrary or match (text) attribute filters. * Use {@link selectFilterContextAttributeFilterItemByLocalId} to match all attribute filter types. * * @public * @deprecated Use {@link selectFilterContextAttributeFilterItemByLocalId} to include all attribute filter types. */ export declare const selectFilterContextAttributeFilterByLocalId: (localId: string) => DashboardSelector; /** * Creates a selector for selecting element-based attribute filter by its localId from a specific tab. * * @param localId - Filter local identifier * @param tabLocalIdentifier - Tab local identifier * @returns Attribute filter matching the local id, or undefined if not found * * @internal * @deprecated Use {@link selectFilterContextAttributeFilterItemByLocalIdForTab} to include all attribute filter types. */ export declare const selectFilterContextAttributeFilterByLocalIdForTab: (localId: string, tabLocalIdentifier: string) => DashboardSelector; /** * Creates a selector for selecting element-based attribute filter index by its localId. * * @remarks * Invocations before initialization lead to invariant errors. * * Note: This selector does not match arbitrary or match (text) attribute filters. * Use {@link selectFilterContextAttributeFilterItemIndexByLocalId} to match all attribute filter types. * * @public * @deprecated Use {@link selectFilterContextAttributeFilterItemIndexByLocalId} to include all attribute filter types. */ export declare const selectFilterContextAttributeFilterIndexByLocalId: (localId: string) => DashboardSelector; /** * Creates a selector for selecting any attribute-based filter by its displayForm {@link @gooddata/sdk-model#ObjRef}. * Matches element-based, arbitrary, and match attribute filters. * * @remarks * Invocations before initialization lead to invariant errors. * * @public */ export declare const selectFilterContextAttributeFilterItemByDisplayForm: (displayForm: ObjRef) => (state: DashboardState) => DashboardAttributeFilterItem | undefined; /** * Creates a selector for selecting any attribute-based filter by its display form from a specific tab. * Matches element-based, arbitrary, and match attribute filters. * * @param displayForm - Display form ref * @param tabLocalIdentifier - Tab local identifier * @returns Attribute filter item matching the display form, or undefined if not found * * @internal */ export declare const selectFilterContextAttributeFilterItemByDisplayFormForTab: (displayForm: ObjRef, tabLocalIdentifier: string) => DashboardSelector; /** * Creates a selector for selecting any attribute-based filter by its localId. * Matches element-based, arbitrary, and match attribute filters. * * @remarks * Invocations before initialization lead to invariant errors. * * @public */ export declare const selectFilterContextAttributeFilterItemByLocalId: (localId: string) => DashboardSelector; /** * Creates a selector for selecting any attribute-based filter by its localId from a specific tab. * Matches element-based, arbitrary, and match attribute filters. * * @param localId - Filter local identifier * @param tabLocalIdentifier - Tab local identifier * @returns Attribute filter item matching the local id, or undefined if not found * * @internal */ export declare const selectFilterContextAttributeFilterItemByLocalIdForTab: (localId: string, tabLocalIdentifier: string) => DashboardSelector; /** * Creates a selector for selecting any attribute-based filter index by its localId. * Matches element-based, arbitrary, and match attribute filters. * * @remarks * Invocations before initialization lead to invariant errors. * * @public */ export declare const selectFilterContextAttributeFilterItemIndexByLocalId: (localId: string) => DashboardSelector; /** * This selector returns all dashboard's applied filter context attribute-based filters, * including element-based, arbitrary, and match filters. * * @remarks * It is expected that the selector is called only after the filter context state is correctly initialized. * Invocations before initialization lead to invariant errors. * * @public */ export declare const selectFilterContextAttributeFilterItems: DashboardSelector; /** * Returns all attribute-based filters (element-based, arbitrary, and match) for a specific tab. * * @param tabLocalIdentifier - Tab local identifier * @returns All attribute-based filters for the specified tab * * @internal */ export declare const selectFilterContextAttributeFilterItemsForTab: (tabLocalIdentifier: string) => DashboardSelector; /** * This selector returns dashboard's applied filter context attribute filters with element-based selection only. * * @remarks * It is expected that the selector is called only after the filter context state is correctly initialized. * Invocations before initialization lead to invariant errors. * * Note: This selector does not include arbitrary or match (text) attribute filters. * Use {@link selectFilterContextAttributeFilterItems} to get all attribute-based filters. * * @public * @deprecated Use {@link selectFilterContextAttributeFilterItems} to include all attribute filter types. */ export declare const selectFilterContextAttributeFilters: DashboardSelector; /** * Returns element-based attribute filters for a specific tab. * * @param tabLocalIdentifier - Tab local identifier * @returns Attribute filters for the specified tab * * @internal * @deprecated Use {@link selectFilterContextAttributeFilterItemsForTab} to include all attribute filter types. */ export declare const selectFilterContextAttributeFiltersForTab: (tabLocalIdentifier: string) => DashboardSelector; /** * This selector returns dashboard's applied filter context date filter. * * @remarks * It is expected that the selector is called only after the filter context state is correctly initialized. * Invocations before initialization lead to invariant errors. * * @public */ export declare const selectFilterContextDateFilter: DashboardSelector; /** * Creates a selector for selecting date filter by its dataset {@link @gooddata/sdk-model#ObjRef}. * * @remarks * Invocations before initialization lead to invariant errors. * * @public */ export declare const selectFilterContextDateFilterByDataSet: (dataSet: ObjRef) => (state: DashboardState) => IDashboardDateFilter | undefined; /** * Creates a selector for selecting date filter by its dataset from a specific tab. * * @param dataSet - Date dataset ref * @param tabLocalIdentifier - Tab local identifier * @returns Date filter matching the dataset, or undefined if not found * * @internal */ export declare const selectFilterContextDateFilterByDataSetForTab: (dataSet: ObjRef, tabLocalIdentifier: string) => DashboardSelector; /** * Returns the common date filter for a specific tab. * * @param tabLocalIdentifier - Tab local identifier * @returns Common date filter for the specified tab, or undefined if not found * * @internal */ export declare const selectFilterContextDateFilterForTab: (tabLocalIdentifier: string) => DashboardSelector; /** * This selector returns dashboard's applied filter context date filter with dimension specified. * * @remarks * It is expected that the selector is called only after the filter context state is correctly initialized. * Invocations before initialization lead to invariant errors. * * @public */ export declare const selectFilterContextDateFiltersWithDimension: DashboardSelector; /** * Returns date filters with dimension for a specific tab. * * @param tabLocalIdentifier - Tab local identifier * @returns Date filters with dimension for the specified tab * * @internal */ export declare const selectFilterContextDateFiltersWithDimensionForTab: (tabLocalIdentifier: string) => DashboardSelector; /** * This selector returns current applied dashboard's filter context definition. * * @remarks * It is expected that the selector is called only after the filter context state is correctly initialized. * Invocations before initialization lead to invariant errors. * * @returns a {@link @gooddata/sdk-backend-spi#IFilterContextDefinition} * * @public */ export declare const selectFilterContextDefinition: DashboardSelector; /** * This selector returns all dashboard's filter context draggable filters, * including date filters, all attribute-based filters (element-based, arbitrary, and match), * and measure value filters. * * @remarks * It is expected that the selector is called only after the filter context state is correctly initialized. * Invocations before initialization lead to invariant errors. * * @public */ export declare const selectFilterContextDraggableFilterItems: DashboardSelector>; /** * This selector returns dashboard's filter context draggable filters (element-based attribute filters and date filters). * * @remarks * It is expected that the selector is called only after the filter context state is correctly initialized. * Invocations before initialization lead to invariant errors. * * Note: This selector does not include arbitrary or match (text) attribute filters. * Use {@link selectFilterContextDraggableFilterItems} to get all draggable filters. * * @public * @deprecated Use {@link selectFilterContextDraggableFilterItems} to include all attribute filter types. */ export declare const selectFilterContextDraggableFilters: DashboardSelector>; /** * This selector returns dashboard's applied filter context filters. * * @remarks * It is expected that the selector is called only after the filter context state is correctly initialized. * Invocations before initialization lead to invariant errors. * * @public */ export declare const selectFilterContextFilters: DashboardSelector; /** * Selects dashboard's filter context identity. * * @remarks * The identity may be undefined in two circumstances: * * - a new, yet unsaved dashboard; the filter context is saved together with the dashboard and after the * save the identity will be known and added * * - export of an existing, saved dashboard; during the export the dashboard receives a temporary * filter context that represents values of filters at the time the export was initiated - which may * be different from what is saved in the filter context itself. that temporary context is not * persistent and lives only for that particular export operation. * * Invocations before initialization lead to invariant errors. * * @returns a {@link @gooddata/sdk-backend-spi#IDashboardObjectIdentity} or undefined, if the filter context identity is not set. * * @internal */ export declare const selectFilterContextIdentity: DashboardSelector; /** * This selector returns dashboard's applied filter context measure value filters. * * @remarks * It is expected that the selector is called only after the filter context state is correctly initialized. * Invocations before initialization lead to invariant errors. * * @alpha */ export declare const selectFilterContextMeasureValueFilters: DashboardSelector; /** * Returns the filter group config of currently active tab. * * @alpha */ export declare const selectFilterGroupsConfig: DashboardSelector; /** * Returns filters from each tab keyed by tab identifier. * This selector is useful for exporting dashboards with per-tab filters. * * @internal */ export declare const selectFiltersByTab: ((state: DashboardState) => Record) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; } & { resultFunc: (resultFuncArgs_0: Record) => Record; memoizedResultFunc: ((resultFuncArgs_0: Record) => Record) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; }; lastResult: () => Record; dependencies: [((state: DashboardState) => Record) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; } & { resultFunc: (resultFuncArgs_0: Record) => Record; memoizedResultFunc: ((resultFuncArgs_0: Record) => Record) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; }; lastResult: () => Record; dependencies: [((state: DashboardState) => Record) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; } & { resultFunc: (resultFuncArgs_0: ITabState[]) => Record; memoizedResultFunc: ((resultFuncArgs_0: ITabState[]) => Record) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; }; lastResult: () => Record; dependencies: [((state: DashboardState) => ITabState[]) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; } & { resultFunc: (resultFuncArgs_0: ITabState[] | undefined) => ITabState[]; memoizedResultFunc: ((resultFuncArgs_0: ITabState[] | undefined) => ITabState[]) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; }; lastResult: () => ITabState[]; dependencies: [DashboardSelector]; recomputations: () => number; resetRecomputations: () => void; dependencyRecomputations: () => number; resetDependencyRecomputations: () => void; } & { memoize: weakMapMemoize; argsMemoize: weakMapMemoize; }]; recomputations: () => number; resetRecomputations: () => void; dependencyRecomputations: () => number; resetDependencyRecomputations: () => void; } & { memoize: weakMapMemoize; argsMemoize: weakMapMemoize; }]; recomputations: () => number; resetRecomputations: () => void; dependencyRecomputations: () => number; resetDependencyRecomputations: () => void; } & { memoize: weakMapMemoize; argsMemoize: weakMapMemoize; }]; recomputations: () => number; resetRecomputations: () => void; dependencyRecomputations: () => number; resetDependencyRecomputations: () => void; } & { memoize: weakMapMemoize; argsMemoize: weakMapMemoize; }; /** * Returns filters for a specific tab. * * @param tabLocalIdentifier - Tab local identifier * @returns Filters for the specified tab * * @internal */ export declare const selectFiltersForTab: (tabLocalIdentifier: string) => DashboardSelector; /** * This selector returns array of filter localIds that have invalid selections. * * @returns Array of filter localIds with invalid selections. * * @public */ export declare const selectFiltersWithInvalidSelection: DashboardSelector; /** * @internal */ export declare const selectFilterValidationIncompatibleDefaultFiltersOverride: DashboardSelector; /** * Returns the active tab's parameters in the shape persisted by a filter view. * Runtime overrides become persisted `value`; existing parameter values are kept when no runtime value exists. * * @internal */ export declare const selectFilterViewParameters: DashboardSelector; /** * @alpha */ export declare const selectFilterViews: DashboardSelector; /** * @alpha */ export declare const selectFilterViewsAreLoading: DashboardSelector; /** * @internal */ export declare const selectFilterViewsDialogMode: DashboardSelector; /** * Selects whether the filter views are visible. * * @internal */ export declare const selectFilterViewsVisible: DashboardSelector; /** * Returns dashboard focus object. * * @beta */ export declare const selectFocusObject: DashboardSelector; /** * @internal */ export declare const selectGlobalDrillsDownAttributeHierarchyByWidgetRef: (ref: ObjRef) => DashboardSelector; /** * Selects whether at least one widget currently on the dashboard returned partial data because an * execution limit was reached. * * @remarks * Only execution results of widgets still present on the dashboard layout are considered. Execution results * keyed by anything else - removed widgets that left a stale entry behind, or the drill dialog's pseudo * ref `@@GDC_DRILL_MODAL` - are ignored, so they cannot keep the dashboard partial-results warning visible. * * @alpha */ export declare const selectHasAnyExecutionResultLimitBreaks: DashboardSelector; /** * True when the active tab has at least one parameter whose `runtimeOverride` differs from * the value it would be reset to (per `computeParameterResetValue`). * * @alpha */ export declare const selectHasAnyResettableParameterOnActiveTab: DashboardSelector; /** * @alpha */ export declare const selectHasCatalogAttributes: DashboardSelector; /** * @alpha */ export declare const selectHasCatalogDateDatasets: DashboardSelector; /** * @alpha */ export declare const selectHasCatalogFacts: DashboardSelector; /** * @alpha */ export declare const selectHasCatalogMeasures: DashboardSelector; /** * Selects whether the widget with the given ref returned partial data because an execution limit was reached. * * @alpha */ export declare const selectHasExecutionResultLimitBreaksByRef: (ref: ObjRef | undefined) => DashboardSelector; /** * @alpha */ export declare const selectHasSomeExecutionResult: DashboardSelector; /** * Returns whether tabs are present in the dashboard. * * @alpha */ export declare const selectHasTabs: DashboardSelector; /** * @alpha */ export declare const selectIgnoredDrillDownHierarchiesByWidgetRef: (ref: ObjRef) => DashboardSelector; /** * @internal */ export declare const selectIgnoreExecutionTimestamp: DashboardSelector; /** * @internal */ export declare const selectImplicitDrillsByAvailableDrillTargets: (availableDrillTargets: IAvailableDrillTargets | undefined, ignoredDrillDownHierarchies: IDrillDownReference[] | undefined, disableDrillIntoURL: boolean | undefined) => DashboardSelector; /** * @internal */ export declare const selectImplicitDrillsDownByWidgetRef: (ref: ObjRef) => DashboardSelector; /** * @internal */ export declare const selectImplicitDrillsToUrlByWidgetRef: (ref: ObjRef) => DashboardSelector; /** * Select all inaccessible dashboard in project. * * @alpha */ export declare const selectInaccessibleDashboards: (state: DashboardState) => IInaccessibleDashboard[]; /** * Select all inaccessible dashboard in project and returns them in a mapping of obj ref to the insight object. * * @alpha */ export declare const selectInaccessibleDashboardsMap: DashboardSelector>; /** * Selector that will return attribute metadata for an insight. The input to the selector is the dashboard query that is used * to obtain and cache the data. * * This selector will return undefined if the query to obtain the data for particular insight was not yet fired or * processed. Otherwise will return object containing `status` of the data retrieval; if the `status` is * `'success'` then the `result` prop will contain the data. * * @remarks see {@link IQueryInsightAttributesMeta} * @internal */ export declare const selectInsightAttributesMeta: selectInsightAttributesMetaType; /** * Type of the selector that will return attribute metadata for an insight. * @internal */ export declare type selectInsightAttributesMetaType = (query: IQueryInsightAttributesMeta) => (state: DashboardState, ...params: any[]) => QueryCacheEntryResult | undefined; /** * Selects insight used on a dashboard by its ref. * * @alpha */ export declare const selectInsightByRef: (ref: ObjRef | undefined) => DashboardSelector; /** * Selects insight used on a dashboard by widget ref. * * @alpha */ export declare const selectInsightByWidgetRef: (ref: ObjRef | undefined) => DashboardSelector; /** * @internal */ export declare const selectInsightListLastUpdateRequested: DashboardSelector; /** * Selects refs of all insights used on the dashboard. * * @alpha */ export declare const selectInsightRefs: DashboardSelector; /** * Selects all insights used on the dashboard. * * @remarks * Note: if you are aiming to lookup insights using an ObjRef, then you should instead use the map returned * by {@link selectInsightsMap}. If you are aiming to lookup a single insight by its ref, use {@link selectInsightByRef}. * Using these selectors is both faster and safer as they take ObjRef type into account and look up the insight * depending on the type of the ref. * * See {@link selectInsightsMap} or {@link selectInsightByRef} for a faster and safer ways to get * an insight by its ObjRef. * @public */ export declare const selectInsights: (state: DashboardState) => IInsight[]; /** * Selects all insights and returns them in a mapping of obj ref to the insight object. * * @alpha */ export declare const selectInsightsMap: DashboardSelector>; /** * @internal */ export declare const selectInsightWidgetPlaceholder: DashboardSelector; /** * @internal * * @deprecated The selector returns coordinates in its parent layout. The information is not useful on its * own when dashboard uses nested layout. For this case use {@link selectInsightWidgetPlaceholderPath} instead. * * TODO LX-648: remove this selector, exported only for backward compatible reasons. */ export declare const selectInsightWidgetPlaceholderCoordinates: DashboardSelector; /** * @internal */ export declare const selectInsightWidgetPlaceholderPath: DashboardSelector; /** * @internal */ export declare const selectInvalidDrillWidgetRefs: DashboardSelector; /** * @internal */ export declare const selectInvalidUrlDrillParameterDrillLocalIdsByWidgetRef: (ref: ObjRef) => DashboardSelector; /** * @internal */ export declare const selectInvalidUrlDrillParameterWidgetRefs: DashboardSelector; /** * @internal */ export declare const selectInvalidUrlDrillParameterWidgetWarnings: DashboardSelector; /** * Returns whether the add tab button should be hidden in edit mode. * * @alpha */ export declare const selectIsAddTabButtonHidden: DashboardSelector; /** * @alpha */ export declare const selectIsAlertingDialogOpen: DashboardSelector; /** * @alpha */ export declare const selectIsAlertingManagementDialogContext: DashboardSelector; /** * @alpha */ export declare const selectIsAlertsManagementDialogOpen: DashboardSelector; /** * Setting set to ALL_AT_ONCE * @internal */ export declare const selectIsApplyFiltersAllAtOnceEnabledAndSet: DashboardSelector; /** * This selector returns information whether attribute filter from filter context has some dependencies. * * @internal */ export declare const selectIsAttributeFilterDependentByLocalIdentifier: (attributeFilterLocalIdentifier: string) => DashboardSelector; /** * Returns information whether attribute filter from a specific tab's filter context has some dependencies. * * @param attributeFilterLocalIdentifier - Filter local identifier * @param tabLocalIdentifier - Tab local identifier * @returns True if the filter has dependencies, false otherwise * * @internal */ export declare const selectIsAttributeFilterDependentByLocalIdentifierForTab: (attributeFilterLocalIdentifier: string, tabLocalIdentifier: string) => DashboardSelector; /** * @internal */ export declare const selectIsCancelEditModeDialogOpen: DashboardSelector; /** * Creates a selector which checks for a circular dependency between filters. * * @remarks * This selector should only be used when circular filter dependencies are not allowed. * * @internal */ export declare const selectIsCircularDependency: (currentFilterLocalId: string, neighborFilterLocalId: string) => DashboardSelector; /** * @beta */ export declare const selectIsCrossFiltering: DashboardSelector; /** * @internal */ export declare const selectIsCurrentDashboardVisibleInList: DashboardSelector; /** * Selects a boolean indication if he dashboard has any changes compared to the persisted version (if any) * * @internal */ export declare const selectIsDashboardDirty: DashboardSelector; /** * @internal */ export declare const selectIsDashboardExecuted: DashboardSelector; /** * @internal */ export declare const selectIsDashboardLoading: DashboardSelector; /** * Returns whether dashboard is private. * * @alpha */ export declare const selectIsDashboardPrivate: DashboardSelector; /** * @public */ export declare const selectIsDashboardSaving: DashboardSelector; /** * * @internal */ export declare const selectIsDashboardShareLinkVisible: DashboardSelector; /** * @internal */ export declare const selectIsDeleteDialogOpen: DashboardSelector; /** * @alpha */ export declare const selectIsDensityDialogOpen: DashboardSelector; /** * Returns whether cross filtering is disabled by config * * @internal */ export declare const selectIsDisabledCrossFiltering: DashboardSelector; /** * Returns whether user filter reset is disabled by config * * @internal */ export declare const selectIsDisableUserFilterReset: DashboardSelector; /** * @internal */ export declare const selectIsDraggingWidget: DashboardSelector; /** * Returns whether the Dashboard is executed in embedded context. * * @remarks * In embedded mode, some interactions may be disabled. * * @public */ export declare const selectIsEmbedded: DashboardSelector; /** * @alpha */ export declare const selectIsExecutionResultExportableToCsvByRef: (ref: ObjRef) => DashboardSelector; /** * @alpha */ export declare const selectIsExecutionResultExportableToCsvRawByRef: (ref: ObjRef) => DashboardSelector; /** * @alpha */ export declare const selectIsExecutionResultExportableToPdfByRef: (ref: ObjRef) => DashboardSelector; /** * @alpha */ export declare const selectIsExecutionResultExportableToXlsxByRef: (ref: ObjRef) => DashboardSelector; /** * @alpha */ export declare const selectIsExecutionResultReadyForExportByRef: (ref: ObjRef) => DashboardSelector; /** * Returns whether the Dashboard is rendered in the export mode. * In export mode, some components can be hidden, or rendered differently. * * @public */ export declare const selectIsExport: DashboardSelector; /** * @internal */ export declare const selectIsExportableToCSV: DashboardSelector; /** * @internal */ export declare const selectIsExportableToPngImage: DashboardSelector; /** * @internal */ export declare const selectIsExportableToXLSX: DashboardSelector; /** * @alpha */ export declare const selectIsFilterAttributeSelectionOpen: DashboardSelector; /** * @beta */ export declare const selectIsFilterFromCrossFilteringByLocalIdentifier: (localIdentifier: string) => DashboardSelector; /** * @internal */ export declare const selectIsFilterViewsDialogOpen: DashboardSelector; /** * Returns whether the current Dashboard is on edit mode. * * @public */ export declare const selectIsInEditMode: DashboardSelector; /** * Returns whether the current Dashboard is on export mode. * * @internal */ export declare const selectIsInExportMode: DashboardSelector; /** * @internal */ export declare const selectIsInViewMode: DashboardSelector; /** * Returns whether KD dependent filters are enabled. * * @internal */ export declare const selectIsKDDependentFiltersEnabled: DashboardSelector; /** * @alpha */ export declare const selectIsKpiAlertHighlightedByWidgetRef: (ref: ObjRef | undefined) => (state: DashboardState) => boolean; /** * @alpha */ export declare const selectIsKpiAlertOpenedByWidgetRef: (ref: ObjRef | undefined) => (state: DashboardState) => boolean; /** * Returns whether dependent filters are enabled. * * @internal */ export declare const selectIsKPIDashboardDependentFiltersEnabled: DashboardSelector; /** * @internal */ export declare const selectIsKpiDeleteDialogOpen: DashboardSelector; /** * Selects a boolean indicating if the dashboard is empty. * * @alpha */ export declare const selectIsLayoutEmpty: DashboardSelector; /** * Selects a boolean indication if dashboard is new * * @internal */ export declare const selectIsNewDashboard: DashboardSelector; /** * Selects a boolean indication if dashboard is dynamically filled, that mean that the dashboard is filled * with widgets and layout dynamically from initial content * * @internal */ export declare const selectIsNewDashboardWithContent: DashboardSelector; /** * Returns true if the dashboard parameters that would be persisted differ from the persisted * version on any tab. * * @alpha */ export declare const selectIsParametersChanged: DashboardSelector; /** * @internal */ export declare const selectIsPrivateDashboard: DashboardSelector; /** * Returns whether the Dashboard is executed in read-only mode. * * @remarks * Read-only mode disables any interactions that can alter the backend data. * * @public */ export declare const selectIsReadOnly: DashboardSelector; /** * @alpha */ export declare const selectIsSaveAsDialogOpen: DashboardSelector; /** * Returns whether the save as new button is hidden. * * @internal */ export declare const selectIsSaveAsNewButtonHidden: DashboardSelector; /** * @internal */ export declare const selectIsSaveAsNewButtonVisible: DashboardSelector; /** * @alpha */ export declare const selectIsScheduleEmailDialogContext: DashboardSelector; /** * @alpha */ export declare const selectIsScheduleEmailDialogOpen: DashboardSelector; /** * @alpha */ export declare const selectIsScheduleEmailManagementDialogContext: DashboardSelector; /** * @alpha */ export declare const selectIsScheduleEmailManagementDialogOpen: DashboardSelector; /** * @internal */ export declare const selectIsSectionInsertedByPlugin: (refs: (ObjRef | undefined)[]) => DashboardSelector; /** * @alpha */ export declare const selectIsSettingsDialogOpen: DashboardSelector; /** * Returns whether share button is hidden. * * @internal */ export declare const selectIsShareButtonHidden: DashboardSelector; /** * @internal */ export declare const selectIsShareButtonVisible: DashboardSelector; /** * @alpha */ export declare const selectIsShareDialogOpen: DashboardSelector; /** * * @internal */ export declare const selectIsShareGrantVisible: DashboardSelector; /** * Returns whether the Dashboard is white labeled. * * @internal */ export declare const selectIsWhiteLabeled: DashboardSelector; /** * @internal */ export declare const selectIsWidgetDeleteDialogOpen: DashboardSelector; /** * @internal */ export declare const selectIsWidgetLoadingAdditionalDataByWidgetRef: (refs: ObjRef) => DashboardSelector; /** * Returns true if working filters and applied filters are same. * * Attribute filters are considered equal if * - they have same localIdentifier * - they have same elements (order does not matter) * - all other fields are deep equal EXCEPT displayForm * We exclude diplayForm becuase of primary display form migration code. * Which changes display forms after update. * * @alpha */ export declare const selectIsWorkingFilterContextChanged: DashboardSelector; /** * @internal * * @deprecated The selector returns coordinates in its parent layout. The information is not useful on its * own when dashboard uses nested layout. For this case use {@link selectKpiDeleteDialogWidgetLayoutPath} instead. * * TODO LX-648: remove this selector, exported only for backward compatible reasons. */ export declare const selectKpiDeleteDialogWidgetCoordinates: DashboardSelector; /** * @internal */ export declare const selectKpiDeleteDialogWidgetLayoutPath: DashboardSelector; /** * @internal */ export declare const selectKpiWidgetPlaceholder: DashboardSelector; /** * @internal * * @deprecated The selector returns coordinates in its parent layout. The information is not useful on its * own when dashboard uses nested layout. For this case use {@link selectKpiWidgetPlaceholderPath} instead. * * TODO LX-648: remove this selector, exported only for backward compatible reasons. */ export declare const selectKpiWidgetPlaceholderCoordinates: DashboardSelector; /** * @internal */ export declare const selectKpiWidgetPlaceholderPath: DashboardSelector; /** * This selector returns dashboard's layout. It is expected that the selector is called only after the layout state * is correctly initialized. Invocations before initialization lead to invariant errors. * * @public */ export declare const selectLayout: DashboardSelector>; /** * Selects a boolean indicating if the dashboard contains at least one non-custom widget. * * @alpha */ export declare const selectLayoutHasAnalyticalWidgets: DashboardSelector; /** * Select all listed dashboard in project. * * @alpha */ export declare const selectListedDashboards: (state: DashboardState) => IListedDashboard[]; /** * Select all listed dashboard in project and returns them in a mapping of obj ref to the insight object. * * @alpha */ export declare const selectListedDashboardsMap: DashboardSelector>; /** * Returns locale to use for internationalization of the dashboard. * * @public */ export declare const selectLocale: DashboardSelector; /** * Returns Mapbox token. * * @internal */ export declare const selectMapboxToken: DashboardSelector; /** * @alpha */ export declare const selectMaxAutomationRecipients: DashboardSelector; /** * @alpha */ export declare const selectMenuButtonItemsVisibility: DashboardSelector; /** * This selector returns an array of attribute names related to filters with invalid selection. * * @remarks * It is expected that the selector is called only after the filter context state is correctly initialized. * * @returns An array of attribute names that have filters with invalid selections. * * @public */ export declare const selectNamesOfFiltersWithInvalidSelection: DashboardSelector; /** * Returns organization notification channels. * * @alpha */ export declare const selectNotificationChannels: DashboardSelector; /** * Returns organization notification channels count. * * @alpha */ export declare const selectNotificationChannelsCount: DashboardSelector; /** * Returns notification channels suitable for scheduled exports. * * @alpha */ export declare const selectNotificationChannelsCountWithoutInPlatform: DashboardSelector; /** * Returns notification channels suitable for scheduled exports. * * @alpha */ export declare const selectNotificationChannelsWithoutInPlatform: DashboardSelector; /** * Returns the object availability configuration for this dashboard. * * @remarks * Only objects that match the availability criteria can appear in selections where user has pick * an object to use for some purpose (for instance metric for KPI or date dataset to filter by). * * @public */ export declare const selectObjectAvailabilityConfig: DashboardSelector; /** * This selector returns original (stored) dashboard's filter context definition. * * @remarks * It is expected that the selector is called only after the filter context state is correctly initialized. * Invocations before initialization lead to invariant errors. * * @returns {@link @gooddata/sdk-backend-spi#IFilterContextDefinition} or `undefined` if original filter context definition is not set. * * @public */ export declare const selectOriginalFilterContextDefinition: DashboardSelector; /** * This selector returns original (stored) dashboard's filters. * * @remarks * It is expected that the selector is called only after the filter context state is correctly initialized. * Invocations before initialization lead to invariant errors. * * @returns an array of {@link @gooddata/sdk-backend-spi#FilterContextItem} or an empty array. * * @public */ export declare const selectOriginalFilterContextFilters: DashboardSelector; /** * Returns original (persisted) filters for each tab keyed by identifier. * * @internal */ export declare const selectOriginalFilterContextFiltersByTab: ((state: DashboardState) => Record) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; } & { resultFunc: (resultFuncArgs_0: Record) => Record; memoizedResultFunc: ((resultFuncArgs_0: Record) => Record) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; }; lastResult: () => Record; dependencies: [((state: DashboardState) => Record) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; } & { resultFunc: (resultFuncArgs_0: Record) => Record; memoizedResultFunc: ((resultFuncArgs_0: Record) => Record) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; }; lastResult: () => Record; dependencies: [((state: DashboardState) => Record) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; } & { resultFunc: (resultFuncArgs_0: ITabState[]) => Record; memoizedResultFunc: ((resultFuncArgs_0: ITabState[]) => Record) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; }; lastResult: () => Record; dependencies: [((state: DashboardState) => ITabState[]) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; } & { resultFunc: (resultFuncArgs_0: ITabState[] | undefined) => ITabState[]; memoizedResultFunc: ((resultFuncArgs_0: ITabState[] | undefined) => ITabState[]) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; }; lastResult: () => ITabState[]; dependencies: [DashboardSelector]; recomputations: () => number; resetRecomputations: () => void; dependencyRecomputations: () => number; resetDependencyRecomputations: () => void; } & { memoize: weakMapMemoize; argsMemoize: weakMapMemoize; }]; recomputations: () => number; resetRecomputations: () => void; dependencyRecomputations: () => number; resetDependencyRecomputations: () => void; } & { memoize: weakMapMemoize; argsMemoize: weakMapMemoize; }]; recomputations: () => number; resetRecomputations: () => void; dependencyRecomputations: () => number; resetDependencyRecomputations: () => void; } & { memoize: weakMapMemoize; argsMemoize: weakMapMemoize; }]; recomputations: () => number; resetRecomputations: () => void; dependencyRecomputations: () => number; resetDependencyRecomputations: () => void; } & { memoize: weakMapMemoize; argsMemoize: weakMapMemoize; }; /** * Creates a selector for selecting all attribute-based filters with different reference than the given one. * Includes element-based, arbitrary, and match attribute filters. * * @internal */ export declare const selectOtherContextAttributeFilterItems: (ref?: ObjRef) => DashboardSelector; /** * Creates a selector for selecting all element-based filters with different reference than the given one. * * @internal * @deprecated Use {@link selectOtherContextAttributeFilterItems} to include all attribute filter types. */ export declare const selectOtherContextAttributeFilters: (ref?: ObjRef) => DashboardSelector; /** * Returns a selector that yields the current `runtimeOverride` for a given parameter ref on the * active tab, or `undefined` if the active tab does not hold an entry for that ref. * * @alpha */ export declare const selectParameterRuntimeOverrideByRef: (ref: ObjRef) => DashboardSelector; /** * Selects whether the PDF export is visible. * * @internal */ export declare const selectPdfExportVisible: DashboardSelector; /** * This selector returns user's permissions in the workspace where the dashboard is stored. * * @remarks * It is expected that the selector is called only after the permission state is correctly initialized. * Invocations before initialization lead to invariant errors. * * See {@link @gooddata/sdk-backend-spi#WorkspacePermission} for all available permissions. * * If the permission is not supported by GoodData Cloud and GoodData.CN backends, the selector always returns `false` value. * * In case you need multiple permissions available in your application, use common selector. * * @example - on how to select all permissions. * ``` * const permissions = useDashboardSelector(selectPermissions); * * if (permissions.canCreateAnalyticalDashboard) { * // allow user to do a action for which the `canCreateAnalyticalDashboard` permission is needed * } * ``` * * If there is only limited number of permissions, use specific selector instead (available selectors are all below). * * @example - on how to select specific permission. * ``` * const canCreateAnalyticalDashboard = useDashboardSelector(selectCanCreateAnalyticalDashboard); * * if (canCreateAnalyticalDashboard) { * // allow user to do a action for which the `canCreateAnalyticalDashboard` permission is needed * } * ``` * * @public */ export declare const selectPermissions: DashboardSelector; /** * Selects persisted IDashboard object - that is the IDashboard object that was used to initialize the rest * of the dashboard state of the dashboard component during the initial load of the dashboard. * * Note that this may be undefined when the dashboard component works with a dashboard that has not yet * been persisted (typically newly created dashboard being edited). * * @internal */ export declare const selectPersistedDashboard: DashboardSelector; /** * Selects persisted date filter config for the active tab (legacy selector). * * @internal */ export declare const selectPersistedDashboardFilterContextDateFilterConfig: DashboardSelector; /** * Returns current platform edition. * * @public */ export declare const selectPlatformEdition: DashboardSelector; /** * Select preloaded attribute metadata objects with references for attribute filters. * Returns merged attributes from all filters across all tabs. * * @internal */ export declare const selectPreloadedAttributesWithReferences: DashboardSelector; /** * Selects raw export custom overrides for insight by ref. * * @deprecated The insights reached by refs don't have missing titles for derived and arithmetic measures filled in. * @alpha */ export declare const selectRawExportOverridesForInsightByRef: (ref: ObjRef | undefined) => DashboardSelector; /** * @internal */ export declare const selectRenderMode: DashboardSelector; /** * Selects whether the save as new button is visible. * * @internal */ export declare const selectSaveAsVisible: DashboardSelector; /** * @alpha */ export declare const selectScheduleEmailDialogDefaultAttachment: DashboardSelector; /** * @internal */ export declare const selectScheduleEmailDialogReturnFocusTo: DashboardSelector; /** * This selector returns dashboard's current layout screen size. Valid screen size is provided after first render. * * @public */ export declare const selectScreen: DashboardSelector; /** * Selects the date dataset to use for filtering metrics in section header rich text. * * @alpha */ export declare const selectSectionHeadersDateDataSet: DashboardSelector; /** * @internal */ export declare const selectSectionModification: (refs: (ObjRef | undefined)[]) => DashboardSelector<("insertedByPlugin" | "modifiedByPlugin")[]>; /** * @alpha */ export declare const selectSelectedFilterIndex: DashboardSelector; /** * @internal * * This selector provides selected widget on dashboard. It DOES NOT provide selected widget inside of selected visualization switcher. */ export declare const selectSelectedWidgetRef: DashboardSelector; /** * Returns number separators to use when rendering numeric values on charts or KPIs. * * @public */ export declare const selectSeparators: DashboardSelector; /** * Returns settings that are in effect for the current dashboard. * * @public */ export declare const selectSettings: DashboardSelector; /** * Selects whether the settings button is visible. * * @internal */ export declare const selectSettingsVisible: DashboardSelector; /** * * @beta */ export declare const selectShowWidgetAsTable: (state: DashboardState) => ObjRef[]; /** * Selects whether the slideshow export is available. * * @internal */ export declare const selectSlideShowExportAvailable: DashboardSelector; /** * Selects whether the slideshow export is visible. * * @internal */ export declare const selectSlideShowExportVisible: DashboardSelector; /** * This selector returns current layout's stash. This stash can contain items that were removed from the layout with the * intent of further using the item elsewhere on the layout. The stash is a mapping of stashIdentifier to an array * of stashed items. The stash identifiers and stash usage is fully under control of the user. * * @internal */ export declare const selectStash: DashboardSelector; /** * Selector for {@link @gooddata/sdk-backend-spi#IBackendCapabilities.supportsAccessControl} * * @internal */ export declare const selectSupportsAccessControlCapability: DashboardSelector; /** * Selector for {@link @gooddata/sdk-backend-spi#IBackendCapabilities.selectSupportsAttributeHierarchies} * * @internal */ export declare const selectSupportsAttributeHierarchies: DashboardSelector; /** * Selector for {@link @gooddata/sdk-backend-spi#IBackendCapabilities.supportsCrossFiltering} * * @internal */ export declare const selectSupportsCrossFiltering: DashboardSelector; /** * This selector returns capability if parent child filtering is enabled. * * @public */ export declare const selectSupportsElementsQueryParentFiltering: DashboardSelector; /** * Selector for {@link @gooddata/sdk-backend-spi#IBackendCapabilities.supportsElementUris} * * @internal */ export declare const selectSupportsElementUris: DashboardSelector; /** * Selector for {@link @gooddata/sdk-backend-spi#IBackendCapabilities.supportsHierarchicalWorkspaces} * * @internal */ export declare const selectSupportsHierarchicalWorkspacesCapability: DashboardSelector; /** * Selector for {@link @gooddata/sdk-backend-spi#IBackendCapabilities.supportsKeepingDependentFiltersSelection} * * @internal */ export declare const selectSupportsKeepingDependentFiltersSelection: DashboardSelector; /** * Selector for {@link @gooddata/sdk-backend-spi#IBackendCapabilities.supportsKpiWidget} * * @internal */ export declare const selectSupportsKpiWidgetCapability: DashboardSelector; /** * Selector for {@link @gooddata/sdk-backend-spi#IBackendCapabilities.supportsMultipleDateFilters} * * @internal */ export declare const selectSupportsMultipleDateFilters: DashboardSelector; /** * Selector for {@link @gooddata/sdk-backend-spi#IBackendCapabilities.supportsObjectUris} * * @internal */ export declare const selectSupportsObjectUris: DashboardSelector; /** * Selector for {@link @gooddata/sdk-backend-spi#IBackendCapabilities.supportsRichTextWidgets} * * @internal */ export declare const selectSupportsRichTextWidgets: DashboardSelector; /** * Selector for {@link @gooddata/sdk-backend-spi#IBackendCapabilities.supportsSettingConnectingAttributes} * * @internal */ export declare const selectSupportsSettingConnectingAttributes: DashboardSelector; /** * Selector for {@link @gooddata/sdk-backend-spi#IBackendCapabilities.supportsSingleSelectDependentFilters} * * @internal */ export declare const selectSupportsSingleSelectDependentFilters: DashboardSelector; /** * Returns a specific tab by its identifier. * * @alpha */ export declare const selectTabById: (tabId: string) => DashboardSelector; /** * Returns all tabs with their configurations. * * @alpha */ export declare const selectTabs: DashboardSelector; /** * Returns timezone * * @public */ export declare const selectTimezone: DashboardSelector; /** * Returns workspace users. * * @alpha */ export declare const selectUsers: DashboardSelector; /** * Returns true if users are loading. * * @alpha */ export declare const selectUsersLoadingStatus: DashboardSelector<"pending" | "loading" | "success" | "error">; /** * @internal */ export declare const selectValidConfiguredDrillsByWidgetRef: (ref: ObjRef) => DashboardSelector; /** * Returns week start day * * @internal */ export declare const selectWeekStart: DashboardSelector; /** * Selects widget by its ref (including custom widgets). * * @remarks * To limit the scope only to analytical widgets, use {@link selectAnalyticalWidgetByRef}. * * @alpha */ export declare const selectWidgetByRef: (ref: ObjRef | undefined) => DashboardSelector; /** * Selects layout coordinates for a given widget. * * @alpha * * @deprecated The selector returns coordinates in its parent layout. The information is not useful on its * own when dashboard uses nested layout. For this case use {@link selectWidgetPathByRef} instead. * * TODO LX-648: remove this selector, exported only for backward compatible reasons. */ export declare const selectWidgetCoordinatesByRef: (ref: ObjRef) => DashboardSelector; /** * @internal */ export declare const selectWidgetDateDatasetAutoSelect: DashboardSelector; /** * @internal */ export declare const selectWidgetDeleteDialogWidgetRef: DashboardSelector; /** * Selects widget drills by the widget ref. * * @alpha */ export declare const selectWidgetDrills: (ref: ObjRef | undefined) => DashboardSelector; /** * Maps widget local identifiers to the tab that contains them. * * @alpha */ export declare const selectWidgetLocalIdToTabIdMap: DashboardSelector>; /** * Selects layout path for a given widget. * * @alpha */ export declare const selectWidgetPathByRef: (ref: ObjRef) => DashboardSelector; /** * @internal */ export declare const selectWidgetPlaceholder: DashboardSelector; /** * @internal * * @deprecated The selector returns coordinates in its parent layout. The information is not useful on its * own when dashboard uses nested layout. For this case use {@link selectWidgetPlaceholderPath} instead. * * TODO LX-648: remove this selector, exported only for backward compatible reasons. */ export declare const selectWidgetPlaceholderCoordinates: DashboardSelector; /** * @internal */ export declare const selectWidgetPlaceholderPath: DashboardSelector; /** * Selects dashboard widgets in an obj ref an array. This map will include both analytical and custom * widgets that are placed on the dashboard and also all widgets from visualization switchers * * @internal */ export declare const selectWidgets: DashboardSelector; /** * Selects dashboard widgets in an obj ref to widget map. This map will include both analytical and custom * widgets that are placed on the dashboard. * * @internal */ export declare const selectWidgetsMap: DashboardSelector>; /** * @internal */ export declare const selectWidgetsModification: (refs: (ObjRef | undefined)[]) => DashboardSelector<("insertedByPlugin" | "modifiedByPlugin")[]>; /** * @internal */ export declare const selectWidgetsOverlay: DashboardSelector>; /** * @internal */ export declare const selectWidgetsOverlayState: (refs: (ObjRef | undefined)[]) => DashboardSelector; /** * This selector returns all dashboard's working filter context attribute-based filters, * including element-based, arbitrary, and match filters. * * @remarks * It is expected that the selector is called only after the filter context state is correctly initialized. * Invocations before initialization lead to invariant errors. * * @public */ export declare const selectWorkingFilterContextAttributeFilterItems: DashboardSelector; /** * Returns all working attribute-based filters (element-based, arbitrary, and match) for a specific tab. * * @param tabLocalIdentifier - Tab local identifier * @returns All working attribute-based filters for the specified tab * * @internal */ export declare const selectWorkingFilterContextAttributeFilterItemsForTab: (tabLocalIdentifier: string) => DashboardSelector; /** * This selector returns dashboard's working filter context attribute filters with element-based selection only. * * @remarks * It is expected that the selector is called only after the filter context state is correctly initialized. * Invocations before initialization lead to invariant errors. * * Note: This selector does not include arbitrary or match (text) attribute filters. * Use {@link selectWorkingFilterContextAttributeFilterItems} to get all attribute-based filters. * * @public * @deprecated Use {@link selectWorkingFilterContextAttributeFilterItems} to include all attribute filter types. */ export declare const selectWorkingFilterContextAttributeFilters: DashboardSelector; /** * Returns working element-based attribute filters for a specific tab. * * @param tabLocalIdentifier - Tab local identifier * @returns Working attribute filters for the specified tab * * @internal * @deprecated Use {@link selectWorkingFilterContextAttributeFilterItemsForTab} to include all attribute filter types. */ export declare const selectWorkingFilterContextAttributeFiltersForTab: (tabLocalIdentifier: string) => DashboardSelector; /** * This selector returns dashboard's working filter context date filter. * * @remarks * It is expected that the selector is called only after the filter context state is correctly initialized. * Invocations before initialization lead to invariant errors. * * @public */ export declare const selectWorkingFilterContextDateFilter: DashboardSelector; /** * Returns the working common date filter for a specific tab. * * @param tabLocalIdentifier - Tab local identifier * @returns Working common date filter for the specified tab, or undefined if not found * * @internal */ export declare const selectWorkingFilterContextDateFilterForTab: (tabLocalIdentifier: string) => DashboardSelector; /** * This selector returns dashboard's working filter context date filter with dimension specified. * * @remarks * It is expected that the selector is called only after the filter context state is correctly initialized. * Invocations before initialization lead to invariant errors. * * @public */ export declare const selectWorkingFilterContextDateFiltersWithDimension: DashboardSelector; /** * Returns working date filters with dimension for a specific tab. * * @param tabLocalIdentifier - Tab local identifier * @returns Working date filters with dimension for the specified tab * * @internal */ export declare const selectWorkingFilterContextDateFiltersWithDimensionForTab: (tabLocalIdentifier: string) => DashboardSelector; /** * This selector returns current working dashboard's filter context definition. * * @remarks * It is expected that the selector is called only after the wokring filter context state is correctly initialized. * Invocations before initialization lead to invariant errors. * * @returns a {@link @gooddata/sdk-backend-spi#IFilterContextDefinition} * * @alpha */ export declare const selectWorkingFilterContextDefinition: DashboardSelector; /** * This selector returns dashboard's working filter context filters. * * @remarks * It is expected that the selector is called only after the filter context state is correctly initialized. * Invocations before initialization lead to invariant errors. * * @public */ export declare const selectWorkingFilterContextFilters: DashboardSelector; /** * Creates the SetAttributeFilterDependentDateFilters command. Dispatching this command will result in setting a * relationship between one dashboard attribute filters and one or more date filters. * * When an attribute filter has a dependent date filter set up, the attribute elements that will be available in the attribute * filter will be influenced by the selection in the date filter. The attribute filter will show only those elements * for which a link exists to the selected elements in the dependent date filter. * * * @param filterLocalId - local id of filter that will be a child in the relationship * @param dependentDateFilters - * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function setAttributeFilterDependentDateFilters(filterLocalId: string, dependentDateFilters: IDashboardAttributeFilterByDate[], correlationId?: string): ISetAttributeFilterDependentDateFilters; /** * Payload of the {@link ISetAttributeFilterDependentDateFilters} command. * @beta */ export declare type SetAttributeFilterDependentDateFiltersPayload = { readonly filterLocalId: string; readonly dependentDateFilters: ReadonlyArray; }; /** * Creates the {@link ISetAttributeFilterDisplayForm} command. * * @remarks * Dispatching the commands will result into setting provided display form as a selected * display form for the attribute filter. * * * @beta * @param filterLocalId - local identifier of the filter the display form is changed for * @param displayForm - newly selected display form * @param isWorkingSelectionChange - determines if command updates working filter context or applied filter context. Applied filter context is default. * @param isResultOfMigration - internal value, specifies that filter change was caused by displayAsLabel * ad-hoc migration, the param will be removed once the usage of displayAsLabel is migrated on database * metadata level. * @returns change filter display form command */ export declare function setAttributeFilterDisplayForm(filterLocalId: string, displayForm: ObjRef, isWorkingSelectionChange?: boolean, isResultOfMigration?: boolean): ISetAttributeFilterDisplayForm; /** * Creates the {@link ISetAttributeFilterLimitingItems} command. * * @remarks * Dispatching the commands will result into setting of provided limiting items to a defined attribute filter. * * * @alpha * @param localIdentifier - local identifier of the filter the limiting items are changed for * @param limitingItems - limiting items set to the specified attribute filter. * @param correlationId - specify correlation id. It will be included in all events that will be emitted during the command processing. * @returns change limiting items command */ export declare function setAttributeFilterLimitingItems(localIdentifier: string, limitingItems: ObjRef[], correlationId?: string): ISetAttributeFilterLimitingItems; /** * Creates the SetAttributeFilterParents command. Dispatching this command will result in setting a parent-child * relationship between two or more dashboard attribute filters. * * When an attribute filter has a parent set up, the attribute elements that will be available in the child * filter will be influenced by the selection in the parent. The child filter will show only those elements * for which a link exists to the selected elements in the parent. * * Take for example a model where there are continent and country attributes. You add continent and * country as filters onto a dashboard and establish parent-child relationship between them. When users select * some continents in the filter, the country filter will only show elements for countries on the selected * contents. * * @param filterLocalId - local id of filter that will be a child in the relationship * @param parentFilters - definition of the relationship to parent, this contains local id of the parent filter and * one or more 'over' attributes. The 'over' attributes will be included when querying * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function setAttributeFilterParents(filterLocalId: string, parentFilters: IDashboardAttributeFilterParent[], correlationId?: string): ISetAttributeFilterParents; /** * Payload of the {@link ISetAttributeFilterParents} command. * @beta */ export declare type SetAttributeFilterParentsPayload = { readonly filterLocalId: string; readonly parentFilters: ReadonlyArray; }; /** * Creates the {@link ISetAttributeFilterSelectionMode} command. * * @remarks * Dispatching the commands will result into setting provided selection mode as a selected * selection mode for the attribute filter. * * * @beta * @param filterLocalId - local identifier of the filter the selection mode is changed for * @param selectionMode - newly selected selection mode * @returns change filter selection mode command */ export declare function setAttributeFilterSelectionMode(filterLocalId: string, selectionMode: DashboardAttributeFilterSelectionMode): ISetAttributeFilterSelectionMode; /** * Creates the {@link ISetAttributeFilterTitle} command. * * @remarks * Dispatching the commands will result into setting provided title as a selected * title for the attribute filter. * * * @beta * @param filterLocalId - local identifier of the filter the display form is changed for * @param title - newly added title * @param correlationId - specify correlation id. It will be included in all events that will be emitted during the command processing. * @returns change filter title command */ export declare function setAttributeFilterTitle(filterLocalId: string, title?: string, correlationId?: string): ISetAttributeFilterTitle; /** * @public */ export declare type SetCatalogItemsPayload = { attributes?: ICatalogAttribute[]; measures?: ICatalogMeasure[]; facts?: ICatalogFact[]; dateDatasets?: ICatalogDateDataset[]; attributeHierarchies?: ICatalogAttributeHierarchy[]; dateHierarchyTemplates?: IDateHierarchyTemplate[]; }; /** * @public */ export declare type SetCatalogMeasuresAndFactsPayload = { measures: ICatalogMeasure[]; facts: ICatalogFact[]; }; /** * Creates the {@link ISetDashboardAttributeFilterConfigDisplayAsLabel} command. * * @remarks * Dispatching the command will result into setting provided label as new label (= display form) used for the displaying attribute filter elements. * * * @alpha * @param localIdentifier - local identifier of the filter the label is changed for * @param displayAsLabel - newly used display as label * @returns change filter mode command */ export declare function setDashboardAttributeFilterConfigDisplayAsLabel(localIdentifier: string, displayAsLabel: ObjRef): ISetDashboardAttributeFilterConfigDisplayAsLabel; /** * Creates the {@link ISetDashboardAttributeFilterConfigMode} command. * * @remarks * Dispatching the commands will result into setting provided the mode as a mode for the attribute filter. * * * @alpha * @param localIdentifier - local identifier of the filter the display form is changed for * @param mode - newly added mode * @returns change filter mode command */ export declare function setDashboardAttributeFilterConfigMode(localIdentifier: string, mode?: DashboardAttributeFilterConfigMode): ISetDashboardAttributeFilterConfigMode; /** * Creates the {@link ISetDashboardAttributeFilterSelectionType} command. * * @alpha * @param localIdentifier - local identifier of the filter * @param selectionType - available mode to set * @returns change available mode command */ export declare function setDashboardAttributeFilterSelectionType(localIdentifier: string, selectionType?: DashboardAttributeFilterSelectionType): ISetDashboardAttributeFilterSelectionType; /** * Creates the {@link ISetDashboardDateFilterConfigMode} command. * * @remarks * Dispatching this command will set the visibility mode of the dashboard date filter to the provided value. * * @alpha * @param mode - The visibility mode to set. * @returns set dashboard date filter config mode command */ export declare function setDashboardDateFilterConfigMode(mode: DashboardDateFilterConfigMode): ISetDashboardDateFilterConfigMode; /** * Creates the {@link ISetDashboardDateFilterWithDimensionConfigMode} command. * * @remarks * Dispatching the commands will result into setting provided the mode as a mode for the date filter. * * * @alpha * @param dataSet - dataSet of the filter the mode is changed for * @param mode - newly added mode * @returns change filter mode command */ export declare function setDashboardDateFilterWithDimensionConfigMode(dataSet: ObjRef, mode?: DashboardDateFilterConfigMode): ISetDashboardDateFilterWithDimensionConfigMode; /** * Creates the {@link ISetDashboardMeasureValueFilterConfigMode} command. * * @alpha * @param localIdentifier - local identifier of the measure value filter * @param mode - newly selected mode * @returns change measure value filter mode command */ export declare function setDashboardMeasureValueFilterConfigMode(localIdentifier: string, mode?: DashboardAttributeFilterConfigMode): ISetDashboardMeasureValueFilterConfigMode; /** * Creates the {@link ISetDateFilterConfigTitle} command. * * @remarks * Dispatching the commands will result into setting provided title as a selected * title for the date filter. * * * @beta * @param dataSet - date data set ref of the filter the display form is changed for * @param title - newly added title * @param correlationId - specify correlation id. It will be included in all events that will be emitted during the command processing. * @returns change filter title command */ export declare function setDateFilterConfigTitle(dataSet?: ObjRef, title?: string, correlationId?: string): ISetDateFilterConfigTitle; /** * Creates the SetDrillForKpiWidget command. Dispatching this command will result in KPI having its drill set to the given value. * * @param ref - reference of the KPI widget to modify * @param legacyDashboardRef - ref of the legacy dashboard to drill to * @param legacyDashboardTabIdentifier - identifier of the legacy dashboard tab to drill to * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function setDrillForKpiWidget(ref: ObjRef, legacyDashboardRef: ObjRef, legacyDashboardTabIdentifier: string, correlationId?: string): ISetDrillForKpiWidget; /** * Creates an {@link IUpsertExecutionResult} command that makes the relevant execution result set new result data and stop loading. * * @beta */ export declare function setExecutionResultData(id: ObjRef | string, executionResult: IExecutionResult, executionWarnings: IResultWarning[] | undefined, limitBreaks: IExecutionResultLimitBreak[] | undefined, correlationId?: string): IUpsertExecutionResult; /** * Creates an {@link IUpsertExecutionResult} command that makes the relevant execution result indicate an error and stop loading. * * @beta */ export declare function setExecutionResultError(id: ObjRef | string, error: GoodDataSdkError, correlationId?: string): IUpsertExecutionResult; /** * Creates an {@link IUpsertExecutionResult} command for an execution that finished with an error * but still produced a result. * * @remarks * An empty-but-valid execution computes a result (with a resultId) yet surfaces as a no-data error. * Recording the result alongside the error lets consumers reference it (e.g. by resultId) while the * error keeps the widget in its terminal error state — including the non-exportable gating that the * presence of the result alone would otherwise lift. * * @beta */ export declare function setExecutionResultErrorWithResult(options: { id: ObjRef | string; error: GoodDataSdkError; executionResult: IExecutionResult; correlationId?: string; }): IUpsertExecutionResult; /** * Creates an {@link IUpsertExecutionResult} command that makes the relevant execution result indicate it is loading. * * @beta */ export declare function setExecutionResultLoading(id: ObjRef | string, correlationId?: string): IUpsertExecutionResult; /** * Creates the {@link ISetFilterViewAsDefault} command. * * @remarks * Dispatching this command will result into setting of the persisted filter view as a default one when * dashboard filter context is loaded or unsetting it from being applied automatically on load. * * @alpha * @param ref - ref of the filter view that must be set as a default one. * @param isDefault - determine if filter view identified by the provided ref should be marked as a default * one. If yes, any existing filter view for the same user and dashboard will be marked as non default * as only one can be set as default at the same time. * @param correlationId - specify correlation id. It will be included in all events that will be emitted during the command processing. * @returns delete filter view command */ export declare function setFilterViewAsDefault(ref: ObjRef, isDefault: boolean, correlationId?: string): ISetFilterViewAsDefault; /** * Creates the {@link ISetMeasureValueFilterDimensionality} command. * * @alpha * @param localIdentifier - local identifier of the measure value filter to update * @param dimensionality - fixed dashboard-level dimensionality, or undefined to inherit per-widget granularity * @param correlationId - correlation id propagated through emitted events * @returns set measure value filter dimensionality command */ export declare function setMeasureValueFilterDimensionality(localIdentifier: string, dimensionality?: ObjRef[], correlationId?: string): ISetMeasureValueFilterDimensionality; /** * Creates the {@link ISetMeasureValueFilterTitle} command. * * @alpha * @param filterLocalId - local identifier of the measure value filter * @param title - custom title, or undefined to reset to the default metric title * @param correlationId - correlation id propagated through emitted events * @returns change measure value filter title command */ export declare function setMeasureValueFilterTitle(filterLocalId: string, title?: string, correlationId?: string): ISetMeasureValueFilterTitle; /** * Creates the SetScreenSize command. * * @remarks * This command sets new screen size for the dashboard layout. * Do not use this command directly, it is used internally by the dashboard layout engine. * * @param screenSize - new screen size to set * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @internal * */ export declare function setScreenSize(screenSize: ScreenSize, correlationId?: string): ISetScreenSize; /** * Command to set a widget to show as table. * * @param ref - reference to the widget * @param showAsTable - whether to show as table or not * @beta */ export declare function setShowWidgetAsTable(ref: ObjRef, showAsTable: boolean): ISetShowWidgetAsTable; /** * @internal */ export declare function SettingButton(props: ISettingButtonProps): ReactElement; /** * @internal */ export declare function ShareButton(props: IShareButtonProps): ReactElement; /** * @internal */ export declare function ShareDialog(props: IShareDialogProps): ReactElement; /** * @beta */ export declare type ShareDialogInteractionData = { type: ShareDialogInteractionType; flowId: string; currentUserPermission: AccessGranularPermission; isCurrentUserWorkspaceManager: boolean; isSharedObjectLocked: boolean; sharedObjectStatus: ShareStatus; isCurrentUserSelfUpdating?: boolean; isExistingGrantee?: boolean; granteeType?: "user" | "group"; granteeEffectivePermission?: AccessGranularPermission; granteeUpdatedPermission?: AccessGranularPermission; numberOfAvailableGrantees?: number; }; /** * @beta */ export declare type ShareDialogInteractionPayload = IUserInteractionPayloadWithDataBase<"shareDialogInteraction", ShareDialogInteractionData>; /** * @beta */ export declare type ShareDialogInteractionType = "SHARE_DIALOG_OPENED" | "SHARE_DIALOG_CLOSED" | "SHARE_DIALOG_SAVED" | "SHARE_DIALOG_PERMISSIONS_DROPDOWN_OPENED" | "SHARE_DIALOG_PERMISSIONS_CHANGED" | "SHARE_DIALOG_GRANTEE_REMOVED" | "SHARE_DIALOG_GRANTEE_ADDED" | "SHARE_DIALOG_AVAILABLE_GRANTEE_LIST_OPENED"; /** * @alpha */ export declare function ShareStatusIndicator({ shareStatus, isUnderStrictControl }: IShareStatusProps): ReactElement | null; /** * @internal */ export declare function ShowAsTableButton(props: IShowAsTableButtonProps): ReactElement; /** * @alpha */ export declare type ShowAsTableButtonComponentProvider = (widget: IInsightWidget) => CustomShowAsTableButtonComponent; /** * Creates a new ShowWidgetAsTableSet event. * * @param ctx - dashboard context * @param ref - reference to the widget * @param showAsTable - whether to show as table * @param correlationId - optional correlation ID * @beta */ export declare function showWidgetAsTableSet(ctx: DashboardContext, ref: ObjRef, showAsTable: boolean, correlationId?: string): IShowWidgetAsTableSet; /** * @internal */ export declare function SidebarConfigurationPanel(props: Omit): ReactElement | null; /** * This singleton class uses {@link DashboardStoreAccessorRepository} to create a store accessor for * a single dashboard. * * @remarks * The usage of this singleton is the same as for {@link DashboardStoreAccessorRepository} except functions * don't accept any parameters. * * * example: * ``` * import { SingleDashboardStoreAccessor } from "@gooddata/sdk-ui-dashboard"; * ... * * const dispatch = SingleDashboardStoreAccessor.getDashboardDispatch(); * if (dispatch) { * dispatch({ * type: "GDC.DASH/CMD.SOME_COMMAND", * payload: {}, * }); * } * ... * * ``` * @public */ export declare class SingleDashboardStoreAccessor { /** * Returns a selector for current dashboard. */ static getDashboardSelect(): DashboardSelectorEvaluator; /** * Returns a dispatch object for current dashboard. */ static getDashboardDispatch(): DashboardDispatch; /** * Creates a {@link Dashboard#onStateChange} callback for current dashboard. */ static getOnChangeHandler(): (state: DashboardState, dispatch: DashboardDispatch) => void; /** * Removes dashboard accessors from {@link DashboardStoreAccessorRepository#accessors} for current dashboard. */ static clearAccessor(): void; /** * Checks if accessors is initialized for current dashboard. */ static isAccessorInitialized(): boolean; } /** * Creates a {@link DashboardEventHandler} instance that will be invoked for one specified event type. * * @param type - the type of event this handler should trigger for * @param handler - the actual event handling function * @public */ export declare function singleEventTypeHandler(type: (DashboardEvents | ICustomDashboardEvent)["type"], handler: DashboardEventHandler["handler"]): DashboardEventHandler; /** * Creates the StartRenamingDashboardTab command. * @alpha */ export declare function startRenamingDashboardTab(tabId?: string, correlationId?: string, shouldSelectTab?: boolean): IStartRenamingDashboardTab; /** * Identifier of a stashed dashboard items. When removing one or more item, the caller may decide to 'stash' these items * under some identifier. This stashed items can then be used in subsequent command that places items on the layout by * providing the stash identifier. * * @beta */ export declare type StashedDashboardItemsId = string; /** * Creates the SwitchDashboardTab command. * * @param tabId - identifier of the tab to switch to * @param correlationId - specify correlation id to use for this command * @param source - what triggered the switch; omit for a regular user-initiated tab switch. * See {@link DashboardTabSwitchSource}. * @returns switch dashboard tab command * * @alpha */ export declare function switchDashboardTab(tabId: string, correlationId?: string, source?: DashboardTabSwitchSource): ISwitchDashboardTab; /** * Creates the ChangeRenderMode command for switch to edit mode. * * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function switchToEditRenderMode(correlationId?: string): IChangeRenderMode; /** * @internal */ export declare const tabsActions: CaseReducerActions< { readonly setTabs: TabsReducer< { payload: { tabs?: ITabState[] | undefined; activeTabLocalIdentifier?: string | undefined; }; type: string; }>; readonly setActiveTabLocalIdentifier: TabsReducer< { payload: string | undefined; type: string; }>; readonly updateTab: TabsReducer< { payload: ITabState; type: string; }>; readonly removeTabById: TabsReducer< { payload: string; type: string; }>; readonly clearTabs: TabsReducer< { payload: void; type: string; }>; readonly setTabIsRenaming: TabsReducer< { payload: { tabId: string; isRenaming: boolean; }; type: string; }>; readonly renameTab: TabsReducer< { payload: { tabId: string; title: string; }; type: string; }>; readonly resolveDefaultTab: TabsReducer< { payload: { newLocalIdentifier: string; }; type: string; }>; readonly changeAttributeFilterConfigMode: (state: WritableDraft, action: { payload: ISetDashboardAttributeFilterConfigModePayload; type: string; }) => void | ITabsState | WritableDraft; readonly changeAttributeFilterSelectionType: (state: WritableDraft, action: { payload: ISetDashboardAttributeFilterSelectionTypePayload; type: string; }) => void | ITabsState | WritableDraft; readonly setAttributeFilterConfigs: (state: WritableDraft, action: { payload: any; type: string; }) => void | ITabsState | WritableDraft; readonly removeAttributeFilterConfig: TabsReducer< { payload: string; type: string; }>; readonly changeDisplayAsLabel: (state: WritableDraft, action: { payload: ISetDashboardAttributeFilterConfigDisplayAsLabelPayload; type: string; }) => void | ITabsState | WritableDraft; readonly setDateFilterConfig: (state: WritableDraft, action: { payload: { dateFilterConfig?: IDashboardDateFilterConfig_2 | undefined; effectiveDateFilterConfig: IDateFilterConfig; isUsingDashboardOverrides: boolean; }; type: string; }) => void | ITabsState | WritableDraft; readonly setDateFilterConfigMode: (state: WritableDraft, action: { payload: DashboardDateFilterConfigMode; type: string; }) => void | ITabsState | WritableDraft; readonly setDateFilterConfigTitle: (state: WritableDraft, action: { payload: string | undefined; type: string; }) => void | ITabsState | WritableDraft; readonly updateDateFilterConfig: (state: WritableDraft, action: { payload: IDashboardDateFilterConfig_2; type: string; }) => void | ITabsState | WritableDraft; readonly addDateFilterConfigValidationWarning: (state: WritableDraft, action: { payload: DateFilterValidationResult; type: string; }) => void | ITabsState | WritableDraft; readonly clearDateFilterConfigValidationWarning: (state: WritableDraft, action: { payload: void; type: string; }) => void | ITabsState | WritableDraft; readonly changeDateFilterConfigsMode: (state: WritableDraft, action: { payload: ISetDashboardDateFilterWithDimensionConfigModePayload; type: string; }) => void | ITabsState | WritableDraft; readonly setDateFilterConfigs: (state: WritableDraft, action: { payload: any; type: string; }) => void | ITabsState | WritableDraft; readonly removeDateFilterConfigs: (state: WritableDraft, action: { payload: ObjRef; type: string; }) => void | ITabsState | WritableDraft; readonly changeDateFilterConfigsTitle: (state: WritableDraft, action: { payload: ISetDateFilterConfigTitlePayload; type: string; }) => void | ITabsState | WritableDraft; readonly setFilterContext: (state: WritableDraft, action: { payload: { filterContextDefinition: IFilterContextDefinition; originalFilterContextDefinition?: IFilterContextDefinition | undefined; attributeFilterDisplayForms: IAttributeDisplayFormMetadataObject[]; filterContextIdentity?: IDashboardObjectIdentity | undefined; }; type: string; }) => void | ITabsState | WritableDraft; readonly updateFilterContextIdentity: (state: WritableDraft, action: { payload: { filterContextIdentity?: IDashboardObjectIdentity | undefined; }; type: string; }) => void | ITabsState | WritableDraft; readonly updateFilterContextIdentityForTab: (state: WritableDraft, action: { payload: { tabId: string; filterContextIdentity?: IDashboardObjectIdentity | undefined; }; type: string; }) => void | ITabsState | WritableDraft; readonly removeAttributeFilterDisplayForms: (state: WritableDraft, action: { payload: ObjRef; type: string; }) => void | ITabsState | WritableDraft; readonly addAttributeFilterDisplayForm: (state: WritableDraft, action: { payload: IAddAttributeFilterDisplayFormPayload | IAttributeDisplayFormMetadataObject; type: string; }) => void | ITabsState | WritableDraft; readonly addAttributeFilter: (state: WritableDraft, action: { payload: IAddAttributeFilterPayload; type: string; }) => void | ITabsState | WritableDraft; readonly addTextAttributeFilter: (state: WritableDraft, action: { payload: IAddTextAttributeFilterReducerPayload; type: string; }) => void | ITabsState | WritableDraft; readonly addMeasureValueFilter: (state: WritableDraft, action: { payload: IAddMeasureValueFilterPayload; type: string; }) => void | ITabsState | WritableDraft; readonly removeMeasureValueFilter: (state: WritableDraft, action: { payload: IRemoveMeasureValueFilterReducerPayload; type: string; }) => void | ITabsState | WritableDraft; readonly moveMeasureValueFilter: (state: WritableDraft, action: { payload: IMoveMeasureValueFilterPayload; type: string; }) => void | ITabsState | WritableDraft; readonly removeAttributeFilter: (state: WritableDraft, action: { payload: IRemoveAttributeFilterPayload; type: string; }) => void | ITabsState | WritableDraft; readonly moveAttributeFilter: (state: WritableDraft, action: { payload: IMoveAttributeFilterPayload; type: string; }) => void | ITabsState | WritableDraft; readonly addDateFilter: (state: WritableDraft, action: { payload: IAddDateFilterPayload; type: string; }) => void | ITabsState | WritableDraft; readonly removeDateFilter: (state: WritableDraft, action: { payload: IRemoveDateFilterPayload; type: string; }) => void | ITabsState | WritableDraft; readonly moveDateFilter: (state: WritableDraft, action: { payload: IMoveDateFilterPayload; type: string; }) => void | ITabsState | WritableDraft; readonly updateAttributeFilterSelection: (state: WritableDraft, action: { payload: IUpdateAttributeFilterSelectionPayload; type: string; }) => void | ITabsState | WritableDraft; readonly replaceAttributeFilterItem: (state: WritableDraft, action: { payload: IReplaceAttributeFilterItemPayload; type: string; }) => void | ITabsState | WritableDraft; readonly setAttributeFilterParents: (state: WritableDraft, action: { payload: ISetAttributeFilterParentsPayload; type: string; }) => void | ITabsState | WritableDraft; readonly setAttributeFilterDependentDateFilters: (state: WritableDraft, action: { payload: ISetAttributeFilterDependentDateFiltersPayload; type: string; }) => void | ITabsState | WritableDraft; readonly clearAttributeFiltersSelection: (state: WritableDraft, action: { payload: IClearAttributeFiltersSelectionPayload; type: string; }) => void | ITabsState | WritableDraft; readonly upsertDateFilter: (state: WritableDraft, action: { payload: IUpsertDateFilterPayload; type: string; }) => void | ITabsState | WritableDraft; readonly changeAttributeDisplayForm: (state: WritableDraft, action: { payload: IChangeAttributeDisplayFormPayload; type: string; }) => void | ITabsState | WritableDraft; readonly changeTextFilterDisplayForm: (state: WritableDraft, action: { payload: IChangeTextFilterDisplayFormPayload; type: string; }) => void | ITabsState | WritableDraft; readonly changeAttributeTitle: (state: WritableDraft, action: { payload: IChangeAttributeTitlePayload; type: string; }) => void | ITabsState | WritableDraft; readonly changeSelectionMode: (state: WritableDraft, action: { payload: IChangeAttributeSelectionModePayload; type: string; }) => void | ITabsState | WritableDraft; readonly changeLimitingItems: (state: WritableDraft, action: { payload: IChangeAttributeLimitingItemsPayload; type: string; }) => void | ITabsState | WritableDraft; readonly setPreloadedAttributesWithReferences: (state: WritableDraft, action: { payload: IAttributeWithReferences[]; type: string; }) => void | ITabsState | WritableDraft; readonly applyWorkingSelection: (state: WritableDraft, action: { payload: IApplyWorkingSelectionPayload; type: string; }) => void | ITabsState | WritableDraft; readonly resetWorkingSelection: (state: WritableDraft, action: { payload: void; type: string; }) => void | ITabsState | WritableDraft; readonly setDefaultFilterOverrides: (state: WritableDraft, action: { payload: FilterContextItem[]; type: string; }) => void | ITabsState | WritableDraft; readonly changeMeasureValueFilterCondition: (state: WritableDraft, action: { payload: IChangeMeasureValueFilterConditionReducerPayload; type: string; }) => void | ITabsState | WritableDraft; readonly setMeasureValueFilterDimensionality: (state: WritableDraft, action: { payload: { readonly localIdentifier: string; readonly dimensionality?: ObjRef[] | undefined; }; type: string; }) => void | ITabsState | WritableDraft; readonly changeMeasureValueFilterTitle: (state: WritableDraft, action: { payload: { readonly filterLocalId: string; readonly title?: string | undefined; }; type: string; }) => void | ITabsState | WritableDraft; readonly setLayout: (state: WritableDraft, action: { payload: IDashboardLayout; type: string; }) => void | ITabsState | WritableDraft; readonly setScreen: (state: WritableDraft, action: { payload: { screen: ScreenSize; }; type: string; }) => void | ITabsState | WritableDraft; readonly updateWidgetIdentities: (state: WritableDraft, action: { payload: ObjRefMap; type: string; }) => void | ITabsState | WritableDraft; readonly updateWidgetIdentitiesForTab: (state: WritableDraft, action: { payload: { tabId: string; mapping: ObjRefMap; }; type: string; }) => void | ITabsState | WritableDraft; readonly removeIgnoredAttributeFilter: (state: WritableDraft, action: { payload: { displayFormRefs: ObjRef[]; }; type: string; }) => void | ITabsState | WritableDraft; readonly removeIgnoredDateFilter: (state: WritableDraft, action: { payload: { dateDataSets: ObjRef[]; }; type: string; }) => void | ITabsState | WritableDraft; readonly removeIgnoredMeasureValueFilter: (state: WritableDraft, action: { payload: { measureRefs: ObjRef[]; }; type: string; }) => void | ITabsState | WritableDraft; readonly addSection: (state: WritableDraft, action: { payload: IUndoPayload & { section: ExtendedDashboardLayoutSection; index: ILayoutSectionPath; usedStashes: string[]; }; type: string; }) => void | ITabsState | WritableDraft; readonly removeSection: (state: WritableDraft, action: { payload: IUndoPayload & { index: ILayoutSectionPath; stashIdentifier?: string | undefined; }; type: string; }) => void | ITabsState | WritableDraft; readonly moveSection: (state: WritableDraft, action: { payload: IUndoPayload & { sectionIndex: ILayoutSectionPath; toIndex: ILayoutSectionPath; }; type: string; }) => void | ITabsState | WritableDraft; readonly changeSectionHeader: (state: WritableDraft, action: { payload: IUndoPayload & { index: ILayoutSectionPath; header: IDashboardLayoutSectionHeader; }; type: string; }) => void | ITabsState | WritableDraft; readonly addSectionItems: (state: WritableDraft, action: { payload: IUndoPayload & { layoutPath: ILayoutItemPath; items: ExtendedDashboardItem[]; usedStashes: string[]; }; type: string; }) => void | ITabsState | WritableDraft; readonly moveSectionItem: (state: WritableDraft, action: { payload: IUndoPayload & { itemIndex: ILayoutItemPath; toItemIndex: ILayoutItemPath; }; type: string; }) => void | ITabsState | WritableDraft; readonly removeSectionItem: (state: WritableDraft, action: { payload: IUndoPayload & { itemIndex: ILayoutItemPath; stashIdentifier?: string | undefined; }; type: string; }) => void | ITabsState | WritableDraft; readonly replaceSectionItem: (state: WritableDraft, action: { payload: IUndoPayload & { layoutPath: ILayoutItemPath; newItems: ExtendedDashboardItem[]; stashIdentifier?: string | undefined; usedStashes: string[]; }; type: string; }) => void | ITabsState | WritableDraft; readonly replaceWidgetHeader: (state: WritableDraft, action: { payload: IUndoPayload & { ref: ObjRef; header: IWidgetHeader; }; type: string; }) => void | ITabsState | WritableDraft; readonly replaceWidgetDescription: (state: WritableDraft, action: { payload: IUndoPayload & { ref: ObjRef; description: IWidgetDescription; }; type: string; }) => void | ITabsState | WritableDraft; readonly replaceWidgetDrillWithoutUndo: (state: WritableDraft, action: { payload: { ref: ObjRef; drillDefinitions: InsightDrillDefinition[]; }; type: string; }) => void | ITabsState | WritableDraft; readonly replaceWidgetDrills: (state: WritableDraft, action: { payload: IUndoPayload & { ref: ObjRef; drillDefinitions: InsightDrillDefinition[]; }; type: string; }) => void | ITabsState | WritableDraft; readonly replaceWidgetBlacklistHierarchies: (state: WritableDraft, action: { payload: IUndoPayload & { ref: ObjRef; blacklistHierarchies: IDrillDownReference[]; }; type: string; }) => void | ITabsState | WritableDraft; readonly replaceWidgetBlacklistAttributes: (state: WritableDraft, action: { payload: IUndoPayload & { ref: ObjRef; blacklistAttributes: ObjRef[]; }; type: string; }) => void | ITabsState | WritableDraft; readonly replaceWidgetDrillDownIntersectionIgnoredAttributes: (state: WritableDraft, action: { payload: IUndoPayload & { ref: ObjRef; ignoredDrillDownIntersectionIgnoredAttributes: IDrillDownIntersectionIgnoredAttributes[]; }; type: string; }) => void | ITabsState | WritableDraft; readonly replaceInsightWidgetVisProperties: (state: WritableDraft, action: { payload: IUndoPayload & { ref: ObjRef; properties: VisualizationProperties | undefined; }; type: string; }) => void | ITabsState | WritableDraft; readonly replaceInsightWidgetVisConfiguration: (state: WritableDraft, action: { payload: IUndoPayload & { ref: ObjRef; config: IInsightWidgetConfiguration | undefined; }; type: string; }) => void | ITabsState | WritableDraft; readonly replaceInsightWidgetInsight: (state: WritableDraft, action: { payload: IUndoPayload & { ref: ObjRef; insightRef: ObjRef; properties: VisualizationProperties | undefined; header: IWidgetHeader | undefined; newSize?: IVisualizationSizeInfo | undefined; }; type: string; }) => void | ITabsState | WritableDraft; readonly replaceWidgetFilterSettings: (state: WritableDraft, action: { payload: IUndoPayload & { ref: ObjRef; ignoreDashboardFilters?: IDashboardFilterReference[] | undefined; dateDataSet?: ObjRef | undefined; }; type: string; }) => void | ITabsState | WritableDraft; readonly replaceWidgetDateDataset: (state: WritableDraft, action: { payload: IUndoPayload & { ref: ObjRef; dateDataSet?: ObjRef | undefined; }; type: string; }) => void | ITabsState | WritableDraft; readonly replaceKpiWidgetMeasure: (state: WritableDraft, action: { payload: IUndoPayload & { ref: ObjRef; measureRef: ObjRef; }; type: string; }) => void | ITabsState | WritableDraft; readonly replaceKpiWidgetComparison: (state: WritableDraft, action: { payload: IUndoPayload & { ref: ObjRef; comparisonType: IKpiComparisonTypeComparison; comparisonDirection?: IKpiComparisonDirection | undefined; }; type: string; }) => void | ITabsState | WritableDraft; readonly replaceKpiWidgetDrillWithoutUndo: (state: WritableDraft, action: { payload: { ref: ObjRef; drillDefinitions: InsightDrillDefinition[]; }; type: string; }) => void | ITabsState | WritableDraft; readonly replaceKpiWidgetDrill: (state: WritableDraft, action: { payload: IUndoPayload & { ref: ObjRef; drill: IDrillToLegacyDashboard_2 | undefined; }; type: string; }) => void | ITabsState | WritableDraft; readonly replaceKpiWidgetConfiguration: (state: WritableDraft, action: { payload: IUndoPayload & { ref: ObjRef; config: IKpiWidgetConfiguration | undefined; }; type: string; }) => void | ITabsState | WritableDraft; readonly replaceRichTextWidgetContent: (state: WritableDraft, action: { payload: IUndoPayload & { ref: ObjRef; content: string; }; type: string; }) => void | ITabsState | WritableDraft; readonly addVisualizationSwitcherWidgetVisualization: (state: WritableDraft, action: { payload: IUndoPayload & { ref: ObjRef; visualization: IInsightWidget; newSize?: IVisualizationSizeInfo | undefined; }; type: string; }) => void | ITabsState | WritableDraft; readonly updateVisualizationSwitcherWidgetVisualizations: (state: WritableDraft, action: { payload: IUndoPayload & { ref: ObjRef; visualizations: IInsightWidget[]; }; type: string; }) => void | ITabsState | WritableDraft; readonly undoLayout: >(state: WritableDraft, action: { payload: { undoDownTo: number; }; type: string; }) => void | ITabsState | WritableDraft; readonly clearLayoutHistory: (state: WritableDraft, action: { payload: void; type: string; }) => void | ITabsState | WritableDraft; readonly changeItemsHeight: (state: WritableDraft, action: { payload: { sectionIndex: ILayoutSectionPath; itemIndexes: number[]; height: number; }; type: string; }) => void | ITabsState | WritableDraft; readonly changeItemWidth: (state: WritableDraft, action: { payload: { layoutPath: ILayoutItemPath; width: number; }; type: string; }) => void | ITabsState | WritableDraft; readonly changeWidgetIgnoreCrossFiltering: (state: WritableDraft, action: { payload: IUndoPayload & { ref: ObjRef; ignoreCrossFiltering?: boolean | undefined; }; type: string; }) => void | ITabsState | WritableDraft; readonly resizeVisualizationSwitcherOnInsightChanged: (state: WritableDraft, action: { payload: IUndoPayload & { ref: ObjRef; newSize?: IVisualizationSizeInfo | undefined; }; type: string; }) => void | ITabsState | WritableDraft; readonly toggleLayoutSectionHeaders: (state: WritableDraft, action: { payload: IUndoPayload & { layoutPath: ILayoutItemPath | undefined; enableSectionHeaders: boolean; }; type: string; }) => void | ITabsState | WritableDraft; readonly toggleLayoutDirection: (state: WritableDraft, action: { payload: IUndoPayload & { layoutPath: ILayoutItemPath | undefined; direction: IDashboardLayoutContainerDirection; }; type: string; }) => void | ITabsState | WritableDraft; readonly updateHeightOfMultipleItems: (state: WritableDraft, action: { payload: { itemsWithSizes: IItemWithHeight[]; }; type: string; }) => void | ITabsState | WritableDraft; readonly updateWidthOfMultipleItems: (state: WritableDraft, action: { payload: { itemsWithSizes: IItemWithWidth[]; }; type: string; }) => void | ITabsState | WritableDraft; readonly changeMeasureValueFilterConfigMode: (state: WritableDraft, action: { payload: IChangeMeasureValueFilterConfigModePayload; type: string; }) => void | ITabsState | WritableDraft; readonly setMeasureValueFilterConfigs: (state: WritableDraft, action: { payload: ISetMeasureValueFilterConfigsPayload; type: string; }) => void | ITabsState | WritableDraft; readonly removeMeasureValueFilterConfig: (state: WritableDraft, action: { payload: string; type: string; }) => void | ITabsState | WritableDraft; readonly addParameter: (state: WritableDraft, action: { payload: IAddParameterPayload; type: string; }) => void | ITabsState | WritableDraft; readonly setParameterRuntimeValue: (state: WritableDraft, action: { payload: ISetParameterRuntimeValuePayload; type: string; }) => void | ITabsState | WritableDraft; readonly setParameterRuntimeValues: (state: WritableDraft, action: { payload: ISetParameterRuntimeValuesPayload; type: string; }) => void | ITabsState | WritableDraft; readonly removeParameter: (state: WritableDraft, action: { payload: IRemoveParameterPayload; type: string; }) => void | ITabsState | WritableDraft; }, "tabs">; /** * @alpha */ export declare type TabsReducer = CaseReducer; /** * @internal */ export declare function Title(props: ITitleProps): ReactElement; /** * @public */ export declare type TitleComponentProvider = (props: ITitleProps) => CustomTitleComponent; /** * Creates the ToggleLayoutDirection command. * * @remarks * This command changes the direction of the dashboard layout. * * @param layoutPath - layout for which the direction will be changed. * @param direction - the new direction for the layout ('row' or 'column'). * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @alpha */ export declare function toggleLayoutDirection(layoutPath: ILayoutItemPath | undefined, direction: IDashboardLayoutContainerDirection, correlationId?: string): IToggleLayoutDirection; /** * Creates the ToggleLayoutSectionHeaders command. * * @remarks * This command toggles headers of the sections for the dashboard layout. * * @param layoutPath - layout for which the sections will have the headers toggled. * @param enableSectionHeaders - value of that determines state of the headers of the layout sections. True to enable headers, false to disable them. * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @alpha * */ export declare function toggleLayoutSectionHeaders(layoutPath: ILayoutItemPath | undefined, enableSectionHeaders: boolean, correlationId?: string): IToggleLayoutSectionHeaders; /** * @internal */ export declare function Toolbar(props: IToolbarProps): ReactElement; /** * @internal */ export declare function TopBar(props: ITopBarProps): ReactElement; /** * @public */ export declare type TopBarComponentProvider = (props: ITopBarProps) => CustomTopBarComponent; /** * Creates an {@link ITriggerEvent} command. * * @beta */ export declare function triggerEvent(eventBody: DashboardEventBody, correlationId?: string): ITriggerEvent; /** * Actions to control ui state of the dashboard. * * @internal */ export declare const uiActions: { openSettingsDialog: ActionCreatorWithoutPayload<"uiSlice/openSettingsDialog">; closeSettingsDialog: ActionCreatorWithoutPayload<"uiSlice/closeSettingsDialog">; openDensityDialog: ActionCreatorWithoutPayload<"uiSlice/openDensityDialog">; closeDensityDialog: ActionCreatorWithoutPayload<"uiSlice/closeDensityDialog">; setDensity: ActionCreatorWithPayload; openScheduleEmailDialog: ActionCreatorWithPayload; closeScheduleEmailDialog: ActionCreatorWithoutPayload<"uiSlice/closeScheduleEmailDialog">; setScheduleEmailDialogDefaultAttachment: ActionCreatorWithPayload; resetScheduleEmailDialogDefaultAttachment: ActionCreatorWithoutPayload<"uiSlice/resetScheduleEmailDialogDefaultAttachment">; openScheduleEmailManagementDialog: ActionCreatorWithPayload; closeScheduleEmailManagementDialog: ActionCreatorWithoutPayload<"uiSlice/closeScheduleEmailManagementDialog">; openAlertingManagementDialog: ActionCreatorWithPayload; closeAlertingManagementDialog: ActionCreatorWithoutPayload<"uiSlice/closeAlertingManagementDialog">; openAlertingDialog: ActionCreatorWithPayload; closeAlertingDialog: ActionCreatorWithoutPayload<"uiSlice/closeAlertingDialog">; openSaveAsDialog: ActionCreatorWithoutPayload<"uiSlice/openSaveAsDialog">; closeSaveAsDialog: ActionCreatorWithoutPayload<"uiSlice/closeSaveAsDialog">; setFilterBarExpanded: ActionCreatorWithPayload; closeKpiAlertDialog: ActionCreatorWithoutPayload<"uiSlice/closeKpiAlertDialog">; openKpiAlertDialog: ActionCreatorWithPayload; highlightKpiAlert: ActionCreatorWithPayload; openShareDialog: ActionCreatorWithoutPayload<"uiSlice/openShareDialog">; closeShareDialog: ActionCreatorWithoutPayload<"uiSlice/closeShareDialog">; openDeleteDialog: ActionCreatorWithoutPayload<"uiSlice/openDeleteDialog">; closeDeleteDialog: ActionCreatorWithoutPayload<"uiSlice/closeDeleteDialog">; openKpiDeleteDialog: ActionCreatorWithPayload; closeKpiDeleteDialog: ActionCreatorWithoutPayload<"uiSlice/closeKpiDeleteDialog">; setMenuButtonItemsVisibility: ActionCreatorWithPayload; selectWidget: ActionCreatorWithPayload; clearWidgetSelection: ActionCreatorWithoutPayload<"uiSlice/clearWidgetSelection">; setConfigurationPanelOpened: ActionCreatorWithPayload; setWidgetDateDatasetAutoSelect: ActionCreatorWithPayload; requestInsightListUpdate: ActionCreatorWithoutPayload<"uiSlice/requestInsightListUpdate">; setWidgetLoadingAdditionalDataStarted: ActionCreatorWithPayload; setWidgetLoadingAdditionalDataStopped: ActionCreatorWithPayload; setFilterAttributeSelectionOpen: ActionCreatorWithPayload; selectFilterIndex: ActionCreatorWithPayload; clearFilterIndexSelection: ActionCreatorWithoutPayload<"uiSlice/clearFilterIndexSelection">; setActiveSection: ActionCreatorWithPayload; clearActiveSection: ActionCreatorWithoutPayload<"uiSlice/clearActiveSection">; openCancelEditModeDialog: ActionCreatorWithoutPayload<"uiSlice/openCancelEditModeDialog">; closeCancelEditModeDialog: ActionCreatorWithoutPayload<"uiSlice/closeCancelEditModeDialog">; resetInvalidDrillWidgetRefs: ActionCreatorWithoutPayload<"uiSlice/resetInvalidDrillWidgetRefs">; resetSanitizedDrillWidgetRefs: ActionCreatorWithoutPayload<"uiSlice/resetSanitizedDrillWidgetRefs">; resetAllInvalidCustomUrlDrillParameterWidgets: ActionCreatorWithoutPayload<"uiSlice/resetAllInvalidCustomUrlDrillParameterWidgets">; resetAllInvalidCustomUrlDrillParameterWidgetsWarnings: ActionCreatorWithoutPayload<"uiSlice/resetAllInvalidCustomUrlDrillParameterWidgetsWarnings">; addInvalidDrillWidgetRefs: ActionCreatorWithPayload; addSanitizedDrillWidgetRefs: ActionCreatorWithPayload; setInvalidCustomUrlDrillParameterWidgets: ActionCreatorWithPayload< { widget: IInsightWidget; invalidDrills: IDrillToCustomUrl_2[]; }[], "uiSlice/setInvalidCustomUrlDrillParameterWidgets">; removeInvalidDrillWidgetRefs: ActionCreatorWithPayload; removeSanitizedDrillWidgetRefs: ActionCreatorWithPayload; resetInvalidCustomUrlDrillParameterWidget: ActionCreatorWithPayload; setDraggingWidgetSource: ActionCreatorWithPayload; clearDraggingWidgetSource: ActionCreatorWithoutPayload<"uiSlice/clearDraggingWidgetSource">; setDraggingWidgetTarget: ActionCreatorWithPayload< { path: ILayoutItemPath; triggeringDropZoneType: DropZoneType; }, "uiSlice/setDraggingWidgetTarget">; clearDraggingWidgetTarget: ActionCreatorWithoutPayload<"uiSlice/clearDraggingWidgetTarget">; toggleWidgetsOverlay: ActionCreatorWithPayload< { refs: (ObjRef | undefined)[]; visible: boolean; }, "uiSlice/toggleWidgetsOverlay">; setWidgetsOverlay: ActionCreatorWithPayload, "uiSlice/setWidgetsOverlay">; hideAllWidgetsOverlay: ActionCreatorWithoutPayload<"uiSlice/hideAllWidgetsOverlay">; toggleFilterViewsDialog: ActionCreatorWithOptionalPayload< { open?: boolean | undefined; mode?: FilterViewDialogMode | undefined; } | undefined, "uiSlice/toggleFilterViewsDialog">; openWidgetDeleteDialog: ActionCreatorWithPayload; closeWidgetDeleteDialog: ActionCreatorWithoutPayload<"uiSlice/closeWidgetDeleteDialog">; changeIgnoreExecutionTimestamp: ActionCreatorWithPayload; setIncompatibleDefaultFiltersOverrideMessage: ActionCreatorWithoutPayload<"uiSlice/setIncompatibleDefaultFiltersOverrideMessage">; resetIncompatibleDefaultFiltersOverrideMessage: ActionCreatorWithoutPayload<"uiSlice/resetIncompatibleDefaultFiltersOverrideMessage">; invalidateAutomationItems: ActionCreatorWithoutPayload<"uiSlice/invalidateAutomationItems">; }; /** * Creates the UndoLayoutChanges command. * * @remarks * Dispatching this command will result in reverting the state of the layout * to a point before a particular layout command processing. * * By default, the very last command will be undone, however you can provide a function of your own to determine * up to which command should the undo go. * * @param undoPointSelector - specify function to determine up to which command to undo; if not provided the very last command will be undone * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function undoLayoutChanges(undoPointSelector?: UndoPointSelector, correlationId?: string): IUndoLayoutChanges; /** * The undo point selector function will be called during layout undo processing to determine up to (and including) * which command should the undo be done. Commands are sorted in the list in reversed chronological order - * last command processed command is at index 0, command before that at index 1 etc. * * The function must return index of command up to (and including) which the undo should be done. It is not possible * to undo just some command randomly. * * @beta */ export declare type UndoPointSelector = (undoableCommands: ReadonlyArray) => number; /** * Creates the ChangeInsightWidgetFilterSettings command for {@link IFilterOpUnignoreDateFilter} operation. * * Dispatching this command will result in removal of one or more filters from Insight widget's date filter ignore-list. * Ignored date filters are not passed down to the insight and will not be used to filter that insight. * * The operation is idempotent - trying to unignore a date filter multiple times will have no effect. * * @param ref - reference of the insight widget to modify * @param oneOrMoreDataSets - one or more refs of date data sets used by date filters that should be removed from the ignore-list * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function unignoreDateFilterOnInsightWidget(ref: ObjRef, oneOrMoreDataSets: ObjRef | ObjRef[], correlationId?: string): IChangeInsightWidgetFilterSettings; /** * Creates the ChangeRichTextWidgetFilterSettings command for {@link IFilterOpUnignoreDateFilter} operation. * * Dispatching this command will result in removal of one or more filters from Rich Text widget's date filter ignore-list. * Ignored date filters are not passed down to the metrics resolved in rich text references. * * The operation is idempotent - trying to unignore a date filter multiple times will have no effect. * * @param ref - reference of the Rich Text widget to modify * @param oneOrMoreDataSets - one or more refs of date datasets used by date filters that should be removed from the ignore-list * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @alpha */ export declare function unignoreDateFilterOnRichTextWidget(ref: ObjRef, oneOrMoreDataSets: ObjRef | ObjRef[], correlationId?: string): IChangeRichTextWidgetFilterSettings; /** * Creates the ChangeInsightWidgetFilterSettings command for {@link IFilterOpUnignoreAttributeFilter} operation. * * Dispatching this command will result in removal of one or more filters from Insight widget's attribute filter ignore-list. * Ignored attribute filters are not passed down to the insight and will not be used to filter that insight. * * The operation is idempotent - trying to unignore an attribute filter multiple times will have no effect. * * @param ref - reference of the insight widget to modify * @param oneOrMoreDisplayForms - one or more refs of display forms used by attribute filters that should be removed from the ignore-list * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function unignoreFilterOnInsightWidget(ref: ObjRef, oneOrMoreDisplayForms: ObjRef | ObjRef[], correlationId?: string): IChangeInsightWidgetFilterSettings; /** * Creates the ChangeKpiWidgetFilterSettings command for {@link IFilterOpUnignoreAttributeFilter} operation. * * Dispatching this command will result in removal of one or more filters from KPI widget's attribute filter ignore-list. * Ignored attribute filters are not passed down to the KPI and will not be used to filter that KPI. * * The operation is idempotent - trying to unignore an attribute filter multiple times will have no effect. * * @param ref - reference of the KPI widget to modify * @param oneOrMoreDisplayForms - one or more refs of display forms used by attribute filters that should be removed from the ignore-list * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function unignoreFilterOnKpiWidget(ref: ObjRef, oneOrMoreDisplayForms: ObjRef | ObjRef[], correlationId?: string): IChangeKpiWidgetFilterSettings; /** * Creates the ChangeRichTextWidgetFilterSettings command for {@link IFilterOpUnignoreAttributeFilter} operation. * * Dispatching this command will result in removal of one or more filters from Rich Text widget's attribute filter ignore-list. * Ignored attribute filters are not passed down to the metrics and will not be used to filter those metrics. * * The operation is idempotent - trying to unignore an attribute filter multiple times will have no effect. * * @param ref - reference of the rich text widget to modify * @param oneOrMoreDisplayForms - one or more refs of display forms used by attribute filters that should be removed from the ignore-list * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @alpha */ export declare function unignoreFilterOnRichTextWidget(ref: ObjRef, oneOrMoreDisplayForms: ObjRef | ObjRef[], correlationId?: string): IChangeRichTextWidgetFilterSettings; /** * Creates the ChangeVisualizationsFromVisualizationSwitcherWidgetContent command. Dispatching this command will result in the update of visualization * which form part of the visualization switcher widget. * * @param ref - reference of the visualization switcher widget to modify * @param visualizations - changed visualizations to remove * @param correlationId - specify correlation id to use for this command. this will be included in all * events that will be emitted during the command processing * * @beta */ export declare function updateVisualizationsFromSwitcherWidgetContent(ref: ObjRef, visualizations: IInsightWidget[], correlationId?: string): IUpdateVisualizationsFromVisualizationSwitcherWidgetContent; /** * @internal */ export declare function useCancelButtonProps(): ICancelButtonProps; /** * @internal */ export declare const useCancelEditDialog: () => { onCancel: () => { payload: undefined; type: "uiSlice/closeCancelEditModeDialog"; }; onSubmit: () => void; }; /** * This hook provides an easy way to read a data view from a custom widget. It resolves the appropriate filters * for the widget based on the filters currently set on the whole dashboard. * * @public */ export declare function useCustomWidgetExecutionDataView({ enableExecutionCancelling, widget, execution, onCancel, onError, onLoading, onPending, onSuccess }: IUseCustomWidgetExecutionDataViewConfig & UseCustomWidgetExecutionDataViewCallbacks): UseCancelablePromiseState; /** * Callbacks for {@link useCustomWidgetExecutionDataView} hook. * * @public */ export declare type UseCustomWidgetExecutionDataViewCallbacks = UseCancelablePromiseCallbacks; /** * This hook provides an easy way to read a data view for an insight from a custom widget. * It resolves the appropriate filters for the widget based on the filters currently set on the whole dashboard. * * @public */ export declare function useCustomWidgetInsightDataView({ widget, insight, enableExecutionCancelling, onCancel, onError, onLoading, onPending, onSuccess }: IUseCustomWidgetInsightDataViewConfig & UseCustomWidgetInsightDataViewCallbacks): UseCancelablePromiseState; /** * Callbacks for {@link useCustomWidgetInsightDataView} hook. * * @public */ export declare type UseCustomWidgetInsightDataViewCallbacks = UseCancelablePromiseCallbacks; /** * Hook that handles alert dialogs. * * @alpha */ export declare const useDashboardAlerts: () => { alertToEdit: IAutomationMetadataObject | undefined; isInitialized: boolean; notificationChannels: INotificationChannelIdentifier[] | INotificationChannelMetadataObject[]; automations: IAutomationMetadataObject[]; automationsCount: number; numberOfAvailableDestinations: number; widget: ICustomWidget | IWidget | undefined; insight: IInsight | undefined; automationsLoading: boolean; automationsError: GoodDataSdkError | undefined; isAlertingVisible: boolean; isAlertDialogOpen: boolean; defaultOnAlerting: (widget?: IWidget | undefined) => void; onAlertingOpen: (widget?: IWidget | undefined, alert?: IAutomationMetadataObject | undefined) => void; onAlertingCancel: () => void; onAlertingCreateError: () => void; onAlertingCreateSuccess: (alert: IAutomationMetadataObject) => void; onAlertingSaveError: () => void; onAlertingSaveSuccess: () => void; isAlertManagementVisible: boolean; isAlertManagementDialogOpen: boolean; defaultOnAlertingManagement: (widget?: IWidget | undefined) => void; onAlertingManagementOpen: (widget?: IWidget | undefined) => void; onAlertingManagementClose: () => void; onAlertingManagementAdd: (targetWidget?: IWidget | undefined) => void; onAlertingManagementDeleteError: () => void; onAlertingManagementDeleteSuccess: () => void; onAlertingManagementEdit: (alert: IAutomationMetadataObject, widget?: IWidget | undefined) => void; onAlertingManagementLoadingError: () => void; onAlertingManagementPauseSuccess: (_alert: IAutomationMetadataObject, pause: boolean) => void; onAlertingManagementPauseError: (_error: GoodDataSdkError, pause: boolean) => void; }; /** * Callbacks returned from {@link useDashboardAsyncRender} hook. * * @public */ export declare type UseDashboardAsyncRender = { /** * Callback that requests async rendering of the component. */ onRequestAsyncRender: () => void; /** * Callback that resolves async rendering of the component. */ onResolveAsyncRender: () => void; }; /** * A React hook that allows you to request and inform the dashboard about the rendering of a component * that loads asynchronous data (eg Insight, Kpi, but it can be also any custom widget). * By registering and resolving asynchronous data retrieval of the each widget, the dashboard is able to recognize and notify that it is fully rendered. * This mechanism is necessary for dashboard exports to PDF to work properly. * * Mechanism is following: * - You must request async rendering for at least 1 component within 5 seconds of the {@link DashboardInitialized} event. * (If you do not register any asynchronous rendering, after 5 seconds the dashboard will announce that it is rendered by dispatching {@link DashboardRenderResolved} event.) * - You can request async rendering for any number of components. Requests are valid if the first rule is met * and not all asynchronous renderings have been resolved and the maximum timeout (20min by default) has not elapsed. * - The component may again request asynchronous rendering within 5 seconds of resolution. Maximum 3x. * (this is necessary to cover possible re-renders caused by data received from the components themselves, after they are rendered) * - Maximum rendering time of the dashboard is 20min - if some asynchronous renderings are not yet resolved at this time, {@link DashboardRenderResolved} event is dispatched anyway. * * Request async rendering of the component by calling onRequestAsyncRender() callback. * Resolve async rendering of the component by calling onResolveAsyncRender() callback. * * @public * @param id - unique identifier of the component * @returns callbacks */ export declare const useDashboardAsyncRender: (id: string) => UseDashboardAsyncRender; /** * @alpha */ export declare const useDashboardAutomations: () => { refreshAutomations: () => void; initializeAutomations: () => void; refreshAutomationManagementItems: () => void; }; /** * @internal */ export declare const useDashboardCommandProcessing: ({ commandCreator, successEvent, errorEvent, onSuccess, onError, onBeforeRun, }: { commandCreator: (...args: TCommandCreatorArgs) => TCommand; successEvent: TSuccessEventType; errorEvent: TErrorEventType; onSuccess?: ((event: Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract, { type: TSuccessEventType; }> | Extract | Extract, { type: TSuccessEventType; }> | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract, { type: TSuccessEventType; }> | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract) => void) | undefined; onError?: ((event: Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract, { type: TErrorEventType; }> | Extract | Extract, { type: TErrorEventType; }> | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract, { type: TErrorEventType; }> | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract | Extract) => void) | undefined; onBeforeRun?: ((command: TCommand) => void) | undefined; }) => { run: (...args: TCommandCreatorArgs) => void; status?: CommandProcessingStatus | undefined; }; /** * @alpha */ export declare const useDashboardDispatch: () => Dispatch; /** * Convenience hook for dispatching Dashboard events. * * @returns function that you can use to dispatch Dashboard events * @alpha */ export declare const useDashboardEventDispatch: () => (eventBody: DashboardEventBody | DashboardEvents>) => void; /** * @alpha */ export declare const useDashboardEventsContext: () => IDashboardEventsContext; /** * @alpha */ export declare const useDashboardExportData: (renderMode: RenderMode | undefined, status: "empty" | "loaded" | "loading", type: "nested" | "root") => CommonExportDataAttributes | undefined; /** * @internal */ export declare const useDashboardQueryProcessing: ({ queryCreator, onSuccess, onError, onRejected, onBeforeRun, }: { queryCreator: (...args: TQueryCreatorArgs) => TQuery; onSuccess?: ((result: TQueryResult) => void) | undefined; onError?: ((event: IDashboardQueryFailed) => void) | undefined; onRejected?: ((event: IDashboardQueryRejected) => void) | undefined; onBeforeRun?: ((query: TQuery) => void) | undefined; }) => UseDashboardQueryProcessingResult; /** * @internal */ export declare type UseDashboardQueryProcessingResult = QueryProcessingState & { run: (...args: TQueryCreatorArgs) => void; }; /** * Hook that handles schedule emailing dialogs. * * @alpha */ export declare const useDashboardScheduledEmails: () => { scheduledExportToEdit: IAutomationMetadataObject | undefined; isInitialized: boolean; notificationChannels: INotificationChannelIdentifier[]; automations: IAutomationMetadataObject[]; automationsCount: number; numberOfAvailableDestinations: number; widget: ICustomWidget | IWidget | undefined; insight: IInsight | undefined; automationsLoading: boolean; automationsError: GoodDataSdkError | undefined; isScheduledEmailingVisible: boolean; isScheduleEmailingDialogOpen: boolean; defaultOnScheduleEmailing: (widget?: IWidget | undefined) => void; onScheduleEmailingOpen: (widget?: IWidget | undefined) => void; onScheduleEmailingCancel: (_widget?: IWidget | undefined) => void; onScheduleEmailingBack: (_widget?: IWidget | undefined) => void; onScheduleEmailingCreateError: () => void; onScheduleEmailingCreateSuccess: (scheduledEmail: IAutomationMetadataObject) => void; onScheduleEmailingSaveError: () => void; onScheduleEmailingSaveSuccess: (_widget?: IWidget | undefined) => void; isScheduledManagementEmailingVisible: boolean; isScheduleEmailingManagementDialogOpen: boolean; defaultOnScheduleEmailingManagement: (widget?: IWidget | undefined) => void; onScheduleEmailingManagementOpen: (widget?: IWidget | undefined) => void; onScheduleEmailingManagementEdit: (schedule: IAutomationMetadataObject, widget?: IWidget | undefined) => void; onScheduleEmailingManagementAdd: (targetWidget?: IWidget | undefined) => void; onScheduleEmailingManagementClose: () => void; onScheduleEmailingManagementLoadingError: () => void; onScheduleEmailingManagementDeleteSuccess: () => void; onScheduleEmailingManagementDeleteError: () => void; }; /** * Hook for retrieving data from the dashboard state. * * @example * Example how to obtain all insights stored on the dashboard: * * ```tsx * import { useDashboardSelector, selectInsights } from "@gooddata/sdk-ui-dashboard"; * * const CustomDashboardWidget = () => { * const insights = useDashboardSelector(selectInsights); * * return ( *
{JSON.stringify(insights, null, 2)}
* ); * } * ``` * * @public */ export declare const useDashboardSelector: TypedUseSelectorHook; /** * Hook for dispatching relevant user interaction commands. * These commands enable to track user interactions that cannot be tracked by other existing events. * * @internal */ export declare const useDashboardUserInteraction: () => { poweredByGDLogoClicked: () => void; kpiAlertDialogClosed: () => void; kpiAlertDialogOpened: (alreadyHasAlert: boolean) => void; descriptionTooltipOpened: (eventData: DescriptionTooltipOpenedData) => void; shareDialogInteraction: (eventData: ShareDialogInteractionData) => void; attributeFilterInteraction: (eventType: AttributeFilterInteractionType) => void; filterContextStateReset: () => void; parametersStateReset: () => void; interactionPanelOpened: () => void; addInteractionClicked: () => void; attributeHierarchiesInteraction: (eventType: AttributeHierarchiesInteractionType) => void; dateFilterInteraction: (eventType: DateFilterInteractionType) => void; visualizationSwitcherInteraction: (eventType: VisualizationSwitcherInteractionType) => void; automationInteraction: (eventData: AutomationInteractionData) => void; savedFilterViewInteraction: (eventData: ISavedFilterViewInteractionData) => void; nestedLayoutInteraction: (eventType: NestedLayoutInteractionType) => void; }; /** * @internal */ export declare function useDefaultMenuItems(): IMenuButtonItem[]; /** * Hook that takes command creator and returns function that will result into dispatching this command. * * @remarks * The created function takes original command creators parameters as per example below. * * @example * ``` * // create a dashboard command to reset AttributeFilter selection * const resetAttributeFilter = useDispatchDashboardCommand(resetAttributeFilterSelection); * * // somewhere else in the code call the command to reset the filters * ** * resetAttributeFilter(); * ** * ``` * * @param commandCreator - command factory * @returns callback that dispatches the command * @public */ export declare const useDispatchDashboardCommand: (commandCreator: (...args: TArgs) => TCommand) => (...args: TArgs) => void; /** * @internal */ export declare const useDrill: ({ onSuccess, onError, onBeforeRun }?: IUseDrillProps) => { run: (drillEvent: IDashboardDrillEvent, drillContext: IDashboardDrillContext, correlationId?: string | undefined) => void; status?: CommandProcessingStatus | undefined; }; /** * @internal */ export declare const useDrillDown: ({ onSuccess, onError, onBeforeRun }?: IUseDrillDownProps) => { run: (insight: IInsight, drillDefinition: IDrillDownDefinition, drillEvent: IDashboardDrillEvent, correlationId?: string | undefined) => void; status?: CommandProcessingStatus | undefined; }; /** * @internal */ export declare const useDrillToAttributeUrl: ({ onSuccess, onError, onBeforeRun, }?: IUseDrillToAttributeUrlProps) => { run: (drillDefinition: IDrillToAttributeUrl_2, drillEvent: IDashboardDrillEvent, correlationId?: string | undefined) => void; status?: CommandProcessingStatus | undefined; }; /** * @internal */ export declare const useDrillToCustomUrl: ({ onSuccess, onError, onBeforeRun }?: IUseDrillToCustomUrlProps) => { run: (drillDefinition: IDrillToCustomUrl_2, drillEvent: IDashboardDrillEvent, correlationId?: string | undefined) => void; status?: CommandProcessingStatus | undefined; }; /** * @internal */ export declare const useDrillToDashboard: ({ onSuccess, onError, onBeforeRun }?: IUseDrillToDashboardProps) => { run: (drillDefinition: IDrillToDashboard_2, drillEvent: IDashboardDrillEvent, correlationId?: string | undefined) => void; status?: CommandProcessingStatus | undefined; }; /** * @internal */ export declare const useDrillToInsight: ({ onSuccess, onError, onBeforeRun }?: IUseDrillToInsightProps) => { run: (drillDefinition: IDrillToInsight_2, drillEvent: IDashboardDrillEvent, correlationId?: string | undefined) => void; status?: CommandProcessingStatus | undefined; }; /** * @internal */ export declare const useDrillToLegacyDashboard: ({ onSuccess, onError, onBeforeRun, }?: IUseDrillToLegacyDashboardProps) => { run: (drillDefinition: IDrillToLegacyDashboard_2, drillEvent: IDashboardDrillEvent, correlationId?: string | undefined) => void; status?: CommandProcessingStatus | undefined; }; /** * @internal */ export declare function useEditButtonProps(): IEditButtonProps; /** * @alpha */ export declare const useFilterBarProps: () => IFilterBarProps; /** * This hook provides an easy way to read a data view from insight widget. * * @param config - configuration of the hook * * @public */ export declare function useInsightWidgetDataView({ insightWidget, onCancel, onError, onLoading, onPending, onSuccess }: IUseInsightWidgetDataView & UseInsightWidgetInsightDataViewCallbacks): UseCancelablePromiseState; /** * Callbacks for {@link useInsightWidgetDataView} hook. * * @public */ export declare type UseInsightWidgetInsightDataViewCallbacks = UseCancelablePromiseCallbacks; /** * @alpha */ export declare const useMetaExportData: () => MetaExportData | undefined; /** * @alpha */ export declare const useMetaExportImageData: (type: ExportMetaType | undefined, loading: boolean, error: boolean) => MetaExportDataAttributes | undefined; /** * @alpha */ export declare const useMetaPaletteData: () => { exportData: MetaExportDataAttributes | undefined; item: (key: string, value: string) => MetaExportDataAttributes | undefined; }; /** * @internal * * This hook is used to validate the minimal size of a component. */ export declare function useMinimalSizeValidation(minimalWidth?: number, minimalHeight?: number, loading?: boolean): { setContent: Dispatch_2>; isTooSmall: boolean; fontSize: number; }; /** * Returns parent filtering input props for {@link @gooddata/sdk-ui-filters#AttributeFilter} for particular dashboard attribute filter. * * @param filter - dashboard filter to get the parent filter-related data * @param tabId - optional tab identifier to read filter context from a specific tab instead of the active one * * @public */ export declare const useParentFilters: (filter: DashboardAttributeFilterItem, tabId?: string | undefined) => UseParentFiltersResult; /** * Result of the {@link useParentFilters} hook, that can be used as parent filtering input props for {@link @gooddata/sdk-ui-filters#AttributeFilter}. * * @public */ export declare type UseParentFiltersResult = Pick; /** * @alpha */ export declare const useRichTextExportData: () => RichTextExportData | undefined; /** * @beta */ export declare type UserInteractionPayload = UserInteractionPayloadWithData | IBareUserInteractionPayload; /** * @beta */ export declare type UserInteractionPayloadWithData = KpiAlertDialogOpenedPayload | DescriptionTooltipOpenedPayload | ShareDialogInteractionPayload | AutomationInteractionPayload | SavedFilterViewInteractionPayload; /** * Creates the {@link IDashboardUserInteractionTriggered} event body. * * @param interactionPayloadOrType - interaction payload or a type of user interaction without extra data (for convenience) * @param correlationId - specify correlation id to use for this event. this can be used to correlate this event to a command that caused it. * @beta */ export declare function userInteractionTriggered(interactionPayloadOrType: UserInteractionPayload | BareUserInteractionType, correlationId?: string): DashboardEventBody; /** * @beta */ export declare type UserInteractionType = UserInteractionPayload["interaction"]; /** * @public */ export declare type UserState = { /** @beta */ user?: IUser; }; /** * @internal */ export declare function useSaveAsDialogProps(): ISaveAsDialogProps; /** * @internal */ export declare function useSaveAsNewButtonProps(): ISaveAsNewButtonProps; /** * @internal */ export declare function useSaveButtonProps(): ISaveButtonProps; /** * @alpha */ export declare const useSectionDescriptionExportData: (exportData: SectionExportData | undefined, loading: boolean, error: boolean) => SectionExportData | undefined; /** * @alpha */ export declare const useSectionExportData: (depth: number) => SectionExportData | undefined; /** * @internal */ export declare function useSettingButtonProps(): ISettingButtonProps; /** * @internal */ export declare function useShareButtonProps(): IShareButtonProps; /** * @alpha */ export declare const useTopBarProps: () => ITopBarProps; /** * @alpha */ export declare const useVisualizationExportData: (widget: WidgetExportDataAttributes | undefined, loading: boolean, error: boolean) => Partial | undefined; /** * @internal */ export declare function useWidgetDragEndHandler(): () => void; /** * Provides callbacks to integrate with the executionResults slice. * @internal */ export declare function useWidgetExecutionsHandler(widgetRef: ObjRef): { onLoadingChanged: OnLoadingChanged; onError: OnError; onSuccess: (executionResult: IExecutionResult, warnings: IResultWarning[] | undefined, limitBreaks?: IExecutionResultLimitBreak[] | undefined) => void; onPushData: (data: IPushData) => void; }; /** * @alpha */ export declare const useWidgetExportData: (widget: ExtendedDashboardWidget) => WidgetExportData | undefined; /** * Hook for obtaining the effective filters for a widget. * * @remarks * The filters returned should be used with {@link @gooddata/sdk-model#insightSetFilters} to obtain * insight that is ready for execution. * * @param widget - widget to get effective filters for * @param insight - insight to evaluate the filters for in context of the widget * @returns set of filters that should be used to execute the given widget * * @public */ export declare function useWidgetFilters(widget: FilterableDashboardWidget | undefined | null, insight?: IInsightDefinition): QueryProcessingState; /** * @internal */ export declare function useWidgetSelection(widgetRef?: ObjRef): IUseWidgetSelectionResult; /** * @internal */ export declare const useWorkspaceUsers: () => { status: "error" | "loading" | "pending" | "success"; usersError: GoodDataSdkError | undefined; users: IWorkspaceUser[] | undefined; }; /** * @internal */ export declare type ValuesLimitingItem = IDashboardAttributeFilterParentItem | ObjRef | IDashboardDependentDateFilter; /** * @public */ export declare type VisualizationSwitcherComponentProvider = (visualizationSwitcher: IVisualizationSwitcherWidget) => CustomDashboardVisualizationSwitcherComponent; /** * @internal */ export declare type VisualizationSwitcherDraggableComponent = { DraggingComponent?: VisualizationSwitcherDraggingComponent; type: "visualizationSwitcher"; }; /** * @internal */ export declare type VisualizationSwitcherDraggableItem = BaseDraggableMovingItem & { type: "visualizationSwitcher"; }; /** * @internal */ export declare type VisualizationSwitcherDraggableListItem = BaseDraggableLayoutItem & { type: "visualizationSwitcherListItem"; }; /** * @internal */ export declare type VisualizationSwitcherDraggingComponent = ComponentType; /** * @beta */ export declare type VisualizationSwitcherInteractionType = "visualizationSwitcherSwitched" | "visualizationSwitcherRemoved" | "visualizationSwitcherOrderChanged" | "visualizationSwitcherVisualizationDetailOpened" | "visualizationSwitcherVisualizationAdded"; /** * @alpha */ export declare type VisualizationSwitcherToolbarComponentProvider = (widget: IVisualizationSwitcherWidget) => CustomVisualizationSwitcherToolbarComponent; /** * Definition of VisualizationSwitcher widget * @internal */ export declare type VisualizationSwitcherWidgetComponentSet = ICustomComponentBase> & DraggableComponent & Partial & Partial> & ConfigurableWidget; /** * @internal */ export declare function visualizationSwitcherWidgetVisualizationAdded(ctx: DashboardContext, ref: ObjRef, visualization: IInsightWidget, correlationId?: string): IDashboardVisualizationSwitcherWidgetVisualizationAdded; /** * @internal */ export declare function visualizationSwitcherWidgetVisualizationsUpdated(ctx: DashboardContext, ref: ObjRef, visualizations: IInsightWidget[], correlationId?: string): IDashboardVisualizationSwitcherWidgetVisualizationsUpdated; /** * @public */ export declare type WidgetComponentProvider = (widget: ExtendedDashboardWidget) => CustomDashboardWidgetComponent; /** * Data attributes for export mode to be added to the widget and its components. * * When customizing a widget component, spread these properties in the element intended * for export. * * @example * ```tsx * const DashboardWidgetComponent: CustomDashboardWidgetComponent = ({ widget, exportData }) => { * return ( *
*
My custom dashboard widget - {widget?.identifier}
*
Widget title
*
Widget description
*
* ); * }; * ``` * * @alpha */ export declare type WidgetExportData = HeaderExportData & { section?: CommonExportDataAttributes; widget?: WidgetExportDataAttributes; }; /** * Data attributes for export mode to be added to the widget. * * @alpha */ export declare type WidgetExportDataAttributes = CommonExportDataAttributes & { "data-export-widget-type"?: string; "data-export-visualization-type"?: string; "data-export-visualization-status"?: "loading" | "loaded" | "error"; } & WidgetExportDimensionsAttributes; /** * Data attributes for visualization dimensions. * * @alpha */ export declare type WidgetExportDimensionsAttributes = { [K in `data-export-visualization-dimension-${number}`]?: string; }; /** * @alpha */ export declare type WidgetsOverlayFn = (dashboard: IDashboard) => Record; /** * @internal */ export declare function WithDrillSelect({ widgetRef, children, insight, returnFocusToInsight, onDrillStart, onDrillDownSuccess, onDrillToInsightSuccess, onDrillToDashboardSuccess, onDrillToAttributeUrlSuccess, onDrillToCustomUrlSuccess, onKeyDriverAnalysisSuccess, onError }: IWithDrillSelectProps): ReactElement; /** * Partial working attribute filter used in working filter context. * * @alpha */ export declare type WorkingDashboardAttributeFilter = { attributeFilter: Partial; }; /** * Partial working measure value filter used in working filter context. * * @alpha */ export declare type WorkingDashboardMeasureValueFilter = { dashboardMeasureValueFilter: { localIdentifier: string; conditions?: MeasureValueFilterCondition[]; dimensionality?: ObjRef[]; }; }; /** * Partial working filter context item. * * @alpha */ export declare type WorkingFilterContextItem = WorkingDashboardAttributeFilter | IDashboardDateFilter | WorkingDashboardMeasureValueFilter; export { }