@gooddata/sdk-ui-dashboard 11.54.0-alpha.3 → 11.54.0-alpha.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/NOTICE +92923 -17333
- package/esm/__version.d.ts +1 -1
- package/esm/__version.js +1 -1
- package/esm/_staging/automation/index.d.ts +6 -0
- package/esm/_staging/automation/index.d.ts.map +1 -1
- package/esm/_staging/automation/index.js +7 -0
- package/esm/_staging/dashboard/flexibleLayout/builder/utils.d.ts +45 -0
- package/esm/_staging/dashboard/flexibleLayout/builder/utils.d.ts.map +1 -0
- package/esm/_staging/dashboard/flexibleLayout/builder/utils.js +54 -0
- package/esm/_staging/dateFilterConfig/fixtures.d.ts +10 -0
- package/esm/_staging/dateFilterConfig/fixtures.d.ts.map +1 -0
- package/esm/_staging/dateFilterConfig/fixtures.js +60 -0
- package/esm/_staging/layout/coordinates.mock.d.ts +17 -0
- package/esm/_staging/layout/coordinates.mock.d.ts.map +1 -0
- package/esm/_staging/layout/coordinates.mock.js +103 -0
- package/esm/index.d.ts +2 -2
- package/esm/index.d.ts.map +1 -1
- package/esm/model/DashboardTester.d.ts +150 -0
- package/esm/model/DashboardTester.d.ts.map +1 -0
- package/esm/model/DashboardTester.js +208 -0
- package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/index.d.ts.map +1 -1
- package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/index.js +27 -1
- package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/loadAutomationTimezone.d.ts +9 -0
- package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/loadAutomationTimezone.d.ts.map +1 -0
- package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/loadAutomationTimezone.js +27 -0
- package/esm/model/commandHandlers/timezone/changeDashboardTimezoneOverrideHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/timezone/changeDashboardTimezoneOverrideHandler.js +2 -11
- package/esm/model/commands/timezone.d.ts +10 -2
- package/esm/model/commands/timezone.d.ts.map +1 -1
- package/esm/model/commands/timezone.js +5 -2
- package/esm/model/fixtures/CatalogAvailability.fixtures.d.ts +14 -0
- package/esm/model/fixtures/CatalogAvailability.fixtures.d.ts.map +1 -0
- package/esm/model/fixtures/CatalogAvailability.fixtures.js +57 -0
- package/esm/model/fixtures/ComplexDashboard.fixtures.d.ts +56 -0
- package/esm/model/fixtures/ComplexDashboard.fixtures.d.ts.map +1 -0
- package/esm/model/fixtures/ComplexDashboard.fixtures.js +71 -0
- package/esm/model/fixtures/Dashboard.fixtures.d.ts +10 -0
- package/esm/model/fixtures/Dashboard.fixtures.d.ts.map +1 -0
- package/esm/model/fixtures/Dashboard.fixtures.js +13 -0
- package/esm/model/fixtures/Insights.fixtures.d.ts +6 -0
- package/esm/model/fixtures/Insights.fixtures.d.ts.map +1 -0
- package/esm/model/fixtures/Insights.fixtures.js +11 -0
- package/esm/model/fixtures/Layout.fixtures.d.ts +14 -0
- package/esm/model/fixtures/Layout.fixtures.d.ts.map +1 -0
- package/esm/model/fixtures/Layout.fixtures.js +115 -0
- package/esm/model/fixtures/SimpleDashboard.fixtures.d.ts +46 -0
- package/esm/model/fixtures/SimpleDashboard.fixtures.d.ts.map +1 -0
- package/esm/model/fixtures/SimpleDashboard.fixtures.js +315 -0
- package/esm/model/fixtures/SimpleDashboardNoDrills.fixtures.d.ts +28 -0
- package/esm/model/fixtures/SimpleDashboardNoDrills.fixtures.d.ts.map +1 -0
- package/esm/model/fixtures/SimpleDashboardNoDrills.fixtures.js +40 -0
- package/esm/plugins/customizationApis/fixtures/TestingDashboardCustomizationLogger.d.ts +16 -0
- package/esm/plugins/customizationApis/fixtures/TestingDashboardCustomizationLogger.d.ts.map +1 -0
- package/esm/plugins/customizationApis/fixtures/TestingDashboardCustomizationLogger.js +30 -0
- package/esm/plugins/customizationApis/utils.d.ts +3 -0
- package/esm/plugins/customizationApis/utils.d.ts.map +1 -0
- package/esm/plugins/customizationApis/utils.js +17 -0
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/AlertingDialogDestination.d.ts +6 -0
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/AlertingDialogDestination.d.ts.map +1 -0
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/AlertingDialogDestination.js +13 -0
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/AlertingDialogRecipients.d.ts +7 -0
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/AlertingDialogRecipients.d.ts.map +1 -0
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/AlertingDialogRecipients.js +12 -0
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.d.ts.map +1 -1
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.js +25 -13
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/FormField.d.ts +8 -0
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/FormField.d.ts.map +1 -0
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/FormField.js +8 -0
- package/esm/presentation/automations/alerting/state/fixtures.d.ts +13 -0
- package/esm/presentation/automations/alerting/state/fixtures.d.ts.map +1 -0
- package/esm/presentation/automations/alerting/state/fixtures.js +37 -0
- package/esm/presentation/automations/alerting/types.d.ts +42 -2
- package/esm/presentation/automations/alerting/types.d.ts.map +1 -1
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.d.ts.map +1 -1
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.js +24 -5
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/RecipientsSelect/RecipientsSelect.d.ts +1 -5
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/RecipientsSelect/RecipientsSelect.d.ts.map +1 -1
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/RecipientsSelect/RecipientsSelect.js +2 -2
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/RecipientsSelect/RecipientsSelectRenderer.d.ts +0 -4
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/RecipientsSelect/RecipientsSelectRenderer.d.ts.map +1 -1
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/ScheduledEmailDialogDestination.d.ts +6 -0
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/ScheduledEmailDialogDestination.d.ts.map +1 -0
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/ScheduledEmailDialogDestination.js +10 -0
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/ScheduledEmailDialogRecipients.d.ts +6 -0
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/ScheduledEmailDialogRecipients.d.ts.map +1 -0
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/ScheduledEmailDialogRecipients.js +8 -0
- package/esm/presentation/automations/scheduledEmail/state/fixtures.d.ts +18 -0
- package/esm/presentation/automations/scheduledEmail/state/fixtures.d.ts.map +1 -0
- package/esm/presentation/automations/scheduledEmail/state/fixtures.js +105 -0
- package/esm/presentation/automations/scheduledEmail/types.d.ts +52 -3
- package/esm/presentation/automations/scheduledEmail/types.d.ts.map +1 -1
- package/esm/presentation/automations/shared/automationFilters/parameterFixtures.d.ts +5 -0
- package/esm/presentation/automations/shared/automationFilters/parameterFixtures.d.ts.map +1 -0
- package/esm/presentation/automations/shared/automationFilters/parameterFixtures.js +22 -0
- package/esm/presentation/automations/shared/slots/types.d.ts +67 -1
- package/esm/presentation/automations/shared/slots/types.d.ts.map +1 -1
- package/esm/presentation/automations/shared/test/fixtures.d.ts +9 -0
- package/esm/presentation/automations/shared/test/fixtures.d.ts.map +1 -0
- package/esm/presentation/automations/shared/test/fixtures.js +101 -0
- package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayout.d.ts +17 -0
- package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayout.d.ts.map +1 -0
- package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayout.js +18 -0
- package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutItemRenderer.d.ts +12 -0
- package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutItemRenderer.d.ts.map +1 -0
- package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutItemRenderer.js +26 -0
- package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutMocks.d.ts +20 -0
- package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutMocks.d.ts.map +1 -0
- package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutMocks.js +95 -0
- package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutRowRenderer.d.ts +14 -0
- package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutRowRenderer.d.ts.map +1 -0
- package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutRowRenderer.js +9 -0
- package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutSectionBorder.d.ts +9 -0
- package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutSectionBorder.d.ts.map +1 -0
- package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutSectionBorder.js +17 -0
- package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutSectionBorderMarker.d.ts +6 -0
- package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutSectionBorderMarker.d.ts.map +1 -0
- package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutSectionBorderMarker.js +10 -0
- package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutSectionHeader.d.ts +9 -0
- package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutSectionHeader.d.ts.map +1 -0
- package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutSectionHeader.js +14 -0
- package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutSectionHeaderRenderer.d.ts +8 -0
- package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutSectionHeaderRenderer.d.ts.map +1 -0
- package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutSectionHeaderRenderer.js +49 -0
- package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutSectionRenderer.d.ts +7 -0
- package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutSectionRenderer.d.ts.map +1 -0
- package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutSectionRenderer.js +33 -0
- package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutTypes.d.ts +62 -0
- package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutTypes.d.ts.map +1 -0
- package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutTypes.js +2 -0
- package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutWidget.d.ts +11 -0
- package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutWidget.d.ts.map +1 -0
- package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutWidget.js +4 -0
- package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutWidgetRenderer.d.ts +8 -0
- package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutWidgetRenderer.d.ts.map +1 -0
- package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutWidgetRenderer.js +28 -0
- package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/LayoutTypes.d.ts +26 -0
- package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/LayoutTypes.d.ts.map +1 -0
- package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/LayoutTypes.js +21 -0
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/EditAlert.d.ts.map +1 -1
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/EditAlert.js +1 -1
- package/esm/sdk-ui-dashboard.d.ts +172 -5
- package/package.json +21 -21
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
// (C) 2021-2026 GoodData Corporation
|
|
2
|
+
import { ReferenceRecordings } from "@gooddata/reference-workspace";
|
|
3
|
+
import { idRef, } from "@gooddata/sdk-model";
|
|
4
|
+
import { ComplexDashboardIdentifier } from "./ComplexDashboard.fixtures.js";
|
|
5
|
+
export const SimpleDashboardIdentifier = "adb4fefa-c5ad-410e-bb2c-d6933e0ec7a0";
|
|
6
|
+
export const SimpleDashboardWithReferences = ReferenceRecordings.Recordings.metadata?.dashboards?.["dash_adb4fefa_c5ad_410e_bb2c_d6933e0ec7a0"].obj;
|
|
7
|
+
export const SimpleDashboardLayout = SimpleDashboardWithReferences.dashboard.layout;
|
|
8
|
+
export const SimpleDashboardFilterContext = SimpleDashboardWithReferences.dashboard
|
|
9
|
+
.filterContext;
|
|
10
|
+
/**
|
|
11
|
+
* drillToAttributeUrl on simple dashboard
|
|
12
|
+
*/
|
|
13
|
+
export const drillToAttributeUrlWidgetRef = SimpleDashboardLayout.sections[2].items[0].widget.ref;
|
|
14
|
+
/**
|
|
15
|
+
* First widget from first section
|
|
16
|
+
*/
|
|
17
|
+
export const KpiWidgetRef = SimpleDashboardLayout.sections[0].items[0].widget.ref;
|
|
18
|
+
/**
|
|
19
|
+
* First widget from second section
|
|
20
|
+
*/
|
|
21
|
+
export const SimpleSortedTableWidgetRef = SimpleDashboardLayout.sections[1].items[0].widget.ref;
|
|
22
|
+
export const SimpleSortedTableWidgetInsightRef = SimpleDashboardWithReferences.references.insights[2].insight.ref;
|
|
23
|
+
export const SimpleSortedTableWidgetInsightIdentifier = SimpleDashboardWithReferences.references.insights[2].insight.identifier;
|
|
24
|
+
export const SimpleSortedTableWidgetInsight = SimpleDashboardWithReferences.references.insights[2];
|
|
25
|
+
/**
|
|
26
|
+
* localIdentifier of Won Measure of Simple SortedTable Widget on Simple Dashboard
|
|
27
|
+
*/
|
|
28
|
+
export const SimpleDashboardSimpleSortedTableWonMeasureLocalIdentifier = "31c22194386b408aa80ab90b966e85a7";
|
|
29
|
+
export const SimpleDashboardSimpleSortedTableProductAttributeLocalIdentifier = "3b196b9f8de04b61ba37762fa28fcf4f";
|
|
30
|
+
/**
|
|
31
|
+
* simple dashboard drillToAttributeUrl NumOfOpportunities measure identifier
|
|
32
|
+
*/
|
|
33
|
+
export const NumOfOpportunitiesMeasureIdentifier = "8e874c44107d41809d0d5e7bbd1c19ff";
|
|
34
|
+
/**
|
|
35
|
+
* This mock is real reported drillTargets after firs render
|
|
36
|
+
*/
|
|
37
|
+
export const SimpleDashboardSimpleSortedTableWidgetDrillTargets = {
|
|
38
|
+
measures: [
|
|
39
|
+
{
|
|
40
|
+
measure: {
|
|
41
|
+
measureHeaderItem: {
|
|
42
|
+
name: "Won",
|
|
43
|
+
format: "$#,##0.00",
|
|
44
|
+
localIdentifier: SimpleDashboardSimpleSortedTableWonMeasureLocalIdentifier,
|
|
45
|
+
uri: "obj_1272",
|
|
46
|
+
identifier: "acugFHNJgsBy",
|
|
47
|
+
ref: {
|
|
48
|
+
identifier: "obj_1272",
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
attributes: [
|
|
53
|
+
{
|
|
54
|
+
attributeHeader: {
|
|
55
|
+
name: "Product Name",
|
|
56
|
+
localIdentifier: "3b196b9f8de04b61ba37762fa28fcf4f",
|
|
57
|
+
uri: "obj_1055",
|
|
58
|
+
identifier: "label.product.id.name",
|
|
59
|
+
formOf: {
|
|
60
|
+
name: "Product",
|
|
61
|
+
uri: "obj_1054",
|
|
62
|
+
identifier: "attr.product.id",
|
|
63
|
+
ref: {
|
|
64
|
+
identifier: "obj_1054",
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
ref: {
|
|
68
|
+
identifier: "obj_1055",
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
attributeHeader: {
|
|
74
|
+
name: "Department",
|
|
75
|
+
localIdentifier: "d25f36e4914f4ed18ee6b057d18decd9",
|
|
76
|
+
uri: "obj_1089",
|
|
77
|
+
identifier: "label.owner.department",
|
|
78
|
+
formOf: {
|
|
79
|
+
name: "Department",
|
|
80
|
+
uri: "obj_1088",
|
|
81
|
+
identifier: "attr.owner.department",
|
|
82
|
+
ref: {
|
|
83
|
+
identifier: "obj_1088",
|
|
84
|
+
},
|
|
85
|
+
},
|
|
86
|
+
ref: {
|
|
87
|
+
identifier: "obj_1089",
|
|
88
|
+
},
|
|
89
|
+
},
|
|
90
|
+
},
|
|
91
|
+
],
|
|
92
|
+
},
|
|
93
|
+
],
|
|
94
|
+
attributes: [
|
|
95
|
+
{
|
|
96
|
+
attribute: {
|
|
97
|
+
attributeHeader: {
|
|
98
|
+
name: "Product Name",
|
|
99
|
+
localIdentifier: SimpleDashboardSimpleSortedTableProductAttributeLocalIdentifier,
|
|
100
|
+
uri: "obj_1055",
|
|
101
|
+
identifier: "label.product.id.name",
|
|
102
|
+
formOf: {
|
|
103
|
+
name: "Product",
|
|
104
|
+
uri: "obj_1054",
|
|
105
|
+
identifier: "attr.product.id",
|
|
106
|
+
ref: {
|
|
107
|
+
identifier: "obj_1054",
|
|
108
|
+
},
|
|
109
|
+
},
|
|
110
|
+
ref: {
|
|
111
|
+
identifier: "obj_1055",
|
|
112
|
+
},
|
|
113
|
+
},
|
|
114
|
+
},
|
|
115
|
+
intersectionAttributes: [
|
|
116
|
+
{
|
|
117
|
+
attributeHeader: {
|
|
118
|
+
name: "Product Name",
|
|
119
|
+
localIdentifier: "3b196b9f8de04b61ba37762fa28fcf4f",
|
|
120
|
+
uri: "obj_1055",
|
|
121
|
+
identifier: "label.product.id.name",
|
|
122
|
+
formOf: {
|
|
123
|
+
name: "Product",
|
|
124
|
+
uri: "obj_1054",
|
|
125
|
+
identifier: "attr.product.id",
|
|
126
|
+
ref: {
|
|
127
|
+
identifier: "obj_1054",
|
|
128
|
+
},
|
|
129
|
+
},
|
|
130
|
+
ref: {
|
|
131
|
+
identifier: "obj_1055",
|
|
132
|
+
},
|
|
133
|
+
},
|
|
134
|
+
},
|
|
135
|
+
],
|
|
136
|
+
},
|
|
137
|
+
],
|
|
138
|
+
};
|
|
139
|
+
export const SimpleDashboarddrillToAttributeUrlWidgetDrillTargets = {
|
|
140
|
+
measures: [
|
|
141
|
+
{
|
|
142
|
+
measure: {
|
|
143
|
+
measureHeaderItem: {
|
|
144
|
+
name: "# Of Opportunities",
|
|
145
|
+
format: "#,##0.00",
|
|
146
|
+
localIdentifier: "8e874c44107d41809d0d5e7bbd1c19ff",
|
|
147
|
+
uri: "obj_1268",
|
|
148
|
+
identifier: "abQgDWx4gOUu",
|
|
149
|
+
ref: {
|
|
150
|
+
identifier: "obj_1268",
|
|
151
|
+
},
|
|
152
|
+
},
|
|
153
|
+
},
|
|
154
|
+
attributes: [
|
|
155
|
+
{
|
|
156
|
+
attributeHeader: {
|
|
157
|
+
name: "Opportunity Name",
|
|
158
|
+
localIdentifier: "a75a78a7e2194c339b4f6b8694777803",
|
|
159
|
+
uri: "obj_1067",
|
|
160
|
+
identifier: "label.opportunity.id.name",
|
|
161
|
+
formOf: {
|
|
162
|
+
name: "Opportunity",
|
|
163
|
+
uri: "obj_1066",
|
|
164
|
+
identifier: "attr.opportunity.id",
|
|
165
|
+
ref: {
|
|
166
|
+
identifier: "obj_1066",
|
|
167
|
+
},
|
|
168
|
+
},
|
|
169
|
+
ref: {
|
|
170
|
+
identifier: "obj_1067",
|
|
171
|
+
},
|
|
172
|
+
},
|
|
173
|
+
},
|
|
174
|
+
],
|
|
175
|
+
},
|
|
176
|
+
],
|
|
177
|
+
attributes: [
|
|
178
|
+
{
|
|
179
|
+
attribute: {
|
|
180
|
+
attributeHeader: {
|
|
181
|
+
name: "Opportunity Name",
|
|
182
|
+
localIdentifier: "a75a78a7e2194c339b4f6b8694777803",
|
|
183
|
+
uri: "obj_1067",
|
|
184
|
+
identifier: "label.opportunity.id.name",
|
|
185
|
+
formOf: {
|
|
186
|
+
name: "Opportunity",
|
|
187
|
+
uri: "obj_1066",
|
|
188
|
+
identifier: "attr.opportunity.id",
|
|
189
|
+
ref: {
|
|
190
|
+
identifier: "obj_1066",
|
|
191
|
+
},
|
|
192
|
+
},
|
|
193
|
+
ref: {
|
|
194
|
+
identifier: "obj_1067",
|
|
195
|
+
},
|
|
196
|
+
},
|
|
197
|
+
},
|
|
198
|
+
intersectionAttributes: [
|
|
199
|
+
{
|
|
200
|
+
attributeHeader: {
|
|
201
|
+
name: "Opportunity Name",
|
|
202
|
+
localIdentifier: "a75a78a7e2194c339b4f6b8694777803",
|
|
203
|
+
uri: "obj_1067",
|
|
204
|
+
identifier: "label.opportunity.id.name",
|
|
205
|
+
formOf: {
|
|
206
|
+
name: "Opportunity",
|
|
207
|
+
uri: "obj_1066",
|
|
208
|
+
identifier: "attr.opportunity.id",
|
|
209
|
+
ref: {
|
|
210
|
+
identifier: "obj_1066",
|
|
211
|
+
},
|
|
212
|
+
},
|
|
213
|
+
ref: {
|
|
214
|
+
identifier: "obj_1067",
|
|
215
|
+
},
|
|
216
|
+
},
|
|
217
|
+
},
|
|
218
|
+
],
|
|
219
|
+
},
|
|
220
|
+
],
|
|
221
|
+
};
|
|
222
|
+
export const DrillToDashboardWithThreeSectionsLocalIdentifier = "b4c6999557164163a9e0e75ec74cb8db";
|
|
223
|
+
export const DrillToDashboardFromWonMeasureDefinition = {
|
|
224
|
+
localIdentifier: "b4c6999557164163a9e0e75ec74cb854",
|
|
225
|
+
type: "drillToDashboard",
|
|
226
|
+
origin: {
|
|
227
|
+
type: "drillFromMeasure",
|
|
228
|
+
measure: {
|
|
229
|
+
localIdentifier: SimpleDashboardSimpleSortedTableWonMeasureLocalIdentifier,
|
|
230
|
+
},
|
|
231
|
+
},
|
|
232
|
+
target: {
|
|
233
|
+
identifier: ComplexDashboardIdentifier,
|
|
234
|
+
type: "analyticalDashboard",
|
|
235
|
+
},
|
|
236
|
+
transition: "in-place",
|
|
237
|
+
};
|
|
238
|
+
export const DrillToDashboardFromProductAttributeDefinition = {
|
|
239
|
+
localIdentifier: "b4c6999557164163a9e0e75ec74cb8d4",
|
|
240
|
+
type: "drillToDashboard",
|
|
241
|
+
origin: {
|
|
242
|
+
type: "drillFromAttribute",
|
|
243
|
+
attribute: {
|
|
244
|
+
localIdentifier: SimpleDashboardSimpleSortedTableProductAttributeLocalIdentifier,
|
|
245
|
+
},
|
|
246
|
+
},
|
|
247
|
+
target: {
|
|
248
|
+
identifier: ComplexDashboardIdentifier,
|
|
249
|
+
type: "analyticalDashboard",
|
|
250
|
+
},
|
|
251
|
+
transition: "in-place",
|
|
252
|
+
};
|
|
253
|
+
export const DrillToToInsightFromWonMeasureDefinition = {
|
|
254
|
+
localIdentifier: DrillToDashboardWithThreeSectionsLocalIdentifier,
|
|
255
|
+
type: "drillToInsight",
|
|
256
|
+
origin: {
|
|
257
|
+
type: "drillFromMeasure",
|
|
258
|
+
measure: {
|
|
259
|
+
localIdentifier: SimpleDashboardSimpleSortedTableWonMeasureLocalIdentifier,
|
|
260
|
+
},
|
|
261
|
+
},
|
|
262
|
+
transition: "pop-up",
|
|
263
|
+
target: SimpleSortedTableWidgetInsightRef,
|
|
264
|
+
};
|
|
265
|
+
export const DrillToCustomUrlFromMeasureDefinition = {
|
|
266
|
+
localIdentifier: DrillToDashboardWithThreeSectionsLocalIdentifier,
|
|
267
|
+
type: "drillToCustomUrl",
|
|
268
|
+
transition: "new-window",
|
|
269
|
+
origin: {
|
|
270
|
+
type: "drillFromMeasure",
|
|
271
|
+
measure: {
|
|
272
|
+
localIdentifier: SimpleDashboardSimpleSortedTableWonMeasureLocalIdentifier,
|
|
273
|
+
},
|
|
274
|
+
},
|
|
275
|
+
target: {
|
|
276
|
+
url: "https://www.example.org?dep={attribute_title(label.owner.department)}",
|
|
277
|
+
},
|
|
278
|
+
};
|
|
279
|
+
export const DrillToAttributeUrlFromMeasureDefinition = {
|
|
280
|
+
localIdentifier: "b4c6999557164163a9e0e75ec74cb8d3",
|
|
281
|
+
type: "drillToAttributeUrl",
|
|
282
|
+
transition: "new-window",
|
|
283
|
+
origin: {
|
|
284
|
+
type: "drillFromMeasure",
|
|
285
|
+
measure: {
|
|
286
|
+
localIdentifier: NumOfOpportunitiesMeasureIdentifier,
|
|
287
|
+
},
|
|
288
|
+
},
|
|
289
|
+
target: {
|
|
290
|
+
displayForm: {
|
|
291
|
+
identifier: "obj_1067",
|
|
292
|
+
},
|
|
293
|
+
hyperlinkDisplayForm: {
|
|
294
|
+
identifier: "obj_1069",
|
|
295
|
+
},
|
|
296
|
+
},
|
|
297
|
+
};
|
|
298
|
+
export const InaccessibleDashboard = {
|
|
299
|
+
title: "Inaccessible Dashboard",
|
|
300
|
+
ref: idRef("inaccessibleDashboardId"),
|
|
301
|
+
uri: "inaccessibleDashboardUri",
|
|
302
|
+
identifier: "inaccessibleDashboardId",
|
|
303
|
+
};
|
|
304
|
+
export const SimpleDashboardListed = {
|
|
305
|
+
ref: SimpleDashboardWithReferences.dashboard.ref,
|
|
306
|
+
identifier: SimpleDashboardWithReferences.dashboard.identifier,
|
|
307
|
+
uri: SimpleDashboardWithReferences.dashboard.uri,
|
|
308
|
+
title: SimpleDashboardWithReferences.dashboard.title,
|
|
309
|
+
description: SimpleDashboardWithReferences.dashboard.description,
|
|
310
|
+
updated: SimpleDashboardWithReferences.dashboard.updated,
|
|
311
|
+
created: SimpleDashboardWithReferences.dashboard.created,
|
|
312
|
+
tags: SimpleDashboardWithReferences.dashboard.tags,
|
|
313
|
+
shareStatus: SimpleDashboardWithReferences.dashboard.shareStatus,
|
|
314
|
+
availability: "full",
|
|
315
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type IDashboardWithReferences } from "@gooddata/sdk-backend-spi";
|
|
2
|
+
import { type IFilterContext, type IListedDashboard } from "@gooddata/sdk-model";
|
|
3
|
+
export declare const SimpleDashboardNoDrillsIdentifier = "44a9d0ed-8a06-4ffd-b16c-6281707acfcf";
|
|
4
|
+
export declare const SimpleDashboardNoDrillsWithReferences: IDashboardWithReferences;
|
|
5
|
+
export declare const SimpleDashboardNoDrillsLayout: import("@gooddata/sdk-model").IDashboardLayout<import("@gooddata/sdk-model").IDashboardWidget>;
|
|
6
|
+
export declare const SimpleDashboardNoDrillsFilterContext: IFilterContext;
|
|
7
|
+
/**
|
|
8
|
+
* First widget from first section
|
|
9
|
+
*/
|
|
10
|
+
export declare const KpiWidgetRef: import("@gooddata/sdk-model").ObjRef;
|
|
11
|
+
/**
|
|
12
|
+
* First widget from second section
|
|
13
|
+
*/
|
|
14
|
+
export declare const SimpleSortedTableWidgetRef: any;
|
|
15
|
+
export declare const SimpleSortedTableWidgetInsightRef: import("@gooddata/sdk-model").ObjRef;
|
|
16
|
+
export declare const SimpleSortedTableWidgetInsightIdentifier: string;
|
|
17
|
+
export declare const SimpleSortedTableWidgetInsight: import("@gooddata/sdk-model").IInsight;
|
|
18
|
+
/**
|
|
19
|
+
* localIdentifier of Won Measure of Simple SortedTable Widget on Simple Dashboard
|
|
20
|
+
*/
|
|
21
|
+
export declare const SimpleDashboardNoDrillsSimpleSortedTableWonMeasureLocalIdentifier = "31c22194386b408aa80ab90b966e85a7";
|
|
22
|
+
export declare const SimpleDashboardNoDrillsSimpleSortedTableProductAttributeLocalIdentifier = "3b196b9f8de04b61ba37762fa28fcf4f";
|
|
23
|
+
/**
|
|
24
|
+
* simple dashboard drillToAttributeUrl NumOfOpportunities measure identifier
|
|
25
|
+
*/
|
|
26
|
+
export declare const NumOfOpportunitiesMeasureIdentifier = "8e874c44107d41809d0d5e7bbd1c19ff";
|
|
27
|
+
export declare const SimpleDashboardNoDrillsListed: IListedDashboard;
|
|
28
|
+
//# sourceMappingURL=SimpleDashboardNoDrills.fixtures.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SimpleDashboardNoDrills.fixtures.d.ts","sourceRoot":"","sources":["../../../src/model/fixtures/SimpleDashboardNoDrills.fixtures.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EAAE,KAAK,cAAc,EAAmB,KAAK,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAElG,eAAO,MAAM,iCAAiC,yCAAyC,CAAC;AACxF,eAAO,MAAM,qCAAqC,0BAEjB,CAAC;AAClC,eAAO,MAAM,6BAA6B,gGAA0D,CAAC;AACrG,eAAO,MAAM,oCAAoC,gBACb,CAAC;AAErC;;GAEG;AACH,eAAO,MAAM,YAAY,sCAAgF,CAAC;AAC1G;;GAEG;AACH,eAAO,MAAM,0BAA0B,KAC/B,CAAC;AACT,eAAO,MAAM,iCAAiC,sCAC8B,CAAC;AAC7E,eAAO,MAAM,wCAAwC,QAC8B,CAAC;AACpF,eAAO,MAAM,8BAA8B,wCAA+D,CAAC;AAC3G;;GAEG;AACH,eAAO,MAAM,iEAAiE,qCACxC,CAAC;AACvC,eAAO,MAAM,uEAAuE,qCAC9C,CAAC;AAEvC;;GAEG;AACH,eAAO,MAAM,mCAAmC,qCAAqC,CAAC;AAEtF,eAAO,MAAM,6BAA6B,EAAE,gBAW3C,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
// (C) 2021-2026 GoodData Corporation
|
|
2
|
+
import { ReferenceRecordings } from "@gooddata/reference-workspace";
|
|
3
|
+
export const SimpleDashboardNoDrillsIdentifier = "44a9d0ed-8a06-4ffd-b16c-6281707acfcf";
|
|
4
|
+
export const SimpleDashboardNoDrillsWithReferences = ReferenceRecordings.Recordings.metadata?.dashboards?.["dash_44a9d0ed_8a06_4ffd_b16c_6281707acfcf"].obj;
|
|
5
|
+
export const SimpleDashboardNoDrillsLayout = SimpleDashboardNoDrillsWithReferences.dashboard.layout;
|
|
6
|
+
export const SimpleDashboardNoDrillsFilterContext = SimpleDashboardNoDrillsWithReferences.dashboard
|
|
7
|
+
.filterContext;
|
|
8
|
+
/**
|
|
9
|
+
* First widget from first section
|
|
10
|
+
*/
|
|
11
|
+
export const KpiWidgetRef = SimpleDashboardNoDrillsLayout.sections[0].items[0].widget.ref;
|
|
12
|
+
/**
|
|
13
|
+
* First widget from second section
|
|
14
|
+
*/
|
|
15
|
+
export const SimpleSortedTableWidgetRef = SimpleDashboardNoDrillsLayout.sections[1].items[0].widget
|
|
16
|
+
.ref;
|
|
17
|
+
export const SimpleSortedTableWidgetInsightRef = SimpleDashboardNoDrillsWithReferences.references.insights[1].insight.ref;
|
|
18
|
+
export const SimpleSortedTableWidgetInsightIdentifier = SimpleDashboardNoDrillsWithReferences.references.insights[1].insight.identifier;
|
|
19
|
+
export const SimpleSortedTableWidgetInsight = SimpleDashboardNoDrillsWithReferences.references.insights[1];
|
|
20
|
+
/**
|
|
21
|
+
* localIdentifier of Won Measure of Simple SortedTable Widget on Simple Dashboard
|
|
22
|
+
*/
|
|
23
|
+
export const SimpleDashboardNoDrillsSimpleSortedTableWonMeasureLocalIdentifier = "31c22194386b408aa80ab90b966e85a7";
|
|
24
|
+
export const SimpleDashboardNoDrillsSimpleSortedTableProductAttributeLocalIdentifier = "3b196b9f8de04b61ba37762fa28fcf4f";
|
|
25
|
+
/**
|
|
26
|
+
* simple dashboard drillToAttributeUrl NumOfOpportunities measure identifier
|
|
27
|
+
*/
|
|
28
|
+
export const NumOfOpportunitiesMeasureIdentifier = "8e874c44107d41809d0d5e7bbd1c19ff";
|
|
29
|
+
export const SimpleDashboardNoDrillsListed = {
|
|
30
|
+
ref: SimpleDashboardNoDrillsWithReferences.dashboard.ref,
|
|
31
|
+
identifier: SimpleDashboardNoDrillsWithReferences.dashboard.identifier,
|
|
32
|
+
uri: SimpleDashboardNoDrillsWithReferences.dashboard.uri,
|
|
33
|
+
title: SimpleDashboardNoDrillsWithReferences.dashboard.title,
|
|
34
|
+
description: SimpleDashboardNoDrillsWithReferences.dashboard.description,
|
|
35
|
+
updated: SimpleDashboardNoDrillsWithReferences.dashboard.updated,
|
|
36
|
+
created: SimpleDashboardNoDrillsWithReferences.dashboard.created,
|
|
37
|
+
tags: SimpleDashboardNoDrillsWithReferences.dashboard.tags,
|
|
38
|
+
shareStatus: SimpleDashboardNoDrillsWithReferences.dashboard.shareStatus,
|
|
39
|
+
availability: "full",
|
|
40
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type IDashboardPluginContract_V1 } from "../../plugin.js";
|
|
2
|
+
import { type IDashboardCustomizationLogger } from "../customizationLogging.js";
|
|
3
|
+
export declare class TestingDashboardCustomizationLogger implements IDashboardCustomizationLogger {
|
|
4
|
+
private readonly setCurrentPluginImpl;
|
|
5
|
+
private readonly logImpl;
|
|
6
|
+
private readonly debugImpl;
|
|
7
|
+
private readonly warnImpl;
|
|
8
|
+
private readonly errorImpl;
|
|
9
|
+
constructor(functions: Partial<IDashboardCustomizationLogger>);
|
|
10
|
+
setCurrentPlugin(plugin: IDashboardPluginContract_V1 | undefined): void;
|
|
11
|
+
log(message: string, ...optionalParams: any[]): void;
|
|
12
|
+
debug(message: string, ...optionalParams: any[]): void;
|
|
13
|
+
warn(message: string, ...optionalParams: any[]): void;
|
|
14
|
+
error(message: string, ...optionalParams: any[]): void;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=TestingDashboardCustomizationLogger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TestingDashboardCustomizationLogger.d.ts","sourceRoot":"","sources":["../../../../src/plugins/customizationApis/fixtures/TestingDashboardCustomizationLogger.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,KAAK,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AAEhF,qBAAa,mCAAoC,YAAW,6BAA6B;IACrF,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAgE;IACrG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmD;IAC3E,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqD;IAC/E,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoD;IAC7E,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqD;IAE/E,YAAY,SAAS,EAAE,OAAO,CAAC,6BAA6B,CAAC,EAM5D;IAED,gBAAgB,CAAC,MAAM,EAAE,2BAA2B,GAAG,SAAS,GAAG,IAAI,CAEtE;IACD,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,cAAc,EAAE,GAAG,EAAE,GAAG,IAAI,CAEnD;IACD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,cAAc,EAAE,GAAG,EAAE,GAAG,IAAI,CAErD;IACD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,cAAc,EAAE,GAAG,EAAE,GAAG,IAAI,CAEpD;IACD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,cAAc,EAAE,GAAG,EAAE,GAAG,IAAI,CAErD;CACJ"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// (C) 2022-2026 GoodData Corporation
|
|
2
|
+
export class TestingDashboardCustomizationLogger {
|
|
3
|
+
setCurrentPluginImpl;
|
|
4
|
+
logImpl;
|
|
5
|
+
debugImpl;
|
|
6
|
+
warnImpl;
|
|
7
|
+
errorImpl;
|
|
8
|
+
constructor(functions) {
|
|
9
|
+
this.setCurrentPluginImpl = functions.setCurrentPlugin;
|
|
10
|
+
this.logImpl = functions.log;
|
|
11
|
+
this.debugImpl = functions.debug;
|
|
12
|
+
this.warnImpl = functions.warn;
|
|
13
|
+
this.errorImpl = functions.error;
|
|
14
|
+
}
|
|
15
|
+
setCurrentPlugin(plugin) {
|
|
16
|
+
this.setCurrentPluginImpl?.(plugin);
|
|
17
|
+
}
|
|
18
|
+
log(message, ...optionalParams) {
|
|
19
|
+
this.logImpl?.(message, optionalParams);
|
|
20
|
+
}
|
|
21
|
+
debug(message, ...optionalParams) {
|
|
22
|
+
this.debugImpl?.(message, optionalParams);
|
|
23
|
+
}
|
|
24
|
+
warn(message, ...optionalParams) {
|
|
25
|
+
this.warnImpl?.(message, optionalParams);
|
|
26
|
+
}
|
|
27
|
+
error(message, ...optionalParams) {
|
|
28
|
+
this.errorImpl?.(message, optionalParams);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/plugins/customizationApis/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAE7D,eAAO,MAAM,eAAe,EAAE,0BAe7B,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// (C) 2025-2026 GoodData Corporation
|
|
2
|
+
export const EMPTY_MUTATIONS = {
|
|
3
|
+
kpi: [],
|
|
4
|
+
insight: [],
|
|
5
|
+
filterBar: [],
|
|
6
|
+
topBar: [],
|
|
7
|
+
layout: [],
|
|
8
|
+
richText: [],
|
|
9
|
+
title: [],
|
|
10
|
+
loading: [],
|
|
11
|
+
visualizationSwitcher: [],
|
|
12
|
+
visualizationSwitcherToolbar: [],
|
|
13
|
+
attributeFilter: [],
|
|
14
|
+
dashboardContent: [],
|
|
15
|
+
exports: [],
|
|
16
|
+
layouts: {},
|
|
17
|
+
};
|
package/esm/presentation/automations/alerting/DefaultAlertingDialog/AlertingDialogDestination.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type IAutomationDialogDestinationProps } from "../../shared/slots/types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Default implementation of the alerting dialog's destination region (the "Action" row).
|
|
4
|
+
*/
|
|
5
|
+
export declare function AlertingDialogDestination({ notificationChannels, selectedNotificationChannelId, onChange }: IAutomationDialogDestinationProps): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
//# sourceMappingURL=AlertingDialogDestination.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AlertingDialogDestination.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/alerting/DefaultAlertingDialog/AlertingDialogDestination.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,iCAAiC,EAAE,MAAM,6BAA6B,CAAC;AAQrF;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,EACtC,oBAAoB,EACpB,6BAA6B,EAC7B,QAAQ,EACX,EAAE,iCAAiC,2CAanC"}
|
package/esm/presentation/automations/alerting/DefaultAlertingDialog/AlertingDialogDestination.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
// (C) 2026 GoodData Corporation
|
|
3
|
+
import { FormattedMessage } from "react-intl";
|
|
4
|
+
import { AlertDestinationSelect } from "./components/AlertDestinationSelect.js";
|
|
5
|
+
import { FormField } from "./FormField.js";
|
|
6
|
+
const OVERLAY_POSITION_TYPE = "sameAsTarget";
|
|
7
|
+
const CLOSE_ON_PARENT_SCROLL = true;
|
|
8
|
+
/**
|
|
9
|
+
* Default implementation of the alerting dialog's destination region (the "Action" row).
|
|
10
|
+
*/
|
|
11
|
+
export function AlertingDialogDestination({ notificationChannels, selectedNotificationChannelId, onChange, }) {
|
|
12
|
+
return (_jsx(FormField, { label: _jsx(FormattedMessage, { id: "insightAlert.config.action" }), htmlFor: "alert.destination", children: _jsx(AlertDestinationSelect, { id: "alert.destination", selectedDestination: selectedNotificationChannelId, onDestinationChange: onChange, destinations: notificationChannels, overlayPositionType: OVERLAY_POSITION_TYPE, closeOnParentScroll: CLOSE_ON_PARENT_SCROLL }) }));
|
|
13
|
+
}
|
package/esm/presentation/automations/alerting/DefaultAlertingDialog/AlertingDialogRecipients.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type IAutomationDialogRecipientsProps } from "../../shared/slots/types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Default implementation of the alerting dialog's recipients region. The label comes from the
|
|
4
|
+
* form field row, so the select's own label is off.
|
|
5
|
+
*/
|
|
6
|
+
export declare function AlertingDialogRecipients(props: IAutomationDialogRecipientsProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
//# sourceMappingURL=AlertingDialogRecipients.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AlertingDialogRecipients.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/alerting/DefaultAlertingDialog/AlertingDialogRecipients.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,gCAAgC,EAAE,MAAM,6BAA6B,CAAC;AAIpF;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,gCAAgC,2CAU/E"}
|
package/esm/presentation/automations/alerting/DefaultAlertingDialog/AlertingDialogRecipients.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
// (C) 2026 GoodData Corporation
|
|
3
|
+
import { FormattedMessage } from "react-intl";
|
|
4
|
+
import { RecipientsSelect } from "../../scheduledEmail/DefaultScheduledEmailDialog/components/RecipientsSelect/RecipientsSelect.js";
|
|
5
|
+
import { FormField } from "./FormField.js";
|
|
6
|
+
/**
|
|
7
|
+
* Default implementation of the alerting dialog's recipients region. The label comes from the
|
|
8
|
+
* form field row, so the select's own label is off.
|
|
9
|
+
*/
|
|
10
|
+
export function AlertingDialogRecipients(props) {
|
|
11
|
+
return (_jsx(FormField, { label: _jsx(FormattedMessage, { id: "insightAlert.config.recipients" }), htmlFor: "alert.recipients", fullWidth: true, children: _jsx(RecipientsSelect, { id: "alert.recipients", showLabel: false, ...props }) }));
|
|
12
|
+
}
|
package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultAlertingDialog.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DefaultAlertingDialog.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.tsx"],"names":[],"mappings":"AAgDA,OAAO,EAGH,KAAK,2BAA2B,EACnC,MAAM,aAAa,CAAC;AA+BrB,wBAAgB,sBAAsB,CAAC,EACnC,QAAQ,EACR,eAAe,EACf,aAAa,EACb,OAAO,EACP,SAAS,EACT,WAAW,EACX,aAAa,EACb,KAAK,EACR,EAAE,2BAA2B,2CA2jB7B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,2BAA2B,2CAcvE"}
|
package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.js
CHANGED
|
@@ -8,7 +8,6 @@ import { DASHBOARD_DIALOG_OVERS_Z_INDEX } from "../../../constants/zIndex.js";
|
|
|
8
8
|
import { IntlWrapper } from "../../../localization/IntlWrapper.js";
|
|
9
9
|
import { useAlertingDialogContext } from "../../contexts/AlertingDialogContext.js";
|
|
10
10
|
import { useAutomationsContext } from "../../contexts/AutomationsContext.js";
|
|
11
|
-
import { RecipientsSelect } from "../../scheduledEmail/DefaultScheduledEmailDialog/components/RecipientsSelect/RecipientsSelect.js";
|
|
12
11
|
import { ApplyCurrentFiltersConfirmDialog } from "../../shared/automationFilters/components/ApplyLatestFiltersConfirmDialog.js";
|
|
13
12
|
import { DeleteAlertConfirmDialog } from "../DefaultAlertingManagementDialog/components/DeleteAlertConfirmDialog.js";
|
|
14
13
|
import { useAlertActions } from "../state/AlertActionsContext.js";
|
|
@@ -17,14 +16,15 @@ import { useAlertDraft } from "../state/AlertDraftContext.js";
|
|
|
17
16
|
import { useAlertFilters } from "../state/AlertFiltersContext.js";
|
|
18
17
|
import { useAlertDialogValidity } from "../state/useAlertDialogValidity.js";
|
|
19
18
|
import { useAlertSelectedValues } from "../state/useAlertSelectedValues.js";
|
|
19
|
+
import { AlertingDialogDestination } from "./AlertingDialogDestination.js";
|
|
20
20
|
import { AlertingDialogFilters } from "./AlertingDialogFilters.js";
|
|
21
21
|
import { AlertingDialogHeader } from "./AlertingDialogHeader.js";
|
|
22
|
+
import { AlertingDialogRecipients } from "./AlertingDialogRecipients.js";
|
|
22
23
|
import { AlertAttributeSelect } from "./components/AlertAttributeSelect.js";
|
|
23
24
|
import { AlertComparisonOperatorSelect } from "./components/AlertComparisonOperatorSelect.js";
|
|
24
25
|
//
|
|
25
26
|
//
|
|
26
27
|
import { AlertComparisonPeriodSelect } from "./components/AlertComparisonPeriodSelect.js";
|
|
27
|
-
import { AlertDestinationSelect } from "./components/AlertDestinationSelect.js";
|
|
28
28
|
import { AlertGranularitySelect } from "./components/AlertGranularitySelect.js";
|
|
29
29
|
import { AlertMeasureSelect } from "./components/AlertMeasureSelect.js";
|
|
30
30
|
import { AlertSensitivitySelect } from "./components/AlertSensitivitySelect.js";
|
|
@@ -33,6 +33,7 @@ import { AlertTriggerIntervalSelect } from "./components/AlertTriggerIntervalSel
|
|
|
33
33
|
import { AlertTriggerModeSelect } from "./components/AlertTriggerModeSelect.js";
|
|
34
34
|
import { ALERTING_DIALOG_ID } from "./constants.js";
|
|
35
35
|
import { DefaultLoadingAlertingDialog } from "./DefaultLoadingAlertingDialog.js";
|
|
36
|
+
import { FormField } from "./FormField.js";
|
|
36
37
|
import { useAlertSubmit } from "./hooks/useAlertSubmit.js";
|
|
37
38
|
import { useAlertThreshold } from "./hooks/useAlertThreshold.js";
|
|
38
39
|
import { getValueSuffix } from "./utils/getters.js";
|
|
@@ -44,6 +45,8 @@ const overlayController = OverlayController.getInstance(DASHBOARD_DIALOG_OVERS_Z
|
|
|
44
45
|
export function AlertingDialogRenderer({ onCancel, onDeleteSuccess, onDeleteError, onError, onSuccess, onSaveError, onSaveSuccess, slots, }) {
|
|
45
46
|
const HeaderSlot = slots?.Header;
|
|
46
47
|
const FiltersSlot = slots?.Filters;
|
|
48
|
+
const DestinationSlot = slots?.Destination;
|
|
49
|
+
const RecipientsSlot = slots?.Recipients;
|
|
47
50
|
const intl = useIntl();
|
|
48
51
|
const dialogTitleRef = useRef(null);
|
|
49
52
|
const { isWhiteLabeled, isSecondaryTitleVisible, externalRecipient: externalRecipientOverride, maxAutomationsRecipients, isExecutionTimestampMode, features: { enableAlertOncePerInterval, enableAnomalyDetectionAlert, canUseAiAssistant: enableAiAssistant, }, catalogAttributes, catalogDateDatasets, separators, allowHourlyRecurrence, } = useAutomationsContext();
|
|
@@ -53,7 +56,7 @@ export function AlertingDialogRenderer({ onCancel, onDeleteSuccess, onDeleteErro
|
|
|
53
56
|
onDeleteSuccess?.(alert);
|
|
54
57
|
setAlertToDelete(null);
|
|
55
58
|
};
|
|
56
|
-
const { editedAutomation,
|
|
59
|
+
const { editedAutomation, warningMessage } = useAlertDraft();
|
|
57
60
|
const { onTitleChange, onRecipientsChange, onMeasureChange, onAttributeChange, onComparisonOperatorChange, onRelativeOperatorChange, onAnomalyDetectionChange, onComparisonTypeChange, onDestinationChange, onTriggerModeChange, onTriggerIntervalChange, onSensitivityChange, onGranularityChange, setEditedAutomation, } = useAlertActions();
|
|
58
61
|
const { supportedMeasures, supportedAttributes, isResultLoading, getAttributeValues, defaultUser, getMetricValue, } = useAlertData();
|
|
59
62
|
const { selectedFilters, availableFilters, onFiltersChange, onApplyCurrentFilters, automationIsValid, filtersAreStale, automationParameters, availableParameters, onParameterChange, onParameterDelete, onParameterAdd, dropStaleParameters, } = useAlertFilters();
|
|
@@ -128,6 +131,23 @@ export function AlertingDialogRenderer({ onCancel, onDeleteSuccess, onDeleteErro
|
|
|
128
131
|
onParameterChange,
|
|
129
132
|
onParameterDelete,
|
|
130
133
|
};
|
|
134
|
+
const destinationDefaultProps = {
|
|
135
|
+
notificationChannels,
|
|
136
|
+
selectedNotificationChannelId: editedAutomation?.notificationChannel,
|
|
137
|
+
onChange: onDestinationChange,
|
|
138
|
+
};
|
|
139
|
+
const recipientsDefaultProps = {
|
|
140
|
+
loggedUser: defaultUser,
|
|
141
|
+
value: editedAutomation?.recipients ?? [],
|
|
142
|
+
onChange: onRecipientsChange,
|
|
143
|
+
allowEmptySelection: true,
|
|
144
|
+
allowOnlyLoggedUserRecipients,
|
|
145
|
+
allowExternalRecipients,
|
|
146
|
+
maxRecipients: maxAutomationsRecipients,
|
|
147
|
+
notificationChannels,
|
|
148
|
+
notificationChannelId: editedAutomation?.notificationChannel,
|
|
149
|
+
externalRecipientOverride,
|
|
150
|
+
};
|
|
131
151
|
return (_jsxs(_Fragment, { children: [
|
|
132
152
|
_jsx(Overlay, { className: "gd-notifications-channels-dialog-overlay", isModal: true, positionType: "fixed", ensureVisibility: true, children: _jsx(OverlayControllerProvider, { overlayController: overlayController, children: _jsx(ValidationContextStore, { value: validationContextValue, children: _jsxs(ConfirmDialogBase, { className: "gd-notifications-channels-dialog s-gd-notifications-channels-dialog gd-dialog--wide gd-notifications-channels-dialog--wide", isPositive: true, cancelButtonText: intl.formatMessage({ id: "cancel" }), submitButtonText: alertToEdit
|
|
133
153
|
? intl.formatMessage({ id: `save` })
|
|
@@ -173,14 +193,13 @@ export function AlertingDialogRenderer({ onCancel, onDeleteSuccess, onDeleteErro
|
|
|
173
193
|
] }), htmlFor: "alert.granularity", children: _jsx(AlertGranularitySelect, { id: "alert.granularity", allowHourlyRecurrence: allowHourlyRecurrence, selectedGranularity: selectedGranularity, onGranularityChange: (granularity) => {
|
|
174
194
|
onGranularityChange(selectedMeasure, granularity);
|
|
175
195
|
}, overlayPositionType: OVERLAY_POSITION_TYPE, closeOnParentScroll: CLOSE_ON_PARENT_SCROLL }) })
|
|
176
|
-
] }))] }), _jsx(ContentDivider, { className: "gd-divider-with-margin" }), _jsxs(FormFieldGroup, { label: _jsx(FormattedMessage, { id: "insightAlert.config.do" }), children: [notificationChannels.length > 1
|
|
196
|
+
] }))] }), _jsx(ContentDivider, { className: "gd-divider-with-margin" }), _jsxs(FormFieldGroup, { label: _jsx(FormattedMessage, { id: "insightAlert.config.do" }), children: [notificationChannels.length > 1 ? (DestinationSlot ? (_jsx(DestinationSlot, { Default: AlertingDialogDestination, defaultProps: destinationDefaultProps })) : (_jsx(AlertingDialogDestination, { ...destinationDefaultProps }))) : null, _jsx(FormField, { label: _jsx(FormattedMessage, { id: "insightAlert.config.trigger" }), htmlFor: "alert.trigger", children: _jsx(AlertTriggerModeSelect, { id: "alert.trigger", selectedTriggerMode: editedAutomation?.alert?.trigger.mode ?? "ALWAYS", onTriggerModeChange: onTriggerModeChange, overlayPositionType: OVERLAY_POSITION_TYPE, closeOnParentScroll: CLOSE_ON_PARENT_SCROLL, enableAlertOncePerInterval: enableAlertOncePerInterval }) }), editedAutomation?.alert?.trigger.mode === "ONCE_PER_INTERVAL" ? (_jsx(FormField, { label: _jsxs("div", { className: "gd-dashboard-alerting-dialog-form-field__content-container-tooltip", children: [
|
|
177
197
|
_jsx(FormattedMessage, { id: "insightAlert.config.interval" }), _jsx(UiTooltip, { anchor: _jsx(UiIconButton, { icon: "question", variant: "tertiary", size: "xsmall", accessibilityConfig: {
|
|
178
198
|
ariaLabel: intl.formatMessage({
|
|
179
199
|
id: "insightAlert.config.interval",
|
|
180
200
|
}),
|
|
181
201
|
} }), content: _jsx(FormattedMessage, { id: "insightAlert.config.interval.tooltip" }), arrowPlacement: "left", optimalPlacement: true, offset: 10, width: 280, triggerBy: ["hover", "click"] })
|
|
182
|
-
] }), htmlFor: "alert.interval", children: _jsx(AlertTriggerIntervalSelect, { id: "alert.interval", selectedTriggerInterval: editedAutomation?.alert?.trigger.interval ?? "DAY", onTriggerIntervalChange: onTriggerIntervalChange, overlayPositionType: OVERLAY_POSITION_TYPE, closeOnParentScroll: CLOSE_ON_PARENT_SCROLL }) })) : null, _jsx(
|
|
183
|
-
] }), warningMessage ? (_jsx(Message, { type: "warning", className: "gd-notifications-channels-dialog-error", children: warningMessage })) : null, invalidDatapoints.map((datapoint) => (_jsx(Message, { id: datapoint.id, type: datapoint.severity === "info" ? "progress" : datapoint.severity, className: "gd-notifications-channels-dialog-error gd-notifications-channels-dialog-error-scrollable", children: datapoint.message }, datapoint.id)))] })
|
|
202
|
+
] }), htmlFor: "alert.interval", children: _jsx(AlertTriggerIntervalSelect, { id: "alert.interval", selectedTriggerInterval: editedAutomation?.alert?.trigger.interval ?? "DAY", onTriggerIntervalChange: onTriggerIntervalChange, overlayPositionType: OVERLAY_POSITION_TYPE, closeOnParentScroll: CLOSE_ON_PARENT_SCROLL }) })) : null, RecipientsSlot ? (_jsx(RecipientsSlot, { Default: AlertingDialogRecipients, defaultProps: recipientsDefaultProps })) : (_jsx(AlertingDialogRecipients, { ...recipientsDefaultProps }))] }), warningMessage ? (_jsx(Message, { type: "warning", className: "gd-notifications-channels-dialog-error", children: warningMessage })) : null, invalidDatapoints.map((datapoint) => (_jsx(Message, { id: datapoint.id, type: datapoint.severity === "info" ? "progress" : datapoint.severity, className: "gd-notifications-channels-dialog-error gd-notifications-channels-dialog-error-scrollable", children: datapoint.message }, datapoint.id)))] })
|
|
184
203
|
] }) }) }) }), alertToDelete ? (_jsx(DeleteAlertConfirmDialog, { alert: alertToDelete, onCancel: () => setAlertToDelete(null), onSuccess: handleAlertDeleteSuccess, onError: onDeleteError })) : null] }));
|
|
185
204
|
}
|
|
186
205
|
/**
|
|
@@ -218,13 +237,6 @@ function AlertingDialogFooter({ isWhiteLabeled, helpTextId, alertToEdit, isSavin
|
|
|
218
237
|
const intl = useIntl();
|
|
219
238
|
return (_jsxs("div", { className: "gd-notifications-channels-dialog-footer-link", children: [isWhiteLabeled ? null : (_jsx(Hyperlink, { text: intl.formatMessage({ id: helpTextId }), href: "https://www.gooddata.com/docs/cloud/create-dashboards/automation/alerts/", iconClass: "gd-icon-circle-question" })), alertToEdit ? (_jsx(Button, { className: "gd-button-link-dimmed", value: intl.formatMessage({ id: "delete" }), onClick: onDeleteClick, disabled: isSavingAlert })) : null] }));
|
|
220
239
|
}
|
|
221
|
-
function FormField({ label, children, htmlFor, fullWidth = false, }) {
|
|
222
|
-
return (_jsxs("div", { className: "gd-input-component gd-input-component--no-last-child-margin gd-dashboard-alerting-dialog-form-field", children: [
|
|
223
|
-
_jsx("div", { className: "gd-dashboard-alerting-dialog-form-field__label-container", children: _jsx("label", { className: "gd-label gd-dashboard-alerting-dialog-form-field__label", htmlFor: htmlFor, children: label }) }), _jsx("div", { className: fullWidth
|
|
224
|
-
? "gd-dashboard-alerting-dialog-form-field__content-container-full-width"
|
|
225
|
-
: "gd-dashboard-alerting-dialog-form-field__content-container", children: children })
|
|
226
|
-
] }));
|
|
227
|
-
}
|
|
228
240
|
function FormFieldGroup({ label, children }) {
|
|
229
241
|
return (_jsxs("div", { className: "gd-input-component gd-input-component--no-last-child-margin gd-dashboard-alerting-dialog-form-field-group", children: [
|
|
230
242
|
_jsx("div", { className: "gd-dashboard-alerting-dialog-form-field-group__label-container", children: _jsx("label", { className: "gd-label gd-dashboard-alerting-dialog-form-field-group__label", children: label }) }), _jsx("div", { className: "gd-dashboard-alerting-dialog-form-field-group__content-container", children: children })
|