@gooddata/sdk-ui-dashboard 11.51.0-alpha.1 → 11.51.0-alpha.3

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.
Files changed (234) hide show
  1. package/NOTICE +4 -4
  2. package/esm/__version.d.ts +1 -1
  3. package/esm/__version.js +1 -1
  4. package/esm/assets/timezone.svg +1 -0
  5. package/esm/index.d.ts +11 -2
  6. package/esm/index.d.ts.map +1 -1
  7. package/esm/index.js +10 -2
  8. package/esm/model/react/useWidgetExecConfig.d.ts +9 -0
  9. package/esm/model/react/useWidgetExecConfig.d.ts.map +1 -1
  10. package/esm/model/react/useWidgetExecConfig.js +21 -3
  11. package/esm/model/store/config/configSelectors.d.ts +6 -0
  12. package/esm/model/store/config/configSelectors.d.ts.map +1 -1
  13. package/esm/model/store/config/configSelectors.js +8 -0
  14. package/esm/model/store/meta/index.d.ts +1 -0
  15. package/esm/model/store/meta/index.d.ts.map +1 -1
  16. package/esm/model/store/meta/metaReducers.d.ts +5 -1
  17. package/esm/model/store/meta/metaReducers.d.ts.map +1 -1
  18. package/esm/model/store/meta/metaReducers.js +9 -0
  19. package/esm/model/store/meta/metaSelectors.d.ts +35 -1
  20. package/esm/model/store/meta/metaSelectors.d.ts.map +1 -1
  21. package/esm/model/store/meta/metaSelectors.js +51 -2
  22. package/esm/model/store/meta/metaState.d.ts +1 -1
  23. package/esm/model/store/meta/metaState.d.ts.map +1 -1
  24. package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.d.ts +1 -1
  25. package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.d.ts.map +1 -1
  26. package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.js +9 -9
  27. package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultLoadingAlertingDialog.d.ts +7 -2
  28. package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultLoadingAlertingDialog.d.ts.map +1 -1
  29. package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultLoadingAlertingDialog.js +1 -1
  30. package/esm/presentation/automations/alerting/DefaultAlertingDialog/hooks/useEditAlert.d.ts +6 -8
  31. package/esm/presentation/automations/alerting/DefaultAlertingDialog/hooks/useEditAlert.d.ts.map +1 -1
  32. package/esm/presentation/automations/alerting/DefaultAlertingDialog/hooks/useEditAlert.js +5 -2
  33. package/esm/presentation/automations/alerting/types.d.ts +30 -5
  34. package/esm/presentation/automations/alerting/types.d.ts.map +1 -1
  35. package/esm/presentation/automations/connectors/AlertingConnector.d.ts.map +1 -1
  36. package/esm/presentation/automations/connectors/AlertingConnector.js +22 -25
  37. package/esm/presentation/automations/connectors/AlertingConnector.test.js +71 -5
  38. package/esm/presentation/automations/connectors/ScheduledEmailConnector.d.ts.map +1 -1
  39. package/esm/presentation/automations/connectors/ScheduledEmailConnector.js +30 -32
  40. package/esm/presentation/automations/connectors/ScheduledEmailConnector.test.js +90 -9
  41. package/esm/presentation/automations/connectors/hooks/useBuildAlertingDialogContext.d.ts +7 -1
  42. package/esm/presentation/automations/connectors/hooks/useBuildAlertingDialogContext.d.ts.map +1 -1
  43. package/esm/presentation/automations/connectors/hooks/useBuildAlertingDialogContext.js +12 -2
  44. package/esm/presentation/automations/connectors/hooks/useBuildAlertingDialogContext.test.js +28 -2
  45. package/esm/presentation/automations/connectors/hooks/useBuildScheduledEmailDialogContext.d.ts +8 -1
  46. package/esm/presentation/automations/connectors/hooks/useBuildScheduledEmailDialogContext.d.ts.map +1 -1
  47. package/esm/presentation/automations/connectors/hooks/useBuildScheduledEmailDialogContext.js +12 -3
  48. package/esm/presentation/automations/connectors/hooks/useBuildScheduledEmailDialogContext.test.js +38 -8
  49. package/esm/presentation/automations/connectors/hooks/useBuildScheduledEmailManagementDialogContext.d.ts +6 -1
  50. package/esm/presentation/automations/connectors/hooks/useBuildScheduledEmailManagementDialogContext.d.ts.map +1 -1
  51. package/esm/presentation/automations/connectors/hooks/useBuildScheduledEmailManagementDialogContext.js +6 -1
  52. package/esm/presentation/automations/connectors/hooks/useBuildScheduledEmailManagementDialogContext.test.js +7 -1
  53. package/esm/presentation/automations/contexts/AlertingDialogContext.d.ts +29 -1
  54. package/esm/presentation/automations/contexts/AlertingDialogContext.d.ts.map +1 -1
  55. package/esm/presentation/automations/contexts/AlertingDialogContext.js +12 -0
  56. package/esm/presentation/automations/contexts/AlertingManagementDialogContext.d.ts +14 -0
  57. package/esm/presentation/automations/contexts/AlertingManagementDialogContext.d.ts.map +1 -1
  58. package/esm/presentation/automations/contexts/AlertingManagementDialogContext.js +12 -0
  59. package/esm/presentation/automations/contexts/AutomationsContext.d.ts +13 -0
  60. package/esm/presentation/automations/contexts/AutomationsContext.d.ts.map +1 -1
  61. package/esm/presentation/automations/contexts/AutomationsContext.js +9 -0
  62. package/esm/presentation/automations/contexts/ScheduledEmailDialogContext.d.ts +35 -1
  63. package/esm/presentation/automations/contexts/ScheduledEmailDialogContext.d.ts.map +1 -1
  64. package/esm/presentation/automations/contexts/ScheduledEmailDialogContext.js +14 -0
  65. package/esm/presentation/automations/contexts/ScheduledEmailManagementDialogContext.d.ts +20 -1
  66. package/esm/presentation/automations/contexts/ScheduledEmailManagementDialogContext.d.ts.map +1 -1
  67. package/esm/presentation/automations/contexts/ScheduledEmailManagementDialogContext.js +12 -0
  68. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultLoadingScheduledEmailDialog.d.ts +7 -2
  69. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultLoadingScheduledEmailDialog.d.ts.map +1 -1
  70. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.d.ts +1 -1
  71. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.d.ts.map +1 -1
  72. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.js +17 -25
  73. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.d.ts +6 -12
  74. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.d.ts.map +1 -1
  75. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.js +5 -1
  76. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useElementHeightSnapshot.d.ts +12 -0
  77. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useElementHeightSnapshot.d.ts.map +1 -0
  78. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useElementHeightSnapshot.js +41 -0
  79. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailManagementDialog/DefaultScheduledEmailManagementDialog.d.ts +1 -1
  80. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailManagementDialog/DefaultScheduledEmailManagementDialog.d.ts.map +1 -1
  81. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailManagementDialog/DefaultScheduledEmailManagementDialog.js +2 -2
  82. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailManagementDialog/DefaultScheduledEmailManagementDialogContent.d.ts +1 -3
  83. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailManagementDialog/DefaultScheduledEmailManagementDialogContent.d.ts.map +1 -1
  84. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailManagementDialog/DefaultScheduledEmailManagementDialogContent.js +2 -2
  85. package/esm/presentation/automations/scheduledEmail/types.d.ts +35 -5
  86. package/esm/presentation/automations/scheduledEmail/types.d.ts.map +1 -1
  87. package/esm/presentation/automations/scheduledEmail/utils/timezone.d.ts +4 -1
  88. package/esm/presentation/automations/scheduledEmail/utils/timezone.d.ts.map +1 -1
  89. package/esm/presentation/automations/scheduledEmail/utils/timezone.js +14 -138
  90. package/esm/presentation/dashboard/DashboardHeader/SettingsDialogProvider.d.ts.map +1 -1
  91. package/esm/presentation/dashboard/DashboardHeader/SettingsDialogProvider.js +1 -0
  92. package/esm/presentation/dashboard/components/DashboardLoading.js +1 -1
  93. package/esm/presentation/dashboardContexts/useSlideData.d.ts +5 -10
  94. package/esm/presentation/dashboardContexts/useSlideData.d.ts.map +1 -1
  95. package/esm/presentation/dashboardContexts/useSlideData.js +16 -10
  96. package/esm/presentation/dashboardSettingsDialog/DefaultDashboardSettingsDialog.d.ts.map +1 -1
  97. package/esm/presentation/dashboardSettingsDialog/DefaultDashboardSettingsDialog.js +52 -14
  98. package/esm/presentation/dashboardSettingsDialog/TimezoneOption.d.ts +11 -0
  99. package/esm/presentation/dashboardSettingsDialog/TimezoneOption.d.ts.map +1 -0
  100. package/esm/presentation/dashboardSettingsDialog/TimezoneOption.js +36 -0
  101. package/esm/presentation/dashboardSettingsDialog/types.d.ts +2 -1
  102. package/esm/presentation/dashboardSettingsDialog/types.d.ts.map +1 -1
  103. package/esm/presentation/dashboardSettingsDialog/useDialogData.d.ts.map +1 -1
  104. package/esm/presentation/dashboardSettingsDialog/useDialogData.js +4 -1
  105. package/esm/presentation/filterBar/dateFilter/DefaultDashboardDateFilter.d.ts.map +1 -1
  106. package/esm/presentation/filterBar/dateFilter/DefaultDashboardDateFilter.js +30 -1
  107. package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/DashboardLayoutSection.d.ts.map +1 -1
  108. package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/DashboardLayoutSection.js +29 -8
  109. package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/DashboardLayoutSectionHeaderDescription.d.ts.map +1 -1
  110. package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/DashboardLayoutSectionHeaderDescription.js +3 -5
  111. package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/EditableHeader/SectionHeaderEditable.d.ts.map +1 -1
  112. package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/EditableHeader/SectionHeaderEditable.js +3 -5
  113. package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/ExportableDashboardLayoutSectionRenderer.d.ts +1 -1
  114. package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/ExportableDashboardLayoutSectionRenderer.d.ts.map +1 -1
  115. package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/ExportableDashboardLayoutSectionRenderer.js +2 -5
  116. package/esm/presentation/insightList/InsightList.d.ts.map +1 -1
  117. package/esm/presentation/insightList/InsightList.js +4 -5
  118. package/esm/presentation/localization/bundles/de-DE.localization-bundle.d.ts +11 -0
  119. package/esm/presentation/localization/bundles/de-DE.localization-bundle.d.ts.map +1 -1
  120. package/esm/presentation/localization/bundles/de-DE.localization-bundle.js +11 -0
  121. package/esm/presentation/localization/bundles/en-AU.localization-bundle.d.ts +11 -0
  122. package/esm/presentation/localization/bundles/en-AU.localization-bundle.d.ts.map +1 -1
  123. package/esm/presentation/localization/bundles/en-AU.localization-bundle.js +11 -0
  124. package/esm/presentation/localization/bundles/en-GB.localization-bundle.d.ts +11 -0
  125. package/esm/presentation/localization/bundles/en-GB.localization-bundle.d.ts.map +1 -1
  126. package/esm/presentation/localization/bundles/en-GB.localization-bundle.js +11 -0
  127. package/esm/presentation/localization/bundles/en-US.localization-bundle.d.ts +48 -0
  128. package/esm/presentation/localization/bundles/en-US.localization-bundle.d.ts.map +1 -1
  129. package/esm/presentation/localization/bundles/en-US.localization-bundle.js +48 -0
  130. package/esm/presentation/localization/bundles/es-419.localization-bundle.d.ts +11 -0
  131. package/esm/presentation/localization/bundles/es-419.localization-bundle.d.ts.map +1 -1
  132. package/esm/presentation/localization/bundles/es-419.localization-bundle.js +11 -0
  133. package/esm/presentation/localization/bundles/es-ES.localization-bundle.d.ts +11 -0
  134. package/esm/presentation/localization/bundles/es-ES.localization-bundle.d.ts.map +1 -1
  135. package/esm/presentation/localization/bundles/es-ES.localization-bundle.js +11 -0
  136. package/esm/presentation/localization/bundles/fi-FI.localization-bundle.d.ts +11 -0
  137. package/esm/presentation/localization/bundles/fi-FI.localization-bundle.d.ts.map +1 -1
  138. package/esm/presentation/localization/bundles/fi-FI.localization-bundle.js +11 -0
  139. package/esm/presentation/localization/bundles/fr-CA.localization-bundle.d.ts +11 -0
  140. package/esm/presentation/localization/bundles/fr-CA.localization-bundle.d.ts.map +1 -1
  141. package/esm/presentation/localization/bundles/fr-CA.localization-bundle.js +11 -0
  142. package/esm/presentation/localization/bundles/fr-FR.localization-bundle.d.ts +11 -0
  143. package/esm/presentation/localization/bundles/fr-FR.localization-bundle.d.ts.map +1 -1
  144. package/esm/presentation/localization/bundles/fr-FR.localization-bundle.js +11 -0
  145. package/esm/presentation/localization/bundles/id-ID.localization-bundle.d.ts +11 -0
  146. package/esm/presentation/localization/bundles/id-ID.localization-bundle.d.ts.map +1 -1
  147. package/esm/presentation/localization/bundles/id-ID.localization-bundle.js +11 -0
  148. package/esm/presentation/localization/bundles/it-IT.localization-bundle.d.ts +11 -0
  149. package/esm/presentation/localization/bundles/it-IT.localization-bundle.d.ts.map +1 -1
  150. package/esm/presentation/localization/bundles/it-IT.localization-bundle.js +11 -0
  151. package/esm/presentation/localization/bundles/ja-JP.localization-bundle.d.ts +11 -0
  152. package/esm/presentation/localization/bundles/ja-JP.localization-bundle.d.ts.map +1 -1
  153. package/esm/presentation/localization/bundles/ja-JP.localization-bundle.js +11 -0
  154. package/esm/presentation/localization/bundles/ko-KR.localization-bundle.d.ts +11 -0
  155. package/esm/presentation/localization/bundles/ko-KR.localization-bundle.d.ts.map +1 -1
  156. package/esm/presentation/localization/bundles/ko-KR.localization-bundle.js +11 -0
  157. package/esm/presentation/localization/bundles/nl-NL.localization-bundle.d.ts +11 -0
  158. package/esm/presentation/localization/bundles/nl-NL.localization-bundle.d.ts.map +1 -1
  159. package/esm/presentation/localization/bundles/nl-NL.localization-bundle.js +11 -0
  160. package/esm/presentation/localization/bundles/pl-PL.localization-bundle.d.ts +11 -0
  161. package/esm/presentation/localization/bundles/pl-PL.localization-bundle.d.ts.map +1 -1
  162. package/esm/presentation/localization/bundles/pl-PL.localization-bundle.js +11 -0
  163. package/esm/presentation/localization/bundles/pt-BR.localization-bundle.d.ts +11 -0
  164. package/esm/presentation/localization/bundles/pt-BR.localization-bundle.d.ts.map +1 -1
  165. package/esm/presentation/localization/bundles/pt-BR.localization-bundle.js +11 -0
  166. package/esm/presentation/localization/bundles/pt-PT.localization-bundle.d.ts +11 -0
  167. package/esm/presentation/localization/bundles/pt-PT.localization-bundle.d.ts.map +1 -1
  168. package/esm/presentation/localization/bundles/pt-PT.localization-bundle.js +11 -0
  169. package/esm/presentation/localization/bundles/ru-RU.localization-bundle.d.ts +11 -0
  170. package/esm/presentation/localization/bundles/ru-RU.localization-bundle.d.ts.map +1 -1
  171. package/esm/presentation/localization/bundles/ru-RU.localization-bundle.js +11 -0
  172. package/esm/presentation/localization/bundles/sl-SI.localization-bundle.d.ts +11 -0
  173. package/esm/presentation/localization/bundles/sl-SI.localization-bundle.d.ts.map +1 -1
  174. package/esm/presentation/localization/bundles/sl-SI.localization-bundle.js +11 -0
  175. package/esm/presentation/localization/bundles/th-TH.localization-bundle.d.ts +11 -0
  176. package/esm/presentation/localization/bundles/th-TH.localization-bundle.d.ts.map +1 -1
  177. package/esm/presentation/localization/bundles/th-TH.localization-bundle.js +11 -0
  178. package/esm/presentation/localization/bundles/tr-TR.localization-bundle.d.ts +11 -0
  179. package/esm/presentation/localization/bundles/tr-TR.localization-bundle.d.ts.map +1 -1
  180. package/esm/presentation/localization/bundles/tr-TR.localization-bundle.js +11 -0
  181. package/esm/presentation/localization/bundles/uk-UA.localization-bundle.d.ts +11 -0
  182. package/esm/presentation/localization/bundles/uk-UA.localization-bundle.d.ts.map +1 -1
  183. package/esm/presentation/localization/bundles/uk-UA.localization-bundle.js +13 -2
  184. package/esm/presentation/localization/bundles/vi-VN.localization-bundle.d.ts +11 -0
  185. package/esm/presentation/localization/bundles/vi-VN.localization-bundle.d.ts.map +1 -1
  186. package/esm/presentation/localization/bundles/vi-VN.localization-bundle.js +11 -0
  187. package/esm/presentation/localization/bundles/zh-HK.localization-bundle.d.ts +11 -0
  188. package/esm/presentation/localization/bundles/zh-HK.localization-bundle.d.ts.map +1 -1
  189. package/esm/presentation/localization/bundles/zh-HK.localization-bundle.js +11 -0
  190. package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.d.ts +11 -0
  191. package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.d.ts.map +1 -1
  192. package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.js +11 -0
  193. package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.d.ts +11 -0
  194. package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.d.ts.map +1 -1
  195. package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.js +12 -1
  196. package/esm/presentation/topBar/timezoneIndicator/DefaultTimezoneIndicator.d.ts +10 -0
  197. package/esm/presentation/topBar/timezoneIndicator/DefaultTimezoneIndicator.d.ts.map +1 -0
  198. package/esm/presentation/topBar/timezoneIndicator/DefaultTimezoneIndicator.js +19 -0
  199. package/esm/presentation/topBar/timezoneIndicator/TimezoneIndicator.d.ts +13 -0
  200. package/esm/presentation/topBar/timezoneIndicator/TimezoneIndicator.d.ts.map +1 -0
  201. package/esm/presentation/topBar/timezoneIndicator/TimezoneIndicator.js +27 -0
  202. package/esm/presentation/topBar/timezoneIndicator/resolveDashboardTimezoneInfo.d.ts +13 -0
  203. package/esm/presentation/topBar/timezoneIndicator/resolveDashboardTimezoneInfo.d.ts.map +1 -0
  204. package/esm/presentation/topBar/timezoneIndicator/resolveDashboardTimezoneInfo.js +20 -0
  205. package/esm/presentation/topBar/timezoneIndicator/types.d.ts +47 -0
  206. package/esm/presentation/topBar/timezoneIndicator/types.d.ts.map +1 -0
  207. package/esm/presentation/topBar/timezoneIndicator/types.js +2 -0
  208. package/esm/presentation/topBar/topBar/DefaultTopBar.d.ts.map +1 -1
  209. package/esm/presentation/topBar/topBar/DefaultTopBar.js +15 -4
  210. package/esm/presentation/topBar/topBar/types.d.ts +2 -0
  211. package/esm/presentation/topBar/topBar/types.d.ts.map +1 -1
  212. package/esm/presentation/widget/description/ExportModeInsightWidgetDescription.d.ts.map +1 -1
  213. package/esm/presentation/widget/description/ExportModeInsightWidgetDescription.js +3 -5
  214. package/esm/presentation/widget/description/InsightWidgetDescriptionTrigger.d.ts.map +1 -1
  215. package/esm/presentation/widget/description/InsightWidgetDescriptionTrigger.js +3 -6
  216. package/esm/presentation/widget/insight/ViewModeDashboardInsight/InsightDrillDialog/InsightDrillDialog.d.ts.map +1 -1
  217. package/esm/presentation/widget/insight/ViewModeDashboardInsight/InsightDrillDialog/InsightDrillDialog.js +5 -6
  218. package/esm/presentation/widget/insight/configuration/InsightDescriptionConfig/InsightDescription.d.ts.map +1 -1
  219. package/esm/presentation/widget/insight/configuration/InsightDescriptionConfig/InsightDescription.js +3 -6
  220. package/esm/presentation/widget/richText/EditModeDashboardRichText.d.ts.map +1 -1
  221. package/esm/presentation/widget/richText/EditModeDashboardRichText.js +3 -5
  222. package/esm/presentation/widget/richText/ViewModeDashboardRichText.d.ts.map +1 -1
  223. package/esm/presentation/widget/richText/ViewModeDashboardRichText.js +3 -5
  224. package/esm/sdk-ui-dashboard.d.ts +528 -12
  225. package/package.json +21 -21
  226. package/styles/css/main.css +28 -1
  227. package/styles/css/main.css.map +1 -1
  228. package/styles/css/timezoneIndicator.css +20 -0
  229. package/styles/css/timezoneIndicator.css.map +1 -0
  230. package/styles/css/topBar.css +9 -1
  231. package/styles/css/topBar.css.map +1 -1
  232. package/styles/scss/main.scss +1 -0
  233. package/styles/scss/timezoneIndicator.scss +23 -0
  234. package/styles/scss/topBar.scss +13 -2
