@gooddata/sdk-ui-dashboard 11.54.0-alpha.5 → 11.54.0-alpha.7

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 (335) hide show
  1. package/NOTICE +849 -114
  2. package/esm/__version.d.ts +1 -1
  3. package/esm/__version.js +1 -1
  4. package/esm/index.d.ts +2 -1
  5. package/esm/index.d.ts.map +1 -1
  6. package/esm/model/commandHandlers/dashboard/common/parameterHydration.d.ts +7 -0
  7. package/esm/model/commandHandlers/dashboard/common/parameterHydration.d.ts.map +1 -1
  8. package/esm/model/commandHandlers/dashboard/common/parameterHydration.js +17 -1
  9. package/esm/model/commandHandlers/filterContext/filterViewHandler.d.ts.map +1 -1
  10. package/esm/model/commandHandlers/filterContext/filterViewHandler.js +7 -7
  11. package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.d.ts +1 -1
  12. package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.d.ts.map +1 -1
  13. package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.js +32 -91
  14. package/esm/presentation/automations/alerting/DefaultAlertingDialog/hooks/useAlertSubmit.d.ts +19 -14
  15. package/esm/presentation/automations/alerting/DefaultAlertingDialog/hooks/useAlertSubmit.d.ts.map +1 -1
  16. package/esm/presentation/automations/alerting/DefaultAlertingDialog/hooks/useAlertSubmit.js +18 -2
  17. package/esm/presentation/automations/alerting/state/AlertActionsContext.d.ts +1 -10
  18. package/esm/presentation/automations/alerting/state/AlertActionsContext.d.ts.map +1 -1
  19. package/esm/presentation/automations/alerting/state/AlertDataContext.d.ts +1 -11
  20. package/esm/presentation/automations/alerting/state/AlertDataContext.d.ts.map +1 -1
  21. package/esm/presentation/automations/alerting/state/AlertDraftContext.d.ts +1 -11
  22. package/esm/presentation/automations/alerting/state/AlertDraftContext.d.ts.map +1 -1
  23. package/esm/presentation/automations/alerting/state/AlertFiltersContext.d.ts +1 -13
  24. package/esm/presentation/automations/alerting/state/AlertFiltersContext.d.ts.map +1 -1
  25. package/esm/presentation/automations/alerting/state/AlertingDialogStateProvider.d.ts.map +1 -1
  26. package/esm/presentation/automations/alerting/state/types.d.ts +156 -0
  27. package/esm/presentation/automations/alerting/state/types.d.ts.map +1 -0
  28. package/esm/presentation/automations/alerting/state/types.js +2 -0
  29. package/esm/presentation/automations/alerting/state/useAlertFiltersModel.d.ts +2 -8
  30. package/esm/presentation/automations/alerting/state/useAlertFiltersModel.d.ts.map +1 -1
  31. package/esm/presentation/automations/alerting/state/useAlertFormState.d.ts +4 -34
  32. package/esm/presentation/automations/alerting/state/useAlertFormState.d.ts.map +1 -1
  33. package/esm/presentation/automations/alerting/state/useAlertSupportedMetrics.d.ts +2 -11
  34. package/esm/presentation/automations/alerting/state/useAlertSupportedMetrics.d.ts.map +1 -1
  35. package/esm/presentation/automations/alerting/state/useAlertSupportedMetrics.js +2 -2
  36. package/esm/presentation/automations/alerting/state/useAlertingDialogRegionProps.d.ts +82 -0
  37. package/esm/presentation/automations/alerting/state/useAlertingDialogRegionProps.d.ts.map +1 -0
  38. package/esm/presentation/automations/alerting/state/useAlertingDialogRegionProps.js +152 -0
  39. package/esm/presentation/automations/alerting/types.d.ts +34 -6
  40. package/esm/presentation/automations/alerting/types.d.ts.map +1 -1
  41. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.d.ts +1 -1
  42. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.d.ts.map +1 -1
  43. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.js +41 -126
  44. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/AttachmentSettings.d.ts.map +1 -1
  45. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/AttachmentSettings.js +2 -3
  46. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useSaveScheduledEmailToBackend.d.ts +17 -2
  47. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useSaveScheduledEmailToBackend.d.ts.map +1 -1
  48. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useSaveScheduledEmailToBackend.js +16 -5
  49. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useScheduleTimezone.d.ts +2 -29
  50. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useScheduleTimezone.d.ts.map +1 -1
  51. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useScheduleTimezone.js +0 -14
  52. package/esm/presentation/automations/scheduledEmail/state/ScheduledEmailDialogStateProvider.d.ts.map +1 -1
  53. package/esm/presentation/automations/scheduledEmail/state/ScheduledEmailDialogStateProvider.js +3 -3
  54. package/esm/presentation/automations/scheduledEmail/state/ScheduledExportActionsContext.d.ts +1 -16
  55. package/esm/presentation/automations/scheduledEmail/state/ScheduledExportActionsContext.d.ts.map +1 -1
  56. package/esm/presentation/automations/scheduledEmail/state/ScheduledExportDataContext.d.ts +1 -12
  57. package/esm/presentation/automations/scheduledEmail/state/ScheduledExportDataContext.d.ts.map +1 -1
  58. package/esm/presentation/automations/scheduledEmail/state/ScheduledExportDraftContext.d.ts +1 -15
  59. package/esm/presentation/automations/scheduledEmail/state/ScheduledExportDraftContext.d.ts.map +1 -1
  60. package/esm/presentation/automations/scheduledEmail/state/ScheduledExportFiltersContext.d.ts +2 -14
  61. package/esm/presentation/automations/scheduledEmail/state/ScheduledExportFiltersContext.d.ts.map +1 -1
  62. package/esm/presentation/automations/scheduledEmail/state/types.d.ts +204 -0
  63. package/esm/presentation/automations/scheduledEmail/state/types.d.ts.map +1 -0
  64. package/esm/presentation/automations/scheduledEmail/state/types.js +2 -0
  65. package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailDialogRegionProps.d.ts +105 -0
  66. package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailDialogRegionProps.d.ts.map +1 -0
  67. package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailDialogRegionProps.js +196 -0
  68. package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailExportSettings.d.ts +3 -11
  69. package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailExportSettings.d.ts.map +1 -1
  70. package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailExportSettings.js +10 -8
  71. package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailFiltersModel.d.ts +2 -20
  72. package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailFiltersModel.d.ts.map +1 -1
  73. package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailFiltersModel.js +1 -1
  74. package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailFormState.d.ts +3 -20
  75. package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailFormState.d.ts.map +1 -1
  76. package/esm/presentation/automations/scheduledEmail/state/useScheduledExportAttachments.d.ts +2 -2
  77. package/esm/presentation/automations/scheduledEmail/state/useScheduledExportAttachments.d.ts.map +1 -1
  78. package/esm/presentation/automations/scheduledEmail/state/useScheduledExportAttachments.js +3 -4
  79. package/esm/presentation/automations/scheduledEmail/types.d.ts +38 -7
  80. package/esm/presentation/automations/scheduledEmail/types.d.ts.map +1 -1
  81. package/esm/presentation/automations/shared/slots/AutomationDialogActionBar.d.ts +25 -0
  82. package/esm/presentation/automations/shared/slots/AutomationDialogActionBar.d.ts.map +1 -0
  83. package/esm/presentation/automations/shared/slots/AutomationDialogActionBar.js +22 -0
  84. package/esm/presentation/automations/shared/slots/types.d.ts +53 -26
  85. package/esm/presentation/automations/shared/slots/types.d.ts.map +1 -1
  86. package/esm/presentation/dashboardContexts/ExportCsvDialogContext.d.ts +1 -2
  87. package/esm/presentation/dashboardContexts/ExportCsvDialogContext.d.ts.map +1 -1
  88. package/esm/presentation/dialogs/ExportCsvDialog.d.ts +0 -1
  89. package/esm/presentation/dialogs/ExportCsvDialog.d.ts.map +1 -1
  90. package/esm/presentation/dialogs/ExportCsvDialog.js +2 -2
  91. package/esm/presentation/dialogs/ExportCsvDialogProvider.d.ts.map +1 -1
  92. package/esm/presentation/dialogs/ExportCsvDialogProvider.js +1 -1
  93. package/esm/presentation/localization/bundles/de-DE.localization-bundle.d.ts +12 -16
  94. package/esm/presentation/localization/bundles/de-DE.localization-bundle.d.ts.map +1 -1
  95. package/esm/presentation/localization/bundles/de-DE.localization-bundle.js +12 -16
  96. package/esm/presentation/localization/bundles/en-AU.localization-bundle.d.ts +12 -16
  97. package/esm/presentation/localization/bundles/en-AU.localization-bundle.d.ts.map +1 -1
  98. package/esm/presentation/localization/bundles/en-AU.localization-bundle.js +14 -18
  99. package/esm/presentation/localization/bundles/en-GB.localization-bundle.d.ts +12 -16
  100. package/esm/presentation/localization/bundles/en-GB.localization-bundle.d.ts.map +1 -1
  101. package/esm/presentation/localization/bundles/en-GB.localization-bundle.js +14 -18
  102. package/esm/presentation/localization/bundles/en-US.localization-bundle.d.ts +0 -60
  103. package/esm/presentation/localization/bundles/en-US.localization-bundle.d.ts.map +1 -1
  104. package/esm/presentation/localization/bundles/en-US.localization-bundle.js +0 -60
  105. package/esm/presentation/localization/bundles/es-419.localization-bundle.d.ts +12 -16
  106. package/esm/presentation/localization/bundles/es-419.localization-bundle.d.ts.map +1 -1
  107. package/esm/presentation/localization/bundles/es-419.localization-bundle.js +14 -18
  108. package/esm/presentation/localization/bundles/es-ES.localization-bundle.d.ts +10 -16
  109. package/esm/presentation/localization/bundles/es-ES.localization-bundle.d.ts.map +1 -1
  110. package/esm/presentation/localization/bundles/es-ES.localization-bundle.js +12 -18
  111. package/esm/presentation/localization/bundles/fi-FI.localization-bundle.d.ts +12 -16
  112. package/esm/presentation/localization/bundles/fi-FI.localization-bundle.d.ts.map +1 -1
  113. package/esm/presentation/localization/bundles/fi-FI.localization-bundle.js +14 -18
  114. package/esm/presentation/localization/bundles/fr-CA.localization-bundle.d.ts +12 -16
  115. package/esm/presentation/localization/bundles/fr-CA.localization-bundle.d.ts.map +1 -1
  116. package/esm/presentation/localization/bundles/fr-CA.localization-bundle.js +14 -18
  117. package/esm/presentation/localization/bundles/fr-FR.localization-bundle.d.ts +12 -16
  118. package/esm/presentation/localization/bundles/fr-FR.localization-bundle.d.ts.map +1 -1
  119. package/esm/presentation/localization/bundles/fr-FR.localization-bundle.js +14 -18
  120. package/esm/presentation/localization/bundles/id-ID.localization-bundle.d.ts +12 -16
  121. package/esm/presentation/localization/bundles/id-ID.localization-bundle.d.ts.map +1 -1
  122. package/esm/presentation/localization/bundles/id-ID.localization-bundle.js +14 -18
  123. package/esm/presentation/localization/bundles/it-IT.localization-bundle.d.ts +12 -16
  124. package/esm/presentation/localization/bundles/it-IT.localization-bundle.d.ts.map +1 -1
  125. package/esm/presentation/localization/bundles/it-IT.localization-bundle.js +14 -18
  126. package/esm/presentation/localization/bundles/ja-JP.localization-bundle.d.ts +12 -16
  127. package/esm/presentation/localization/bundles/ja-JP.localization-bundle.d.ts.map +1 -1
  128. package/esm/presentation/localization/bundles/ja-JP.localization-bundle.js +12 -16
  129. package/esm/presentation/localization/bundles/ko-KR.localization-bundle.d.ts +12 -16
  130. package/esm/presentation/localization/bundles/ko-KR.localization-bundle.d.ts.map +1 -1
  131. package/esm/presentation/localization/bundles/ko-KR.localization-bundle.js +14 -18
  132. package/esm/presentation/localization/bundles/nl-NL.localization-bundle.d.ts +12 -16
  133. package/esm/presentation/localization/bundles/nl-NL.localization-bundle.d.ts.map +1 -1
  134. package/esm/presentation/localization/bundles/nl-NL.localization-bundle.js +14 -18
  135. package/esm/presentation/localization/bundles/pl-PL.localization-bundle.d.ts +12 -16
  136. package/esm/presentation/localization/bundles/pl-PL.localization-bundle.d.ts.map +1 -1
  137. package/esm/presentation/localization/bundles/pl-PL.localization-bundle.js +14 -18
  138. package/esm/presentation/localization/bundles/pt-BR.localization-bundle.d.ts +12 -16
  139. package/esm/presentation/localization/bundles/pt-BR.localization-bundle.d.ts.map +1 -1
  140. package/esm/presentation/localization/bundles/pt-BR.localization-bundle.js +16 -20
  141. package/esm/presentation/localization/bundles/pt-PT.localization-bundle.d.ts +12 -16
  142. package/esm/presentation/localization/bundles/pt-PT.localization-bundle.d.ts.map +1 -1
  143. package/esm/presentation/localization/bundles/pt-PT.localization-bundle.js +16 -20
  144. package/esm/presentation/localization/bundles/ru-RU.localization-bundle.d.ts +12 -16
  145. package/esm/presentation/localization/bundles/ru-RU.localization-bundle.d.ts.map +1 -1
  146. package/esm/presentation/localization/bundles/ru-RU.localization-bundle.js +14 -18
  147. package/esm/presentation/localization/bundles/sl-SI.localization-bundle.d.ts +12 -16
  148. package/esm/presentation/localization/bundles/sl-SI.localization-bundle.d.ts.map +1 -1
  149. package/esm/presentation/localization/bundles/sl-SI.localization-bundle.js +14 -18
  150. package/esm/presentation/localization/bundles/th-TH.localization-bundle.d.ts +12 -16
  151. package/esm/presentation/localization/bundles/th-TH.localization-bundle.d.ts.map +1 -1
  152. package/esm/presentation/localization/bundles/th-TH.localization-bundle.js +14 -18
  153. package/esm/presentation/localization/bundles/tr-TR.localization-bundle.d.ts +12 -16
  154. package/esm/presentation/localization/bundles/tr-TR.localization-bundle.d.ts.map +1 -1
  155. package/esm/presentation/localization/bundles/tr-TR.localization-bundle.js +14 -18
  156. package/esm/presentation/localization/bundles/uk-UA.localization-bundle.d.ts +12 -16
  157. package/esm/presentation/localization/bundles/uk-UA.localization-bundle.d.ts.map +1 -1
  158. package/esm/presentation/localization/bundles/uk-UA.localization-bundle.js +14 -18
  159. package/esm/presentation/localization/bundles/vi-VN.localization-bundle.d.ts +12 -16
  160. package/esm/presentation/localization/bundles/vi-VN.localization-bundle.d.ts.map +1 -1
  161. package/esm/presentation/localization/bundles/vi-VN.localization-bundle.js +14 -18
  162. package/esm/presentation/localization/bundles/zh-HK.localization-bundle.d.ts +12 -16
  163. package/esm/presentation/localization/bundles/zh-HK.localization-bundle.d.ts.map +1 -1
  164. package/esm/presentation/localization/bundles/zh-HK.localization-bundle.js +12 -16
  165. package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.d.ts +12 -16
  166. package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.d.ts.map +1 -1
  167. package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.js +14 -18
  168. package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.d.ts +12 -16
  169. package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.d.ts.map +1 -1
  170. package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.js +14 -18
  171. package/esm/presentation/widget/common/useInsightExport.d.ts.map +1 -1
  172. package/esm/presentation/widget/common/useInsightExport.js +2 -4
  173. package/esm/sdk-ui-dashboard.d.ts +123 -36
  174. package/package.json +25 -25
  175. package/styles/css/main.css +369 -0
  176. package/styles/css/main.css.map +1 -1
  177. package/esm/_staging/dateFilterConfig/fixtures.d.ts +0 -10
  178. package/esm/_staging/dateFilterConfig/fixtures.d.ts.map +0 -1
  179. package/esm/_staging/dateFilterConfig/fixtures.js +0 -60
  180. package/esm/_staging/layout/coordinates.mock.d.ts +0 -17
  181. package/esm/_staging/layout/coordinates.mock.d.ts.map +0 -1
  182. package/esm/_staging/layout/coordinates.mock.js +0 -103
  183. package/esm/model/commandHandlers/filterContext/filterViewParameters.d.ts +0 -8
  184. package/esm/model/commandHandlers/filterContext/filterViewParameters.d.ts.map +0 -1
  185. package/esm/model/commandHandlers/filterContext/filterViewParameters.js +0 -9
  186. package/esm/model/fixtures/CatalogAvailability.fixtures.d.ts +0 -14
  187. package/esm/model/fixtures/CatalogAvailability.fixtures.d.ts.map +0 -1
  188. package/esm/model/fixtures/CatalogAvailability.fixtures.js +0 -57
  189. package/esm/model/fixtures/ComplexDashboard.fixtures.d.ts +0 -56
  190. package/esm/model/fixtures/ComplexDashboard.fixtures.d.ts.map +0 -1
  191. package/esm/model/fixtures/ComplexDashboard.fixtures.js +0 -71
  192. package/esm/model/fixtures/Dashboard.fixtures.d.ts +0 -10
  193. package/esm/model/fixtures/Dashboard.fixtures.d.ts.map +0 -1
  194. package/esm/model/fixtures/Dashboard.fixtures.js +0 -13
  195. package/esm/model/fixtures/Insights.fixtures.d.ts +0 -6
  196. package/esm/model/fixtures/Insights.fixtures.d.ts.map +0 -1
  197. package/esm/model/fixtures/Insights.fixtures.js +0 -11
  198. package/esm/model/fixtures/Layout.fixtures.d.ts +0 -14
  199. package/esm/model/fixtures/Layout.fixtures.d.ts.map +0 -1
  200. package/esm/model/fixtures/Layout.fixtures.js +0 -115
  201. package/esm/model/fixtures/SimpleDashboard.fixtures.d.ts +0 -46
  202. package/esm/model/fixtures/SimpleDashboard.fixtures.d.ts.map +0 -1
  203. package/esm/model/fixtures/SimpleDashboard.fixtures.js +0 -315
  204. package/esm/model/fixtures/SimpleDashboardNoDrills.fixtures.d.ts +0 -28
  205. package/esm/model/fixtures/SimpleDashboardNoDrills.fixtures.d.ts.map +0 -1
  206. package/esm/model/fixtures/SimpleDashboardNoDrills.fixtures.js +0 -40
  207. package/esm/plugins/customizationApis/fixtures/TestingDashboardCustomizationLogger.d.ts +0 -16
  208. package/esm/plugins/customizationApis/fixtures/TestingDashboardCustomizationLogger.d.ts.map +0 -1
  209. package/esm/plugins/customizationApis/fixtures/TestingDashboardCustomizationLogger.js +0 -30
  210. package/esm/presentation/automations/alerting/DefaultAlertingManagementDialog/components/AlertDropdown.d.ts +0 -3
  211. package/esm/presentation/automations/alerting/DefaultAlertingManagementDialog/components/AlertDropdown.d.ts.map +0 -1
  212. package/esm/presentation/automations/alerting/DefaultAlertingManagementDialog/components/AlertDropdown.js +0 -46
  213. package/esm/presentation/automations/alerting/DefaultAlertingManagementDialog/components/PauseAlertRunner.d.ts +0 -11
  214. package/esm/presentation/automations/alerting/DefaultAlertingManagementDialog/components/PauseAlertRunner.d.ts.map +0 -1
  215. package/esm/presentation/automations/alerting/DefaultAlertingManagementDialog/components/PauseAlertRunner.js +0 -31
  216. package/esm/presentation/automations/alerting/state/fixtures.d.ts +0 -13
  217. package/esm/presentation/automations/alerting/state/fixtures.d.ts.map +0 -1
  218. package/esm/presentation/automations/alerting/state/fixtures.js +0 -37
  219. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useFiltersForDashboardScheduledExportInfo.d.ts +0 -19
  220. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useFiltersForDashboardScheduledExportInfo.d.ts.map +0 -1
  221. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useFiltersForDashboardScheduledExportInfo.js +0 -28
  222. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailManagementDialog/components/ScheduledEmail.d.ts +0 -13
  223. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailManagementDialog/components/ScheduledEmail.d.ts.map +0 -1
  224. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailManagementDialog/components/ScheduledEmail.js +0 -56
  225. package/esm/presentation/automations/scheduledEmail/state/fixtures.d.ts +0 -18
  226. package/esm/presentation/automations/scheduledEmail/state/fixtures.d.ts.map +0 -1
  227. package/esm/presentation/automations/scheduledEmail/state/fixtures.js +0 -105
  228. package/esm/presentation/automations/shared/automationFilters/parameterFixtures.d.ts +0 -5
  229. package/esm/presentation/automations/shared/automationFilters/parameterFixtures.d.ts.map +0 -1
  230. package/esm/presentation/automations/shared/automationFilters/parameterFixtures.js +0 -22
  231. package/esm/presentation/automations/shared/test/fixtures.d.ts +0 -9
  232. package/esm/presentation/automations/shared/test/fixtures.d.ts.map +0 -1
  233. package/esm/presentation/automations/shared/test/fixtures.js +0 -101
  234. package/esm/presentation/dashboard/components/DashboardMainContent.d.ts +0 -3
  235. package/esm/presentation/dashboard/components/DashboardMainContent.d.ts.map +0 -1
  236. package/esm/presentation/dashboard/components/DashboardMainContent.js +0 -39
  237. package/esm/presentation/dragAndDrop/draggableWidget/DraggableKpiCreatePanelItem.d.ts +0 -16
  238. package/esm/presentation/dragAndDrop/draggableWidget/DraggableKpiCreatePanelItem.d.ts.map +0 -1
  239. package/esm/presentation/dragAndDrop/draggableWidget/DraggableKpiCreatePanelItem.js +0 -17
  240. package/esm/presentation/dragAndDrop/draggableWidget/KpiDraggingComponent.d.ts +0 -3
  241. package/esm/presentation/dragAndDrop/draggableWidget/KpiDraggingComponent.d.ts.map +0 -1
  242. package/esm/presentation/dragAndDrop/draggableWidget/KpiDraggingComponent.js +0 -9
  243. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/DeleteButton.d.ts +0 -6
  244. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/DeleteButton.d.ts.map +0 -1
  245. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/DeleteButton.js +0 -10
  246. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/common/DropdownControls.d.ts +0 -8
  247. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/common/DropdownControls.d.ts.map +0 -1
  248. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/common/DropdownControls.js +0 -14
  249. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/ConfigurationButton.d.ts +0 -6
  250. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/ConfigurationButton.d.ts.map +0 -1
  251. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/ConfigurationButton.js +0 -8
  252. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/displayFormDropdown/DisplayFormButton.d.ts +0 -8
  253. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/displayFormDropdown/DisplayFormButton.d.ts.map +0 -1
  254. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/displayFormDropdown/DisplayFormButton.js +0 -10
  255. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/displayFormDropdown/DisplayFormDropdown.d.ts +0 -8
  256. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/displayFormDropdown/DisplayFormDropdown.d.ts.map +0 -1
  257. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/displayFormDropdown/DisplayFormDropdown.js +0 -33
  258. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/displayFormDropdown/DisplayFormItem.d.ts +0 -8
  259. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/displayFormDropdown/DisplayFormItem.d.ts.map +0 -1
  260. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/displayFormDropdown/DisplayFormItem.js +0 -33
  261. package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayout.d.ts +0 -17
  262. package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayout.d.ts.map +0 -1
  263. package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayout.js +0 -18
  264. package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutItemRenderer.d.ts +0 -12
  265. package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutItemRenderer.d.ts.map +0 -1
  266. package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutItemRenderer.js +0 -26
  267. package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutMocks.d.ts +0 -20
  268. package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutMocks.d.ts.map +0 -1
  269. package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutMocks.js +0 -95
  270. package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutRowRenderer.d.ts +0 -14
  271. package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutRowRenderer.d.ts.map +0 -1
  272. package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutRowRenderer.js +0 -9
  273. package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutSectionBorder.d.ts +0 -9
  274. package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutSectionBorder.d.ts.map +0 -1
  275. package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutSectionBorder.js +0 -17
  276. package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutSectionBorderMarker.d.ts +0 -6
  277. package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutSectionBorderMarker.d.ts.map +0 -1
  278. package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutSectionBorderMarker.js +0 -10
  279. package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutSectionHeader.d.ts +0 -9
  280. package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutSectionHeader.d.ts.map +0 -1
  281. package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutSectionHeader.js +0 -14
  282. package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutSectionHeaderRenderer.d.ts +0 -8
  283. package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutSectionHeaderRenderer.d.ts.map +0 -1
  284. package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutSectionHeaderRenderer.js +0 -49
  285. package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutSectionRenderer.d.ts +0 -7
  286. package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutSectionRenderer.d.ts.map +0 -1
  287. package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutSectionRenderer.js +0 -33
  288. package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutTypes.d.ts +0 -62
  289. package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutTypes.d.ts.map +0 -1
  290. package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutTypes.js +0 -2
  291. package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutWidget.d.ts +0 -11
  292. package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutWidget.d.ts.map +0 -1
  293. package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutWidget.js +0 -4
  294. package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutWidgetRenderer.d.ts +0 -8
  295. package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutWidgetRenderer.d.ts.map +0 -1
  296. package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/DashboardEditLayoutWidgetRenderer.js +0 -28
  297. package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/LayoutTypes.d.ts +0 -26
  298. package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/LayoutTypes.d.ts.map +0 -1
  299. package/esm/presentation/flexibleLayout/useInKD/DashboardEditLayout/LayoutTypes.js +0 -21
  300. package/esm/presentation/widget/common/configuration/AttributeFilterConfiguration.d.ts +0 -7
  301. package/esm/presentation/widget/common/configuration/AttributeFilterConfiguration.d.ts.map +0 -1
  302. package/esm/presentation/widget/common/configuration/AttributeFilterConfiguration.js +0 -39
  303. package/esm/presentation/widget/common/useWidgetBrokenAlertsQuery.d.ts +0 -9
  304. package/esm/presentation/widget/common/useWidgetBrokenAlertsQuery.d.ts.map +0 -1
  305. package/esm/presentation/widget/common/useWidgetBrokenAlertsQuery.js +0 -26
  306. package/esm/presentation/widget/insight/configuration/DrillMeasureSelector/DrillMeasureSelector.d.ts +0 -7
  307. package/esm/presentation/widget/insight/configuration/DrillMeasureSelector/DrillMeasureSelector.d.ts.map +0 -1
  308. package/esm/presentation/widget/insight/configuration/DrillMeasureSelector/DrillMeasureSelector.js +0 -37
  309. package/esm/presentation/widget/insight/configuration/DrillMeasureSelector/DrillMeasureSelectorBody.d.ts +0 -8
  310. package/esm/presentation/widget/insight/configuration/DrillMeasureSelector/DrillMeasureSelectorBody.d.ts.map +0 -1
  311. package/esm/presentation/widget/insight/configuration/DrillMeasureSelector/DrillMeasureSelectorBody.js +0 -15
  312. package/esm/presentation/widget/insight/configuration/DrillMeasureSelector/DrillMeasureSelectorItem.d.ts +0 -7
  313. package/esm/presentation/widget/insight/configuration/DrillMeasureSelector/DrillMeasureSelectorItem.d.ts.map +0 -1
  314. package/esm/presentation/widget/insight/configuration/DrillMeasureSelector/DrillMeasureSelectorItem.js +0 -8
  315. package/esm/presentation/widget/insight/configuration/DrillMeasureSelector/DrillMeasureSelectorList.d.ts +0 -7
  316. package/esm/presentation/widget/insight/configuration/DrillMeasureSelector/DrillMeasureSelectorList.d.ts.map +0 -1
  317. package/esm/presentation/widget/insight/configuration/DrillMeasureSelector/DrillMeasureSelectorList.js +0 -5
  318. package/esm/presentation/widget/insight/configuration/InsightAlertConfig/AlertTitle.d.ts +0 -12
  319. package/esm/presentation/widget/insight/configuration/InsightAlertConfig/AlertTitle.d.ts.map +0 -1
  320. package/esm/presentation/widget/insight/configuration/InsightAlertConfig/AlertTitle.js +0 -12
  321. package/esm/presentation/widget/insight/configuration/InsightAlertConfig/CreateAlert.d.ts +0 -25
  322. package/esm/presentation/widget/insight/configuration/InsightAlertConfig/CreateAlert.d.ts.map +0 -1
  323. package/esm/presentation/widget/insight/configuration/InsightAlertConfig/CreateAlert.js +0 -5
  324. package/esm/presentation/widget/insight/configuration/InsightAlertConfig/EditAlert.d.ts +0 -29
  325. package/esm/presentation/widget/insight/configuration/InsightAlertConfig/EditAlert.d.ts.map +0 -1
  326. package/esm/presentation/widget/insight/configuration/InsightAlertConfig/EditAlert.js +0 -137
  327. package/esm/presentation/widget/insight/configuration/InsightAlertConfig/EditAlertConfiguration.d.ts +0 -11
  328. package/esm/presentation/widget/insight/configuration/InsightAlertConfig/EditAlertConfiguration.d.ts.map +0 -1
  329. package/esm/presentation/widget/insight/configuration/InsightAlertConfig/EditAlertConfiguration.js +0 -42
  330. package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useEditAlert.d.ts +0 -48
  331. package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useEditAlert.d.ts.map +0 -1
  332. package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useEditAlert.js +0 -171
  333. package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useWidgetAutomationFilters.d.ts +0 -4
  334. package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useWidgetAutomationFilters.d.ts.map +0 -1
  335. package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useWidgetAutomationFilters.js +0 -46
