@gooddata/sdk-ui-dashboard 11.48.0-alpha.0 → 11.48.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (227) hide show
  1. package/NOTICE +1 -1
  2. package/esm/__version.d.ts +1 -1
  3. package/esm/__version.js +1 -1
  4. package/esm/_staging/automation/index.d.ts +7 -9
  5. package/esm/_staging/automation/index.d.ts.map +1 -1
  6. package/esm/_staging/automation/index.js +22 -12
  7. package/esm/_staging/dateFilterConfig/validation.d.ts.map +1 -1
  8. package/esm/_staging/dateFilterConfig/validation.js +6 -5
  9. package/esm/index.d.ts +1 -1
  10. package/esm/index.d.ts.map +1 -1
  11. package/esm/index.js +1 -1
  12. package/esm/kdaDialog/components/KdaFooter.js +1 -1
  13. package/esm/kdaDialog/components/columns/driverColumn.js +1 -1
  14. package/esm/kdaDialog/composition/KeyDriversPanel.d.ts.map +1 -1
  15. package/esm/kdaDialog/composition/KeyDriversPanel.js +5 -1
  16. package/esm/kdaDialog/dialog/hooks/useChangeAnalysis.d.ts.map +1 -1
  17. package/esm/kdaDialog/dialog/hooks/useChangeAnalysis.js +2 -1
  18. package/esm/model/commandHandlers/scheduledEmail/automationParametersRestore.d.ts +10 -3
  19. package/esm/model/commandHandlers/scheduledEmail/automationParametersRestore.d.ts.map +1 -1
  20. package/esm/model/commandHandlers/scheduledEmail/automationParametersRestore.js +5 -4
  21. package/esm/model/commandHandlers/scheduledEmail/createScheduledEmailHandler.d.ts.map +1 -1
  22. package/esm/model/commandHandlers/scheduledEmail/createScheduledEmailHandler.js +11 -2
  23. package/esm/model/commandHandlers/scheduledEmail/csvRawExecutionDefinition.d.ts +9 -1
  24. package/esm/model/commandHandlers/scheduledEmail/csvRawExecutionDefinition.d.ts.map +1 -1
  25. package/esm/model/commandHandlers/scheduledEmail/csvRawExecutionDefinition.js +4 -4
  26. package/esm/model/commandHandlers/scheduledEmail/initializeAutomationsHandler.d.ts.map +1 -1
  27. package/esm/model/commandHandlers/scheduledEmail/initializeAutomationsHandler.js +9 -2
  28. package/esm/model/commandHandlers/scheduledEmail/saveScheduledEmailHandler.d.ts.map +1 -1
  29. package/esm/model/commandHandlers/scheduledEmail/saveScheduledEmailHandler.js +11 -2
  30. package/esm/model/commandHandlers/widgets/exportInsightWidgetHandler.d.ts.map +1 -1
  31. package/esm/model/commandHandlers/widgets/exportInsightWidgetHandler.js +47 -13
  32. package/esm/model/react/useExportTemplates.d.ts +7 -2
  33. package/esm/model/react/useExportTemplates.d.ts.map +1 -1
  34. package/esm/model/react/useExportTemplates.js +50 -6
  35. package/esm/model/store/config/configSelectors.d.ts +0 -12
  36. package/esm/model/store/config/configSelectors.d.ts.map +1 -1
  37. package/esm/model/store/config/configSelectors.js +0 -16
  38. package/esm/model/store/tabs/parameters/parametersHelpers.d.ts +1 -1
  39. package/esm/model/store/tabs/parameters/parametersHelpers.d.ts.map +1 -1
  40. package/esm/model/store/tabs/parameters/parametersHelpers.js +10 -11
  41. package/esm/model/store/tabs/parameters/parametersSelectors.d.ts +0 -20
  42. package/esm/model/store/tabs/parameters/parametersSelectors.d.ts.map +1 -1
  43. package/esm/model/store/tabs/parameters/parametersSelectors.js +8 -34
  44. package/esm/presentation/automations/alerting/DefaultAlertingDialog/hooks/useEditAlert.d.ts +1 -1
  45. package/esm/presentation/automations/connectors/hooks/useBuildAlertingDialogContext.js +2 -2
  46. package/esm/presentation/automations/connectors/hooks/useBuildAlertingDialogContext.test.js +1 -1
  47. package/esm/presentation/automations/connectors/hooks/useBuildAutomationsContext.d.ts.map +1 -1
  48. package/esm/presentation/automations/connectors/hooks/useBuildAutomationsContext.js +1 -7
  49. package/esm/presentation/automations/connectors/hooks/useBuildAutomationsContext.test.js +0 -2
  50. package/esm/presentation/automations/connectors/hooks/useBuildScheduledEmailDialogContext.js +2 -2
  51. package/esm/presentation/automations/connectors/hooks/useBuildScheduledEmailDialogContext.test.js +1 -1
  52. package/esm/presentation/automations/contexts/AutomationsContext.d.ts +0 -2
  53. package/esm/presentation/automations/contexts/AutomationsContext.d.ts.map +1 -1
  54. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.d.ts.map +1 -1
  55. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.js +3 -6
  56. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/AttachmentsList.d.ts +1 -2
  57. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/AttachmentsList.d.ts.map +1 -1
  58. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/AttachmentsList.js +2 -5
  59. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/WidgetAttachments.d.ts +1 -2
  60. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/WidgetAttachments.d.ts.map +1 -1
  61. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/WidgetAttachments.js +2 -2
  62. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.d.ts +2 -3
  63. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.d.ts.map +1 -1
  64. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.js +12 -21
  65. package/esm/presentation/automations/shared/automationFilters/automationParameters.d.ts +20 -17
  66. package/esm/presentation/automations/shared/automationFilters/automationParameters.d.ts.map +1 -1
  67. package/esm/presentation/automations/shared/automationFilters/automationParameters.js +57 -40
  68. package/esm/presentation/automations/shared/automationFilters/components/AutomationDateFilter.test.js +0 -2
  69. package/esm/presentation/automations/shared/automationFilters/components/AutomationFiltersSelect.d.ts +4 -4
  70. package/esm/presentation/automations/shared/automationFilters/components/AutomationFiltersSelect.d.ts.map +1 -1
  71. package/esm/presentation/automations/shared/automationFilters/components/AutomationParameter.d.ts +2 -2
  72. package/esm/presentation/automations/shared/automationFilters/components/AutomationParameter.d.ts.map +1 -1
  73. package/esm/presentation/automations/shared/automationFilters/components/AutomationParameter.js +3 -3
  74. package/esm/presentation/automations/shared/automationFilters/hooks/useValidateExistingAutomationFilters.d.ts.map +1 -1
  75. package/esm/presentation/automations/shared/automationFilters/hooks/useValidateExistingAutomationFilters.js +9 -5
  76. package/esm/presentation/automations/shared/automationFilters/useAutomationAlertParameters.d.ts +2 -2
  77. package/esm/presentation/automations/shared/automationFilters/useAutomationAlertParameters.d.ts.map +1 -1
  78. package/esm/presentation/automations/shared/automationFilters/useAutomationAlertParameters.js +13 -5
  79. package/esm/presentation/automations/shared/automationFilters/useAutomationExportParameters.d.ts +3 -3
  80. package/esm/presentation/automations/shared/automationFilters/useAutomationExportParameters.d.ts.map +1 -1
  81. package/esm/presentation/automations/shared/automationFilters/useAutomationExportParameters.js +18 -10
  82. package/esm/presentation/automations/shared/automationFilters/useAutomationFilters.d.ts +1 -1
  83. package/esm/presentation/automations/shared/automationFilters/useAutomationFilters.d.ts.map +1 -1
  84. package/esm/presentation/automations/shared/automationFilters/useAutomationFilters.js +4 -4
  85. package/esm/presentation/automations/shared/automationFilters/useParameterAnnouncements.d.ts +2 -2
  86. package/esm/presentation/automations/shared/automationFilters/useParameterAnnouncements.d.ts.map +1 -1
  87. package/esm/presentation/dashboard/components/DashboardInner.d.ts.map +1 -1
  88. package/esm/presentation/dashboard/components/DashboardInner.js +1 -0
  89. package/esm/presentation/filterBar/measureValueFilter/MeasureValueFilterConfiguration.d.ts.map +1 -1
  90. package/esm/presentation/filterBar/measureValueFilter/MeasureValueFilterConfiguration.js +3 -1
  91. package/esm/presentation/localization/bundles/de-DE.localization-bundle.d.ts +1 -0
  92. package/esm/presentation/localization/bundles/de-DE.localization-bundle.d.ts.map +1 -1
  93. package/esm/presentation/localization/bundles/de-DE.localization-bundle.js +1 -0
  94. package/esm/presentation/localization/bundles/en-AU.localization-bundle.d.ts +1 -0
  95. package/esm/presentation/localization/bundles/en-AU.localization-bundle.d.ts.map +1 -1
  96. package/esm/presentation/localization/bundles/en-AU.localization-bundle.js +1 -0
  97. package/esm/presentation/localization/bundles/en-GB.localization-bundle.d.ts +1 -0
  98. package/esm/presentation/localization/bundles/en-GB.localization-bundle.d.ts.map +1 -1
  99. package/esm/presentation/localization/bundles/en-GB.localization-bundle.js +1 -0
  100. package/esm/presentation/localization/bundles/es-419.localization-bundle.d.ts +1 -0
  101. package/esm/presentation/localization/bundles/es-419.localization-bundle.d.ts.map +1 -1
  102. package/esm/presentation/localization/bundles/es-419.localization-bundle.js +1 -0
  103. package/esm/presentation/localization/bundles/es-ES.localization-bundle.d.ts +1 -0
  104. package/esm/presentation/localization/bundles/es-ES.localization-bundle.d.ts.map +1 -1
  105. package/esm/presentation/localization/bundles/es-ES.localization-bundle.js +1 -0
  106. package/esm/presentation/localization/bundles/fi-FI.localization-bundle.d.ts +1 -0
  107. package/esm/presentation/localization/bundles/fi-FI.localization-bundle.d.ts.map +1 -1
  108. package/esm/presentation/localization/bundles/fi-FI.localization-bundle.js +1 -0
  109. package/esm/presentation/localization/bundles/fr-CA.localization-bundle.d.ts +1 -0
  110. package/esm/presentation/localization/bundles/fr-CA.localization-bundle.d.ts.map +1 -1
  111. package/esm/presentation/localization/bundles/fr-CA.localization-bundle.js +1 -0
  112. package/esm/presentation/localization/bundles/fr-FR.localization-bundle.d.ts +1 -0
  113. package/esm/presentation/localization/bundles/fr-FR.localization-bundle.d.ts.map +1 -1
  114. package/esm/presentation/localization/bundles/fr-FR.localization-bundle.js +1 -0
  115. package/esm/presentation/localization/bundles/id-ID.localization-bundle.d.ts +1 -0
  116. package/esm/presentation/localization/bundles/id-ID.localization-bundle.d.ts.map +1 -1
  117. package/esm/presentation/localization/bundles/id-ID.localization-bundle.js +1 -0
  118. package/esm/presentation/localization/bundles/it-IT.localization-bundle.d.ts +1 -0
  119. package/esm/presentation/localization/bundles/it-IT.localization-bundle.d.ts.map +1 -1
  120. package/esm/presentation/localization/bundles/it-IT.localization-bundle.js +1 -0
  121. package/esm/presentation/localization/bundles/ja-JP.localization-bundle.d.ts +1 -0
  122. package/esm/presentation/localization/bundles/ja-JP.localization-bundle.d.ts.map +1 -1
  123. package/esm/presentation/localization/bundles/ja-JP.localization-bundle.js +1 -0
  124. package/esm/presentation/localization/bundles/ko-KR.localization-bundle.d.ts +1 -0
  125. package/esm/presentation/localization/bundles/ko-KR.localization-bundle.d.ts.map +1 -1
  126. package/esm/presentation/localization/bundles/ko-KR.localization-bundle.js +1 -0
  127. package/esm/presentation/localization/bundles/nl-NL.localization-bundle.d.ts +1 -0
  128. package/esm/presentation/localization/bundles/nl-NL.localization-bundle.d.ts.map +1 -1
  129. package/esm/presentation/localization/bundles/nl-NL.localization-bundle.js +1 -0
  130. package/esm/presentation/localization/bundles/pl-PL.localization-bundle.d.ts +1 -0
  131. package/esm/presentation/localization/bundles/pl-PL.localization-bundle.d.ts.map +1 -1
  132. package/esm/presentation/localization/bundles/pl-PL.localization-bundle.js +1 -0
  133. package/esm/presentation/localization/bundles/pt-BR.localization-bundle.d.ts +1 -0
  134. package/esm/presentation/localization/bundles/pt-BR.localization-bundle.d.ts.map +1 -1
  135. package/esm/presentation/localization/bundles/pt-BR.localization-bundle.js +1 -0
  136. package/esm/presentation/localization/bundles/pt-PT.localization-bundle.d.ts +1 -0
  137. package/esm/presentation/localization/bundles/pt-PT.localization-bundle.d.ts.map +1 -1
  138. package/esm/presentation/localization/bundles/pt-PT.localization-bundle.js +1 -0
  139. package/esm/presentation/localization/bundles/ru-RU.localization-bundle.d.ts +1 -0
  140. package/esm/presentation/localization/bundles/ru-RU.localization-bundle.d.ts.map +1 -1
  141. package/esm/presentation/localization/bundles/ru-RU.localization-bundle.js +1 -0
  142. package/esm/presentation/localization/bundles/sl-SI.localization-bundle.d.ts +1 -0
  143. package/esm/presentation/localization/bundles/sl-SI.localization-bundle.d.ts.map +1 -1
  144. package/esm/presentation/localization/bundles/sl-SI.localization-bundle.js +1 -0
  145. package/esm/presentation/localization/bundles/th-TH.localization-bundle.d.ts +1 -0
  146. package/esm/presentation/localization/bundles/th-TH.localization-bundle.d.ts.map +1 -1
  147. package/esm/presentation/localization/bundles/th-TH.localization-bundle.js +1 -0
  148. package/esm/presentation/localization/bundles/tr-TR.localization-bundle.d.ts +1 -0
  149. package/esm/presentation/localization/bundles/tr-TR.localization-bundle.d.ts.map +1 -1
  150. package/esm/presentation/localization/bundles/tr-TR.localization-bundle.js +1 -0
  151. package/esm/presentation/localization/bundles/uk-UA.localization-bundle.d.ts +1 -0
  152. package/esm/presentation/localization/bundles/uk-UA.localization-bundle.d.ts.map +1 -1
  153. package/esm/presentation/localization/bundles/uk-UA.localization-bundle.js +1 -0
  154. package/esm/presentation/localization/bundles/vi-VN.localization-bundle.d.ts +1 -0
  155. package/esm/presentation/localization/bundles/vi-VN.localization-bundle.d.ts.map +1 -1
  156. package/esm/presentation/localization/bundles/vi-VN.localization-bundle.js +1 -0
  157. package/esm/presentation/localization/bundles/zh-HK.localization-bundle.d.ts +1 -0
  158. package/esm/presentation/localization/bundles/zh-HK.localization-bundle.d.ts.map +1 -1
  159. package/esm/presentation/localization/bundles/zh-HK.localization-bundle.js +1 -0
  160. package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.d.ts +1 -0
  161. package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.d.ts.map +1 -1
  162. package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.js +1 -0
  163. package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.d.ts +1 -0
  164. package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.d.ts.map +1 -1
  165. package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.js +1 -0
  166. package/esm/presentation/topBar/buttonBar/button/settingButton/DefaultSettingButton.d.ts +1 -1
  167. package/esm/presentation/topBar/buttonBar/button/settingButton/DefaultSettingButton.d.ts.map +1 -1
  168. package/esm/presentation/topBar/buttonBar/button/settingButton/DefaultSettingButton.js +6 -7
  169. package/esm/presentation/widget/common/useInsightExport.d.ts.map +1 -1
  170. package/esm/presentation/widget/common/useInsightExport.js +24 -44
  171. package/esm/presentation/widget/description/DescriptionClickTrigger.d.ts.map +1 -1
  172. package/esm/presentation/widget/description/DescriptionClickTrigger.js +6 -5
  173. package/esm/presentation/widget/insightMenu/DefaultDashboardInsightMenu/DashboardInsightMenuButton.js +2 -2
  174. package/esm/presentation/widget/showAsTableButton/DefaultShowAsTableButton/ShowAsTableButton.d.ts.map +1 -1
  175. package/esm/presentation/widget/showAsTableButton/DefaultShowAsTableButton/ShowAsTableButton.js +2 -2
  176. package/esm/sdk-ui-dashboard.d.ts +1 -8
  177. package/package.json +21 -21
  178. package/styles/css/alerting.css.map +1 -1
  179. package/styles/css/configurationPanel.css.map +1 -1
  180. package/styles/css/dashboard.css +94 -394
  181. package/styles/css/dashboard.css.map +1 -1
  182. package/styles/css/dashboardNestedLayoutToolbar.css.map +1 -1
  183. package/styles/css/dragAndDrop.css.map +1 -1
  184. package/styles/css/drillConfigPanel.css.map +1 -1
  185. package/styles/css/drillDialog.css.map +1 -1
  186. package/styles/css/drillSelect.css.map +1 -1
  187. package/styles/css/export.css +5 -0
  188. package/styles/css/export.css.map +1 -1
  189. package/styles/css/filterBar.css +4 -12
  190. package/styles/css/filterBar.css.map +1 -1
  191. package/styles/css/floatingToolbar.css.map +1 -1
  192. package/styles/css/grouped-navigation.css.map +1 -1
  193. package/styles/css/kdaDialog.css +2 -1
  194. package/styles/css/kdaDialog.css.map +1 -1
  195. package/styles/css/kpi.css.map +1 -1
  196. package/styles/css/kpi_alert_dialog.css.map +1 -1
  197. package/styles/css/layout.css +42 -24
  198. package/styles/css/layout.css.map +1 -1
  199. package/styles/css/main.css +111 -420
  200. package/styles/css/main.css.map +1 -1
  201. package/styles/css/notifications_channels_dialog.css.map +1 -1
  202. package/styles/css/resizing.css.map +1 -1
  203. package/styles/css/richTextWidget.css.map +1 -1
  204. package/styles/css/sidebar.css.map +1 -1
  205. package/styles/css/toolbar.css.map +1 -1
  206. package/styles/css/topBar.css +3 -13
  207. package/styles/css/topBar.css.map +1 -1
  208. package/styles/css/visualization.css.map +1 -1
  209. package/styles/css/visualizationSwitcherHeader.css.map +1 -1
  210. package/styles/css/visualizationSwitcherToolbar.css.map +1 -1
  211. package/styles/css/visualizationSwitcherWidget.css.map +1 -1
  212. package/styles/scss/_variables.scss +1 -0
  213. package/styles/scss/_zIndexes.scss +0 -1
  214. package/styles/scss/dashboard.scss +78 -354
  215. package/styles/scss/export.scss +7 -0
  216. package/styles/scss/filterBar.scss +4 -11
  217. package/styles/scss/kdaDialog.scss +3 -1
  218. package/styles/scss/layout.scss +49 -34
  219. package/styles/scss/topBar.scss +3 -15
  220. package/esm/assets/alert-bell-na.svg +0 -1
  221. package/esm/assets/trash.svg +0 -1
  222. package/styles/css/item-states-mixin.css +0 -3
  223. package/styles/css/item-states-mixin.css.map +0 -1
  224. package/styles/css/item-states.css +0 -106
  225. package/styles/css/item-states.css.map +0 -1
  226. package/styles/scss/item-states-mixin.scss +0 -54
  227. package/styles/scss/item-states.scss +0 -65