@@ -1,4 +1,4 @@
1
- import { type IAccessControlAware, type IDashboard, type IDashboardAttributeFilterConfig, type IDashboardDateFilterConfig, type IDashboardDateFilterConfigItem, type IDashboardDefinition, type IDashboardMeasureValueFilterConfig, type IDashboardTab, type IDashboardWidget, type IFilterContext, type IFilterContextDefinition, type ITempFilterContext, type IdentifierRef, type ObjRef, type ShareStatus, type UriRef } from "@gooddata/sdk-model";
1
+ import { type IAccessControlAware, type IDashboard, type IDashboardAttributeFilterConfig, type IDashboardDateFilterConfig, type IDashboardDateFilterConfigItem, type IDashboardDefinition, type IDashboardMeasureValueFilterConfig, type IDashboardTab, type IDashboardTimezoneConfig, type IDashboardWidget, type IFilterContext, type IFilterContextDefinition, type ITempFilterContext, type IdentifierRef, type ObjRef, type ShareStatus, type UriRef } from "@gooddata/sdk-model";
2
2
  import { type DashboardSelector, type DashboardState } from "../types.js";
3
3
  import { type DashboardDescriptor } from "./metaState.js";
4
4
  /**
@@ -261,6 +261,34 @@ export declare const selectDisableFilterViews: DashboardSelector<boolean>;
261
261
  * @public
262
262
  */