@@ -0,0 +1,152 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ // (C) 2026 GoodData Corporation
3
+ import { useMemo } from "react";
4
+ import { defineMessage, useIntl } from "react-intl";
5
+ import { UiIcon } from "@gooddata/sdk-ui-kit";
6
+ import { useAlertingDialogContext } from "../../contexts/AlertingDialogContext.js";
7
+ import { useAutomationsContext } from "../../contexts/AutomationsContext.js";
8
+ import { isAnomalyDetection } from "../DefaultAlertingDialog/utils/guards.js";
9
+ import { isMobileView } from "../DefaultAlertingDialog/utils/responsive.js";
10
+ import { useAlertActions } from "./AlertActionsContext.js";
11
+ import { useAlertData } from "./AlertDataContext.js";
12
+ import { useAlertDraft } from "./AlertDraftContext.js";
13
+ import { useAlertFilters } from "./AlertFiltersContext.js";
14
+ import { useAlertDialogValidity } from "./useAlertDialogValidity.js";
15
+ import { useAlertSelectedValues } from "./useAlertSelectedValues.js";
16
+ /**
17
+ * The exact props the default alerting dialog renders its header region with.
18
+ *
19
+ * Throws outside the alerting dialog's state providers.
20
+ *
21
+ * @internal
22
+ */
23
+ export function useAlertingDialogHeaderProps({ onCancel, ref, }) {
24
+ const intl = useIntl();
25
+ const { isSecondaryTitleVisible } = useAutomationsContext();
26
+ const { widgetTitle } = useAlertingDialogContext();
27
+ const { editedAutomation } = useAlertDraft();
28
+ const { onTitleChange } = useAlertActions();
29
+ const { isParentValid } = useAlertDialogValidity();
30
+ const secondaryTitleIcon = useMemo(() => (_jsx(UiIcon, { type: "visualization", size: 16, color: "complementary-6", accessibilityConfig: {
31
+ ariaLabel: intl.formatMessage({
32
+ id: "dialogs.automation.icon.ariaLabel.sourceVisualization",
33
+ }),
34
+ } })), [intl]);
35
+ return {
36
+ title: editedAutomation?.title ?? "",
37
+ onChange: onTitleChange,
38
+ onCancel,
39
+ placeholder: intl.formatMessage({ id: "dialogs.alert.title.placeholder" }),
40
+ ref,
41
+ secondaryTitle: widgetTitle,
42
+ secondaryTitleIcon,
43
+ isSecondaryTitleVisible: isSecondaryTitleVisible ? isParentValid : undefined,
44
+ };
45
+ }
46
+ /**
47
+ * The exact props the default alerting dialog renders its filters region with.
48
+ *
49
+ * Throws outside the alerting dialog's state providers.
50
+ *
51
+ * @internal
52
+ */
53
+ export function useAlertingDialogFiltersProps() {
54
+ const { editedAutomation } = useAlertDraft();
55
+ const { availableFilters, selectedFilters, onFiltersChange, automationParameters, availableParameters, onParameterAdd, onParameterChange, onParameterDelete, } = useAlertFilters();
56
+ return {
57
+ availableFilters,
58
+ selectedFilters,
59
+ onFiltersChange,
60
+ disableDateFilters: isAnomalyDetection(editedAutomation?.alert),
61
+ parameters: automationParameters,
62
+ availableParameters,
63
+ onParameterAdd,
64
+ onParameterChange,
65
+ onParameterDelete,
66
+ };
67
+ }
68
+ /**
69
+ * The exact props the default alerting dialog renders its destination region with.
70
+ *
71
+ * Throws outside the alerting dialog's state providers.
72
+ *
73
+ * @internal
74
+ */
75
+ export function useAlertingDialogDestinationProps() {
76
+ const { notificationChannels } = useAlertingDialogContext();
77
+ const { editedAutomation } = useAlertDraft();
78
+ const { onDestinationChange } = useAlertActions();
79
+ return {
80
+ notificationChannels,
81
+ selectedNotificationChannelId: editedAutomation?.notificationChannel,
82
+ onChange: onDestinationChange,
83
+ };
84
+ }
85
+ /**
86
+ * The exact props the default alerting dialog renders its recipients region with.
87
+ *
88
+ * Throws outside the alerting dialog's state providers.
89
+ *
90
+ * @internal
91
+ */
92
+ export function useAlertingDialogRecipientsProps() {
93
+ const { maxAutomationsRecipients, externalRecipient: externalRecipientOverride } = useAutomationsContext();
94
+ const { notificationChannels } = useAlertingDialogContext();
95
+ const { editedAutomation } = useAlertDraft();
96
+ const { onRecipientsChange } = useAlertActions();
97
+ const { defaultUser } = useAlertData();
98
+ const { allowExternalRecipients, allowOnlyLoggedUserRecipients } = useAlertSelectedValues();
99
+ return {
100
+ loggedUser: defaultUser,
101
+ value: editedAutomation?.recipients ?? [],
102
+ onChange: onRecipientsChange,
103
+ allowEmptySelection: true,
104
+ allowOnlyLoggedUserRecipients,
105
+ allowExternalRecipients,
106
+ maxRecipients: maxAutomationsRecipients,
107
+ notificationChannels,
108
+ notificationChannelId: editedAutomation?.notificationChannel,
109
+ externalRecipientOverride,
110
+ };
111
+ }
112
+ /**
113
+ * The exact props the default alerting dialog renders its action bar with.
114
+ *
115
+ * Throws outside the alerting dialog's state providers.
116
+ *
117
+ * @internal
118
+ */
119
+ export function useAlertingDialogActionBarProps({ onCancel, onSubmit, isSaving, onDelete, }) {
120
+ const intl = useIntl();
121
+ const { isWhiteLabeled, isExecutionTimestampMode } = useAutomationsContext();
122
+ const { alertToEdit } = useAlertingDialogContext();
123
+ const { isSubmitDisabled } = useAlertDialogValidity();
124
+ const helpTextId = isMobileView()
125
+ ? defineMessage({ id: "dialogs.alerting.footer.title.short" }).id
126
+ : defineMessage({ id: "dialogs.alerting.footer.title" }).id;
127
+ return {
128
+ cancelButtonText: intl.formatMessage({ id: "cancel" }),
129
+ submitButtonText: alertToEdit
130
+ ? intl.formatMessage({ id: "save" })
131
+ : intl.formatMessage({ id: "create" }),
132
+ onCancel: () => onCancel?.(),
133
+ onSubmit,
134
+ isSubmitDisabled: isSubmitDisabled || isSaving || isExecutionTimestampMode,
135
+ isSaving,
136
+ submitButtonTooltipText: isExecutionTimestampMode
137
+ ? intl.formatMessage({ id: "dialogs.alert.save.executionTimestampMode" })
138
+ : undefined,
139
+ ...(isWhiteLabeled
140
+ ? {}
141
+ : {
142
+ helpLinkText: intl.formatMessage({ id: helpTextId }),
143
+ helpLinkHref: "https://www.gooddata.com/docs/cloud/create-dashboards/automation/alerts/",
144
+ }),
145
+ ...(alertToEdit && onDelete
146
+ ? {
147
+ deleteButtonText: intl.formatMessage({ id: "delete" }),
148
+ onDelete,
149
+ }
150
+ : {}),
151
+ };
152
+ }
@@ -1,7 +1,8 @@
1
1
  import { type ComponentType, type ReactNode, type Ref } from "react";
