@gooddata/sdk-ui-dashboard 11.53.0-alpha.1 → 11.53.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/__version.d.ts +1 -1
- package/esm/__version.js +1 -1
- package/esm/index.d.ts +3 -2
- package/esm/index.d.ts.map +1 -1
- package/esm/internal.d.ts +1 -1
- package/esm/internal.d.ts.map +1 -1
- package/esm/model/commandHandlers/dashboard/saveDashboardHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/dashboard/saveDashboardHandler.js +43 -8
- package/esm/model/react/useInitializeDashboardStore.d.ts.map +1 -1
- package/esm/model/react/useInitializeDashboardStore.js +11 -0
- package/esm/model/store/config/configReducers.d.ts +8 -0
- package/esm/model/store/config/configReducers.d.ts.map +1 -1
- package/esm/model/store/config/configReducers.js +12 -0
- package/esm/model/store/config/index.d.ts +2 -0
- package/esm/model/store/config/index.d.ts.map +1 -1
- package/esm/model/store/dashboardStore.d.ts.map +1 -1
- package/esm/model/store/dashboardStore.js +1 -0
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/AlertingDialogHeader.d.ts +1 -11
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/AlertingDialogHeader.d.ts.map +1 -1
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/AlertingDialogHeader.js +7 -11
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.d.ts +6 -3
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.d.ts.map +1 -1
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.js +22 -4
- package/esm/presentation/automations/alerting/state/useAlertFormState.d.ts +1 -1
- package/esm/presentation/automations/alerting/state/useAlertFormState.d.ts.map +1 -1
- package/esm/presentation/automations/alerting/state/useAlertFormState.js +3 -2
- package/esm/presentation/automations/alerting/types.d.ts +51 -1
- package/esm/presentation/automations/alerting/types.d.ts.map +1 -1
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.d.ts +23 -3
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.d.ts.map +1 -1
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.js +40 -4
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Header/ScheduleEmailDialogHeader.d.ts +1 -12
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Header/ScheduleEmailDialogHeader.d.ts.map +1 -1
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Header/ScheduleEmailDialogHeader.js +10 -14
- package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailFormState.d.ts +1 -1
- package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailFormState.d.ts.map +1 -1
- package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailFormState.js +3 -2
- package/esm/presentation/automations/scheduledEmail/types.d.ts +55 -1
- package/esm/presentation/automations/scheduledEmail/types.d.ts.map +1 -1
- package/esm/presentation/automations/shared/automationFilters/components/AutomationParameter.d.ts.map +1 -1
- package/esm/presentation/automations/shared/automationFilters/components/AutomationParameter.js +2 -2
- package/esm/presentation/automations/shared/slots/types.d.ts +58 -0
- package/esm/presentation/automations/shared/slots/types.d.ts.map +1 -0
- package/esm/presentation/automations/shared/slots/types.js +2 -0
- package/esm/presentation/automations/shared/utils/automationTitle.d.ts +5 -0
- package/esm/presentation/automations/shared/utils/automationTitle.d.ts.map +1 -0
- package/esm/presentation/automations/shared/utils/automationTitle.js +7 -0
- package/esm/presentation/dragAndDrop/draggableParameterFilter/DefaultParameterDraggingComponent.d.ts.map +1 -1
- package/esm/presentation/dragAndDrop/draggableParameterFilter/DefaultParameterDraggingComponent.js +9 -2
- package/esm/presentation/filterBar/filterBar/DefaultFilterBarContainer.d.ts.map +1 -1
- package/esm/presentation/filterBar/filterBar/DefaultFilterBarContainer.js +8 -2
- package/esm/presentation/filterBar/parameterFilter/DashboardParameterFilter.d.ts.map +1 -1
- package/esm/presentation/filterBar/parameterFilter/DashboardParameterFilter.js +4 -3
- package/esm/sdk-ui-dashboard.d.ts +195 -2
- package/package.json +21 -21
- package/styles/css/main.css +62 -0
- package/styles/css/main.css.map +1 -1
package/esm/presentation/dragAndDrop/draggableParameterFilter/DefaultParameterDraggingComponent.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
// (C) 2026 GoodData Corporation
|
|
3
|
+
import { getParameterValueTitle } from "@gooddata/sdk-model";
|
|
3
4
|
import { ParameterControlButton } from "@gooddata/sdk-ui-kit";
|
|
4
5
|
import { useDashboardSelector } from "../../../model/react/DashboardStoreProvider.js";
|
|
5
6
|
import { selectCatalogParameterByRef } from "../../../model/store/catalog/catalogSelectors.js";
|
|
7
|
+
import { matchingWorkspaceDefinition, resolveParameterTitle, } from "../../../model/store/tabs/parameters/parametersHelpers.js";
|
|
6
8
|
import { selectDashboardParameterEntryByRef } from "../../../model/store/tabs/parameters/parametersSelectors.js";
|
|
7
9
|
/**
|
|
8
10
|
* Renders the floating preview of a parameter chip while it is being dragged.
|
|
@@ -15,6 +17,11 @@ export function DefaultParameterDraggingComponent({ item }) {
|
|
|
15
17
|
if (entry?.runtimeOverride === undefined) {
|
|
16
18
|
return null;
|
|
17
19
|
}
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
+
const definition = matchingWorkspaceDefinition(entry.parameter, workspaceParameter);
|
|
21
|
+
if (!workspaceParameter || !definition) {
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
const name = resolveParameterTitle(entry.parameter, workspaceParameter);
|
|
25
|
+
const value = getParameterValueTitle(definition, entry.runtimeOverride);
|
|
26
|
+
return _jsx(ParameterControlButton, { name: name, value: value, isActive: false, isDraggable: true, isDragging: true });
|
|
20
27
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultFilterBarContainer.d.ts","sourceRoot":"","sources":["../../../../src/presentation/filterBar/filterBar/DefaultFilterBarContainer.tsx"],"names":[],"mappings":"AAEA,OAAO,EAGH,KAAK,SAAS,EAOjB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"DefaultFilterBarContainer.d.ts","sourceRoot":"","sources":["../../../../src/presentation/filterBar/filterBar/DefaultFilterBarContainer.tsx"],"names":[],"mappings":"AAEA,OAAO,EAGH,KAAK,SAAS,EAOjB,MAAM,OAAO,CAAC;AAidf;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,2CAQ/E"}
|
|
@@ -47,17 +47,22 @@ function DefaultFilterBarContainerCore({ children }) {
|
|
|
47
47
|
const intl = useIntl();
|
|
48
48
|
const [expandedAutomatically, setExpandedAutomatically] = useState(false);
|
|
49
49
|
const [collapseAnnouncement, setCollapseAnnouncement] = useState("");
|
|
50
|
+
// ref mirror: render-time state is stale inside the synchronous blur+focus pair
|
|
51
|
+
// fired when focus moves into a portaled filter dropdown
|
|
52
|
+
const isFilterBarExpandedRef = useRef(isFilterBarExpanded);
|
|
53
|
+
isFilterBarExpandedRef.current = isFilterBarExpanded;
|
|
50
54
|
const onContainerFocus = useCallback(() => {
|
|
51
55
|
// detect if event is mouse
|
|
52
56
|
if (!isFocusVisible()) {
|
|
53
57
|
return;
|
|
54
58
|
}
|
|
55
59
|
setCollapseAnnouncement("");
|
|
56
|
-
if (hasMultipleRows && !
|
|
60
|
+
if (hasMultipleRows && !isFilterBarExpandedRef.current) {
|
|
61
|
+
isFilterBarExpandedRef.current = true;
|
|
57
62
|
setFilterBarExpanded(true);
|
|
58
63
|
setExpandedAutomatically(true);
|
|
59
64
|
}
|
|
60
|
-
}, [hasMultipleRows,
|
|
65
|
+
}, [hasMultipleRows, setFilterBarExpanded]);
|
|
61
66
|
const onContainerBlur = useCallback((event) => {
|
|
62
67
|
// React bubbles blur from every child. Moving keyboard focus between
|
|
63
68
|
// chips collapse/expand the filter bar
|
|
@@ -66,6 +71,7 @@ function DefaultFilterBarContainerCore({ children }) {
|
|
|
66
71
|
return;
|
|
67
72
|
}
|
|
68
73
|
if (isFocusVisible() && expandedAutomatically) {
|
|
74
|
+
isFilterBarExpandedRef.current = false;
|
|
69
75
|
setFilterBarExpanded(false);
|
|
70
76
|
setExpandedAutomatically(false);
|
|
71
77
|
const message = `${intl.formatMessage({ id: "filterBar.label" })}. ${intl.formatMessage({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DashboardParameterFilter.d.ts","sourceRoot":"","sources":["../../../../src/presentation/filterBar/parameterFilter/DashboardParameterFilter.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAI1C,OAAO,
|
|
1
|
+
{"version":3,"file":"DashboardParameterFilter.d.ts","sourceRoot":"","sources":["../../../../src/presentation/filterBar/parameterFilter/DashboardParameterFilter.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAI1C,OAAO,EAEH,KAAK,mBAAmB,EAG3B,MAAM,qBAAqB,CAAC;AAmB7B;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC3C,SAAS,EAAE,mBAAmB,CAAC;CAClC;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,SAAS,EAAE,EAAE,8BAA8B,GAAG,YAAY,GAAG,IAAI,CA2E3G"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { defineMessages, useIntl } from "react-intl";
|
|
3
|
-
import { DashboardParameterModeValues, objRefToString } from "@gooddata/sdk-model";
|
|
3
|
+
import { DashboardParameterModeValues, getParameterValueTitle, objRefToString, } from "@gooddata/sdk-model";
|
|
4
4
|
import { Dropdown, ParameterControl, ParameterControlButton, useIdPrefixed } from "@gooddata/sdk-ui-kit";
|
|
5
5
|
import { useDashboardDispatch, useDashboardSelector } from "../../../model/react/DashboardStoreProvider.js";
|
|
6
6
|
import { selectCatalogParameterByRef } from "../../../model/store/catalog/catalogSelectors.js";
|
|
@@ -34,12 +34,13 @@ export function DashboardParameterFilter({ parameter }) {
|
|
|
34
34
|
return null;
|
|
35
35
|
}
|
|
36
36
|
const name = parameter.label ?? workspaceParameter.title;
|
|
37
|
+
const valueTitle = getParameterValueTitle(definition, runtimeOverride);
|
|
37
38
|
const dragItem = { type: "parameter", ref: parameter.ref };
|
|
38
39
|
const warningTooltip = reconciliation === "reset" ? intl.formatMessage(messages.resetWarning) : undefined;
|
|
39
40
|
if (parameter.mode === DashboardParameterModeValues.READONLY) {
|
|
40
|
-
return (_jsx(DraggableChipSource, { dragItem: dragItem, canDrag: isInEditMode, children: _jsx(ParameterControlButton, { name: name, value:
|
|
41
|
+
return (_jsx(DraggableChipSource, { dragItem: dragItem, canDrag: isInEditMode, children: _jsx(ParameterControlButton, { name: name, value: valueTitle, isActive: false, isDraggable: isInEditMode, warningTooltip: warningTooltip, "data-testid": `dashboard-parameter-${objRefToString(parameter.ref)}` }) }));
|
|
41
42
|
}
|
|
42
|
-
return (_jsx(DraggableChipSource, { dragItem: dragItem, canDrag: isInEditMode, children: _jsx(Dropdown, { autofocusOnOpen: true, initialFocus: valueInputId, closeOnEscape: true, renderButton: ({ isOpen, toggleDropdown, dropdownId }) => (_jsx(ParameterControlButton, { name: name, value:
|
|
43
|
+
return (_jsx(DraggableChipSource, { dragItem: dragItem, canDrag: isInEditMode, children: _jsx(Dropdown, { autofocusOnOpen: true, initialFocus: valueInputId, closeOnEscape: true, renderButton: ({ isOpen, toggleDropdown, dropdownId }) => (_jsx(ParameterControlButton, { name: name, value: valueTitle, isActive: isOpen, isDraggable: isInEditMode, dropdownId: dropdownId, onClick: () => toggleDropdown(), warningTooltip: warningTooltip, "data-testid": `dashboard-parameter-${objRefToString(parameter.ref)}` })), renderBody: ({ closeDropdown, ariaAttributes }) => (_jsx(ParameterControl, { name: name, definition: definition, value: runtimeOverride, resetValue: resetValue, inputId: valueInputId, ariaAttributes: ariaAttributes, onApply: (value) => {
|
|
43
44
|
dispatch(tabsActions.setParameterRuntimeValue({ ref: parameter.ref, value }));
|
|
44
45
|
closeDropdown();
|
|
45
46
|
}, onCancel: closeDropdown })) }) }));
|
|
@@ -194,6 +194,7 @@ import { IWidget } from '@gooddata/sdk-model';
|
|
|
194
194
|
import { IWidgetDefinition } from '@gooddata/sdk-model';
|
|
195
195
|
import { IWorkspacePermissions } from '@gooddata/sdk-model';
|
|
196
196
|
import { JSX } from 'react/jsx-runtime';
|
|
197
|
+
import { KeyboardEvent as KeyboardEvent_2 } from 'react';
|
|
197
198
|
import { LocalIdRef } from '@gooddata/sdk-model';
|
|
198
199
|
import { MeasureValueFilterCondition } from '@gooddata/sdk-model';
|
|
199
200
|
import { MessageDescriptor } from 'react-intl';
|
|
@@ -217,6 +218,7 @@ import { ReactElement } from 'react';
|
|
|
217
218
|
import { ReactNode } from 'react';
|
|
218
219
|
import { ReactReduxContextValue } from 'react-redux';
|
|
219
220
|
import { Reducer } from '@reduxjs/toolkit';
|
|
221
|
+
import { Ref } from 'react';
|
|
220
222
|
import { RefObject } from 'react';
|
|
221
223
|
import { SagaIterator } from 'redux-saga';
|
|
222
224
|
import { ScreenSize } from '@gooddata/sdk-model';
|
|
@@ -513,6 +515,16 @@ export declare function addVisualizationToSwitcherWidgetContent(ref: ObjRef, vis
|
|
|
513
515
|
*/
|
|
514
516
|
export declare function AlertingDialog(props: IAlertingDialogProps): ReactElement;
|
|
515
517
|
|
|
518
|
+
/**
|
|
519
|
+
* The exact props the default dialog renders its header with, including the dialog's
|
|
520
|
+
* initial-focus ref.
|
|
521
|
+
*
|
|
522
|
+
* @alpha
|
|
523
|
+
*/
|
|
524
|
+
export declare type AlertingDialogHeaderDefaultProps = IAlertingDialogHeaderProps & {
|
|
525
|
+
ref?: Ref<HTMLInputElement>;
|
|
526
|
+
};
|
|
527
|
+
|
|
516
528
|
/**
|
|
517
529
|
* @internal
|
|
518
530
|
*/
|
|
@@ -3850,9 +3862,12 @@ export declare const DEFAULT_TAB_ID = "defaultTabId";
|
|
|
3850
3862
|
* that is what lets a wholesale replacement receive the same contexts. Rendering this component
|
|
3851
3863
|
* outside those providers throws at runtime.
|
|
3852
3864
|
*
|
|
3865
|
+
* Slots render only in the fully rendered dialog: not while the dialog context reports loading,
|
|
3866
|
+
* and not while the stale-filters confirmation step is shown.
|
|
3867
|
+
*
|
|
3853
3868
|
* @alpha
|
|
3854
3869
|
*/
|
|
3855
|
-
export declare function DefaultAlertingDialog(props:
|
|
3870
|
+
export declare function DefaultAlertingDialog(props: IDefaultAlertingDialogProps): JSX.Element;
|
|
3856
3871
|
|
|
3857
3872
|
/**
|
|
3858
3873
|
* Self-contained version of DefaultAlertingManagementDialogNew that builds the required
|
|
@@ -4090,9 +4105,29 @@ export declare function DefaultSaveAsNewButton({ isVisible, isEnabled, onSaveAsN
|
|
|
4090
4105
|
export declare function DefaultSaveButton({ isVisible, isEnabled, isSaving, buttonTitle, onSaveClick }: ISaveButtonProps): JSX.Element | null;
|
|
4091
4106
|
|
|
4092
4107
|
/**
|
|
4108
|
+
* Default implementation of the scheduled export create/edit dialog.
|
|
4109
|
+
*
|
|
4110
|
+
* This component is a pure consumer of `AutomationsContext`, `ScheduledEmailDialogContext`, and the
|
|
4111
|
+
* scheduled export dialog state contexts: it reads org/workspace data, per-dialog state, and the
|
|
4112
|
+
* export draft's state from those contexts rather than from the dashboard store. It must therefore
|
|
4113
|
+
* be rendered within an `AutomationsContextProvider`, a `ScheduledEmailDialogContextProvider` (for
|
|
4114
|
+
* the create/edit flow), and a `ScheduledEmailDialogStateProvider`, whose state model establishes
|
|
4115
|
+
* itself once `useScheduledEmailDialogContext().isLoading` is false. Inside a `Dashboard`, the
|
|
4116
|
+
* scheduled export connector supplies the first two providers above the
|
|
4117
|
+
* `ScheduledEmailDialogComponent` slot and mounts `ScheduledEmailDialogStateProvider` around the
|
|
4118
|
+
* resolved slot component — so the default component, and any wholesale slot replacement, inherit
|
|
4119
|
+
* all three contexts automatically and require no extra wiring.
|
|
4120
|
+
*
|
|
4121
|
+
* The providers are intentionally hoisted above the slot rather than built inside this component:
|
|
4122
|
+
* that is what lets a wholesale replacement receive the same contexts. Rendering this component
|
|
4123
|
+
* outside those providers throws at runtime.
|
|
4124
|
+
*
|
|
4125
|
+
* Slots render only in the fully rendered dialog: not while the dialog context reports loading,
|
|
4126
|
+
* and not while the stale-filters confirmation step is shown.
|
|
4127
|
+
*
|
|
4093
4128
|
* @alpha
|
|
4094
4129
|
*/
|
|
4095
|
-
export declare function DefaultScheduledEmailDialog(props:
|
|
4130
|
+
export declare function DefaultScheduledEmailDialog(props: IDefaultScheduledEmailDialogProps): JSX.Element;
|
|
4096
4131
|
|
|
4097
4132
|
/**
|
|
4098
4133
|
* @alpha
|
|
@@ -5727,6 +5762,18 @@ export declare interface IAlertingDialogContextValue {
|
|
|
5727
5762
|
isLoading: boolean;
|
|
5728
5763
|
}
|
|
5729
5764
|
|
|
5765
|
+
/**
|
|
5766
|
+
* Props of the default alerting dialog's header region (the title input row).
|
|
5767
|
+
*
|
|
5768
|
+
* @alpha
|
|
5769
|
+
*/
|
|
5770
|
+
export declare interface IAlertingDialogHeaderProps extends IAutomationDialogHeaderProps {
|
|
5771
|
+
/**
|
|
5772
|
+
* Called when the header's back/close button is pressed. The default dialog closes on it.
|
|
5773
|
+
*/
|
|
5774
|
+
onCancel?: () => void;
|
|
5775
|
+
}
|
|
5776
|
+
|
|
5730
5777
|
/**
|
|
5731
5778
|
* @alpha
|
|
5732
5779
|
*/
|
|
@@ -5799,6 +5846,19 @@ export declare interface IAlertingDialogProps {
|
|
|
5799
5846
|
onDeleteError?: (error: GoodDataSdkError) => void;
|
|
5800
5847
|
}
|
|
5801
5848
|
|
|
5849
|
+
/**
|
|
5850
|
+
* Section-level overrides of the default alerting dialog.
|
|
5851
|
+
*
|
|
5852
|
+
* @alpha
|
|
5853
|
+
*/
|
|
5854
|
+
export declare interface IAlertingDialogSlots {
|
|
5855
|
+
/**
|
|
5856
|
+
* Wraps or replaces the dialog header (the title input row). Must have a stable reference
|
|
5857
|
+
* identity — see {@link ISlotProps}.
|
|
5858
|
+
*/
|
|
5859
|
+
Header?: ComponentType<ISlotProps<AlertingDialogHeaderDefaultProps>>;
|
|
5860
|
+
}
|
|
5861
|
+
|
|
5802
5862
|
/**
|
|
5803
5863
|
* Sub-context for the alerting management dialog.
|
|
5804
5864
|
* The connector hydrates this from dashboard state.
|
|
@@ -6037,6 +6097,38 @@ export declare interface IAttributesDropdownProps extends IDashboardAttributeFil
|
|
|
6037
6097
|
onParameterSelect?: (ref: IdentifierRef) => void;
|
|
6038
6098
|
}
|
|
6039
6099
|
|
|
6100
|
+
/**
|
|
6101
|
+
* Members shared by both automation dialogs' header regions.
|
|
6102
|
+
*
|
|
6103
|
+
* @alpha
|
|
6104
|
+
*/
|
|
6105
|
+
export declare interface IAutomationDialogHeaderProps {
|
|
6106
|
+
/**
|
|
6107
|
+
* Current automation title.
|
|
6108
|
+
*/
|
|
6109
|
+
title: string;
|
|
6110
|
+
/**
|
|
6111
|
+
* Placeholder shown while the title is empty.
|
|
6112
|
+
*/
|
|
6113
|
+
placeholder: string;
|
|
6114
|
+
/**
|
|
6115
|
+
* Whether the secondary title row is shown.
|
|
6116
|
+
*/
|
|
6117
|
+
isSecondaryTitleVisible?: boolean;
|
|
6118
|
+
/**
|
|
6119
|
+
* Secondary title text (e.g. the widget name).
|
|
6120
|
+
*/
|
|
6121
|
+
secondaryTitle?: string;
|
|
6122
|
+
/**
|
|
6123
|
+
* Icon rendered before the secondary title.
|
|
6124
|
+
*/
|
|
6125
|
+
secondaryTitleIcon: ReactNode;
|
|
6126
|
+
/**
|
|
6127
|
+
* Called on every title change with the new value. The dialog validates the title itself.
|
|
6128
|
+
*/
|
|
6129
|
+
onChange: (value: string) => void;
|
|
6130
|
+
}
|
|
6131
|
+
|
|
6040
6132
|
/**
|
|
6041
6133
|
* Automation filters grouped by tab, returned by {@link selectAutomationFiltersByTab}.
|
|
6042
6134
|
* @alpha
|
|
@@ -12771,6 +12863,24 @@ export declare interface IDateFiltersCustomizer {
|
|
|
12771
12863
|
withCustomProvider(provider: OptionalDateFilterComponentProvider): IDateFiltersCustomizer;
|
|
12772
12864
|
}
|
|
12773
12865
|
|
|
12866
|
+
/**
|
|
12867
|
+
* Props of {@link DefaultAlertingDialog}.
|
|
12868
|
+
*
|
|
12869
|
+
* @remarks
|
|
12870
|
+
* Extends the shared {@link IAlertingDialogProps} with customization only the default implementation
|
|
12871
|
+
* supports. Slots render only in the fully rendered dialog: not while the dialog context reports
|
|
12872
|
+
* loading, and not while the stale-filters confirmation step is shown.
|
|
12873
|
+
*
|
|
12874
|
+
* @alpha
|
|
12875
|
+
*/
|
|
12876
|
+
export declare interface IDefaultAlertingDialogProps extends IAlertingDialogProps {
|
|
12877
|
+
/**
|
|
12878
|
+
* Section-level overrides. Each slot receives `{ Default, defaultProps }` and may render its own
|
|
12879
|
+
* content (replace) or `<Default {...defaultProps} />` inside its own markup (wrap).
|
|
12880
|
+
*/
|
|
12881
|
+
slots?: IAlertingDialogSlots;
|
|
12882
|
+
}
|
|
12883
|
+
|
|
12774
12884
|
/**
|
|
12775
12885
|
* @alpha
|
|
12776
12886
|
*/
|
|
@@ -12797,6 +12907,24 @@ export declare interface IDefaultDashboardToolbarGroupProps {
|
|
|
12797
12907
|
children?: ReactNode;
|
|
12798
12908
|
}
|
|
12799
12909
|
|
|
12910
|
+
/**
|
|
12911
|
+
* Props of {@link DefaultScheduledEmailDialog}.
|
|
12912
|
+
*
|
|
12913
|
+
* @remarks
|
|
12914
|
+
* Extends the shared {@link IScheduledEmailDialogProps} with customization only the default implementation
|
|
12915
|
+
* supports. Slots render only in the fully rendered dialog: not while the dialog context reports
|
|
12916
|
+
* loading, and not while the stale-filters confirmation step is shown.
|
|
12917
|
+
*
|
|
12918
|
+
* @alpha
|
|
12919
|
+
*/
|
|
12920
|
+
export declare interface IDefaultScheduledEmailDialogProps extends IScheduledEmailDialogProps {
|
|
12921
|
+
/**
|
|
12922
|
+
* Section-level overrides. Each slot receives `{ Default, defaultProps }` and may render its own
|
|
12923
|
+
* content (replace) or `<Default {...defaultProps} />` inside its own markup (wrap).
|
|
12924
|
+
*/
|
|
12925
|
+
slots?: IScheduledEmailDialogSlots;
|
|
12926
|
+
}
|
|
12927
|
+
|
|
12800
12928
|
/**
|
|
12801
12929
|
* This event is emitted when an attribute hierarchy is deleted.
|
|
12802
12930
|
*
|
|
@@ -17084,6 +17212,22 @@ export declare interface IScheduledEmailDialogContextValue {
|
|
|
17084
17212
|
isLoading: boolean;
|
|
17085
17213
|
}
|
|
17086
17214
|
|
|
17215
|
+
/**
|
|
17216
|
+
* Props of the default scheduled email dialog's header region (the title input row).
|
|
17217
|
+
*
|
|
17218
|
+
* @alpha
|
|
17219
|
+
*/
|
|
17220
|
+
export declare interface IScheduledEmailDialogHeaderProps extends IAutomationDialogHeaderProps {
|
|
17221
|
+
/**
|
|
17222
|
+
* Called on key-down inside the title input.
|
|
17223
|
+
*/
|
|
17224
|
+
onTitleKeyDown: (event: KeyboardEvent_2) => void;
|
|
17225
|
+
/**
|
|
17226
|
+
* Called when the header's back button is pressed.
|
|
17227
|
+
*/
|
|
17228
|
+
onBack?: () => void;
|
|
17229
|
+
}
|
|
17230
|
+
|
|
17087
17231
|
/**
|
|
17088
17232
|
* @alpha
|
|
17089
17233
|
*/
|
|
@@ -17198,6 +17342,19 @@ export declare interface IScheduledEmailDialogProps {
|
|
|
17198
17342
|
onDeleteError?: (error: GoodDataSdkError) => void;
|
|
17199
17343
|
}
|
|
17200
17344
|
|
|
17345
|
+
/**
|
|
17346
|
+
* Section-level overrides of the default scheduled email dialog.
|
|
17347
|
+
*
|
|
17348
|
+
* @alpha
|
|
17349
|
+
*/
|
|
17350
|
+
export declare interface IScheduledEmailDialogSlots {
|
|
17351
|
+
/**
|
|
17352
|
+
* Wraps or replaces the dialog header (the title input row). Must have a stable reference
|
|
17353
|
+
* identity — see {@link ISlotProps}.
|
|
17354
|
+
*/
|
|
17355
|
+
Header?: ComponentType<ISlotProps<ScheduledEmailDialogHeaderDefaultProps>>;
|
|
17356
|
+
}
|
|
17357
|
+
|
|
17201
17358
|
/**
|
|
17202
17359
|
* Sub-context for the scheduled-email management dialog.
|
|
17203
17360
|
* The connector hydrates this from dashboard state.
|
|
@@ -19428,6 +19585,32 @@ export declare function isLayoutSectionPath(obj: unknown): obj is ILayoutSection
|
|
|
19428
19585
|
*/
|
|
19429
19586
|
export declare function isLoadingPlaceholderWidget(obj: unknown): obj is IPlaceholderWidget;
|
|
19430
19587
|
|
|
19588
|
+
/**
|
|
19589
|
+
* Contract of a section-level slot: the default implementation and the exact props the default
|
|
19590
|
+
* dialog would render it with.
|
|
19591
|
+
*
|
|
19592
|
+
* The component a customer assigns to a slot is rendered as an element type, so its reference
|
|
19593
|
+
* identity is load-bearing: define it at module scope (or memoize it), never inline in a render
|
|
19594
|
+
* function — an inline definition gets a fresh identity on every render of the declaring
|
|
19595
|
+
* component, which unmounts and remounts the region, losing focus and transient DOM state.
|
|
19596
|
+
*
|
|
19597
|
+
* Render `<Default {...defaultProps} />` inside your own markup to wrap the region rather than
|
|
19598
|
+
* replace it; a slot that does not spread `defaultProps` onto `Default` loses the default
|
|
19599
|
+
* behavior wired through them (including the dialog's initial-focus ref).
|
|
19600
|
+
*
|
|
19601
|
+
* @alpha
|
|
19602
|
+
*/
|
|
19603
|
+
export declare interface ISlotProps<TProps> {
|
|
19604
|
+
/**
|
|
19605
|
+
* The default implementation of the region.
|
|
19606
|
+
*/
|
|
19607
|
+
Default: ComponentType<TProps>;
|
|
19608
|
+
/**
|
|
19609
|
+
* The exact props the default dialog would render {@link ISlotProps.Default} with.
|
|
19610
|
+
*/
|
|
19611
|
+
defaultProps: TProps;
|
|
19612
|
+
}
|
|
19613
|
+
|
|
19431
19614
|
/**
|
|
19432
19615
|
* @internal
|
|
19433
19616
|
*/
|
|
@@ -22970,6 +23153,16 @@ export declare type SavingState = {
|
|
|
22970
23153
|
*/
|
|
22971
23154
|
export declare function ScheduledEmailDialog(props: IScheduledEmailDialogProps): ReactElement;
|
|
22972
23155
|
|
|
23156
|
+
/**
|
|
23157
|
+
* The exact props the default dialog renders its header with, including the dialog's
|
|
23158
|
+
* initial-focus ref.
|
|
23159
|
+
*
|
|
23160
|
+
* @alpha
|
|
23161
|
+
*/
|
|
23162
|
+
export declare type ScheduledEmailDialogHeaderDefaultProps = IScheduledEmailDialogHeaderProps & {
|
|
23163
|
+
ref?: Ref<HTMLInputElement>;
|
|
23164
|
+
};
|
|
23165
|
+
|
|
22973
23166
|
/**
|
|
22974
23167
|
* @internal
|
|
22975
23168
|
*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gooddata/sdk-ui-dashboard",
|
|
3
|
-
"version": "11.53.0-alpha.
|
|
3
|
+
"version": "11.53.0-alpha.2",
|
|
4
4
|
"description": "GoodData SDK - Dashboard Component",
|
|
5
5
|
"license": "LicenseRef-LICENSE",
|
|
6
6
|
"author": "GoodData Corporation",
|
|
@@ -60,20 +60,20 @@
|
|
|
60
60
|
"ts-invariant": "0.10.3",
|
|
61
61
|
"tslib": "2.8.1",
|
|
62
62
|
"uuid": "11.1.1",
|
|
63
|
-
"@gooddata/sdk-
|
|
64
|
-
"@gooddata/sdk-model": "11.53.0-alpha.
|
|
65
|
-
"@gooddata/sdk-
|
|
66
|
-
"@gooddata/sdk-
|
|
67
|
-
"@gooddata/sdk-ui-
|
|
68
|
-
"@gooddata/sdk-ui-
|
|
69
|
-
"@gooddata/sdk-ui-
|
|
70
|
-
"@gooddata/sdk-ui-
|
|
71
|
-
"@gooddata/sdk-ui-
|
|
72
|
-
"@gooddata/sdk-ui-
|
|
73
|
-
"@gooddata/sdk-ui-
|
|
74
|
-
"@gooddata/sdk-
|
|
75
|
-
"@gooddata/
|
|
76
|
-
"@gooddata/
|
|
63
|
+
"@gooddata/sdk-ui": "11.53.0-alpha.2",
|
|
64
|
+
"@gooddata/sdk-model": "11.53.0-alpha.2",
|
|
65
|
+
"@gooddata/sdk-backend-spi": "11.53.0-alpha.2",
|
|
66
|
+
"@gooddata/sdk-ui-charts": "11.53.0-alpha.2",
|
|
67
|
+
"@gooddata/sdk-ui-ext": "11.53.0-alpha.2",
|
|
68
|
+
"@gooddata/sdk-ui-geo": "11.53.0-alpha.2",
|
|
69
|
+
"@gooddata/sdk-ui-kit": "11.53.0-alpha.2",
|
|
70
|
+
"@gooddata/sdk-ui-pivot": "11.53.0-alpha.2",
|
|
71
|
+
"@gooddata/sdk-ui-semantic-search": "11.53.0-alpha.2",
|
|
72
|
+
"@gooddata/sdk-ui-theme-provider": "11.53.0-alpha.2",
|
|
73
|
+
"@gooddata/sdk-ui-vis-commons": "11.53.0-alpha.2",
|
|
74
|
+
"@gooddata/sdk-backend-base": "11.53.0-alpha.2",
|
|
75
|
+
"@gooddata/util": "11.53.0-alpha.2",
|
|
76
|
+
"@gooddata/sdk-ui-filters": "11.53.0-alpha.2"
|
|
77
77
|
},
|
|
78
78
|
"devDependencies": {
|
|
79
79
|
"@microsoft/api-documenter": "^7.17.0",
|
|
@@ -119,12 +119,12 @@
|
|
|
119
119
|
"typescript": "5.9.3",
|
|
120
120
|
"vitest": "4.1.8",
|
|
121
121
|
"vitest-dom": "0.1.1",
|
|
122
|
-
"@gooddata/eslint-config": "11.53.0-alpha.
|
|
123
|
-
"@gooddata/
|
|
124
|
-
"@gooddata/
|
|
125
|
-
"@gooddata/
|
|
126
|
-
"@gooddata/sdk-backend-mockingbird": "11.53.0-alpha.
|
|
127
|
-
"@gooddata/
|
|
122
|
+
"@gooddata/eslint-config": "11.53.0-alpha.2",
|
|
123
|
+
"@gooddata/oxlint-config": "11.53.0-alpha.2",
|
|
124
|
+
"@gooddata/reference-workspace": "11.53.0-alpha.2",
|
|
125
|
+
"@gooddata/stylelint-config": "11.53.0-alpha.2",
|
|
126
|
+
"@gooddata/sdk-backend-mockingbird": "11.53.0-alpha.2",
|
|
127
|
+
"@gooddata/i18n-toolkit": "11.53.0-alpha.2"
|
|
128
128
|
},
|
|
129
129
|
"peerDependencies": {
|
|
130
130
|
"react": "^18.0.0 || ^19.0.0",
|
package/styles/css/main.css
CHANGED
|
@@ -1022,6 +1022,20 @@ button.gd-list-item {
|
|
|
1022
1022
|
text-decoration: underline;
|
|
1023
1023
|
}
|
|
1024
1024
|
|
|
1025
|
+
.gd-list-item:has(.gd-list-item-suffix) {
|
|
1026
|
+
justify-content: flex-start;
|
|
1027
|
+
}
|
|
1028
|
+
|
|
1029
|
+
.gd-list-item:has(.gd-list-item-suffix) > span {
|
|
1030
|
+
flex-grow: 0;
|
|
1031
|
+
}
|
|
1032
|
+
|
|
1033
|
+
.gd-list-item .gd-list-item-suffix {
|
|
1034
|
+
flex: 0 0 auto;
|
|
1035
|
+
margin-left: 5px;
|
|
1036
|
+
color: var(--gd-palette-complementary-6);
|
|
1037
|
+
}
|
|
1038
|
+
|
|
1025
1039
|
.gd-list-item.gd-list-item-separator, .gd-list-item.gd-list-item-header {
|
|
1026
1040
|
cursor: default;
|
|
1027
1041
|
}
|
|
@@ -1822,6 +1836,12 @@ button.gd-list-item {
|
|
|
1822
1836
|
border-radius: 4px;
|
|
1823
1837
|
box-shadow: 0 8px 15px rgba(0, 0, 0, 0.08), 0 2px 10px rgba(0, 0, 0, 0.1);
|
|
1824
1838
|
}
|
|
1839
|
+
.gd-ui-kit-parameter-control--allowed-values {
|
|
1840
|
+
padding: 5px 0;
|
|
1841
|
+
}
|
|
1842
|
+
.gd-ui-kit-parameter-control--allowed-values:has(.gd-list-searchfield) .gd-infinite-list {
|
|
1843
|
+
margin-top: 0;
|
|
1844
|
+
}
|
|
1825
1845
|
.gd-ui-kit-parameter-control__dropdown-field {
|
|
1826
1846
|
padding: 10px;
|
|
1827
1847
|
}
|
|
@@ -2766,6 +2786,20 @@ button.gd-list-item {
|
|
|
2766
2786
|
text-decoration: underline;
|
|
2767
2787
|
}
|
|
2768
2788
|
|
|
2789
|
+
.gd-list-item:has(.gd-list-item-suffix) {
|
|
2790
|
+
justify-content: flex-start;
|
|
2791
|
+
}
|
|
2792
|
+
|
|
2793
|
+
.gd-list-item:has(.gd-list-item-suffix) > span {
|
|
2794
|
+
flex-grow: 0;
|
|
2795
|
+
}
|
|
2796
|
+
|
|
2797
|
+
.gd-list-item .gd-list-item-suffix {
|
|
2798
|
+
flex: 0 0 auto;
|
|
2799
|
+
margin-left: 5px;
|
|
2800
|
+
color: var(--gd-palette-complementary-6);
|
|
2801
|
+
}
|
|
2802
|
+
|
|
2769
2803
|
.gd-list-item.gd-list-item-separator, .gd-list-item.gd-list-item-header {
|
|
2770
2804
|
cursor: default;
|
|
2771
2805
|
}
|
|
@@ -8148,6 +8182,20 @@ button.gd-list-item {
|
|
|
8148
8182
|
text-decoration: underline;
|
|
8149
8183
|
}
|
|
8150
8184
|
|
|
8185
|
+
.gd-list-item:has(.gd-list-item-suffix) {
|
|
8186
|
+
justify-content: flex-start;
|
|
8187
|
+
}
|
|
8188
|
+
|
|
8189
|
+
.gd-list-item:has(.gd-list-item-suffix) > span {
|
|
8190
|
+
flex-grow: 0;
|
|
8191
|
+
}
|
|
8192
|
+
|
|
8193
|
+
.gd-list-item .gd-list-item-suffix {
|
|
8194
|
+
flex: 0 0 auto;
|
|
8195
|
+
margin-left: 5px;
|
|
8196
|
+
color: var(--gd-palette-complementary-6);
|
|
8197
|
+
}
|
|
8198
|
+
|
|
8151
8199
|
.gd-list-item.gd-list-item-separator, .gd-list-item.gd-list-item-header {
|
|
8152
8200
|
cursor: default;
|
|
8153
8201
|
}
|
|
@@ -14043,6 +14091,20 @@ button.gd-list-item {
|
|
|
14043
14091
|
text-decoration: underline;
|
|
14044
14092
|
}
|
|
14045
14093
|
|
|
14094
|
+
.gd-list-item:has(.gd-list-item-suffix) {
|
|
14095
|
+
justify-content: flex-start;
|
|
14096
|
+
}
|
|
14097
|
+
|
|
14098
|
+
.gd-list-item:has(.gd-list-item-suffix) > span {
|
|
14099
|
+
flex-grow: 0;
|
|
14100
|
+
}
|
|
14101
|
+
|
|
14102
|
+
.gd-list-item .gd-list-item-suffix {
|
|
14103
|
+
flex: 0 0 auto;
|
|
14104
|
+
margin-left: 5px;
|
|
14105
|
+
color: var(--gd-palette-complementary-6);
|
|
14106
|
+
}
|
|
14107
|
+
|
|
14046
14108
|
.gd-list-item.gd-list-item-separator, .gd-list-item.gd-list-item-header {
|
|
14047
14109
|
cursor: default;
|
|
14048
14110
|
}
|