263
263
  export declare const selectEvaluationFrequency: DashboardSelector<string | undefined>;
264
+ /**
265
+ * Selects dashboard timezone configuration.
266
+ *
267
+ * @alpha
268
+ */
269
+ export declare const selectDashboardTimezoneConfig: DashboardSelector<IDashboardTimezoneConfig | undefined>;
270
+ /**
271
+ * Selects the effective dashboard timezone as a concrete IANA timezone ID.
272
+ *
273
+ * @remarks
274
+ * Returns undefined when the dashboard timezone feature is disabled or when the dashboard has no
275
+ * timezone configured. The browser-detected sentinel is resolved to the browser's IANA timezone
276
+ * here — this selector is the single place where the sentinel is resolved, so consumers always
277
+ * receive a concrete timezone ID safe to pass to executions and exports.
278
+ *
279
+ * @alpha
280
+ */
281
+ export declare const selectEffectiveDashboardTimezone: DashboardSelector<string | undefined>;
282
+ /**
283
+ * Selects persisted "timezoneConfig", the value that was used to initialize the rest
284
+ * of the dashboard state of the dashboard component during the initial load of the dashboard.
285
+ *
286
+ * Note that this may be undefined when the dashboard component works with a dashboard that has not yet
287
+ * been persisted (typically newly created dashboard being edited).
288
+ *
289
+ * @alpha
290
+ */
291
+ export declare const selectPersistedDashboardTimezoneConfig: DashboardSelector<IDashboardTimezoneConfig | undefined>;
264
292
  /**
265
293
  * Selects a boolean indication if he dashboard has any changes to the dashboard filter compared to the persisted version (if any)
266
294
  *
@@ -343,6 +371,12 @@ export declare const selectEvaluationFrequencyChanged: DashboardSelector<boolean
343
371
  * @internal
344
372
  */
345
373
  export declare const selectIsSectionHeadersDateDataSetChanged: DashboardSelector<boolean>;