2
2
  import { type DateAttributeGranularity, type IAttribute, type IAutomationMetadataObject, type IDataSetMetadataObject, type IInsight, type IMeasure, type INotificationChannelIdentifier, type INotificationChannelMetadataObject, type IWidget } from "@gooddata/sdk-model";
3
3
  import { type GoodDataSdkError } from "@gooddata/sdk-ui";
4
- import { type IAutomationDialogDestinationProps, type IAutomationDialogFiltersProps, type IAutomationDialogHeaderProps, type IAutomationDialogRecipientsProps, type ISlotProps } from "../shared/slots/types.js";
4
+ import { type ISlotProps } from "@gooddata/sdk-ui-kit";
5
+ import { type IAutomationDialogActionBarProps, type IAutomationDialogDestinationProps, type IAutomationDialogFiltersProps, type IAutomationDialogHeaderProps, type IAutomationDialogRecipientsProps } from "../shared/slots/types.js";
5
6
  /**
6
7
  * @alpha
7
8
  */
@@ -123,12 +124,12 @@ export interface IAlertingDialogFiltersProps extends IAutomationDialogFiltersPro
123
124
  export interface IAlertingDialogSlots {
124
125
  /**
125
126
  * Wraps or replaces the dialog header (the title input row). Must have a stable reference
126
- * identity — see {@link ISlotProps}.
127
+ * identity — see {@link @gooddata/sdk-ui-kit#ISlotProps}.
127
128
  */
128
129
  Header?: ComponentType<ISlotProps<AlertingDialogHeaderDefaultProps>>;
129
130
  /**
130
131
  * Wraps or replaces the dialog's filters region (the filter and parameter chips). Must have
131
- * a stable reference identity — see {@link ISlotProps}.
132
+ * a stable reference identity — see {@link @gooddata/sdk-ui-kit#ISlotProps}.
132
133
  *
133
134
  * Renders only in the fully rendered dialog: not while the dialog context reports loading,
134
135
  * and not while the stale-filters confirmation step is shown.
@@ -140,7 +141,7 @@ export interface IAlertingDialogSlots {
140
141
  Filters?: ComponentType<ISlotProps<IAlertingDialogFiltersProps>>;
141
142
  /**
142
143
  * Wraps or replaces the dialog's destination region (the "Action" row selecting the
143
- * notification channel). Must have a stable reference identity — see {@link ISlotProps}.
144
+ * notification channel). Must have a stable reference identity — see {@link @gooddata/sdk-ui-kit#ISlotProps}.
144
145
  *
145
146
  * Renders only in the fully rendered dialog — not while the dialog context reports loading,
146
147
  * not while the stale-filters confirmation step is shown — **and only when more than one
@@ -150,12 +151,28 @@ export interface IAlertingDialogSlots {
150
151
  Destination?: ComponentType<ISlotProps<IAutomationDialogDestinationProps>>;
151
152
  /**
152
153
  * Wraps or replaces the dialog's recipients region. Must have a stable reference identity —
153
- * see {@link ISlotProps}.
154
+ * see {@link @gooddata/sdk-ui-kit#ISlotProps}.
154
155
  *
155
156
  * Renders only in the fully rendered dialog: not while the dialog context reports loading,
156
157
  * and not while the stale-filters confirmation step is shown.
157
158
  */
158
159
  Recipients?: ComponentType<ISlotProps<IAutomationDialogRecipientsProps>>;
160
+ /**
161
+ * Wraps or replaces the dialog's action bar (the footer row: documentation link, Delete in
162
+ * edit mode, Cancel and the submit button). Must have a stable reference identity — see
163
+ * {@link @gooddata/sdk-ui-kit#ISlotProps}.
164
+ *
165
+ * Renders only in the fully rendered dialog: not while the dialog context reports loading
166
+ * (the loading dialog keeps its own footer), and not while the stale-filters confirmation
167
+ * step is shown.
168
+ *
169
+ * A replacement that does not render `Default` loses the submit button's Enter-key detection
170
+ * id (Enter no longer submits), the validation aria wiring, and the default row's ordering.
171
+ * Wraps that render `<Default {...defaultProps} />` keep everything; note the Enter-key path
172
+ * invokes the dialog's own submit handler and disabled state, so `defaultProps` overrides
173
+ * affect the buttons only.
174
+ */
175
+ ActionBar?: ComponentType<ISlotProps<IAutomationDialogActionBarProps>>;
159
176
  }