@@ -1,61 +1,59 @@
1
1
  // (C) 2026 GoodData Corporation
2
- import { DashboardParameterModeValues, isIdentifierRef, isNumberParameterDefinition, objRefToString, } from "@gooddata/sdk-model";
3
- import { exportParametersToValues, isAutomationSupportedParameterValue, } from "../../../../_staging/automation/index.js";
2
+ import { DashboardParameterModeValues, isIdentifierRef, objRefToString, parameterValueMatchesType, sanitizeParameterValue, } from "@gooddata/sdk-model";
3
+ import { exportParametersToValues } from "../../../../_staging/automation/index.js";
4
4
  /**
5
5
  * Stored {@link IInsightParameterValue} overrides carry only {ref, value}; title, mode and
6
- * constraints are re-derived from the current dashboard and workspace catalog.
6
+ * definition are re-derived from the current dashboard and workspace catalog. Rows without a
7
+ * resolvable definition (see {@link resolveParameterDefinition}) are dropped.
7
8
  *
8
9
  * @internal
9
10
  */
10
- export function reconstructAutomationParametersFromValues(stored, dashboardParameters, catalog) {
11
+ export function reconstructAutomationParametersFromValues(stored, dashboardParameters, catalog, isStringParametersEnabled) {
11
12
  const dashboardByRef = new Map(dashboardParameters.map((parameter) => [objRefToString(parameter.ref), parameter]));
12
13
  const workspaceByRef = new Map(catalog.map((parameter) => [objRefToString(parameter.ref), parameter]));
13
14
  return stored.flatMap((row) => {
14
- if (!isAutomationSupportedParameterValue(row.value)) {
15
- return [];
16
- }
17
15
  const refKey = objRefToString(row.ref);
18
16
  const dashboardParameter = dashboardByRef.get(refKey);
19
17
  const workspaceParameter = workspaceByRef.get(refKey);
20
- const constraints = numberConstraints(workspaceParameter);
18
+ const definition = resolveParameterDefinition(workspaceParameter, row.value, isStringParametersEnabled);
19
+ if (!definition) {
20
+ return [];
21
+ }
21
22
  return {
22
23
  ref: row.ref,
23
24
  title: dashboardParameter?.label ?? workspaceParameter?.title ?? row.ref.identifier,
24
25
  value: row.value,
25
26
  mode: dashboardParameter?.mode ?? DashboardParameterModeValues.ACTIVE,
26
- ...(constraints ? { constraints } : {}),
27
+ definition,
27
28
  };
28
29
  });
29
30
  }
30
31
  /**
31
32
  * Stored export overrides ({@link IDashboardExportParameter}) carry the value as a string; it is
32
- * parsed back to a number and non-finite values are dropped. Title, mode and constraints are
33
- * re-derived from the current dashboard and workspace catalog, mirroring
33
+ * decoded back by the row's own type tag (see `exportParametersToValues`). Title, mode and
34
+ * definition are re-derived from the current dashboard and workspace catalog, mirroring
34
35
  * {@link reconstructAutomationParametersFromValues}.
35
36
  *
36
37
  * @internal
37
38
  */
38
- export function reconstructAutomationParametersFromExportParameters(stored, dashboardParameters, catalog) {
39
- return reconstructAutomationParametersFromValues(exportParametersToValues(stored), dashboardParameters, catalog);
39
+ export function reconstructAutomationParametersFromExportParameters(stored, dashboardParameters, catalog, isStringParametersEnabled) {
40
+ return reconstructAutomationParametersFromValues(exportParametersToValues(stored, isStringParametersEnabled), dashboardParameters, catalog, isStringParametersEnabled);
40
41
  }
41
42
  /**
42
- * Parameters of unsupported types are dropped (cannot be rendered/clamped). Dashboard-`hidden`
43
- * and `readonly` ones are dropped too once added they would derive back to an invisible or
44
- * locked (undeletable) chip.
43
+ * Dashboard-`hidden` and `readonly` parameters are dropped once added they would derive back to
44
+ * an invisible or locked (undeletable) parameter. Catalog STRING parameters are dropped too while
45
+ * `isStringParametersEnabled` is off.
45
46
  *
46
47
  * @internal
47
48
  */
48
- export function availableAutomationParameters(catalog, selected, dashboardParameters = [], widgetParameterValues = []) {
49
+ export function availableAutomationParameters(catalog, selected, dashboardParameters = [], widgetParameterValues = [], isStringParametersEnabled) {
49
50
  const selectedRefKeys = new Set(selected.map((parameter) => objRefToString(parameter.ref)));
50
51
  const dashboardByRef = new Map(dashboardParameters.map((parameter) => [objRefToString(parameter.ref), parameter]));
51
52
  const widgetValueByRef = new Map(widgetParameterValues.map((row) => [objRefToString(row.ref), row.value]));
52
53
  const result = [];
53
54
  for (const workspaceParameter of catalog) {
54
- if (!isNumberParameterDefinition(workspaceParameter.definition)) {
55
- continue;
56
- }
57
- const { ref } = workspaceParameter;
58
- if (!isIdentifierRef(ref)) {
55
+ const { ref, definition } = workspaceParameter;
56
+ if (!isIdentifierRef(ref) || (definition.type === "STRING" && !isStringParametersEnabled)) {
59
57
  continue;
60
58
  }
61
59
  const refKey = objRefToString(ref);
@@ -65,15 +63,14 @@ export function availableAutomationParameters(catalog, selected, dashboardParame
65
63
  dashboardParameter?.mode === DashboardParameterModeValues.READONLY) {
66
64
  continue;
67
65
  }
68
- const { defaultValue, constraints } = workspaceParameter.definition;
69
66
  // mirror the live-render precedence: runtimeOverride/insight value > dashboard value > default
70
- const effectiveValue = widgetValueByRef.get(refKey) ?? dashboardParameter?.value ?? defaultValue;
67
+ const effectiveValue = widgetValueByRef.get(refKey) ?? dashboardParameter?.value ?? definition.defaultValue;
71
68
  result.push({
72
69
  ref,
73
70
  title: dashboardParameter?.label ?? workspaceParameter.title,
74
- value: isAutomationSupportedParameterValue(effectiveValue) ? effectiveValue : defaultValue,
71
+ value: sanitizeParameterValue(definition, effectiveValue),
75
72
  mode: DashboardParameterModeValues.ACTIVE,
76
- ...(constraints ? { constraints } : {}),
73
+ definition,
77
74
  });
78
75
  }
79
76
  return result;
@@ -101,7 +98,8 @@ export function setAlertExecutionParameters(automation, parameters) {
101
98
  }
102
99
  /**
103
100
  * A param dropped from the *dashboard* is not stale: parameters are workspace-scoped, so only
104
- * removal from the workspace catalog counts.
101
+ * removal from the workspace catalog counts — as does a parameter recreated with the same id but
102
+ * the other type, where the decoded value kind disagrees with the current definition.
105
103
  *
106
104
  * @internal
107
105
  */
@@ -109,8 +107,8 @@ export function hasStaleAlertParameters(stored, catalog) {
109
107
  if (!stored?.length) {
110
108
  return false;
111
109
  }
112
- const catalogParameterIds = new Set(catalog.map((parameter) => parameter.id));
113
- return stored.some((parameter) => !alertParameterIsInCatalog(parameter, catalogParameterIds));
110
+ const catalogById = new Map(catalog.map((parameter) => [parameter.id, parameter]));
111
+ return stored.some((parameter) => !alertParameterMatchesCatalog(parameter, catalogById));
114
112
  }
115
113
  /**
116
114
  * Removes the parameters {@link hasStaleAlertParameters} flags as stale.
@@ -118,13 +116,13 @@ export function hasStaleAlertParameters(stored, catalog) {
118
116
  * @internal
119
117
  */
120
118
  export function dropStaleAlertParameters(stored, catalog) {
121
- const catalogParameterIds = new Set(catalog.map((parameter) => parameter.id));
122
- return stored.filter((parameter) => alertParameterIsInCatalog(parameter, catalogParameterIds));
119
+ const catalogById = new Map(catalog.map((parameter) => [parameter.id, parameter]));
120
+ return stored.filter((parameter) => alertParameterMatchesCatalog(parameter, catalogById));
123
121
  }
124
122
  /**
125
- * Encodes the display-ready chip set back to the neutral export wire shape ({id, value:string,
126
- * title}). The full per-tab execution set (including `hidden` entries) is converted, not just the
127
- * visible chips, so the server resolver does not drop omitted parameters to the workspace default.
123
+ * Encodes the display-ready parameter set back to the neutral export wire shape ({id, value:string,
124
+ * title, parameterType}). The full per-tab execution set (including `hidden` entries) is converted, not just the
125
+ * visible ones, so the server resolver does not drop omitted parameters to the workspace default.
128
126
  *
129
127
  * @internal
130
128
  */
@@ -133,6 +131,7 @@ export function automationParametersToExportParameters(parameters) {
133
131
  id: parameter.ref.identifier,
134
132
  value: String(parameter.value),
135
133
  title: parameter.title,
134
+ parameterType: parameter.definition.type,
136
135
  }));
137
136
  }
138
137
  /**
@@ -161,11 +160,29 @@ export function toEffectiveParametersByTab(parametersByTab, shouldStore) {
161
160
  export function shouldStoreExportParameters(isWidgetSchedule, storeFilters = false) {
162
161
  return isWidgetSchedule || storeFilters;
163
162
  }
164
- function alertParameterIsInCatalog(parameter, catalogParameterIds) {
165
- return catalogParameterIds.has(parameter.ref.identifier);
163
+ function alertParameterMatchesCatalog(parameter, catalogById) {
164
+ const workspaceParameter = catalogById.get(parameter.ref.identifier);
165
+ return !!workspaceParameter && parameterValueMatchesType(workspaceParameter.definition, parameter.value);
166
166
  }
167
- function numberConstraints(workspaceParameter) {
168
- return workspaceParameter && isNumberParameterDefinition(workspaceParameter.definition)
169
- ? workspaceParameter.definition.constraints
170
- : undefined;
167
+ /**
168
+ * Every parameter needs a definition — its `type` picks which control renders. The workspace
169
+ * parameter definition is the source of truth; when its type disagrees with the stored value the
170
+ * parameter was recreated as the other type, so the parameter is dropped.
171
+ */
172
+ function resolveParameterDefinition(workspaceParameter, value, isStringParametersEnabled) {
173
+ const definition = workspaceParameter?.definition;
174
+ if (definition) {
175
+ if (definition.type === "STRING" && !isStringParametersEnabled) {
176
+ return undefined;
177
+ }
178
+ return parameterValueMatchesType(definition, value) ? definition : undefined;
179
+ }
180
+ // Deleted workspace parameter: synthesize a definition from the value so the parameter stays
181
+ // editable (the constraint-less M1 fallback). Its `defaultValue` is a shape-filling
182
+ // placeholder — rely only on `type`. STRING synthesis is gated the same way as the catalog
183
+ // branch above.
184
+ if (typeof value === "number") {
185
+ return { type: "NUMBER", defaultValue: value };
186
+ }
187
+ return isStringParametersEnabled ? { type: "STRING", defaultValue: value } : undefined;
171
188
  }
@@ -50,7 +50,6 @@ function createAutomationsContextValue(overrides) {
50
50
  automationFiltersByTab: [],
51
51
  defaultSelectedFilters: [],
52
52
  automationAvailableFilters: [],
53
- enableNewScheduledExport: false,
54
53
  maxAutomationsRecipients: 10,
55
54
  isExecutionTimestampMode: false,
56
55
  allowHourlyRecurrence: true,
@@ -66,7 +65,6 @@ function createAutomationsContextValue(overrides) {
66
65
  enableAnomalyDetectionAlert: false,
67
66
  canUseAiAssistant: false,
68
67
  canManageWorkspace: false,
69
- enableCustomizableCsvDelimiter: false,
70
68
  enableSlideshowExports: false,
71
69
  enableAutomationEvaluationMode: false,
72
70
  },
@@ -1,4 +1,4 @@
1
- import { type FilterContextItem, type ICatalogAttribute, type ICatalogDateDataset, type IDashboardAttributeFilterConfig, type IDashboardDateFilterConfigItem, type IdentifierRef, type ObjRef } from "@gooddata/sdk-model";
1
+ import { type FilterContextItem, type ICatalogAttribute, type ICatalogDateDataset, type IDashboardAttributeFilterConfig, type IDashboardDateFilterConfigItem, type IdentifierRef, type ObjRef, type ParameterValue } from "@gooddata/sdk-model";
2
2
  import { type OverlayPositionType } from "@gooddata/sdk-ui-kit";
3
3
  import type { IAutomationFiltersTab } from "../../../../../model/store/filtering/types.js";
4
4
  import { type IAutomationParameter } from "../automationParameters.js";
@@ -20,7 +20,7 @@ export interface IAutomationFiltersProps {
20
20
  export interface IAutomationFiltersSelectProps {
21
21
  availableFilters: FilterContextItem[] | undefined;
22
22
  selectedFilters: FilterContextItem[] | undefined;
23
- onFiltersChange: (filters: FilterContextItem[], enableNewScheduledExport: boolean) => void;
23
+ onFiltersChange: (filters: FilterContextItem[]) => void;
24
24
  storeFilters: boolean;
25
25
  onStoreFiltersChange: (value: boolean, filters?: FilterContextItem[], filtersByTab?: Record<string, FilterContextItem[]>) => void;
26
26
  isDashboardAutomation?: boolean;
@@ -60,7 +60,7 @@ export interface IAutomationFiltersSelectProps {
60
60
  /**
61
61
  * Called when an `active` parameter chip's value is edited.
62
62
  */
63
- onParameterChange?: (ref: IdentifierRef, value: number) => void;
63
+ onParameterChange?: (ref: IdentifierRef, value: ParameterValue) => void;
64
64
  /**
65
65
  * Called when an `active` parameter chip is removed.
66
66
  */
@@ -80,7 +80,7 @@ export interface IAutomationFiltersSelectProps {
80
80
  /**
81
81
  * Called when an `active` parameter chip's value is edited in a tab section.
82
82
  */
83
- onParameterChangeByTab?: (tabId: string, ref: IdentifierRef, value: number) => void;
83
+ onParameterChangeByTab?: (tabId: string, ref: IdentifierRef, value: ParameterValue) => void;
84
84
  /**
85
85
  * Called when an `active` parameter chip is removed in a tab section.
86
86
  */
@@ -1 +1 @@
1
- {"version":3,"file":"AutomationFiltersSelect.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/automations/shared/automationFilters/components/AutomationFiltersSelect.tsx"],"names":[],"mappings":"AAMA,OAAO,EACH,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EAGxB,KAAK,+BAA+B,EACpC,KAAK,8BAA8B,EAEnC,KAAK,aAAa,EAClB,KAAK,MAAM,EAYd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAGH,KAAK,mBAAmB,EAO3B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+CAA+C,CAAC;AAU3F,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAWvE,MAAM,WAAW,uBAAuB;IACpC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,iBAAiB,EAAE,GAAG,SAAS,CAAC;IACzC,gBAAgB,EAAE,+BAA+B,EAAE,CAAC;IACpD,WAAW,EAAE,8BAA8B,EAAE,CAAC;IAC9C,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAChC,YAAY,EAAE,mBAAmB,EAAE,CAAC;IACpC,kBAAkB,EAAE,CAAC,MAAM,EAAE,iBAAiB,GAAG,SAAS,KAAK,IAAI,CAAC;IACpE,kBAAkB,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACxD,eAAe,EAAE,CACb,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,iBAAiB,EAAE,EAC/B,YAAY,EAAE,mBAAmB,EAAE,KAClC,IAAI,CAAC;IACV,YAAY,EAAE,OAAO,CAAC;IACtB,wBAAwB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACnD,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,6BAA6B;IAC1C,gBAAgB,EAAE,iBAAiB,EAAE,GAAG,SAAS,CAAC;IAClD,eAAe,EAAE,iBAAiB,EAAE,GAAG,SAAS,CAAC;IACjD,eAAe,EAAE,CAAC,OAAO,EAAE,iBAAiB,EAAE,EAAE,wBAAwB,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3F,YAAY,EAAE,OAAO,CAAC;IACtB,oBAAoB,EAAE,CAClB,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,iBAAiB,EAAE,EAC7B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,KACjD,IAAI,CAAC;IACV,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;;OAIG;IACH,YAAY,CAAC,EAAE,qBAAqB,EAAE,CAAC;IACvC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC;IACzD;;;OAGG;IACH,oBAAoB,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,KAAK,IAAI,CAAC;IACnF;;OAEG;IACH,UAAU,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACpC;;OAEG;IACH,mBAAmB,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAC7C;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,CAAC;IAC9C;;OAEG;IACH,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChE;;OAEG;IACH,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,CAAC;IACjD;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC;IACzD;;OAEG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC;IAClE;;OAEG;IACH,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,KAAK,IAAI,CAAC;IAClE;;OAEG;IACH,sBAAsB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACpF;;OAEG;IACH,sBAAsB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,KAAK,IAAI,CAAC;IACrE;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC/B;AA4ED,wBAAgB,uBAAuB,CAAC,EACpC,gBAAqB,EACrB,eAAoB,EACpB,eAAe,EACf,qBAAqB,EACrB,YAAY,EACZ,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,SAAiB,EACjB,cAAsB,EACtB,kBAA0B,EAC1B,YAAY,EACZ,kBAAkB,EAClB,oBAAoB,EACpB,UAAe,EACf,mBAAwB,EACxB,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,wBAAwB,EACxB,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,EACpB,EAAE,6BAA6B,2CA6d/B"}
1
+ {"version":3,"file":"AutomationFiltersSelect.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/automations/shared/automationFilters/components/AutomationFiltersSelect.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { type ReactNode } from "react";
2
- import { type IdentifierRef } from "@gooddata/sdk-model";
2
+ import { type IdentifierRef, type ParameterValue } from "@gooddata/sdk-model";
3
3
  import { type OverlayPositionType } from "@gooddata/sdk-ui-kit";
4
4
  import { type IAutomationParameter } from "../automationParameters.js";
5
5
  /**
@@ -7,7 +7,7 @@ import { type IAutomationParameter } from "../automationParameters.js";
7
7
  */
8
8
  export interface IAutomationParameterProps {
9
9
  parameter: IAutomationParameter;
10
- onChange?: (ref: IdentifierRef, value: number) => void;
10
+ onChange?: (ref: IdentifierRef, value: ParameterValue) => void;
11
11
  onDelete?: (ref: IdentifierRef) => void;
12
12
  overlayPositionType?: OverlayPositionType;
13
13
  isReadOnly?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"AutomationParameter.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/automations/shared/automationFilters/components/AutomationParameter.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAI3D,OAAO,EAAgC,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACvF,OAAO,EAGH,KAAK,mBAAmB,EAK3B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACtC,SAAS,EAAE,oBAAoB,CAAC;IAChC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvD,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,CAAC;IACxC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,EAChC,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,mBAAmB,EACnB,UAAU,EACb,EAAE,yBAAyB,GAAG,SAAS,CA0FvC"}
1
+ {"version":3,"file":"AutomationParameter.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/automations/shared/automationFilters/components/AutomationParameter.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAI3D,OAAO,EAAgC,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC5G,OAAO,EAEH,KAAK,mBAAmB,EAM3B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACtC,SAAS,EAAE,oBAAoB,CAAC;IAChC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAC/D,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,CAAC;IACxC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,EAChC,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,mBAAmB,EACnB,UAAU,EACb,EAAE,yBAAyB,GAAG,SAAS,CA0FvC"}
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useIntl } from "react-intl";
3
3
  import { DashboardParameterModeValues } from "@gooddata/sdk-model";
4
- import { Dropdown, NumberParameterControlDropdown, UiChip, UiTooltip, isActionKey, useIdPrefixed, } from "@gooddata/sdk-ui-kit";
4
+ import { Dropdown, ParameterControl, UiChip, UiTooltip, isActionKey, useIdPrefixed, } from "@gooddata/sdk-ui-kit";
5
5
  /**
6
6
  * Workspace parameter as an editable chip in automation dialogs.
7
7
  *
@@ -9,7 +9,7 @@ import { Dropdown, NumberParameterControlDropdown, UiChip, UiTooltip, isActionKe
9
9
  */
10
10
  export function AutomationParameter({ parameter, onChange, onDelete, overlayPositionType, isReadOnly, }) {
11
11
  const intl = useIntl();
12
- const { ref, title, value, mode, constraints } = parameter;
12
+ const { ref, title, value, mode, definition } = parameter;
13
13
  const testId = `automation-parameter-${ref.identifier}`;
14
14
  const label = intl.formatMessage({ id: "dialogs.automation.parameters.chip" }, { title, value });
15
15
  const lockedTooltip = intl.formatMessage({ id: "dialogs.automation.filters.lockedTooltip" });
@@ -33,7 +33,7 @@ export function AutomationParameter({ parameter, onChange, onDelete, overlayPosi
33
33
  if (isActionKey(event)) {
34
34
  event.stopPropagation();
35
35
  }
36
- } })), renderBody: ({ closeDropdown, ariaAttributes }) => (_jsx(NumberParameterControlDropdown, { name: title, value: value, constraints: constraints, inputId: valueInputId, ariaAttributes: ariaAttributes, onApply: (next) => {
36
+ } })), renderBody: ({ closeDropdown, ariaAttributes }) => (_jsx(ParameterControl, { name: title, definition: definition, value: value, inputId: valueInputId, ariaAttributes: ariaAttributes, onApply: (next) => {
37
37
  onChange?.(ref, next);
38
38
  closeDropdown();
39
39
  }, onCancel: closeDropdown })) }));
@@ -1 +1 @@
1
- {"version":3,"file":"useValidateExistingAutomationFilters.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/automations/shared/automationFilters/hooks/useValidateExistingAutomationFilters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useValidateExistingAutomationFilters.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/automations/shared/automationFilters/hooks/useValidateExistingAutomationFilters.ts"],"names":[],"mappings":"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"}
@@ -183,6 +183,9 @@ export function validateExistingAutomationParameters({ storedParametersByTab, ca
183
183
  if (!workspaceParameter) {
184
184
  return true;
185
185
  }
186
+ if ((stored.parameterType ?? "NUMBER") !== workspaceParameter.definition.type) {
187
+ return true;
188
+ }
186
189
  const dashboardParameter = dashboardById.get(stored.id);
187
190
  const mode = dashboardParameter?.mode ?? DashboardParameterModeValues.ACTIVE;
188
191
  const isPinnedByAuthor = mode === DashboardParameterModeValues.READONLY ||
@@ -190,11 +193,12 @@ export function validateExistingAutomationParameters({ storedParametersByTab, ca
190
193
  if (!isPinnedByAuthor) {
191
194
  continue;
192
195
  }
193
- const workspaceDefault = isNumberParameterDefinition(workspaceParameter.definition)
194
- ? workspaceParameter.definition.defaultValue
195
- : undefined;
196
- const currentValue = dashboardParameter?.value ?? workspaceDefault;
197
- if (typeof currentValue === "number" && Number(stored.value) !== currentValue) {
196
+ const currentValue = dashboardParameter?.value ?? workspaceParameter.definition.defaultValue;
197
+ // NUMBER compares numerically so a non-canonical stored encoding (e.g. "1.50") doesn't read as drift
198
+ const valueDrifted = isNumberParameterDefinition(workspaceParameter.definition)
199
+ ? Number(stored.value) !== currentValue
200
+ : String(currentValue) !== stored.value;
201
+ if (valueDrifted) {
198
202
  return true;
199
203
  }
200
204
  }
@@ -1,5 +1,5 @@
1
1
  import { type Dispatch, type SetStateAction } from "react";
2
- import { type IAutomationMetadataObjectDefinition, type IdentifierRef, type ObjRef } from "@gooddata/sdk-model";
2
+ import { type IAutomationMetadataObjectDefinition, type IdentifierRef, type ObjRef, type ParameterValue } from "@gooddata/sdk-model";
3
3
  import { type IAutomationParameter } from "./automationParameters.js";
4
4
  /**
5
5
  * @internal
@@ -15,7 +15,7 @@ export interface IUseAutomationAlertParameters {
15
15
  */
16
16
  availableParameters: IAutomationParameter[];
17
17
  onParameterAdd: (ref: IdentifierRef) => void;
18
- onParameterChange: (ref: IdentifierRef, value: number) => void;
18
+ onParameterChange: (ref: IdentifierRef, value: ParameterValue) => void;
19
19
  onParameterDelete: (ref: IdentifierRef) => void;
20
20
  /**
21
21
  * Surgically drops stored parameters whose `ref` left the workspace catalog, keeping every
@@ -1 +1 @@
1
- {"version":3,"file":"useAutomationAlertParameters.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/shared/automationFilters/useAutomationAlertParameters.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,cAAc,EAAwB,MAAM,OAAO,CAAC;AAEjF,OAAO,EAEH,KAAK,mCAAmC,EAExC,KAAK,aAAa,EAClB,KAAK,MAAM,EAEd,MAAM,qBAAqB,CAAC;AAc7B,OAAO,EACH,KAAK,oBAAoB,EAM5B,MAAM,2BAA2B,CAAC;AAInC;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC1C;;OAEG;IACH,oBAAoB,EAAE,oBAAoB,EAAE,CAAC;IAC7C;;;OAGG;IACH,mBAAmB,EAAE,oBAAoB,EAAE,CAAC;IAC5C,cAAc,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,CAAC;IAC7C,iBAAiB,EAAE,CAAC,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/D,iBAAiB,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,CAAC;IAChD;;;OAGG;IACH,mBAAmB,EAAE,MAAM,IAAI,CAAC;CACnC;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,EACzC,gBAAgB,EAChB,mBAAmB,EACnB,SAAS,EACZ,EAAE;IACC,gBAAgB,EAAE,mCAAmC,GAAG,SAAS,CAAC;IAClE,mBAAmB,EAAE,QAAQ,CAAC,cAAc,CAAC,mCAAmC,GAAG,SAAS,CAAC,CAAC,CAAC;IAC/F,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,6BAA6B,CAmGhC"}
1
+ {"version":3,"file":"useAutomationAlertParameters.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/shared/automationFilters/useAutomationAlertParameters.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,cAAc,EAAwB,MAAM,OAAO,CAAC;AAEjF,OAAO,EAEH,KAAK,mCAAmC,EAExC,KAAK,aAAa,EAClB,KAAK,MAAM,EACX,KAAK,cAAc,EAEtB,MAAM,qBAAqB,CAAC;AAiB7B,OAAO,EACH,KAAK,oBAAoB,EAM5B,MAAM,2BAA2B,CAAC;AAInC;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC1C;;OAEG;IACH,oBAAoB,EAAE,oBAAoB,EAAE,CAAC;IAC7C;;;OAGG;IACH,mBAAmB,EAAE,oBAAoB,EAAE,CAAC;IAC5C,cAAc,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,CAAC;IAC7C,iBAAiB,EAAE,CAAC,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IACvE,iBAAiB,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,CAAC;IAChD;;;OAGG;IACH,mBAAmB,EAAE,MAAM,IAAI,CAAC;CACnC;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,EACzC,gBAAgB,EAChB,mBAAmB,EACnB,SAAS,EACZ,EAAE;IACC,gBAAgB,EAAE,mCAAmC,GAAG,SAAS,CAAC;IAClE,mBAAmB,EAAE,QAAQ,CAAC,cAAc,CAAC,mCAAmC,GAAG,SAAS,CAAC,CAAC,CAAC;IAC/F,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,6BAA6B,CAiHhC"}
@@ -4,7 +4,7 @@ import { DashboardParameterModeValues, areObjRefsEqual, } from "@gooddata/sdk-mo
4
4
  import { getAutomationAlertParameters } from "../../../../_staging/automation/index.js";
5
5
  import { useDashboardSelector } from "../../../../model/react/DashboardStoreProvider.js";
6
6
  import { selectCatalogParameters, selectCatalogParametersIsLoaded, } from "../../../../model/store/catalog/catalogSelectors.js";
7
- import { selectEnableParameters } from "../../../../model/store/config/configSelectors.js";
7
+ import { selectEnableParameters, selectEnableStringParameters, } from "../../../../model/store/config/configSelectors.js";
8
8
  import { selectEffectiveDashboardParametersForWidget, selectEffectiveParameterValuesForWidget, } from "../../../../model/store/tabs/parameters/parametersSelectors.js";
9
9
  import { availableAutomationParameters, dropStaleAlertParameters, hasStaleAlertParameters, reconstructAutomationParametersFromValues, setAlertExecutionParameters, } from "./automationParameters.js";
10
10
  const EMPTY_PARAMETERS = [];
@@ -16,6 +16,7 @@ const EMPTY_PARAMETERS = [];
16
16
  */
17
17
  export function useAutomationAlertParameters({ editedAutomation, setEditedAutomation, widgetRef, }) {
18
18
  const parametersEnabled = useDashboardSelector(selectEnableParameters);
19
+ const stringParametersEnabled = useDashboardSelector(selectEnableStringParameters);
19
20
  const catalog = useDashboardSelector(selectCatalogParameters);
20
21
  const catalogIsLoaded = useDashboardSelector(selectCatalogParametersIsLoaded);
21
22
  const dashboardParameters = useDashboardSelector(selectEffectiveDashboardParametersForWidget(widgetRef));
@@ -25,13 +26,20 @@ export function useAutomationAlertParameters({ editedAutomation, setEditedAutoma
25
26
  if (!parametersEnabled || !storedParameters?.length) {
26
27
  return EMPTY_PARAMETERS;
27
28
  }
28
- return (reconstructAutomationParametersFromValues(storedParameters, dashboardParameters, catalog)
29
+ return (reconstructAutomationParametersFromValues(storedParameters, dashboardParameters, catalog, stringParametersEnabled)
29
30
  // `hidden` parameters stay in the stored payload but are never rendered or user-editable
30
31
  .filter((parameter) => parameter.mode !== DashboardParameterModeValues.HIDDEN));
31
- }, [parametersEnabled, storedParameters, dashboardParameters, catalog]);
32
+ }, [parametersEnabled, stringParametersEnabled, storedParameters, dashboardParameters, catalog]);
32
33
  const availableParameters = useMemo(() => parametersEnabled
33
- ? availableAutomationParameters(catalog, automationParameters, dashboardParameters, widgetParameterValues)
34
- : EMPTY_PARAMETERS, [parametersEnabled, catalog, automationParameters, dashboardParameters, widgetParameterValues]);
34
+ ? availableAutomationParameters(catalog, automationParameters, dashboardParameters, widgetParameterValues, stringParametersEnabled)
35
+ : EMPTY_PARAMETERS, [
36
+ parametersEnabled,
37
+ catalog,
38
+ automationParameters,
39
+ dashboardParameters,
40
+ widgetParameterValues,
41
+ stringParametersEnabled,
42
+ ]);
35
43
  const updateAlertParameters = useCallback((update) => {
36
44
  setEditedAutomation((definition) => definition?.alert
37
45
  ? setAlertExecutionParameters(definition, update(getAutomationAlertParameters(definition) ?? []))
@@ -1,4 +1,4 @@
1
- import { type IAutomationMetadataObject, type IDashboardExportParameter, type IdentifierRef } from "@gooddata/sdk-model";
1
+ import { type IAutomationMetadataObject, type IDashboardExportParameter, type IdentifierRef, type ParameterValue } from "@gooddata/sdk-model";
2
2
  import type { ExtendedDashboardWidget } from "../../../../model/types/layoutTypes.js";
3
3
  import { type IAutomationParameter } from "./automationParameters.js";
4
4
  /**
@@ -52,10 +52,10 @@ export interface IUseAutomationExportParameters {
52
52
  */
53
53
  flatTabId: string | undefined;
54
54
  onParameterAdd: (ref: IdentifierRef) => void;
55
- onParameterChange: (ref: IdentifierRef, value: number) => void;
55
+ onParameterChange: (ref: IdentifierRef, value: ParameterValue) => void;
56
56
  onParameterDelete: (ref: IdentifierRef) => void;
57
57
  onParameterAddByTab: (tabId: string, ref: IdentifierRef) => void;
58
- onParameterChangeByTab: (tabId: string, ref: IdentifierRef, value: number) => void;
58
+ onParameterChangeByTab: (tabId: string, ref: IdentifierRef, value: ParameterValue) => void;
59
59
  onParameterDeleteByTab: (tabId: string, ref: IdentifierRef) => void;
60
60
  /**
61
61
  * Resets the working set to the current dashboard's effective values and writes it back — the
@@ -1 +1 @@
1
- {"version":3,"file":"useAutomationExportParameters.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/shared/automationFilters/useAutomationExportParameters.ts"],"names":[],"mappings":"AAMA,OAAO,EAEH,KAAK,yBAAyB,EAC9B,KAAK,yBAAyB,EAG9B,KAAK,aAAa,EAGrB,MAAM,qBAAqB,CAAC;AAgB7B,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AAEtF,OAAO,EACH,KAAK,oBAAoB,EAK5B,MAAM,2BAA2B,CAAC;AAEnC;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC;AAE3E;;GAEG;AACH,MAAM,WAAW,mCAAmC;IAChD,gBAAgB,CAAC,EAAE,yBAAyB,CAAC;IAC7C,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;OAGG;IACH,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,yBAAyB,EAAE,CAAC,GAAG,SAAS,KAAK,IAAI,CAAC;CAC9F;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,8BAA8B;IAC3C,iBAAiB,EAAE,OAAO,CAAC;IAC3B;;OAEG;IACH,sBAAsB,EAAE,qBAAqB,CAAC;IAC9C;;OAEG;IACH,wBAAwB,EAAE,qBAAqB,CAAC;IAChD;;;OAGG;IACH,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,cAAc,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,CAAC;IAC7C,iBAAiB,EAAE,CAAC,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/D,iBAAiB,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,CAAC;IAChD,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,KAAK,IAAI,CAAC;IACjE,sBAAsB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnF,sBAAsB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,KAAK,IAAI,CAAC;IACpE;;;OAGG;IACH,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB;;;OAGG;IACH,uBAAuB,EAAE,CAAC,eAAe,EAAE,OAAO,KAAK,IAAI,CAAC;CAC/D;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,EAC1C,gBAAgB,EAChB,MAAM,EACN,eAAe,EACf,iBAAiB,EACpB,EAAE,mCAAmC,GAAG,8BAA8B,CAyLtE"}
1
+ {"version":3,"file":"useAutomationExportParameters.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/shared/automationFilters/useAutomationExportParameters.ts"],"names":[],"mappings":"AAMA,OAAO,EAEH,KAAK,yBAAyB,EAC9B,KAAK,yBAAyB,EAG9B,KAAK,aAAa,EAClB,KAAK,cAAc,EAGtB,MAAM,qBAAqB,CAAC;AAmB7B,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AAEtF,OAAO,EACH,KAAK,oBAAoB,EAK5B,MAAM,2BAA2B,CAAC;AAEnC;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC;AAE3E;;GAEG;AACH,MAAM,WAAW,mCAAmC;IAChD,gBAAgB,CAAC,EAAE,yBAAyB,CAAC;IAC7C,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;OAGG;IACH,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,yBAAyB,EAAE,CAAC,GAAG,SAAS,KAAK,IAAI,CAAC;CAC9F;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,8BAA8B;IAC3C,iBAAiB,EAAE,OAAO,CAAC;IAC3B;;OAEG;IACH,sBAAsB,EAAE,qBAAqB,CAAC;IAC9C;;OAEG;IACH,wBAAwB,EAAE,qBAAqB,CAAC;IAChD;;;OAGG;IACH,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,cAAc,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,CAAC;IAC7C,iBAAiB,EAAE,CAAC,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IACvE,iBAAiB,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,CAAC;IAChD,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,KAAK,IAAI,CAAC;IACjE,sBAAsB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAC3F,sBAAsB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,KAAK,IAAI,CAAC;IACpE;;;OAGG;IACH,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB;;;OAGG;IACH,uBAAuB,EAAE,CAAC,eAAe,EAAE,OAAO,KAAK,IAAI,CAAC;CAC/D;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,EAC1C,gBAAgB,EAChB,MAAM,EACN,eAAe,EACf,iBAAiB,EACpB,EAAE,mCAAmC,GAAG,8BAA8B,CAsMtE"}
@@ -5,9 +5,9 @@ import { DashboardParameterModeValues, areObjRefsEqual, objRefToString, } from "
5
5
  import { exportParametersToValues, getAutomationExportParametersByTab, } from "../../../../_staging/automation/index.js";
6
6
  import { useDashboardSelector } from "../../../../model/react/DashboardStoreProvider.js";
7
7
  import { selectCatalogParameters } from "../../../../model/store/catalog/catalogSelectors.js";
8
- import { selectEnableParameters } from "../../../../model/store/config/configSelectors.js";
8
+ import { selectEnableParameters, selectEnableStringParameters, } from "../../../../model/store/config/configSelectors.js";
9
9
  import { selectWidgetLocalIdToTabIdMap } from "../../../../model/store/tabs/layout/layoutSelectors.js";
10
- import { selectAutomationExportEffectiveParameters, selectSmartPersistedTabsParameters, } from "../../../../model/store/tabs/parameters/parametersSelectors.js";
10
+ import { selectExportEffectiveParameters, selectSmartPersistedTabsParameters, } from "../../../../model/store/tabs/parameters/parametersSelectors.js";
11
11
  import { selectTabs } from "../../../../model/store/tabs/tabsSelectors.js";
12
12
  import { availableAutomationParameters, reconstructAutomationParametersFromExportParameters, shouldStoreExportParameters, toEffectiveParametersByTab, } from "./automationParameters.js";
13
13
  /**
@@ -15,12 +15,13 @@ import { availableAutomationParameters, reconstructAutomationParametersFromExpor
15
15
  */
16
16
  export function useAutomationExportParameters({ automationToEdit, widget, storeParameters, setParametersWire, }) {
17
17
  const parametersEnabled = useDashboardSelector(selectEnableParameters);
18
+ const stringParametersEnabled = useDashboardSelector(selectEnableStringParameters);
18
19
  const catalog = useDashboardSelector(selectCatalogParameters);
19
20
  const dashboardParametersByTab = useDashboardSelector(selectSmartPersistedTabsParameters);
20
21
  const tabs = useDashboardSelector(selectTabs);
21
22
  const widgetTabMap = useDashboardSelector(selectWidgetLocalIdToTabIdMap);
22
23
  const widgetIds = widget ? [objRefToString(widget.ref)] : undefined;
23
- const effectiveParametersByTab = useDashboardSelector(selectAutomationExportEffectiveParameters(widgetIds));
24
+ const effectiveParametersByTab = useDashboardSelector(selectExportEffectiveParameters(widgetIds));
24
25
  const flatTabId = resolveFlatTabId(widget, widgetTabMap, tabs);
25
26
  const shouldStore = shouldStoreExportParameters(!!widget, storeParameters);
26
27
  const [editedParametersByTab, setEditedParametersByTab] = useState(() => {
@@ -28,7 +29,7 @@ export function useAutomationExportParameters({ automationToEdit, widget, storeP
28
29
  return {};
29
30
  }
30
31
  const storedByTab = getAutomationExportParametersByTab(automationToEdit);
31
- return reconstructParametersByTab(storedByTab ?? effectiveParametersByTab, dashboardParametersByTab, catalog);
32
+ return reconstructParametersByTab(storedByTab ?? effectiveParametersByTab, dashboardParametersByTab, catalog, stringParametersEnabled);
32
33
  });
33
34
  // Encodes the gated wire shape and writes it onto the automation — the only path to the document.
34
35
  const persistWire = useCallback((parametersByTab, store) => setParametersWire(toEffectiveParametersByTab(parametersByTab, parametersEnabled && store)), [parametersEnabled, setParametersWire]);
@@ -50,9 +51,9 @@ export function useAutomationExportParameters({ automationToEdit, widget, storeP
50
51
  // path; dashboard schedules have no widget context and fall back to dashboard/default
51
52
  // inside availableAutomationParameters.
52
53
  const widgetParameterValues = widget
53
- ? exportParametersToValues(effectiveParametersByTab[tabId] ?? [])
54
+ ? exportParametersToValues(effectiveParametersByTab[tabId] ?? [], stringParametersEnabled)
54
55
  : [];
55
- result[tabId] = availableAutomationParameters(catalog, editedParametersByTab[tabId] ?? [], dashboardParametersByTab[tabId] ?? [], widgetParameterValues);
56
+ result[tabId] = availableAutomationParameters(catalog, editedParametersByTab[tabId] ?? [], dashboardParametersByTab[tabId] ?? [], widgetParameterValues, stringParametersEnabled);
56
57
  }
57
58
  return result;
58
59
  }, [
@@ -64,11 +65,18 @@ export function useAutomationExportParameters({ automationToEdit, widget, storeP
64
65
  catalog,
65
66
  dashboardParametersByTab,
66
67
  effectiveParametersByTab,
68
+ stringParametersEnabled,
67
69
  ]);
68
70
  // The fresh per-tab execution set reconstructed from the current dashboard's effective values.
69
71
  const parametersForNewAutomation = useMemo(() => parametersEnabled
70
- ? reconstructParametersByTab(effectiveParametersByTab, dashboardParametersByTab, catalog)
71
- : {}, [parametersEnabled, effectiveParametersByTab, dashboardParametersByTab, catalog]);
72
+ ? reconstructParametersByTab(effectiveParametersByTab, dashboardParametersByTab, catalog, stringParametersEnabled)
73
+ : {}, [
74
+ parametersEnabled,
75
+ effectiveParametersByTab,
76
+ dashboardParametersByTab,
77
+ catalog,
78
+ stringParametersEnabled,
79
+ ]);
72
80
  const applyLatest = useCallback(() => {
73
81
  setEditedParametersByTab(parametersForNewAutomation);
74
82
  persistWire(parametersForNewAutomation, shouldStore);
@@ -138,6 +146,6 @@ function resolveFlatTabId(widget, widgetTabMap, tabs) {
138
146
  function isVisibleParameter(parameter) {
139
147
  return parameter.mode !== DashboardParameterModeValues.HIDDEN;
140
148
  }
141
- function reconstructParametersByTab(byTab, dashboardParametersByTab, catalog) {
142
- return mapValues(byTab, (exportParameters, tabId) => reconstructAutomationParametersFromExportParameters(exportParameters, dashboardParametersByTab[tabId] ?? [], catalog));
149
+ function reconstructParametersByTab(byTab, dashboardParametersByTab, catalog, isStringParametersEnabled) {
150
+ return mapValues(byTab, (exportParameters, tabId) => reconstructAutomationParametersFromExportParameters(exportParameters, dashboardParametersByTab[tabId] ?? [], catalog, isStringParametersEnabled));
143
151
  }
@@ -33,7 +33,7 @@ export declare const useAutomationFilters: ({ availableFilters, selectedFilters,
33
33
  availableFilters: FilterContextItem[];
34
34
  selectedFilters: FilterContextItem[];
35
35
  disableDateFilters?: boolean | undefined;
36
- onFiltersChange: (filters: FilterContextItem[], enableNewScheduledExport: boolean) => void;
36
+ onFiltersChange: (filters: FilterContextItem[]) => void;
37
37
  onStoreFiltersChange: (shouldStore: boolean, filters: FilterContextItem[], filtersByTab?: Record<string, FilterContextItem[]> | undefined) => void;
38
38
  }) => {
39
39
  commonDateFilterId: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"useAutomationFilters.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/shared/automationFilters/useAutomationFilters.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,gBAAgB,EAA0C,MAAM,OAAO,CAAC;AAItF,OAAO,EACH,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,+BAA+B,EACpC,KAAK,8BAA8B,EAEnC,KAAK,MAAM,EAMd,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AAgFxF;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC3C,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,cAAc,EAAE,iBAAiB,EAAE,CAAC;IACpC,kCAAkC;IAClC,aAAa,EAAE,iBAAiB,EAAE,CAAC;IACnC,2DAA2D;IAC3D,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAChC,8DAA8D;IAC9D,YAAY,EAAE,mBAAmB,EAAE,CAAC;IACpC,sFAAsF;IACtF,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,4DAA4D;IAC5D,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;IACxC,4CAA4C;IAC5C,gBAAgB,EAAE,+BAA+B,EAAE,CAAC;IACpD,uCAAuC;IACvC,WAAW,EAAE,8BAA8B,EAAE,CAAC;CACjD;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;CAwQhC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;CAuQrC,CAAC"}
1
+ {"version":3,"file":"useAutomationFilters.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/shared/automationFilters/useAutomationFilters.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,gBAAgB,EAA0C,MAAM,OAAO,CAAC;AAItF,OAAO,EACH,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,+BAA+B,EACpC,KAAK,8BAA8B,EAEnC,KAAK,MAAM,EAMd,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AAgFxF;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC3C,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,cAAc,EAAE,iBAAiB,EAAE,CAAC;IACpC,kCAAkC;IAClC,aAAa,EAAE,iBAAiB,EAAE,CAAC;IACnC,2DAA2D;IAC3D,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAChC,8DAA8D;IAC9D,YAAY,EAAE,mBAAmB,EAAE,CAAC;IACpC,sFAAsF;IACtF,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,4DAA4D;IAC5D,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;IACxC,4CAA4C;IAC5C,gBAAgB,EAAE,+BAA+B,EAAE,CAAC;IACpD,uCAAuC;IACvC,WAAW,EAAE,8BAA8B,EAAE,CAAC;CACjD;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;CAuQhC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;CAuQrC,CAAC"}
@@ -33,7 +33,7 @@ function computeAddDropdownMeasures(nonSelectedFilters, context) {
33
33
  */
34
34
  export const useAutomationFilters = ({ availableFilters, selectedFilters, onFiltersChange, onStoreFiltersChange, disableDateFilters = false, }) => {
35
35
  const intl = useIntl();
36
- const { catalogAttributes: allAttributes, catalogDateDatasets: allDateDatasets, catalogMeasures: allMeasures, attributeFilterConfigs: attributeConfigs, dateFilterConfigs: dateConfigs, measureValueFilterConfigs: mvfConfigs, dateFilterContextConfig: dateFilterConfig, commonDateFilterId, lockedFilters, enableNewScheduledExport, } = useAutomationsContext();
36
+ const { catalogAttributes: allAttributes, catalogDateDatasets: allDateDatasets, catalogMeasures: allMeasures, attributeFilterConfigs: attributeConfigs, dateFilterConfigs: dateConfigs, measureValueFilterConfigs: mvfConfigs, dateFilterContextConfig: dateFilterConfig, commonDateFilterId, lockedFilters, } = useAutomationsContext();
37
37
  const [filterAnnouncement, setFilterAnnouncement] = useState("");
38
38
  const addFilterButtonRef = useRef(null);
39
39
  const filterGroupRef = useRef(null);
@@ -104,7 +104,7 @@ export const useAutomationFilters = ({ availableFilters, selectedFilters, onFilt
104
104
  }
105
105
  return prevFilter;
106
106
  });
107
- onFiltersChange(updatedFilters, enableNewScheduledExport);
107
+ onFiltersChange(updatedFilters);
108
108
  },
109
109
  // eslint-disable-next-line react-hooks/exhaustive-deps
110
110
  [onFiltersChange, selectedFilters, allAttributes, allDateDatasets, intl]);
@@ -113,7 +113,7 @@ export const useAutomationFilters = ({ availableFilters, selectedFilters, onFilt
113
113
  const message = intl.formatMessage({ id: "automationFilters.announcement.filterRemoved" }, { title: filterTitle });
114
114
  announceFiltersChanged(message);
115
115
  const updatedFilters = selectedFilters.filter((prevFilter) => !areFiltersMatchedByIdentifier(prevFilter, filter));
116
- onFiltersChange(updatedFilters, enableNewScheduledExport);
116
+ onFiltersChange(updatedFilters);
117
117
  focusFilterGroup();
118
118
  },
119
119
  // eslint-disable-next-line react-hooks/exhaustive-deps
@@ -136,7 +136,7 @@ export const useAutomationFilters = ({ availableFilters, selectedFilters, onFilt
136
136
  const filterTitle = getFilterTitle(filter, allAttributes, allDateDatasets, intl);
137
137
  const message = intl.formatMessage({ id: "automationFilters.announcement.filterAdded" }, { title: filterTitle });
138
138
  const updatedFilters = [...selectedFilters, filter];
139
- onFiltersChange(updatedFilters, enableNewScheduledExport);
139
+ onFiltersChange(updatedFilters);
140
140
  announceFiltersChanged(message);
141
141
  setTimeout(focusAddFilterButton);
142
142
  }
@@ -1,4 +1,4 @@
1
- import { type IdentifierRef } from "@gooddata/sdk-model";
1
+ import { type IdentifierRef, type ParameterValue } from "@gooddata/sdk-model";
2
2
  import { type IAutomationParameter } from "./automationParameters.js";
3
3
  /**
4
4
  * Owns the parameter screen-reader announcement string and how a parameter is named (its title, or
@@ -9,7 +9,7 @@ import { type IAutomationParameter } from "./automationParameters.js";
9
9
  export declare function useParameterAnnouncements(): {
10
10
  parameterAnnouncement: string;
11
11
  announceParameterAdded: (list: IAutomationParameter[], ref: IdentifierRef) => void;
12
- announceParameterChanged: (list: IAutomationParameter[], ref: IdentifierRef, value: number) => void;
12
+ announceParameterChanged: (list: IAutomationParameter[], ref: IdentifierRef, value: ParameterValue) => void;
13
13
  announceParameterRemoved: (list: IAutomationParameter[], ref: IdentifierRef) => void;
14
14
  };
15
15
  //# sourceMappingURL=useParameterAnnouncements.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useParameterAnnouncements.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/shared/automationFilters/useParameterAnnouncements.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,aAAa,EAAmB,MAAM,qBAAqB,CAAC;AAE1E,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAQtE;;;;;GAKG;AACH,wBAAgB,yBAAyB,IAAI;IACzC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,sBAAsB,EAAE,CAAC,IAAI,EAAE,oBAAoB,EAAE,EAAE,GAAG,EAAE,aAAa,KAAK,IAAI,CAAC;IACnF,wBAAwB,EAAE,CAAC,IAAI,EAAE,oBAAoB,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACpG,wBAAwB,EAAE,CAAC,IAAI,EAAE,oBAAoB,EAAE,EAAE,GAAG,EAAE,aAAa,KAAK,IAAI,CAAC;CACxF,CAmBA"}
1
+ {"version":3,"file":"useParameterAnnouncements.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/shared/automationFilters/useParameterAnnouncements.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,cAAc,EAAmB,MAAM,qBAAqB,CAAC;AAE/F,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAQtE;;;;;GAKG;AACH,wBAAgB,yBAAyB,IAAI;IACzC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,sBAAsB,EAAE,CAAC,IAAI,EAAE,oBAAoB,EAAE,EAAE,GAAG,EAAE,aAAa,KAAK,IAAI,CAAC;IACnF,wBAAwB,EAAE,CACtB,IAAI,EAAE,oBAAoB,EAAE,EAC5B,GAAG,EAAE,aAAa,EAClB,KAAK,EAAE,cAAc,KACpB,IAAI,CAAC;IACV,wBAAwB,EAAE,CAAC,IAAI,EAAE,oBAAoB,EAAE,EAAE,GAAG,EAAE,aAAa,KAAK,IAAI,CAAC;CACxF,CAmBA"}
@@ -1 +1 @@
1
- {"version":3,"file":"DashboardInner.d.ts","sourceRoot":"","sources":["../../../../src/presentation/dashboard/components/DashboardInner.tsx"],"names":[],"mappings":"AAwCA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAOnD,wBAAgB,cAAc,CAAC,KAAK,EAAE,eAAe,2CA2GpD"}
1
+ {"version":3,"file":"DashboardInner.d.ts","sourceRoot":"","sources":["../../../../src/presentation/dashboard/components/DashboardInner.tsx"],"names":[],"mappings":"AAwCA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAOnD,wBAAgB,cAAc,CAAC,KAAK,EAAE,eAAe,2CA4GpD"}