374
+ /**
375
+ * Selects a boolean indication if the dashboard has any changes to the timezone configuration compared to the persisted version (if any)
376
+ *
377
+ * @internal
378
+ */
379
+ export declare const selectIsTimezoneConfigChanged: DashboardSelector<boolean>;
346
380
  /**
347
381
  * Selects a boolean indication if he dashboard has any changes to the title compared to the persisted version (if any)
348
382
  *
@@ -1 +1 @@
1
- {"version":3,"file":"metaSelectors.d.ts","sourceRoot":"","sources":["../../../../src/model/store/meta/metaSelectors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metaSelectors.d.ts","sourceRoot":"","sources":["../../../../src/model/store/meta/metaSelectors.ts"],"names":[],"mappings":"AAOA,OAAO,EAEH,KAAK,mBAAmB,EACxB,KAAK,UAAU,EAEf,KAAK,+BAA+B,EACpC,KAAK,0BAA0B,EAC/B,KAAK,8BAA8B,EACnC,KAAK,oBAAoB,EAEzB,KAAK,kCAAkC,EAEvC,KAAK,aAAa,EAClB,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,MAAM,EACX,KAAK,WAAW,EAChB,KAAK,MAAM,EAWd,MAAM,qBAAqB,CAAC;AA0B7B,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAE1E,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAO1D;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,EAAE,iBAAiB,CAAC,mBAAmB,CAO5E,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,wBAAwB,EAAE,iBAAiB,CAAC,UAAU,GAAG,SAAS,CAK9E,CAAC;AAyBF,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwBvC,CAAC;AAqBH;;;;GAIG;AACH,eAAO,MAAM,2CAA2C,EAAE,iBAAiB,CACvE,MAAM,CAAC,MAAM,EAAE,cAAc,GAAG,kBAAkB,GAAG,SAAS,CAAC,CASjE,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,qDAAqD,EAAE,iBAAiB,CACjF,MAAM,CAAC,MAAM,EAAE,wBAAwB,GAAG,SAAS,CAAC,CAMtD,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,mDAAmD,EAAE,iBAAiB,CAC/E,MAAM,CAAC,MAAM,EAAE,+BAA+B,EAAE,CAAC,CAMnD,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,6CAA6C,EAAE,iBAAiB,CACzE,MAAM,CAAC,MAAM,EAAE,0BAA0B,GAAG,SAAS,CAAC,CAMxD,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,8CAA8C,EAAE,iBAAiB,CAC1E,MAAM,CAAC,MAAM,EAAE,8BAA8B,EAAE,CAAC,CAMlD,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,sDAAsD,EAAE,iBAAiB,CAClF,MAAM,CAAC,MAAM,EAAE,kCAAkC,EAAE,CAAC,CAMtD,CAAC;AA2FH;;GAEG;AACH,eAAO,MAAM,qCAAqC,EAAE,iBAAiB,CACjE,cAAc,GAAG,kBAAkB,GAAG,SAAS,CAelD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qDAAqD,EAAE,iBAAiB,CACjF,0BAA0B,GAAG,SAAS,CAezC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,8DAA8D,EAAE,iBAAiB,CAC1F,wBAAwB,GAAG,SAAS,CAYvC,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,EAAE,iBAAiB,CAAC,MAAM,GAAG,SAAS,CAKpE,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,EAAE,iBAAiB,CAAC,MAAM,GAAG,SAAS,CAKnE,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,EAAE,iBAAiB,CAAC,MAAM,GAAG,SAAS,CAKpE,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,EAAE,iBAAiB,CAAC,aAAa,GAAG,SAAS,CAK7E,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,EAAE,iBAAiB,CAAC,MAAM,GAAG,SAAS,CAKvE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAE,iBAAiB,CAAC,OAAO,CAG3D,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,+BAA+B,EAAE,iBAAiB,CAAC,OAAO,CAKtE,CAAC;AAMF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAE,iBAAiB,CAAC,MAAM,CAK1D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,EAAE,iBAAiB,CAAC,MAAM,CAKhE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,iBAAiB,CAAC,MAAM,EAAE,CAK3D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,EAAE,iBAAiB,CAAC,WAAW,CAKrE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,EAAE,iBAAiB,CAAC,OAAO,CAK/D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,EAAE,iBAAiB,CAAC,OAAO,CAKhE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,EAAE,iBAAiB,CAAC,mBAAmB,CAM3E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,oCAAoC,EAAE,iBAAiB,CAAC,OAAO,CAK3E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iDAAiD,EAAE,iBAAiB,CAAC,OAAO,CAKxF,CAAC;AAUF;;;;GAIG;AACH,eAAO,MAAM,iDAAiD,EAAE,iBAAiB,CAAC,OAAO,CAMxF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,EAAE,iBAAiB,CAAC,OAAO,CAMhE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qCAAqC,EAAE,iBAAiB,CAAC,OAAO,CAK5E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,oCAAoC,EAAE,iBAAiB,CAAC,OAAO,CAK3E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,EAAE,iBAAiB,CAAC,OAAO,CAK/D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,EAAE,iBAAiB,CAAC,MAAM,GAAG,SAAS,CAK3E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,EAAE,iBAAiB,CAAC,wBAAwB,GAAG,SAAS,CAG5F,CAAC;AAEP;;;;;;;;;;GAUG;AACH,eAAO,MAAM,gCAAgC,EAAE,iBAAiB,CAAC,MAAM,GAAG,SAAS,CASlF,CAAC;AA4BF;;;;;;;;GAQG;AACH,eAAO,MAAM,sCAAsC,EAAE,iBAAiB,CAAC,wBAAwB,GAAG,SAAS,CAGrG,CAAC;AAiEP;;;GAGG;AACH,eAAO,MAAM,qCAAqC,EAAE,iBAAiB,CAAC,OAAO,CAgB5E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,EAAE,iBAAiB,CAAC,MAAM,GAAG,SAAS,CAKjF,CAAC;AAUF;;;GAGG;AACH,eAAO,MAAM,gCAAgC,EAAE,iBAAiB,CAAC,OAAO,CAgBvE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,wCAAwC,EAAE,iBAAiB,CAAC,OAAO,CAgB/E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,EAAE,iBAAiB,CAAC,OAAO,CAehE,CAAC;AAEF,eAAO,MAAM,+BAA+B,EAAE,iBAAiB,CAAC,OAAO,CAgBtE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,EAAE,iBAAiB,CAAC,OAAO,CAgBtE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,EAAE,iBAAiB,CAAC,OAAO,CAgBlE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,EAAE,iBAAiB,CAAC,OAAO,CAqB7D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,oCAAoC,EAAE,iBAAiB,CAAC,OAAO,CAM3E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qCAAqC,EAAE,iBAAiB,CAAC,OAAO,CAM5E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,oCAAoC,EAAE,iBAAiB,CAAC,OAAO,CAM3E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iCAAiC,EAAE,iBAAiB,CAAC,OAAO,CAMxE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gCAAgC,EAAE,iBAAiB,CAAC,OAAO,CAMvE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,wCAAwC,EAAE,iBAAiB,CAAC,OAAO,CAM/E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,EAAE,iBAAiB,CAAC,OAAO,CAWpE,CAAC;AAqCF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAE,iBAAiB,CAAC,OAAO,CAM3D,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,EAAE,iBAAiB,CAAC,OAAO,CAa5D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,EAAE,iBAAiB,CAAC,OAAO,CAwD7D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gCAAgC,EAAE,iBAAiB,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAmElG,CAAC"}
@@ -3,7 +3,8 @@ import { createSelector } from "@reduxjs/toolkit";
3
3
  import { isEqual } from "lodash-es";
4
4
  import { invariant } from "ts-invariant";
5
5
  import { isDashboardLayoutEmpty } from "@gooddata/sdk-backend-spi";
6
- import { idRef, isDashboardAttributeFilter, isDashboardCommonDateFilter, isDashboardDateFilterWithDimension, isDashboardMeasureValueFilter, isDashboardTextAttributeFilter, isTempFilterContext, uriRef, } from "@gooddata/sdk-model";
6
+ import { idRef, isDashboardAttributeFilter, isDashboardCommonDateFilter, isDashboardDateFilterWithDimension, isDashboardMeasureValueFilter, isDashboardTextAttributeFilter, isTempFilterContext, normalizeDashboardTimezoneConfig, resolveTimezoneId, uriRef, } from "@gooddata/sdk-model";
7
+ import { selectEnableDashboardTimezone } from "../config/configSelectors.js";
7
8
  import { selectAttributeFilterConfigsOverridesByTab } from "../tabs/attributeFilterConfigs/attributeFilterConfigsSelectors.js";
8
9
  import { selectDateFilterConfigOverrides, selectDateFilterConfigOverridesByTab, } from "../tabs/dateFilterConfig/dateFilterConfigSelectors.js";
9
10
  import { selectDateFilterConfigsOverridesByTab } from "../tabs/dateFilterConfigs/dateFilterConfigsSelectors.js";
@@ -442,6 +443,31 @@ export const selectDisableFilterViews = createSelector(selectDashboardDescriptor
442
443
  export const selectEvaluationFrequency = createSelector(selectDashboardDescriptor, (state) => {
443
444
  return state.evaluationFrequency;
444
445
  });
446
+ /**
447
+ * Selects dashboard timezone configuration.
448
+ *
449
+ * @alpha
450
+ */
451
+ export const selectDashboardTimezoneConfig = createSelector(selectDashboardDescriptor, (state) => {
452
+ return state.timezoneConfig;
453
+ });
454
+ /**
455
+ * Selects the effective dashboard timezone as a concrete IANA timezone ID.
456
+ *
457
+ * @remarks
458
+ * Returns undefined when the dashboard timezone feature is disabled or when the dashboard has no
459
+ * timezone configured. The browser-detected sentinel is resolved to the browser's IANA timezone
460
+ * here — this selector is the single place where the sentinel is resolved, so consumers always
461
+ * receive a concrete timezone ID safe to pass to executions and exports.
462
+ *
463
+ * @alpha
464
+ */
465
+ export const selectEffectiveDashboardTimezone = createSelector(selectEnableDashboardTimezone, selectDashboardTimezoneConfig, (isEnabled, timezoneConfig) => {
466
+ if (!isEnabled || !timezoneConfig?.timezoneId) {
467
+ return undefined;
468
+ }
469
+ return resolveTimezoneId(timezoneConfig.timezoneId);
470
+ });
445
471
  //
446
472
  //
447
473
  //