160
177
  /**
161
178
  * Props of {@link DefaultAlertingDialog}.
@@ -176,7 +193,7 @@ export interface IDefaultAlertingDialogProps extends IAlertingDialogProps {
176
193
  *
177
194
  * @example
178
195
  * The dialog is reached through the `Dashboard` component override; define slot components at
179
- * module scope (see {@link ISlotProps}):
196
+ * module scope (see {@link @gooddata/sdk-ui-kit#ISlotProps}):
180
197
  * ```tsx
181
198
  * function HeaderWithBanner({ Default, defaultProps }: ISlotProps<AlertingDialogHeaderDefaultProps>) {
182
199
  * return (
@@ -195,6 +212,17 @@ export interface IDefaultAlertingDialogProps extends IAlertingDialogProps {
195
212
  * ```
196
213
  */
197
214
  slots?: IAlertingDialogSlots;
215
+ /**
216
+ * Content rendered as the first child of the dialog's scrollable content area, above the
217
+ * form. Rendered only in the fully rendered dialog: not while the dialog context reports
218
+ * loading, and not while the stale-filters confirmation step is shown.
219
+ */
220
+ topContent?: ReactNode;
221
+ /**
222
+ * Content rendered as the last child of the dialog's scrollable content area, below the
223
+ * form. Same rendering conditions as {@link IDefaultAlertingDialogProps.topContent}.
224
+ */
225
+ bottomContent?: ReactNode;
198
226
  }