@@ -465,6 +491,18 @@ const selectPersistedDashboardTitle = createSelector(selectSelf, (state) => {
465
491
  const selectPersistedDashboardDisableCrossFiltering = createSelector(selectSelf, (state) => {
466
492
  return state.persistedDashboard?.disableCrossFiltering;
467
493
  });
494
+ /**
495
+ * Selects persisted "timezoneConfig", the value that was used to initialize the rest
496
+ * of the dashboard state of the dashboard component during the initial load of the dashboard.
497
+ *
498
+ * Note that this may be undefined when the dashboard component works with a dashboard that has not yet
499
+ * been persisted (typically newly created dashboard being edited).
500
+ *
501
+ * @alpha
502
+ */
503
+ export const selectPersistedDashboardTimezoneConfig = createSelector(selectSelf, (state) => {
504
+ return state.persistedDashboard?.timezoneConfig;
505
+ });
468
506
  /**
469
507
  * Selects persisted "disableUserFilterReset", the value that was used to initialize the rest
470
508
  * of the dashboard state of the dashboard component during the initial load of the dashboard.
@@ -678,6 +716,16 @@ export const selectEvaluationFrequencyChanged = createSelector(selectPersistedDa
678
716
  export const selectIsSectionHeadersDateDataSetChanged = createSelector(selectPersistedDashboardSectionHeadersDateDataSet, selectSectionHeadersDateDataSet, (persistedDateDataSet, currentDateDataSet) => {
679
717
  return !isEqual(persistedDateDataSet, currentDateDataSet);
680
718
  });
719
+ /**
720
+ * Selects a boolean indication if the dashboard has any changes to the timezone configuration compared to the persisted version (if any)
721
+ *
722
+ * @internal
723
+ */
724
+ export const selectIsTimezoneConfigChanged = createSelector(selectPersistedDashboardTimezoneConfig, selectDashboardTimezoneConfig, (persistedTimezoneConfig, currentTimezoneConfig) => {
725
+ // normalize both sides so that a persisted config carrying explicit default (false)
726
+ // values compares equal to an absent configuration
727
+ return !isEqual(normalizeDashboardTimezoneConfig(persistedTimezoneConfig), normalizeDashboardTimezoneConfig(currentTimezoneConfig));
728
+ });
681
729
  /**
682
730
  * Selects a boolean indication if the dashboard has any changes to the tabs compared to the persisted version (if any)
683
731
  * Compares only the tabs identifiers and titles.
@@ -733,7 +781,7 @@ export const selectIsLayoutChanged = createSelector(selectPersistedDashboardLayo
733
781
  *
734
782
  * @internal
735
783
  */
736
- export const selectIsDashboardDirty = createSelector(selectIsNewDashboard, selectBasicLayout, selectIsFiltersChanged, selectIsTitleChanged, selectIsLayoutChanged, selectIsDateFilterConfigChanged, selectIsDisableCrossFilteringChanged, selectIsDisableUserFilterResetChanged, selectIsDisableUserFilterSaveChanged, selectIsDisableFilterViewsChanged, selectIsDisablePersistentFiltersAcrossTabsChanged, selectEvaluationFrequencyChanged, selectIsSectionHeadersDateDataSetChanged, selectIsTabsChanged, selectIsParametersChanged, (isNew, layout, isFiltersChanged, isTitleChanged, isLayoutChanged, isDateFilterConfigChanged, isDisableCrossFilteringChanged, isDisableUserFilterResetChanged, isDisableUserFilterSaveChanged, isDisableFilterViewsChanged, isDisablePersistentFiltersAcrossTabsChanged, isEvaluationFrequencyChanged, isSectionHeadersDateDataSetChanged, isTabsChanged, isParametersChanged) => {
784
+ export const selectIsDashboardDirty = createSelector(selectIsNewDashboard, selectBasicLayout, selectIsFiltersChanged, selectIsTitleChanged, selectIsLayoutChanged, selectIsDateFilterConfigChanged, selectIsDisableCrossFilteringChanged, selectIsDisableUserFilterResetChanged, selectIsDisableUserFilterSaveChanged, selectIsDisableFilterViewsChanged, selectIsDisablePersistentFiltersAcrossTabsChanged, selectEvaluationFrequencyChanged, selectIsSectionHeadersDateDataSetChanged, selectIsTimezoneConfigChanged, selectIsTabsChanged, selectIsParametersChanged, (isNew, layout, isFiltersChanged, isTitleChanged, isLayoutChanged, isDateFilterConfigChanged, isDisableCrossFilteringChanged, isDisableUserFilterResetChanged, isDisableUserFilterSaveChanged, isDisableFilterViewsChanged, isDisablePersistentFiltersAcrossTabsChanged, isEvaluationFrequencyChanged, isSectionHeadersDateDataSetChanged, isTimezoneConfigChanged, isTabsChanged, isParametersChanged) => {
737
785
  if (isNew) {
738
786
  return !isDashboardLayoutEmpty(layout);
739
787
  }
@@ -749,6 +797,7 @@ export const selectIsDashboardDirty = createSelector(selectIsNewDashboard, selec
749
797
  isDisablePersistentFiltersAcrossTabsChanged,
750
798
  isEvaluationFrequencyChanged,
751
799
  isSectionHeadersDateDataSetChanged,
800
+ isTimezoneConfigChanged,
752
801
  isTabsChanged,
753
802
  isParametersChanged,
754
803
  ].some(Boolean);
@@ -2,7 +2,7 @@ import { type IAccessControlAware, type IDashboard } from "@gooddata/sdk-model";
2
2
  /**
3
3
  * @public
4
4
  */
5
- export type DashboardDescriptor = Pick<IDashboard, "title" | "description" | "tags" | "disableCrossFiltering" | "disableUserFilterReset" | "disableUserFilterSave" | "disableFilterViews" | "disablePersistentFiltersAcrossTabs" | "evaluationFrequency" | "sectionHeadersDateDataSet"> & IAccessControlAware;
5
+ export type DashboardDescriptor = Pick<IDashboard, "title" | "description" | "tags" | "disableCrossFiltering" | "disableUserFilterReset" | "disableUserFilterSave" | "disableFilterViews" | "disablePersistentFiltersAcrossTabs" | "evaluationFrequency" | "sectionHeadersDateDataSet" | "timezoneConfig"> & IAccessControlAware;
6
6
  export declare const EmptyDashboardDescriptor: DashboardDescriptor;
7
7
  /**
8
8
  * @beta
@@ -1 +1 @@
1
- {"version":3,"file":"metaState.d.ts","sourceRoot":"","sources":["../../../../src/model/store/meta/metaState.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEhF;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAClC,UAAU,EACR,OAAO,GACP,aAAa,GACb,MAAM,GACN,uBAAuB,GACvB,wBAAwB,GACxB,uBAAuB,GACvB,oBAAoB,GACpB,oCAAoC,GACpC,qBAAqB,GACrB,2BAA2B,CAChC,GACG,mBAAmB,CAAC;AAExB,eAAO,MAAM,wBAAwB,EAAE,mBAItC,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC;;;OAGG;IACH,UAAU,CAAC,EAAE,mBAAmB,CAAC;IAEjC;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,UAAU,CAAC;IAEhC;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,eAAO,MAAM,gBAAgB,EAAE,mBAI9B,CAAC"}
1
+ {"version":3,"file":"metaState.d.ts","sourceRoot":"","sources":["../../../../src/model/store/meta/metaState.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEhF;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAClC,UAAU,EACR,OAAO,GACP,aAAa,GACb,MAAM,GACN,uBAAuB,GACvB,wBAAwB,GACxB,uBAAuB,GACvB,oBAAoB,GACpB,oCAAoC,GACpC,qBAAqB,GACrB,2BAA2B,GAC3B,gBAAgB,CACrB,GACG,mBAAmB,CAAC;AAExB,eAAO,MAAM,wBAAwB,EAAE,mBAItC,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC;;;OAGG;IACH,UAAU,CAAC,EAAE,mBAAmB,CAAC;IAEjC;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,UAAU,CAAC;IAEhC;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,eAAO,MAAM,gBAAgB,EAAE,mBAI9B,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { type IAlertingDialogProps } from "../types.js";
2
- export declare function AlertingDialogRenderer({ alertToEdit, users, usersError, notificationChannels, insight, widget, onCancel, onDeleteSuccess, onDeleteError, onError, onSuccess, onSaveError, onSaveSuccess }: IAlertingDialogProps): import("react/jsx-runtime").JSX.Element;
2
+ export declare function AlertingDialogRenderer({ onCancel, onDeleteSuccess, onDeleteError, onError, onSuccess, onSaveError, onSaveSuccess }: IAlertingDialogProps): import("react/jsx-runtime").JSX.Element;
3
3
  /**
4
4
  * Default implementation of the alerting create/edit dialog.
5
5
  *
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultAlertingDialog.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.tsx"],"names":[],"mappings":"AA0CA,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,aAAa,CAAC;AA4BxD,wBAAgB,sBAAsB,CAAC,EACnC,WAAW,EACX,KAAK,EACL,UAAU,EACV,oBAAoB,EACpB,OAAO,EACP,MAAM,EACN,QAAQ,EACR,eAAe,EACf,aAAa,EACb,OAAO,EACP,SAAS,EACT,WAAW,EACX,aAAa,EAChB,EAAE,oBAAoB,2CA6iBtB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,oBAAoB,2CAahE"}
1
+ {"version":3,"file":"DefaultAlertingDialog.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.tsx"],"names":[],"mappings":"AA0CA,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,aAAa,CAAC;AA4BxD,wBAAgB,sBAAsB,CAAC,EACnC,QAAQ,EACR,eAAe,EACf,aAAa,EACb,OAAO,EACP,SAAS,EACT,WAAW,EACX,aAAa,EAChB,EAAE,oBAAoB,2CA+iBtB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,oBAAoB,2CAchE"}
@@ -37,11 +37,15 @@ import { isMobileView } from "./utils/responsive.js";
37
37
  const OVERLAY_POSITION_TYPE = "sameAsTarget";
38
38
  const CLOSE_ON_PARENT_SCROLL = true;
39
39
  const overlayController = OverlayController.getInstance(DASHBOARD_DIALOG_OVERS_Z_INDEX);
40
- export function AlertingDialogRenderer({ alertToEdit, users, usersError, notificationChannels, insight, widget, onCancel, onDeleteSuccess, onDeleteError, onError, onSuccess, onSaveError, onSaveSuccess, }) {
40
+ export function AlertingDialogRenderer({ onCancel, onDeleteSuccess, onDeleteError, onError, onSuccess, onSaveError, onSaveSuccess, }) {
41
41
  const intl = useIntl();
42
42
  const dialogTitleRef = useRef(null);
43
43
  const { isWhiteLabeled, isSecondaryTitleVisible, externalRecipient: externalRecipientOverride, maxAutomationsRecipients, isExecutionTimestampMode, features: { enableAlertOncePerInterval, enableAnomalyDetectionAlert, canUseAiAssistant: enableAiAssistant, }, } = useAutomationsContext();
44
- const { widgetTitle } = useAlertingDialogContext();
44
+ // Read from context because this component calls useAutomationFiltersSelect and
45
+ // useValidateExistingAutomationFilters directly, and the filter-select call must run before
46
+ // useEditAlert, which consumes its output. Removed with the filter read-model consolidation
47
+ // (EB-867), which retires these call sites.
48
+ const { widgetTitle, alertToEdit, widget, insight } = useAlertingDialogContext();
45
49
  const [alertToDelete, setAlertToDelete] = useState(null);
46
50
  const handleAlertDeleteSuccess = (alert) => {
47
51
  onDeleteSuccess?.(alert);
@@ -51,16 +55,11 @@ export function AlertingDialogRenderer({ alertToEdit, users, usersError, notific
51
55
  automationToEdit: alertToEdit,
52
56
  widget,
53
57
  });
54
- const { onTitleChange, onRecipientsChange, onFiltersChange, onApplyCurrentFilters, dropStaleParameters, automationParameters, availableParameters, onParameterChange, onParameterDelete, onParameterAdd, onMeasureChange, getAttributeValues, onAttributeChange, onComparisonOperatorChange, onRelativeOperatorChange, onAnomalyDetectionChange, onChange, onBlur, onComparisonTypeChange, onDestinationChange, onTriggerModeChange, onTriggerIntervalChange, selectedMeasure, canChangeMeasure, supportedMeasures, selectedAttribute, selectedValue, supportedAttributes, catalogAttributes, catalogDateDatasets, isResultLoading, selectedComparisonOperator, selectedRelativeOperator, selectedAiOperator, value, selectedComparator, selectedSensitivity, onSensitivityChange, selectedGranularity, onGranularityChange, separators, defaultUser, originalAutomation, editedAutomation, allowOnlyLoggedUserRecipients, allowExternalRecipients, warningMessage, validationErrorMessage, isInvalidConnectionToInsight, isSubmitDisabled, isParentValid, thresholdErrorMessage, allowHourlyRecurrence, } = useEditAlert({
55
- insight,
56
- widget,
57
- alertToEdit,
58
- users,
58
+ const { onTitleChange, onRecipientsChange, onFiltersChange, onApplyCurrentFilters, dropStaleParameters, automationParameters, availableParameters, onParameterChange, onParameterDelete, onParameterAdd, onMeasureChange, getAttributeValues, onAttributeChange, onComparisonOperatorChange, onRelativeOperatorChange, onAnomalyDetectionChange, onChange, onBlur, onComparisonTypeChange, onDestinationChange, onTriggerModeChange, onTriggerIntervalChange, selectedMeasure, canChangeMeasure, supportedMeasures, selectedAttribute, selectedValue, supportedAttributes, catalogAttributes, catalogDateDatasets, isResultLoading, selectedComparisonOperator, selectedRelativeOperator, selectedAiOperator, value, selectedComparator, selectedSensitivity, onSensitivityChange, selectedGranularity, onGranularityChange, separators, defaultUser, originalAutomation, editedAutomation, allowOnlyLoggedUserRecipients, allowExternalRecipients, warningMessage, validationErrorMessage, isInvalidConnectionToInsight, isSubmitDisabled, isParentValid, thresholdErrorMessage, allowHourlyRecurrence, users, usersError, notificationChannels, } = useEditAlert({
59
59
  editedAutomationFilters,
60
60
  maxAutomationsRecipients,
61
61
  availableFiltersAsVisibleFilters,
62
62
  setEditedAutomationFilters,
63
- notificationChannels,
64
63
  filtersForNewAutomation,
65
64
  externalRecipientOverride,
66
65
  });
@@ -176,8 +175,9 @@ export function AlertingDialogRenderer({ alertToEdit, users, usersError, notific
176
175
  * @alpha
177
176
  */
178
177
  export function DefaultAlertingDialog(props) {
179
- const { isLoading, onCancel, alertToEdit } = props;
178
+ const { onCancel } = props;
180
179
  const { locale } = useAutomationsContext();
180
+ const { isLoading, alertToEdit } = useAlertingDialogContext();
181
181
  if (isLoading) {
182
182
  return _jsx(DefaultLoadingAlertingDialog, { onCancel: onCancel, alertToEdit: alertToEdit });
183
183
  }
@@ -1,3 +1,8 @@
1
- import { type IAlertingDialogProps } from "../types.js";
2
- export declare function DefaultLoadingAlertingDialog({ alertToEdit, onCancel }: Pick<IAlertingDialogProps, "onCancel" | "alertToEdit">): import("react/jsx-runtime").JSX.Element;
1
+ import { type IAutomationMetadataObject } from "@gooddata/sdk-model";
2
+ interface IDefaultLoadingAlertingDialogProps {
3
+ alertToEdit?: IAutomationMetadataObject;
4
+ onCancel?: () => void;
5
+ }
6
+ export declare function DefaultLoadingAlertingDialog({ alertToEdit, onCancel }: IDefaultLoadingAlertingDialogProps): import("react/jsx-runtime").JSX.Element;
7
+ export {};
3
8
  //# sourceMappingURL=DefaultLoadingAlertingDialog.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultLoadingAlertingDialog.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/alerting/DefaultAlertingDialog/DefaultLoadingAlertingDialog.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGxD,wBAAgB,4BAA4B,CAAC,EACzC,WAAW,EACX,QAAQ,EACX,EAAE,IAAI,CAAC,oBAAoB,EAAE,UAAU,GAAG,aAAa,CAAC,2CAkDxD"}
1
+ {"version":3,"file":"DefaultLoadingAlertingDialog.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/alerting/DefaultAlertingDialog/DefaultLoadingAlertingDialog.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAarE,UAAU,kCAAkC;IACxC,WAAW,CAAC,EAAE,yBAAyB,CAAC;IACxC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB;AAED,wBAAgB,4BAA4B,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,kCAAkC,2CAkDzG"}
@@ -4,7 +4,7 @@ import { useIntl } from "react-intl";
4
4
  import { ConfirmDialogBase, Overlay, OverlayController, OverlayControllerProvider, UiSkeleton, useId, } from "@gooddata/sdk-ui-kit";
5
5
  import { DASHBOARD_DIALOG_OVERS_Z_INDEX } from "../../../constants/zIndex.js";
6
6
  const overlayController = OverlayController.getInstance(DASHBOARD_DIALOG_OVERS_Z_INDEX);
7
- export function DefaultLoadingAlertingDialog({ alertToEdit, onCancel, }) {
7
+ export function DefaultLoadingAlertingDialog({ alertToEdit, onCancel }) {
8
8
  const intl = useIntl();
9
9
  const titleElementId = useId();
10
10
  return (_jsx(_Fragment, { children: _jsx(Overlay, { className: "gd-notifications-channels-dialog-overlay", isModal: true, positionType: "fixed", children: _jsx(OverlayControllerProvider, { overlayController: overlayController, children: _jsxs(ConfirmDialogBase, { className: "gd-notifications-channels-dialog s-gd-notifications-channels-dialog", isPositive: true, cancelButtonText: intl.formatMessage({ id: "cancel" }), submitButtonText: alertToEdit
@@ -1,18 +1,13 @@
1
- import { type FilterContextItem, type IAutomationMetadataObject, type IAutomationVisibleFilter, type IInsight, type INotificationChannelIdentifier, type INotificationChannelMetadataObject, type IWidget, type IWorkspaceUser } from "@gooddata/sdk-model";
1
+ import { type FilterContextItem, type IAutomationVisibleFilter } from "@gooddata/sdk-model";
2
2
  export interface IUseEditAlertProps {
3
- alertToEdit?: IAutomationMetadataObject;
4
- notificationChannels: INotificationChannelIdentifier[] | INotificationChannelMetadataObject[];
5
3
  maxAutomationsRecipients: number;
6
- users: IWorkspaceUser[];
7
- widget?: IWidget;
8
- insight?: IInsight;
9
4
  editedAutomationFilters?: FilterContextItem[];
10
5
  setEditedAutomationFilters: (filters: FilterContextItem[]) => void;
11
6
  availableFiltersAsVisibleFilters?: IAutomationVisibleFilter[] | undefined;
12
7
  filtersForNewAutomation: FilterContextItem[];
13
8
  externalRecipientOverride?: string;
14
9
  }
15
- export declare function useEditAlert({ alertToEdit, notificationChannels, insight, widget, users, editedAutomationFilters, maxAutomationsRecipients, setEditedAutomationFilters, availableFiltersAsVisibleFilters, filtersForNewAutomation, externalRecipientOverride }: IUseEditAlertProps): {
10
+ export declare function useEditAlert({ editedAutomationFilters, maxAutomationsRecipients, setEditedAutomationFilters, availableFiltersAsVisibleFilters, filtersForNewAutomation, externalRecipientOverride }: IUseEditAlertProps): {
16
11
  onTitleChange: (value: string, isValid: boolean) => void;
17
12
  onRecipientsChange: (updatedRecipients: import("@gooddata/sdk-model").IAutomationRecipient[]) => void;
18
13
  onFiltersChange: (filters: FilterContextItem[]) => void;
@@ -60,9 +55,12 @@ export declare function useEditAlert({ alertToEdit, notificationChannels, insigh
60
55
  selectedComparator: import("../../types.js").AlertMetricComparator | undefined;
61
56
  separators: import("@gooddata/sdk-model").ISeparators;
62
57
  warningMessage: string | undefined;
63
- defaultUser: IWorkspaceUser;
58
+ defaultUser: import("@gooddata/sdk-model").IWorkspaceUser;
64
59
  originalAutomation: import("@gooddata/sdk-model").IAutomationMetadataObjectDefinition | undefined;
65
60
  editedAutomation: import("@gooddata/sdk-model").IAutomationMetadataObjectDefinition | undefined;
61
+ users: import("@gooddata/sdk-model").IWorkspaceUser[];
62
+ usersError: import("@gooddata/sdk-ui").GoodDataSdkError | undefined;
63
+ notificationChannels: import("@gooddata/sdk-model").INotificationChannelIdentifier[] | import("@gooddata/sdk-model").INotificationChannelMetadataObject[];
66
64
  allowOnlyLoggedUserRecipients: boolean;
67
65
  allowExternalRecipients: boolean;
68
66
  validationErrorMessage: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"useEditAlert.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/automations/alerting/DefaultAlertingDialog/hooks/useEditAlert.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,QAAQ,EACb,KAAK,8BAA8B,EACnC,KAAK,kCAAkC,EACvC,KAAK,OAAO,EACZ,KAAK,cAAc,EACtB,MAAM,qBAAqB,CAAC;AAY7B,MAAM,WAAW,kBAAkB;IAC/B,WAAW,CAAC,EAAE,yBAAyB,CAAC;IACxC,oBAAoB,EAAE,8BAA8B,EAAE,GAAG,kCAAkC,EAAE,CAAC;IAC9F,wBAAwB,EAAE,MAAM,CAAC;IACjC,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,uBAAuB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAE9C,0BAA0B,EAAE,CAAC,OAAO,EAAE,iBAAiB,EAAE,KAAK,IAAI,CAAC;IACnE,gCAAgC,CAAC,EAAE,wBAAwB,EAAE,GAAG,SAAS,CAAC;IAC1E,uBAAuB,EAAE,iBAAiB,EAAE,CAAC;IAC7C,yBAAyB,CAAC,EAAE,MAAM,CAAC;CACtC;AAED,wBAAgB,YAAY,CAAC,EACzB,WAAW,EACX,oBAAoB,EACpB,OAAO,EACP,MAAM,EACN,KAAK,EACL,uBAAuB,EACvB,wBAAwB,EACxB,0BAA0B,EAC1B,gCAAgC,EAChC,uBAAuB,EACvB,yBAAyB,EAC5B,EAAE,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsLpB"}
1
+ {"version":3,"file":"useEditAlert.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/automations/alerting/DefaultAlertingDialog/hooks/useEditAlert.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAY5F,MAAM,WAAW,kBAAkB;IAC/B,wBAAwB,EAAE,MAAM,CAAC;IACjC,uBAAuB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAE9C,0BAA0B,EAAE,CAAC,OAAO,EAAE,iBAAiB,EAAE,KAAK,IAAI,CAAC;IACnE,gCAAgC,CAAC,EAAE,wBAAwB,EAAE,GAAG,SAAS,CAAC;IAC1E,uBAAuB,EAAE,iBAAiB,EAAE,CAAC;IAC7C,yBAAyB,CAAC,EAAE,MAAM,CAAC;CACtC;AAED,wBAAgB,YAAY,CAAC,EACzB,uBAAuB,EACvB,wBAAwB,EACxB,0BAA0B,EAC1B,gCAAgC,EAChC,uBAAuB,EACvB,yBAAyB,EAC5B,EAAE,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkMpB"}
@@ -7,10 +7,10 @@ import { useAlertFormValidation } from "./useAlertFormValidation.js";
7
7
  import { useAlertSelectedValues } from "./useAlertSelectedValues.js";
8
8
  import { useAlertSupportedMetrics } from "./useAlertSupportedMetrics.js";
9
9
  import { useAlertThreshold } from "./useAlertThreshold.js";
10
- export function useEditAlert({ alertToEdit, notificationChannels, insight, widget, users, editedAutomationFilters, maxAutomationsRecipients, setEditedAutomationFilters, availableFiltersAsVisibleFilters, filtersForNewAutomation, externalRecipientOverride, }) {
10
+ export function useEditAlert({ editedAutomationFilters, maxAutomationsRecipients, setEditedAutomationFilters, availableFiltersAsVisibleFilters, filtersForNewAutomation, externalRecipientOverride, }) {
11
11
  const { catalogDateDatasets, catalogAttributes, separators, weekStart, timezone, allowHourlyRecurrence } = useAutomationsContext();
12
+ const { hiddenFilters: dashboardHiddenFilters, commonDateFilterId, alertToEdit, users, usersError, notificationChannels, widget, insight, } = useAlertingDialogContext();
12
13
  const isInvalidConnectionToInsight = alertToEdit?.metadata?.widget && !insight;
13
- const { hiddenFilters: dashboardHiddenFilters, commonDateFilterId } = useAlertingDialogContext();
14
14
  const { measureFormatMap, supportedMeasures, supportedAttributes, isResultLoading, getAttributeValues, getMetricValue, } = useAlertSupportedMetrics({ insight, widget, alertToEdit });
15
15
  const { editedAutomation, setEditedAutomation, originalAutomation, defaultUser, defaultRecipient, automationParameters, availableParameters, onParameterChange, onParameterDelete, onParameterAdd, dropStaleParameters, onTitleChange, onMeasureChange, onAttributeChange, onComparisonOperatorChange, onRelativeOperatorChange, onAnomalyDetectionChange, onComparisonTypeChange, onSensitivityChange, onTriggerIntervalChange, onGranularityChange, onDestinationChange, onTriggerModeChange, onRecipientsChange, warningMessage, isTitleValid, } = useAlertFormState({
16
16
  alertToEdit,
@@ -124,6 +124,9 @@ export function useEditAlert({ alertToEdit, notificationChannels, insight, widge
124
124
  defaultUser,
125
125
  originalAutomation,
126
126
  editedAutomation,
127
+ users,
128
+ usersError,
129
+ notificationChannels,
127
130
  allowOnlyLoggedUserRecipients,
128
131
  allowExternalRecipients,
129
132
  validationErrorMessage,
@@ -7,20 +7,29 @@ import { type GoodDataSdkError } from "@gooddata/sdk-ui";
7
7
  export interface IAlertingDialogProps {
8
8
  /**
9
9
  * In case, we are not creating new alert, but editing existing one, this is the active alert to be edited.
10
+ *
11
+ * @deprecated read `alertToEdit` from `useAlertingDialogContext()` instead. Prop will be removed.
10
12
  */
11
13
  alertToEdit?: IAutomationMetadataObject;
12
14
  /**
13
15
  * Users in workspace
16
+ *
17
+ * @deprecated read `users` from `useAlertingDialogContext()` instead. Prop will be removed.
14
18
  */
15
- users: IWorkspaceUser[];
19
+ users?: IWorkspaceUser[];
16
20
  /**
17
21
  * Error occurred while loading users
22
+ *
23
+ * @deprecated read `usersError` from `useAlertingDialogContext()` instead. Prop will be removed.
18
24
  */
19
25
  usersError?: GoodDataSdkError;
20
26
  /**
21
27
  * Notification channels in organization
28
+ *
29
+ * @deprecated read `notificationChannels` from `useAlertingDialogContext()` instead.
30
+ * Prop will be removed.
22
31
  */
23
- notificationChannels: INotificationChannelIdentifier[] | INotificationChannelMetadataObject[];
32
+ notificationChannels?: INotificationChannelIdentifier[] | INotificationChannelMetadataObject[];
24
33
  /**
25
34
  * Widget to be used for alert.
26
35
  *
@@ -28,16 +37,22 @@ export interface IAlertingDialogProps {
28
37
  * Typed as IWidget (not ExtendedDashboardWidget) because the dialog only
29
38
  * supports insight widgets; custom widgets and nested layouts are not valid
30
39
  * alert targets and were silently discarded at the connector boundary anyway.
40
+ *
41
+ * @deprecated read `widget` from `useAlertingDialogContext()` instead. Prop will be removed.
31
42
  */
32
43
  widget?: IWidget;
33
44
  /**
34
45
  * Insight to be used for alert.
35
46
  *
36
47
  * Note: this is available only when alerting for widget, not dashboard.
48
+ *
49
+ * @deprecated read `insight` from `useAlertingDialogContext()` instead. Prop will be removed.
37
50
  */
38
51
  insight?: IInsight;
39
52
  /**
40
53
  * Is alert dialog loading initial data, before it can be rendered?
54
+ *
55
+ * @deprecated read `isLoading` from `useAlertingDialogContext()` instead. Prop will be removed.
41
56
  */
42
57
  isLoading?: boolean;
43
58
  /**
@@ -75,20 +90,30 @@ export interface IAlertingDialogProps {
75
90
  export interface IAlertingManagementDialogProps {
76
91
  /**
77
92
  * Is loading alert data?
93
+ *
94
+ * @deprecated not read by the default dialog. Prop will be removed.
78
95
  */
79
- isLoadingAlertingData: boolean;
96
+ isLoadingAlertingData?: boolean;
80
97
  /**
81
98
  * Error occurred while loading alert data?
99
+ *
100
+ * @deprecated not read by the default dialog. Prop will be removed.
82
101
  */
83
102
  alertDataError?: GoodDataSdkError;
84
103
  /**
85
104
  * Notification channels in organization
105
+ *
106
+ * @deprecated not read by the default dialog. A replacement can read the dashboard's
107
+ * notification channels directly. Prop will be removed.
86
108
  */
87
- notificationChannels: INotificationChannelIdentifier[] | INotificationChannelMetadataObject[];
109
+ notificationChannels?: INotificationChannelIdentifier[] | INotificationChannelMetadataObject[];
88
110
  /**
89
111
  * Automations in workspace
112
+ *
113
+ * @deprecated not read by the default dialog. A replacement can read the dashboard's
114
+ * automations directly. Prop will be removed.
90
115
  */
91
- automations: IAutomationMetadataObject[];
116
+ automations?: IAutomationMetadataObject[];
92
117
  /**
93
118
  * Callback to be called, when user adds new alert item.
94
119
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/presentation/automations/alerting/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/presentation/automations/alerting/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"AlertingConnector.d.ts","sourceRoot":"","sources":["../../../../src/presentation/automations/connectors/AlertingConnector.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAoB1D;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,GAAG,YAAY,CAG/F;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,IAAI,YAAY,GAAG,IAAI,CAMvD"}
1
+ {"version":3,"file":"AlertingConnector.d.ts","sourceRoot":"","sources":["../../../../src/presentation/automations/connectors/AlertingConnector.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AA8B1D;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,GAAG,YAAY,CAG/F;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,IAAI,YAAY,GAAG,IAAI,CAMvD"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { isWidget } from "@gooddata/sdk-model";
2
+ import { isWidget, } from "@gooddata/sdk-model";
3
3
  import { useDashboardAlerts } from "../../../model/react/useDashboardAlerting/useDashboardAlerts.js";
4
4
  import { useWorkspaceUsers } from "../../../model/react/useWorkspaceUsers.js";
5
5
  import { AlertingDialog } from "../alerting/AlertingDialog.js";
@@ -11,6 +11,7 @@ import { useAutomationManagementEditRouting } from "./hooks/useAutomationManagem
11
11
  import { useBuildAlertingDialogContext } from "./hooks/useBuildAlertingDialogContext.js";
12
12
  import { useBuildAlertingManagementDialogContext } from "./hooks/useBuildAlertingManagementDialogContext.js";
13
13
  import { useBuildAutomationsContext } from "./hooks/useBuildAutomationsContext.js";
14
+ const EMPTY_USERS = [];
14
15
  /**
15
16
  * Provides AutomationsContext to its children, built from dashboard Redux state.
16
17
  * Wraps the alerting dialog subtree (both the create/edit and management dialogs reach
@@ -57,39 +58,35 @@ function AlertingConnectorWithData({ alerts }) {
57
58
  // Shared Local State
58
59
  alertToEdit,
59
60
  // Data
60
- automations, automationsError, automationsLoading, notificationChannels,
61
+ automationsLoading, notificationChannels,
61
62
  // Single Alert Dialog
62
63
  isAlertDialogOpen, onAlertingCancel, onAlertingCreateSuccess, onAlertingCreateError, onAlertingSaveSuccess, onAlertingSaveError,
63
64
  // Management / List Dialog
64
65
  isAlertManagementDialogOpen, onAlertingManagementClose, onAlertingManagementAdd, onAlertingManagementEdit, onAlertingManagementDeleteSuccess, onAlertingManagementDeleteError, onAlertingManagementPauseSuccess, onAlertingManagementPauseError, widget, insight, } = alerts;
65
66
  const handleManagementEdit = useAutomationManagementEditRouting(onAlertingManagementEdit);
66
67
  const insightWidget = isWidget(widget) ? widget : undefined;
67
- const alertingCtx = useBuildAlertingDialogContext({
68
- mode: alertToEdit ? "edit" : "create",
69
- widget: insightWidget,
70
- insight,
71
- });
72
68
  const managementCtx = useBuildAlertingManagementDialogContext();
73
- const isManagementLoading = automationsLoading;
74
- return (_jsx(AlertingDialogContextProvider, { value: alertingCtx, children: _jsxs(AlertingManagementDialogContextProvider, { value: managementCtx, children: [isAlertManagementDialogOpen ? (
75
- // TODO(GDP-3167 phase3): automations, notificationChannels, and alertDataError
76
- // are still prop-threaded here because DefaultAlertingManagementDialog reads
77
- // them from props, not from AutomationsContext. Once all dialog fields are
78
- // migrated to read from context, remove these props and the corresponding prop types.
79
- _jsx(AlertingManagementDialog, { automations: automations, notificationChannels: notificationChannels, alertDataError: automationsError, isLoadingAlertingData: isManagementLoading, onAdd: onAlertingManagementAdd, onEdit: handleManagementEdit, onClose: onAlertingManagementClose, onDeleteSuccess: onAlertingManagementDeleteSuccess, onDeleteError: onAlertingManagementDeleteError, onPauseSuccess: onAlertingManagementPauseSuccess, onPauseError: onAlertingManagementPauseError })) : null, isAlertDialogOpen ? (
80
- // TODO(GDP-3167 phase3): notificationChannels, users, usersError, and isLoading
81
- // are still prop-threaded here because DefaultAlertingDialog reads them from props,
82
- // not from AutomationsContext. Once all dialog fields are migrated to read from
83
- // context, remove these props and the corresponding prop types.
84
- _jsx(AlertingDialogWithUsers, { alertToEdit: alertToEdit, notificationChannels: notificationChannels, widget: insightWidget, insight: insight, isLoading: automationsLoading, onCancel: onAlertingCancel, onError: onAlertingCreateError, onSuccess: onAlertingCreateSuccess, onSaveError: onAlertingSaveError, onSaveSuccess: onAlertingSaveSuccess, onDeleteSuccess: onAlertingManagementDeleteSuccess, onDeleteError: onAlertingManagementDeleteError })) : null] }) }));
69
+ return (_jsxs(AlertingManagementDialogContextProvider, { value: managementCtx, children: [isAlertManagementDialogOpen ? (_jsx(AlertingManagementDialog, { onAdd: onAlertingManagementAdd, onEdit: handleManagementEdit, onClose: onAlertingManagementClose, onDeleteSuccess: onAlertingManagementDeleteSuccess, onDeleteError: onAlertingManagementDeleteError, onPauseSuccess: onAlertingManagementPauseSuccess, onPauseError: onAlertingManagementPauseError })) : null, isAlertDialogOpen ? (_jsx(AlertingCreateEditConnector, { alertToEdit: alertToEdit, notificationChannels: notificationChannels, widget: insightWidget, insight: insight, automationsLoading: automationsLoading, onCancel: onAlertingCancel, onError: onAlertingCreateError, onSuccess: onAlertingCreateSuccess, onSaveError: onAlertingSaveError, onSaveSuccess: onAlertingSaveSuccess, onDeleteSuccess: onAlertingManagementDeleteSuccess, onDeleteError: onAlertingManagementDeleteError })) : null] }));
85
70
  }
86
71
  /**
87
- * Loads workspace users only while the create/edit dialog is mounted. Keeping the
88
- * `useWorkspaceUsers()` call in this child (rather than in AlertingConnectorWithData) means that
89
- * opening only the management dialog — which does not consume users — never dispatches the
90
- * workspace-users load, matching the pre-separation behavior.
72
+ * Loads workspace users and hydrates the alerting create/edit context. Both live here rather than in
73
+ * the parent so that opening only the management dialog — which consumes neither — never dispatches the
74
+ * workspace-users load.
91
75
  */
92
- function AlertingDialogWithUsers(props) {
76
+ function AlertingCreateEditConnector(props) {
77
+ const { alertToEdit, notificationChannels, widget, insight, automationsLoading, onCancel, onError, onSuccess, onSaveError, onSaveSuccess, onDeleteSuccess, onDeleteError, } = props;
93
78
  const { users, status: usersStatus, usersError } = useWorkspaceUsers();
94
- return (_jsx(AlertingDialog, { ...props, users: users ?? [], usersError: usersError, isLoading: props.isLoading || usersStatus === "pending" || usersStatus === "loading" }));
79
+ const isLoading = automationsLoading || usersStatus === "pending" || usersStatus === "loading";
80
+ const effectiveUsers = users ?? EMPTY_USERS;
81
+ const alertingCtx = useBuildAlertingDialogContext({
82
+ mode: alertToEdit ? "edit" : "create",
83
+ widget,
84
+ insight,
85
+ alertToEdit,
86
+ users: effectiveUsers,
87
+ usersError,
88
+ notificationChannels,
89
+ isLoading,
90
+ });
91
+ return (_jsx(AlertingDialogContextProvider, { value: alertingCtx, children: _jsx(AlertingDialog, { onCancel: onCancel, onError: onError, onSuccess: onSuccess, onSaveError: onSaveError, onSaveSuccess: onSaveSuccess, onDeleteSuccess: onDeleteSuccess, onDeleteError: onDeleteError }) }));
95
92
  }