199
227
  /**
200
228
  * @alpha
@@ -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,5 +1,5 @@
1
1
  import { type IDefaultScheduledEmailDialogProps } from "../types.js";
2
- export declare function ScheduledMailDialogRenderer({ onBack, onCancel, onDeleteSuccess, onDeleteError, onError, onSave, onSaveError, onSaveSuccess, onSubmit, onSuccess, slots }: IDefaultScheduledEmailDialogProps): import("react/jsx-runtime").JSX.Element;
2
+ export declare function ScheduledMailDialogRenderer({ onBack, onCancel, onDeleteSuccess, onDeleteError, onError, onSave, onSaveError, onSaveSuccess, onSubmit, onSuccess, slots, topContent, bottomContent }: IDefaultScheduledEmailDialogProps): import("react/jsx-runtime").JSX.Element;
3
3
  /**
4
4
  * Default implementation of the scheduled export create/edit dialog.
5
5
  *
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultScheduledEmailDialog.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.tsx"],"names":[],"mappings":"AA+CA,OAAO,EACH,KAAK,iCAAiC,EAKzC,MAAM,aAAa,CAAC;AA8DrB,wBAAgB,2BAA2B,CAAC,EACxC,MAAM,EACN,QAAQ,EACR,eAAe,EACf,aAAa,EACb,OAAO,EACP,MAAM,EACN,WAAW,EACX,aAAa,EACb,QAAQ,EACR,SAAS,EACT,KAAK,EACR,EAAE,iCAAiC,2CAglBnC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,iCAAiC,2CAYnF"}
1
+ {"version":3,"file":"DefaultScheduledEmailDialog.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.tsx"],"names":[],"mappings":"AAsDA,OAAO,EAAE,KAAK,iCAAiC,EAAE,MAAM,aAAa,CAAC;AAuBrE,wBAAgB,2BAA2B,CAAC,EACxC,MAAM,EACN,QAAQ,EACR,eAAe,EACf,aAAa,EACb,OAAO,EACP,MAAM,EACN,WAAW,EACX,aAAa,EACb,QAAQ,EACR,SAAS,EACT,KAAK,EACL,UAAU,EACV,aAAa,EAChB,EAAE,iCAAiC,2CA4cnC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,iCAAiC,2CAYnF"}
@@ -2,24 +2,24 @@ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-run
2
2
  // (C) 2019-2026 GoodData Corporation
3
3
  import { useCallback, useMemo, useRef, useState } from "react";
4
4
  import cx from "classnames";
5
- import { defineMessage, useIntl } from "react-intl";
5
+ import { useIntl } from "react-intl";
6
6
  import { ValidationContextStore, createInvalidNode, useValidationContextValue } from "@gooddata/sdk-ui";
7
- import { Button, ConfirmDialogBase, ContentDivider, Hyperlink, Message, Overlay, OverlayController, OverlayControllerProvider, RecurrenceForm, ScrollablePanel, UiIcon, UiTabs, getTimezoneDisplayLabel, isEnterKey, useIdPrefixed, } from "@gooddata/sdk-ui-kit";
7
+ import { ConfirmDialogBase, ContentDivider, Message, Overlay, OverlayController, OverlayControllerProvider, RecurrenceForm, ScrollablePanel, UiTabs, getTimezoneDisplayLabel, isEnterKey, useIdPrefixed, } from "@gooddata/sdk-ui-kit";
8
8
  import { DASHBOARD_DIALOG_OVERS_Z_INDEX } from "../../../constants/zIndex.js";
9
9
  import { IntlWrapper } from "../../../localization/IntlWrapper.js";
10
10
  import { useAutomationsContext } from "../../contexts/AutomationsContext.js";
11
11
  import { useScheduledEmailDialogContext } from "../../contexts/ScheduledEmailDialogContext.js";
12
12
  import { ApplyCurrentFiltersConfirmDialog } from "../../shared/automationFilters/components/ApplyLatestFiltersConfirmDialog.js";
13
+ import { AutomationDialogActionBar, AutomationDialogFooterLeft, } from "../../shared/slots/AutomationDialogActionBar.js";
13
14
  import { DeleteScheduleConfirmDialog } from "../DefaultScheduledEmailManagementDialog/components/DeleteScheduleConfirmDialog.js";
14
15
  import { useScheduleEmailDialogAccessibility } from "../hooks/useScheduleEmailDialogAccessibility.js";
15
16
  import { useScheduledExportActions } from "../state/ScheduledExportActionsContext.js";
16
- import { useScheduledExportData } from "../state/ScheduledExportDataContext.js";
17
17
  import { useScheduledExportDraft } from "../state/ScheduledExportDraftContext.js";
18
18
  import { useScheduledExportFilters } from "../state/ScheduledExportFiltersContext.js";
19
+ import { useScheduledEmailDialogActionBarProps, useScheduledEmailDialogDestinationProps, useScheduledEmailDialogFiltersProps, useScheduledEmailDialogHeaderProps, useScheduledEmailDialogRecipientsProps, useScheduledEmailDialogTimezoneProps, } from "../state/useScheduledEmailDialogRegionProps.js";
19
20
  import { useScheduledExportAttachments } from "../state/useScheduledExportAttachments.js";
20
21
  import { useScheduledExportDialogValidity } from "../state/useScheduledExportDialogValidity.js";
21
22
  import { getDefaultCronExpression } from "../utils/cron.js";
22
- import { isMobileView } from "../utils/responsive.js";
23
23
  import { TIMEZONE_DEFAULT } from "../utils/timezone.js";
24
24
  import { DashboardAttachments } from "./components/Attachments/DashboardAttachments.js";
25
25
  import { WidgetAttachments } from "./components/Attachments/WidgetAttachments.js";
@@ -37,89 +37,64 @@ import { useElementHeightSnapshot } from "./hooks/useElementHeightSnapshot.js";
37
37
  import { useSaveScheduledEmailToBackend } from "./hooks/useSaveScheduledEmailToBackend.js";
38
38
  const CLOSE_ON_PARENT_SCROLL = true;
39
39
  const overlayController = OverlayController.getInstance(DASHBOARD_DIALOG_OVERS_Z_INDEX);
40
- function ScheduledEmailDialogFooter({ isWhiteLabeled, helpTextId, scheduledExportToEdit, isSavingScheduledEmail, onDeleteClick, }) {
41
- const intl = useIntl();
42
- 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/scheduled-exports/#ScheduleExportsinDashboards-ScheduleExport", iconClass: "gd-icon-circle-question" })), scheduledExportToEdit ? (_jsx(Button, { className: "gd-button-link-dimmed", value: intl.formatMessage({ id: "delete" }), onClick: onDeleteClick, disabled: isSavingScheduledEmail })) : null] }));
43
- }
44
- export function ScheduledMailDialogRenderer({ onBack, onCancel, onDeleteSuccess, onDeleteError, onError, onSave, onSaveError, onSaveSuccess, onSubmit, onSuccess, slots, }) {
40
+ export function ScheduledMailDialogRenderer({ onBack, onCancel, onDeleteSuccess, onDeleteError, onError, onSave, onSaveError, onSaveSuccess, onSubmit, onSuccess, slots, topContent, bottomContent, }) {
45
41
  const HeaderSlot = slots?.Header;
46
42
  const FiltersSlot = slots?.Filters;
47
43
  const TimezoneSlot = slots?.Timezone;
48
44
  const DestinationSlot = slots?.Destination;
49
45
  const RecipientsSlot = slots?.Recipients;
46
+ const ActionBarSlot = slots?.ActionBar;
50
47
  const intl = useIntl();
51
48
  const dialogTitleRef = useRef(null);
52
49
  const generalTabContentRef = useRef(null);
53
50
  const filtersTabContentRef = useRef(null);
54
51
  const [scheduledEmailToDelete, setScheduledEmailToDelete] = useState(null);
55
52
  const [selectedTabId, setSelectedTabId] = useState("general");
56
- const { isWhiteLabeled, externalRecipient: externalRecipientOverride, isSecondaryTitleVisible, tabIds, } = useAutomationsContext();
57
- const { exportTemplates, widgetTitle, scheduledExportToEdit, widget, dashboardFilters, notificationChannels, } = useScheduledEmailDialogContext();
53
+ const { isWhiteLabeled, tabIds } = useAutomationsContext();
54
+ const { exportTemplates, widget, dashboardFilters, notificationChannels } = useScheduledEmailDialogContext();
58
55
  const handleScheduleDeleteSuccess = () => {
59
56
  onDeleteSuccess?.();
60
57
  setScheduledEmailToDelete(null);
61
58
  };
62
- const { locale, dashboardTitle, dateFormat, weekStart, maxAutomationsRecipients, allowHourlyRecurrence, isCrossFiltering, isExecutionTimestampMode, isSlidesExportEnabled, isAccessibilityModeEnabled, enableAutomationEvaluationMode, } = useDefaultScheduledEmailDialogData();
63
- const { editedAutomation, startDate, isTimezoneFeatureEnabled, canSelectScheduleTimezone, scheduleTimezoneSelection, defaultResolvedTimezone, scheduleTimezoneIsStale, } = useScheduledExportDraft();
64
- const { onTitleChange, onRecurrenceChange, onEvaluationModeChange, onDestinationChange, onRecipientsChange, onSubjectChange, onMessageChange, onDashboardAttachmentsChange, onWidgetAttachmentsChange, onXlsxSettingsChange, onPdfSettingsChange, onCsvSettingsChange, onCsvRawSettingsChange, onSlidesTemplateIdChange, onScheduleTimezoneChange, applyCurrentScheduleTimezone, } = useScheduledExportActions();
65
- const { defaultUser } = useScheduledExportData();
66
- const { selectedFilters, availableFilters, storeFilters, filtersByTab, editedFiltersByTab, onFiltersChange, onFiltersByTabChange, onApplyCurrentFilters, onStoreFiltersChange, automationIsValid, parametersEnabled, visibleParametersByTab, availableParametersByTab, flatTabId, onParameterAdd, onParameterChange, onParameterDelete, onParameterAddByTab, onParameterChangeByTab, onParameterDeleteByTab, applyLatest: applyLatestParameters, } = useScheduledExportFilters();
59
+ const { locale, dashboardTitle, dateFormat, weekStart, allowHourlyRecurrence, isCrossFiltering, isSlidesExportEnabled, isAccessibilityModeEnabled, enableAutomationEvaluationMode, } = useDefaultScheduledEmailDialogData();
60
+ const { editedAutomation, startDate, isTimezoneFeatureEnabled, canSelectScheduleTimezone, scheduleTimezoneIsStale, } = useScheduledExportDraft();
61
+ const { onRecurrenceChange, onEvaluationModeChange, onSubjectChange, onMessageChange, onDashboardAttachmentsChange, onWidgetAttachmentsChange, onXlsxSettingsChange, onPdfSettingsChange, onCsvSettingsChange, onCsvRawSettingsChange, onSlidesTemplateIdChange, applyCurrentScheduleTimezone, } = useScheduledExportActions();
62
+ const { onApplyCurrentFilters, automationIsValid, applyLatest: applyLatestParameters, } = useScheduledExportFilters();
67
63
  const { selectedAttachments, xlsxSettings, pdfSettings, csvSettings, csvRawSettings, slidesTemplateIds } = useScheduledExportAttachments();
68
- const { isSubmitDisabled, validationErrorMessage, isParentValid, allowExternalRecipients, allowOnlyLoggedUserRecipients, } = useScheduledExportDialogValidity();
64
+ const { isSubmitDisabled, validationErrorMessage } = useScheduledExportDialogValidity();
69
65
  // a stale schedule timezone repairs through the same consent dialog as stale filters
70
66
  const [isApplyCurrentFiltersDialogOpen, setIsApplyCurrentFiltersDialogOpen] = useState(!automationIsValid || scheduleTimezoneIsStale);
71
- const { handleSaveScheduledEmail, isSavingScheduledEmail, savingErrorMessage } = useSaveScheduledEmailToBackend(editedAutomation, {
72
- onSuccess,
73
- onError,
74
- onSubmit,
75
- onSaveSuccess,
76
- onSaveError,
77
- onSave,
78
- });
67
+ const { handleSaveScheduledEmail, isSavingScheduledEmail, savingErrorMessage } = useSaveScheduledEmailToBackend({ onSuccess, onError, onSubmit, onSaveSuccess, onSaveError, onSave });
79
68
  const { returnFocusTo } = useScheduleEmailDialogAccessibility();
80
69
  const missingAttachmentsErrorMessage = selectedAttachments.length === 0 &&
81
70
  intl.formatMessage({ id: "scheduledEmail.attachments.error.noAttachmentsSelected" });
82
71
  const validationContextValue = useValidationContextValue(createInvalidNode({ id: "ScheduledEmailDialog" }));
83
72
  const { getInvalidDatapoints } = validationContextValue;
84
73
  const errorMessage = savingErrorMessage ?? validationErrorMessage ?? missingAttachmentsErrorMessage;
85
- const helpTextId = isMobileView()
86
- ? defineMessage({ id: "dialogs.schedule.email.footer.title.short" }).id
87
- : defineMessage({ id: "dialogs.schedule.email.footer.title" }).id;
88
74
  const titleElementId = useIdPrefixed("title");
89
- const submitDisabled = isSubmitDisabled || isSavingScheduledEmail || isExecutionTimestampMode;
75
+ const actionBarDefaultProps = useScheduledEmailDialogActionBarProps({
76
+ onCancel,
77
+ onSubmit: handleSaveScheduledEmail,
78
+ isSaving: isSavingScheduledEmail,
79
+ onDelete: () => setScheduledEmailToDelete(editedAutomation),
80
+ });
81
+ const submitDisabled = actionBarDefaultProps.isSubmitDisabled;
90
82
  const handleSubmitForm = useCallback((e) => {
91
83
  if (isEnterKey(e) && !submitDisabled) {
92
84
  handleSaveScheduledEmail();
93
85
  }
94
86
  }, [submitDisabled, handleSaveScheduledEmail]);
95
- // the exact props the default dialog renders the "Time zone" section with; also handed to the
96
- // Timezone slot so a wrap keeps the default behavior
97
- const timezoneDefaultProps = {
98
- isWidget: !!widget,
99
- selection: scheduleTimezoneSelection,
100
- defaultResolvedTimezone,
101
- onTimezoneChange: onScheduleTimezoneChange,
102
- };
103
- const { secondaryTitle, secondaryTitleIcon } = useMemo(() => {
104
- if (widget) {
105
- return {
106
- secondaryTitle: widgetTitle,
107
- secondaryTitleIcon: (_jsx(UiIcon, { type: "visualization", size: 16, color: "complementary-6", accessibilityConfig: {
108
- ariaLabel: intl.formatMessage({
109
- id: "dialogs.automation.icon.ariaLabel.sourceVisualization",
110
- }),
111
- } })),
112
- };
113
- }
114
- return {
115
- secondaryTitle: dashboardTitle,
116
- secondaryTitleIcon: (_jsx(UiIcon, { type: "dashboard", size: 16, color: "complementary-6", accessibilityConfig: {
117
- ariaLabel: intl.formatMessage({
118
- id: "dialogs.automation.icon.ariaLabel.sourceDashboard",
119
- }),
120
- } })),
121
- };
122
- }, [widget, widgetTitle, dashboardTitle, intl]);
87
+ const headerDefaultProps = useScheduledEmailDialogHeaderProps({
88
+ onBack,
89
+ onTitleKeyDown: handleSubmitForm,
90
+ ref: dialogTitleRef,
91
+ });
92
+ const filtersDefaultProps = useScheduledEmailDialogFiltersProps();
93
+ const destinationDefaultProps = useScheduledEmailDialogDestinationProps();
94
+ const recipientsDefaultProps = useScheduledEmailDialogRecipientsProps({
95
+ onKeyDownSubmit: handleSubmitForm,
96
+ });
97
+ const timezoneDefaultProps = useScheduledEmailDialogTimezoneProps();
123
98
  const tabs = useMemo(() => [
124
99
  {
125
100
  id: "general",
@@ -153,50 +128,8 @@ export function ScheduledMailDialogRenderer({ onBack, onCancel, onDeleteSuccess,
153
128
  }
154
129
  const selectedChannel = notificationChannels.find((channel) => channel.id === editedAutomation.notificationChannel);
155
130
  const isInPlatformChannel = selectedChannel?.destinationType === "inPlatform";
156
- const filtersDefaultProps = {
157
- availableFilters,
158
- selectedFilters,
159
- onFiltersChange,
160
- storeFilters,
161
- onStoreFiltersChange,
162
- isDashboardAutomation: !widget,
163
- filtersByTab,
164
- editedFiltersByTab,
165
- onFiltersByTabChange,
166
- parameters: flatTabId ? visibleParametersByTab[flatTabId] : undefined,
167
- availableParameters: flatTabId ? availableParametersByTab[flatTabId] : undefined,
168
- onParameterAdd,
169
- onParameterChange,
170
- onParameterDelete,
171
- parametersByTab: visibleParametersByTab,
172
- availableParametersByTab,
173
- onParameterAddByTab,
174
- onParameterChangeByTab,
175
- onParameterDeleteByTab,
176
- parametersEnabled,
177
- };
178
- const destinationDefaultProps = {
179
- notificationChannels,
180
- selectedNotificationChannelId: editedAutomation.notificationChannel,
181
- onChange: onDestinationChange,
182
- };
183
- const recipientsDefaultProps = {
184
- loggedUser: defaultUser,
185
- value: editedAutomation.recipients ?? [],
186
- onChange: onRecipientsChange,
187
- allowEmptySelection: true,
188
- allowOnlyLoggedUserRecipients,
189
- allowExternalRecipients,
190
- maxRecipients: maxAutomationsRecipients,
191
- notificationChannels,
192
- notificationChannelId: editedAutomation.notificationChannel,
193
- onKeyDownSubmit: handleSubmitForm,
194
- externalRecipientOverride,
195
- };
196
131
  return (_jsxs(_Fragment, { children: [
197
- _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: scheduledExportToEdit
198
- ? intl.formatMessage({ id: `dialogs.schedule.email.save` })
199
- : intl.formatMessage({ id: `dialogs.schedule.email.create` }), accessibilityConfig: {
132
+ _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: actionBarDefaultProps.cancelButtonText, submitButtonText: actionBarDefaultProps.submitButtonText, accessibilityConfig: {
200
133
  closeButton: {
201
134
  ariaLabel: intl.formatMessage({
202
135
  id: "dialogs.schedule.email.closeLabel",
@@ -204,26 +137,11 @@ export function ScheduledMailDialogRenderer({ onBack, onCancel, onDeleteSuccess,
204
137
  },
205
138
  titleElementId,
206
139
  dialogId: SCHEDULED_EMAIL_DIALOG_ID,
207
- }, showProgressIndicator: isSavingScheduledEmail, returnFocusTo: returnFocusTo, returnFocusAfterClose: false, footerLeftRenderer: () => (_jsx(ScheduledEmailDialogFooter, { isWhiteLabeled: isWhiteLabeled, helpTextId: helpTextId, scheduledExportToEdit: scheduledExportToEdit, isSavingScheduledEmail: isSavingScheduledEmail, onDeleteClick: () => setScheduledEmailToDelete(editedAutomation) })), isSubmitDisabled: submitDisabled, submitButtonTooltipText: isExecutionTimestampMode
208
- ? intl.formatMessage({
209
- id: "dialogs.schedule.email.save.executionTimestampMode",
210
- })
211
- : undefined, initialFocus: dialogTitleRef, submitOnEnterKey: false, onCancel: onCancel, onSubmit: handleSaveScheduledEmail, headline: undefined, headerLeftButtonRenderer: () => {
212
- const headerDefaultProps = {
213
- title: editedAutomation.title ?? "",
214
- onChange: onTitleChange,
215
- onBack,
216
- placeholder: intl.formatMessage({
217
- id: "dialogs.schedule.email.title.placeholder",
218
- }),
219
- ref: dialogTitleRef,
220
- onTitleKeyDown: handleSubmitForm,
221
- secondaryTitle,
222
- secondaryTitleIcon,
223
- isSecondaryTitleVisible: isSecondaryTitleVisible
224
- ? isParentValid
225
- : undefined,
226
- };
140
+ }, showProgressIndicator: actionBarDefaultProps.isSaving, returnFocusTo: returnFocusTo, returnFocusAfterClose: false, footerLeftRenderer: ActionBarSlot
141
+ ? undefined
142
+ : () => (_jsx(AutomationDialogFooterLeft, { helpLinkText: actionBarDefaultProps.helpLinkText, helpLinkHref: actionBarDefaultProps.helpLinkHref, deleteButtonText: actionBarDefaultProps.deleteButtonText, onDelete: actionBarDefaultProps.onDelete, isDeleteDisabled: actionBarDefaultProps.isSaving })), footerRenderer: ActionBarSlot
143
+ ? () => (_jsx(ActionBarSlot, { Default: AutomationDialogActionBar, defaultProps: actionBarDefaultProps }))
144
+ : undefined, isSubmitDisabled: actionBarDefaultProps.isSubmitDisabled, submitButtonTooltipText: actionBarDefaultProps.submitButtonTooltipText, initialFocus: dialogTitleRef, submitOnEnterKey: false, onCancel: onCancel, onSubmit: actionBarDefaultProps.onSubmit, headline: undefined, headerLeftButtonRenderer: () => {
227
145
  return HeaderSlot ? (_jsx(HeaderSlot, { Default: ScheduledEmailDialogHeader, defaultProps: headerDefaultProps })) : (_jsx(ScheduledEmailDialogHeader, { ...headerDefaultProps }));
228
146
  }, children: [
229
147
  _jsx("h2", { className: "sr-only", id: titleElementId, children: intl.formatMessage({ id: "dialogs.schedule.email.accessibilityTitle" }) }), tabs.length > 1 ? (_jsx(UiTabs, { tabs: tabs, selectedTabId: selectedTabId, onTabSelect: handleTabSelect, size: "medium", accessibilityConfig: {
@@ -235,8 +153,7 @@ export function ScheduledMailDialogRenderer({ onBack, onCancel, onDeleteSuccess,
235
153
  }, disableBottomBorder: true })) : null, _jsxs(ScrollablePanel, { className: cx("gd-notifications-channel-dialog-content-wrapper", {
236
154
  "gd-notification-channel-dialog-with-automation-filters": true,
237
155
  "gd-notification-channel-dialog-with-tabs": tabs.length > 1,
238
- }), children: [
239
- _jsx("div", { className: "gd-divider-with-margin" }), selectedTabId === "filters" ? (_jsx("div", { ref: filtersTabContentRef, className: "gd-schedule-dialog-tab-content", style: tabContentHeight
156
+ }), children: [topContent, _jsx("div", { className: "gd-divider-with-margin" }), selectedTabId === "filters" ? (_jsx("div", { ref: filtersTabContentRef, className: "gd-schedule-dialog-tab-content", style: tabContentHeight
240
157
  ? { minHeight: `${tabContentHeight}px` }
241
158
  : undefined, children: FiltersSlot ? (_jsx(FiltersSlot, { Default: ScheduledEmailDialogFilters, defaultProps: filtersDefaultProps })) : (_jsx(ScheduledEmailDialogFilters, { ...filtersDefaultProps })) })) : (_jsxs("div", { ref: generalTabContentRef, className: "gd-schedule-dialog-tab-content", children: [!widget && tabIds.length > 1 ? (_jsx(Message, { type: "progress", className: "gd-schedule-dialog-tab-content-info", children: intl.formatMessage({
242
159
  id: "dialogs.schedule.email.tabs.info",
@@ -257,7 +174,7 @@ export function ScheduledMailDialogRenderer({ onBack, onCancel, onDeleteSuccess,
257
174
  .filter((invalidDatapoint) => invalidDatapoint.severity === "error")
258
175
  .map((invalidDatapoint) => (_jsx(Message, { id: invalidDatapoint.id, type: "error", className: cx("gd-notifications-channels-dialog-error", {
259
176
  "gd-notifications-channels-dialog-error-scrollable": true,
260
- }), children: invalidDatapoint.message }, invalidDatapoint.id)))] }))] })
177
+ }), children: invalidDatapoint.message }, invalidDatapoint.id)))] })), bottomContent] })
261
178
  ] }) }) }) }), scheduledEmailToDelete ? (_jsx(DeleteScheduleConfirmDialog, { scheduledEmail: scheduledEmailToDelete, onCancel: () => setScheduledEmailToDelete(null), onSuccess: handleScheduleDeleteSuccess, onError: onDeleteError })) : null] }));
262
179
  }
263
180
  /**
@@ -297,17 +214,15 @@ function DefaultScheduledEmailDialogBody(props) {
297
214
  return (_jsx(IntlWrapper, { locale: locale, children: _jsx(ScheduledMailDialogRenderer, { ...props }) }));
298
215
  }
299
216
  function useDefaultScheduledEmailDialogData() {
300
- const { locale, settings, weekStart, maxAutomationsRecipients, allowHourlyRecurrence, isExecutionTimestampMode, features: { enableSlideshowExports, enableAutomationEvaluationMode }, } = useAutomationsContext();
217
+ const { locale, settings, weekStart, allowHourlyRecurrence, features: { enableSlideshowExports, enableAutomationEvaluationMode }, } = useAutomationsContext();
301
218
  const { dashboardTitle, dateFormat, isCrossFiltering } = useScheduledEmailDialogContext();
302
219
  return {
303
220
  locale,
304
221
  dashboardTitle,
305
222
  dateFormat,
306
223
  weekStart,
307
- maxAutomationsRecipients,
308
224
  allowHourlyRecurrence,
309
225
  isCrossFiltering,
310
- isExecutionTimestampMode,
311
226
  isSlidesExportEnabled: enableSlideshowExports,
312
227
  isAccessibilityModeEnabled: settings?.enableAccessibilityMode === true,
313
228
  enableAutomationEvaluationMode,
@@ -1 +1 @@
1
- {"version":3,"file":"AttachmentSettings.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/AttachmentSettings.tsx"],"names":[],"mappings":"AAMA,OAAO,EAEH,KAAK,4CAA4C,EAIpD,MAAM,qBAAqB,CAAC;AAsC7B,KAAK,uBAAuB,GAAG,MAAM,GAAG,aAAa,GAAG,KAAK,GAAG,SAAS,CAAC;AAE1E,MAAM,WAAW,wBAAwB;IACrC,IAAI,EAAE,uBAAuB,CAAC;IAC9B,QAAQ,EAAE,4CAA4C,CAAC;IACvD,gBAAgB,EAAE,CAAC,QAAQ,EAAE,4CAA4C,KAAK,IAAI,CAAC;CACtF;AA6BD,wBAAgB,kBAAkB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,wBAAwB,2CA2WhG"}
1
+ {"version":3,"file":"AttachmentSettings.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/AttachmentSettings.tsx"],"names":[],"mappings":"AAMA,OAAO,EACH,KAAK,4CAA4C,EAIpD,MAAM,qBAAqB,CAAC;AAsC7B,KAAK,uBAAuB,GAAG,MAAM,GAAG,aAAa,GAAG,KAAK,GAAG,SAAS,CAAC;AAE1E,MAAM,WAAW,wBAAwB;IACrC,IAAI,EAAE,uBAAuB,CAAC;IAC9B,QAAQ,EAAE,4CAA4C,CAAC;IACvD,gBAAgB,EAAE,CAAC,QAAQ,EAAE,4CAA4C,KAAK,IAAI,CAAC;CACtF;AA6BD,wBAAgB,kBAAkB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,wBAAwB,2CA0WhG"}
@@ -2,7 +2,7 @@ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-run
2
2
  // (C) 2025-2026 GoodData Corporation
3
3
  import { useId, useMemo, useState } from "react";
4
4
  import { FormattedMessage, useIntl } from "react-intl";
5
- import { DEFAULT_CSV_DELIMITER, getCsvDelimiterState, getCsvDelimiterValidationError, getCsvDelimiterValue, } from "@gooddata/sdk-model";
5
+ import { getCsvDelimiterState, getCsvDelimiterValidationError, getCsvDelimiterValue, } from "@gooddata/sdk-model";
6
6
  import { Button, ContentDivider, CsvDelimiterPicker, Dropdown, DropdownButton, UiIcon, UiMenu, isEscapeKey, } from "@gooddata/sdk-ui-kit";
7
7
  import { AUTOMATION_ATTACHMENT_SETTINGS_DIALOG_TITLE_ID } from "../../../../../constants/automations.js";
8
8
  const DROPDOWN_ALIGN_POINTS = [
@@ -45,7 +45,6 @@ export function AttachmentSettings({ type, settings, onSettingsChange }) {
45
45
  const legacyOrientation = settings.orientation;
46
46
  const legacyPageOrientation = mapLegacyOrientationToPageOrientation(legacyOrientation);
47
47
  const resolvedDefaultPageSize = settings.pageSize ?? DEFAULT_PDF_PAGE_SIZE;
48
- const resolvedCsvDelimiter = settings.delimiter ?? DEFAULT_CSV_DELIMITER;
49
48
  const resolvedCsvState = getCsvDelimiterState(settings.delimiter);
50
49
  const [mergeHeaders, setMergeHeaders] = useState(settings.mergeHeaders ?? true);
51
50
  const [exportInfo, setExportInfo] = useState(settings.exportInfo ?? true);
@@ -117,7 +116,7 @@ export function AttachmentSettings({ type, settings, onSettingsChange }) {
117
116
  const csvValidationError = csvDelimiterValue.selectedPreset === "custom"
118
117
  ? getCsvDelimiterValidationError(csvDelimiterValue.customDelimiter)
119
118
  : undefined;
120
- const isCsvSettingsDirty = selectedDelimiter !== resolvedCsvDelimiter;
119
+ const isCsvSettingsDirty = selectedDelimiter !== settings.delimiter;
121
120
  const isSettingsDirty = isPdfTabular
122
121
  ? isPdfSettingsDirty
123
122
  : isCsv
@@ -1,6 +1,21 @@
1
- import { type IAutomationMetadataObject, type IAutomationMetadataObjectDefinition } from "@gooddata/sdk-model";
2
1
  import { type IScheduledEmailDialogProps } from "../../types.js";
3
- export declare function useSaveScheduledEmailToBackend(automation: IAutomationMetadataObject | IAutomationMetadataObjectDefinition, { onSuccess, onError, onSubmit, onSaveSuccess, onSaveError, onSave }: Pick<IScheduledEmailDialogProps, "onSuccess" | "onError" | "onSubmit" | "onSaveSuccess" | "onSaveError" | "onSave">): {
2
+ /**
3
+ * Lifecycle callbacks of {@link useSaveScheduledEmailToBackend}: `onSubmit`/`onSuccess`/`onError`
4
+ * (create) and `onSave`/`onSaveSuccess`/`onSaveError` (edit).
5
+ *
6
+ * @internal
7
+ */
8
+ export type IUseSaveScheduledEmailCallbacks = Pick<IScheduledEmailDialogProps, "onSuccess" | "onError" | "onSubmit" | "onSaveSuccess" | "onSaveError" | "onSave">;
9
+ /**
10
+ * Saves the scheduled-export dialog's draft: creates a new schedule or updates the edited one after
11
+ * sanitizing it, keeps a 400 response's detail as an in-dialog error message, and routes everything
12
+ * else to the matching callback.
13
+ *
14
+ * Reads the draft from the scheduled-export state contexts, so it throws outside them.
15
+ *
16
+ * @internal
17
+ */
18
+ export declare function useSaveScheduledEmailToBackend({ onSuccess, onError, onSubmit, onSaveSuccess, onSaveError, onSave }: IUseSaveScheduledEmailCallbacks): {
4
19
  handleSaveScheduledEmail: () => void;
5
20
  isSavingScheduledEmail: boolean;
6
21
  savingErrorMessage: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"useSaveScheduledEmailToBackend.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useSaveScheduledEmailToBackend.ts"],"names":[],"mappings":"AAOA,OAAO,EACH,KAAK,yBAAyB,EAC9B,KAAK,mCAAmC,EAO3C,MAAM,qBAAqB,CAAC;AAI7B,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAEjE,wBAAgB,8BAA8B,CAC1C,UAAU,EAAE,yBAAyB,GAAG,mCAAmC,EAC3E,EACI,SAAS,EACT,OAAO,EACP,QAAQ,EACR,aAAa,EACb,WAAW,EACX,MAAM,EACT,EAAE,IAAI,CACH,0BAA0B,EAC1B,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,eAAe,GAAG,aAAa,GAAG,QAAQ,CACpF;;;;EAwEJ"}
1
+ {"version":3,"file":"useSaveScheduledEmailToBackend.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useSaveScheduledEmailToBackend.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAEjE;;;;;GAKG;AACH,MAAM,MAAM,+BAA+B,GAAG,IAAI,CAC9C,0BAA0B,EAC1B,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,eAAe,GAAG,aAAa,GAAG,QAAQ,CACpF,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,8BAA8B,CAAC,EAC3C,SAAS,EACT,OAAO,EACP,QAAQ,EACR,aAAa,EACb,WAAW,EACX,MAAM,EACT,EAAE,+BAA+B,GAAG;IACjC,wBAAwB,EAAE,MAAM,IAAI,CAAC;IACrC,sBAAsB,EAAE,OAAO,CAAC;IAChC,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1C,CAwEA"}