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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (191) hide show
  1. package/NOTICE +3 -3
  2. package/esm/__version.d.ts +1 -1
  3. package/esm/__version.js +1 -1
  4. package/esm/index.d.ts +3 -1
  5. package/esm/index.d.ts.map +1 -1
  6. package/esm/index.js +3 -1
  7. package/esm/model/commandHandlers/index.d.ts.map +1 -1
  8. package/esm/model/commandHandlers/index.js +2 -0
  9. package/esm/model/commandHandlers/timezone/changeDashboardTimezoneOverrideHandler.d.ts +6 -0
  10. package/esm/model/commandHandlers/timezone/changeDashboardTimezoneOverrideHandler.d.ts.map +1 -0
  11. package/esm/model/commandHandlers/timezone/changeDashboardTimezoneOverrideHandler.js +39 -0
  12. package/esm/model/commands/base.d.ts +1 -1
  13. package/esm/model/commands/base.d.ts.map +1 -1
  14. package/esm/model/commands/index.d.ts +2 -1
  15. package/esm/model/commands/index.d.ts.map +1 -1
  16. package/esm/model/commands/timezone.d.ts +42 -0
  17. package/esm/model/commands/timezone.d.ts.map +1 -0
  18. package/esm/model/commands/timezone.js +29 -0
  19. package/esm/model/events/base.d.ts +1 -1
  20. package/esm/model/events/base.d.ts.map +1 -1
  21. package/esm/model/events/index.d.ts +2 -1
  22. package/esm/model/events/index.d.ts.map +1 -1
  23. package/esm/model/events/timezone.d.ts +50 -0
  24. package/esm/model/events/timezone.d.ts.map +1 -0
  25. package/esm/model/events/timezone.js +31 -0
  26. package/esm/model/react/useDashboardCommand.d.ts +1 -0
  27. package/esm/model/react/useDashboardCommand.d.ts.map +1 -1
  28. package/esm/model/react/useDashboardCommandProcessing.d.ts +4 -0
  29. package/esm/model/react/useDashboardCommandProcessing.d.ts.map +1 -1
  30. package/esm/model/store/meta/metaSelectors.d.ts +6 -4
  31. package/esm/model/store/meta/metaSelectors.d.ts.map +1 -1
  32. package/esm/model/store/meta/metaSelectors.js +17 -6
  33. package/esm/model/store/ui/index.d.ts +3 -0
  34. package/esm/model/store/ui/index.d.ts.map +1 -1
  35. package/esm/model/store/ui/uiReducers.d.ts +6 -0
  36. package/esm/model/store/ui/uiReducers.d.ts.map +1 -1
  37. package/esm/model/store/ui/uiReducers.js +15 -0
  38. package/esm/model/store/ui/uiSelectors.d.ts +15 -0
  39. package/esm/model/store/ui/uiSelectors.d.ts.map +1 -1
  40. package/esm/model/store/ui/uiSelectors.js +15 -0
  41. package/esm/model/store/ui/uiState.d.ts +12 -0
  42. package/esm/model/store/ui/uiState.d.ts.map +1 -1
  43. package/esm/model/store/ui/uiState.js +4 -0
  44. package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.d.ts.map +1 -1
  45. package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.js +4 -23
  46. package/esm/presentation/automations/alerting/DefaultAlertingDialog/hooks/useAlertFilters.d.ts +17 -8
  47. package/esm/presentation/automations/alerting/DefaultAlertingDialog/hooks/useAlertFilters.d.ts.map +1 -1
  48. package/esm/presentation/automations/alerting/DefaultAlertingDialog/hooks/useAlertFilters.js +20 -8
  49. package/esm/presentation/automations/alerting/DefaultAlertingDialog/hooks/useAlertFormState.js +1 -1
  50. package/esm/presentation/automations/alerting/DefaultAlertingDialog/hooks/useEditAlert.d.ts +7 -8
  51. package/esm/presentation/automations/alerting/DefaultAlertingDialog/hooks/useEditAlert.d.ts.map +1 -1
  52. package/esm/presentation/automations/alerting/DefaultAlertingDialog/hooks/useEditAlert.js +14 -4
  53. package/esm/presentation/automations/connectors/ScheduledEmailConnector.js +1 -1
  54. package/esm/presentation/automations/connectors/ScheduledEmailConnector.test.js +1 -1
  55. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.d.ts.map +1 -1
  56. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.js +4 -44
  57. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.d.ts +25 -26
  58. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.d.ts.map +1 -1
  59. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.js +20 -9
  60. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useScheduledEmailEffectiveFilters.js +1 -1
  61. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useScheduledEmailFilters.d.ts +37 -15
  62. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useScheduledEmailFilters.d.ts.map +1 -1
  63. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useScheduledEmailFilters.js +42 -20
  64. package/esm/presentation/automations/shared/automationFilters/hooks/useDefaultSelectedFiltersForExistingAutomation.js +1 -1
  65. package/esm/presentation/automations/shared/automationFilters/hooks/useValidateExistingAutomationFilters.d.ts.map +1 -1
  66. package/esm/presentation/automations/shared/automationFilters/hooks/useValidateExistingAutomationFilters.js +2 -1
  67. package/esm/presentation/automations/shared/automationFilters/utils.d.ts +1 -32
  68. package/esm/presentation/automations/shared/automationFilters/utils.d.ts.map +1 -1
  69. package/esm/presentation/automations/shared/automationFilters/utils.js +2 -177
  70. package/esm/presentation/automations/shared/filters/conversions.d.ts +36 -0
  71. package/esm/presentation/automations/shared/filters/conversions.d.ts.map +1 -0
  72. package/esm/presentation/automations/shared/filters/conversions.js +242 -0
  73. package/esm/presentation/automations/shared/filters/index.d.ts +2 -0
  74. package/esm/presentation/automations/shared/filters/index.d.ts.map +1 -0
  75. package/esm/presentation/automations/shared/filters/index.js +3 -0
  76. package/esm/presentation/dashboard/DashboardHeader/DashboardHeader.d.ts.map +1 -1
  77. package/esm/presentation/dashboard/DashboardHeader/DashboardHeader.js +2 -1
  78. package/esm/presentation/dashboard/DashboardHeader/TimezoneDialogProvider.d.ts +6 -0
  79. package/esm/presentation/dashboard/DashboardHeader/TimezoneDialogProvider.d.ts.map +1 -0
  80. package/esm/presentation/dashboard/DashboardHeader/TimezoneDialogProvider.js +14 -0
  81. package/esm/presentation/dashboard/components/DashboardLoading.js +1 -1
  82. package/esm/presentation/dashboardSettingsDialog/TimezoneOption.d.ts.map +1 -1
  83. package/esm/presentation/dashboardSettingsDialog/TimezoneOption.js +9 -7
  84. package/esm/presentation/drill/DrillSelect/DrillSelectDropdownMenuItem.js +2 -2
  85. package/esm/presentation/localization/bundles/de-DE.localization-bundle.d.ts +11 -0
  86. package/esm/presentation/localization/bundles/de-DE.localization-bundle.d.ts.map +1 -1
  87. package/esm/presentation/localization/bundles/de-DE.localization-bundle.js +13 -2
  88. package/esm/presentation/localization/bundles/en-AU.localization-bundle.d.ts +11 -0
  89. package/esm/presentation/localization/bundles/en-AU.localization-bundle.d.ts.map +1 -1
  90. package/esm/presentation/localization/bundles/en-AU.localization-bundle.js +13 -2
  91. package/esm/presentation/localization/bundles/en-GB.localization-bundle.d.ts +11 -0
  92. package/esm/presentation/localization/bundles/en-GB.localization-bundle.d.ts.map +1 -1
  93. package/esm/presentation/localization/bundles/en-GB.localization-bundle.js +13 -2
  94. package/esm/presentation/localization/bundles/en-US.localization-bundle.d.ts +40 -0
  95. package/esm/presentation/localization/bundles/en-US.localization-bundle.d.ts.map +1 -1
  96. package/esm/presentation/localization/bundles/en-US.localization-bundle.js +45 -5
  97. package/esm/presentation/localization/bundles/es-419.localization-bundle.d.ts +11 -0
  98. package/esm/presentation/localization/bundles/es-419.localization-bundle.d.ts.map +1 -1
  99. package/esm/presentation/localization/bundles/es-419.localization-bundle.js +13 -2
  100. package/esm/presentation/localization/bundles/es-ES.localization-bundle.d.ts +11 -0
  101. package/esm/presentation/localization/bundles/es-ES.localization-bundle.d.ts.map +1 -1
  102. package/esm/presentation/localization/bundles/es-ES.localization-bundle.js +13 -2
  103. package/esm/presentation/localization/bundles/fi-FI.localization-bundle.d.ts +11 -0
  104. package/esm/presentation/localization/bundles/fi-FI.localization-bundle.d.ts.map +1 -1
  105. package/esm/presentation/localization/bundles/fi-FI.localization-bundle.js +13 -2
  106. package/esm/presentation/localization/bundles/fr-CA.localization-bundle.d.ts +11 -0
  107. package/esm/presentation/localization/bundles/fr-CA.localization-bundle.d.ts.map +1 -1
  108. package/esm/presentation/localization/bundles/fr-CA.localization-bundle.js +13 -2
  109. package/esm/presentation/localization/bundles/fr-FR.localization-bundle.d.ts +11 -0
  110. package/esm/presentation/localization/bundles/fr-FR.localization-bundle.d.ts.map +1 -1
  111. package/esm/presentation/localization/bundles/fr-FR.localization-bundle.js +13 -2
  112. package/esm/presentation/localization/bundles/id-ID.localization-bundle.d.ts +11 -0
  113. package/esm/presentation/localization/bundles/id-ID.localization-bundle.d.ts.map +1 -1
  114. package/esm/presentation/localization/bundles/id-ID.localization-bundle.js +13 -2
  115. package/esm/presentation/localization/bundles/it-IT.localization-bundle.d.ts +11 -0
  116. package/esm/presentation/localization/bundles/it-IT.localization-bundle.d.ts.map +1 -1
  117. package/esm/presentation/localization/bundles/it-IT.localization-bundle.js +13 -2
  118. package/esm/presentation/localization/bundles/ja-JP.localization-bundle.d.ts +11 -0
  119. package/esm/presentation/localization/bundles/ja-JP.localization-bundle.d.ts.map +1 -1
  120. package/esm/presentation/localization/bundles/ja-JP.localization-bundle.js +13 -2
  121. package/esm/presentation/localization/bundles/ko-KR.localization-bundle.d.ts +11 -0
  122. package/esm/presentation/localization/bundles/ko-KR.localization-bundle.d.ts.map +1 -1
  123. package/esm/presentation/localization/bundles/ko-KR.localization-bundle.js +13 -2
  124. package/esm/presentation/localization/bundles/nl-NL.localization-bundle.d.ts +11 -0
  125. package/esm/presentation/localization/bundles/nl-NL.localization-bundle.d.ts.map +1 -1
  126. package/esm/presentation/localization/bundles/nl-NL.localization-bundle.js +13 -2
  127. package/esm/presentation/localization/bundles/pl-PL.localization-bundle.d.ts +11 -0
  128. package/esm/presentation/localization/bundles/pl-PL.localization-bundle.d.ts.map +1 -1
  129. package/esm/presentation/localization/bundles/pl-PL.localization-bundle.js +13 -2
  130. package/esm/presentation/localization/bundles/pt-BR.localization-bundle.d.ts +11 -0
  131. package/esm/presentation/localization/bundles/pt-BR.localization-bundle.d.ts.map +1 -1
  132. package/esm/presentation/localization/bundles/pt-BR.localization-bundle.js +13 -2
  133. package/esm/presentation/localization/bundles/pt-PT.localization-bundle.d.ts +11 -0
  134. package/esm/presentation/localization/bundles/pt-PT.localization-bundle.d.ts.map +1 -1
  135. package/esm/presentation/localization/bundles/pt-PT.localization-bundle.js +13 -2
  136. package/esm/presentation/localization/bundles/ru-RU.localization-bundle.d.ts +11 -0
  137. package/esm/presentation/localization/bundles/ru-RU.localization-bundle.d.ts.map +1 -1
  138. package/esm/presentation/localization/bundles/ru-RU.localization-bundle.js +13 -2
  139. package/esm/presentation/localization/bundles/sl-SI.localization-bundle.d.ts +11 -0
  140. package/esm/presentation/localization/bundles/sl-SI.localization-bundle.d.ts.map +1 -1
  141. package/esm/presentation/localization/bundles/sl-SI.localization-bundle.js +13 -2
  142. package/esm/presentation/localization/bundles/th-TH.localization-bundle.d.ts +11 -0
  143. package/esm/presentation/localization/bundles/th-TH.localization-bundle.d.ts.map +1 -1
  144. package/esm/presentation/localization/bundles/th-TH.localization-bundle.js +13 -2
  145. package/esm/presentation/localization/bundles/tr-TR.localization-bundle.d.ts +11 -0
  146. package/esm/presentation/localization/bundles/tr-TR.localization-bundle.d.ts.map +1 -1
  147. package/esm/presentation/localization/bundles/tr-TR.localization-bundle.js +13 -2
  148. package/esm/presentation/localization/bundles/uk-UA.localization-bundle.d.ts +11 -0
  149. package/esm/presentation/localization/bundles/uk-UA.localization-bundle.d.ts.map +1 -1
  150. package/esm/presentation/localization/bundles/uk-UA.localization-bundle.js +13 -2
  151. package/esm/presentation/localization/bundles/vi-VN.localization-bundle.d.ts +11 -0
  152. package/esm/presentation/localization/bundles/vi-VN.localization-bundle.d.ts.map +1 -1
  153. package/esm/presentation/localization/bundles/vi-VN.localization-bundle.js +13 -2
  154. package/esm/presentation/localization/bundles/zh-HK.localization-bundle.d.ts +11 -0
  155. package/esm/presentation/localization/bundles/zh-HK.localization-bundle.d.ts.map +1 -1
  156. package/esm/presentation/localization/bundles/zh-HK.localization-bundle.js +13 -2
  157. package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.d.ts +11 -0
  158. package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.d.ts.map +1 -1
  159. package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.js +13 -2
  160. package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.d.ts +11 -0
  161. package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.d.ts.map +1 -1
  162. package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.js +13 -2
  163. package/esm/presentation/timezoneDialog/TimezoneDialog.d.ts +15 -0
  164. package/esm/presentation/timezoneDialog/TimezoneDialog.d.ts.map +1 -0
  165. package/esm/presentation/timezoneDialog/TimezoneDialog.js +80 -0
  166. package/esm/presentation/topBar/menuButton/useDefaultMenuItems.d.ts.map +1 -1
  167. package/esm/presentation/topBar/menuButton/useDefaultMenuItems.js +22 -3
  168. package/esm/presentation/topBar/timezoneIndicator/TimezoneIndicator.d.ts.map +1 -1
  169. package/esm/presentation/topBar/timezoneIndicator/TimezoneIndicator.js +2 -2
  170. package/esm/presentation/topBar/timezoneIndicator/resolveDashboardTimezoneInfo.d.ts +5 -3
  171. package/esm/presentation/topBar/timezoneIndicator/resolveDashboardTimezoneInfo.d.ts.map +1 -1
  172. package/esm/presentation/topBar/timezoneIndicator/resolveDashboardTimezoneInfo.js +6 -4
  173. package/esm/presentation/topBar/topBar/DefaultTopBar.d.ts.map +1 -1
  174. package/esm/presentation/topBar/topBar/DefaultTopBar.js +5 -3
  175. package/esm/sdk-ui-dashboard.d.ts +140 -11
  176. package/package.json +21 -21
  177. package/styles/css/filterBar.css +1 -0
  178. package/styles/css/filterBar.css.map +1 -1
  179. package/styles/css/main.css +24 -0
  180. package/styles/css/main.css.map +1 -1
  181. package/styles/css/timezoneDialog.css +24 -0
  182. package/styles/css/timezoneDialog.css.map +1 -0
  183. package/styles/scss/filterBar.scss +7 -0
  184. package/styles/scss/main.scss +1 -0
  185. package/styles/scss/timezoneDialog.scss +31 -0
  186. package/esm/presentation/automations/scheduledEmail/utils/filters.d.ts +0 -3
  187. package/esm/presentation/automations/scheduledEmail/utils/filters.d.ts.map +0 -1
  188. package/esm/presentation/automations/scheduledEmail/utils/filters.js +0 -5
  189. package/esm/presentation/automations/shared/utils/filterContextUtils.d.ts +0 -4
  190. package/esm/presentation/automations/shared/utils/filterContextUtils.d.ts.map +0 -1
  191. package/esm/presentation/automations/shared/utils/filterContextUtils.js +0 -67
@@ -0,0 +1,24 @@
1
+ .gd-timezone-dialog-description {
2
+ font-size: 14px;
3
+ margin-top: 20px;
4
+ }
5
+
6
+ .gd-timezone-dialog .gd-dialog-footer {
7
+ border-top: 1px solid var(--gd-palette-complementary-3, #dde4eb);
8
+ padding-top: 20px;
9
+ }
10
+ .gd-timezone-dialog .gd-timezone-select__button {
11
+ height: 32px;
12
+ width: 300px;
13
+ }
14
+ .gd-timezone-dialog .gd-timezone-dialog-picker {
15
+ display: flex;
16
+ align-items: center;
17
+ }
18
+ .gd-timezone-dialog .gd-timezone-dialog-current-time {
19
+ margin-left: 15px;
20
+ color: var(--gd-palette-complementary-6, #94a1ad);
21
+ white-space: nowrap;
22
+ }
23
+
24
+ /*# sourceMappingURL=timezoneDialog.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sourceRoot":"","sources":["../scss/timezoneDialog.scss","../../node_modules/@gooddata/sdk-ui-kit/styles/scss/variables.scss"],"names":[],"mappings":"AAIA;EACI;EACA;;;AAIA;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA,OCEe;EDDf","file":"timezoneDialog.css"}
@@ -10,6 +10,13 @@ $attribute-filter-drag-handle-left: 10px;
10
10
 
11
11
  .dash-filters-wrapper {
12
12
  position: relative;
13
+ // The ".show-all" row below is in the flow, so it adds a full-width band to this wrapper that
14
+ // only the centred button paints on. The wrapper sits in the sticky/fixed dashboard header, so
15
+ // without a background of its own that band is see-through and the dashboard content scrolling
16
+ // underneath shows through either side of the button (EB-872). Paint the content background
17
+ // here rather than on ".show-all": as the parent, it lands *below* the filter rows' bottom
18
+ // border in paint order, so the border still shows through.
19
+ background-color: variables.$gd-dashboards-content-backgroundColor;
13
20
 
14
21
  .show-all {
15
22
  position: relative;
@@ -42,6 +42,7 @@
42
42
  @use "alerting";
43
43
  @use "deleteDialog";
44
44
  @use "densityDialog";
45
+ @use "timezoneDialog";
45
46
  @use "visualizationSwitcherToolbar";
46
47
  @use "visualizationSwitcherHeader";
47
48
  @use "dashboardNestedLayoutToolbar";
@@ -0,0 +1,31 @@
1
+ // (C) 2026 GoodData Corporation
2
+
3
+ @use "@gooddata/sdk-ui-kit/styles/scss/variables" as kit-variables;
4
+
5
+ .gd-timezone-dialog-description {
6
+ font-size: 14px;
7
+ margin-top: 20px;
8
+ }
9
+
10
+ .gd-timezone-dialog {
11
+ .gd-dialog-footer {
12
+ border-top: 1px solid kit-variables.$gd-border-color;
13
+ padding-top: 20px;
14
+ }
15
+
16
+ .gd-timezone-select__button {
17
+ height: 32px;
18
+ width: 300px;
19
+ }
20
+
21
+ .gd-timezone-dialog-picker {
22
+ display: flex;
23
+ align-items: center;
24
+ }
25
+
26
+ .gd-timezone-dialog-current-time {
27
+ margin-left: 15px;
28
+ color: kit-variables.$gd-color-state-blank;
29
+ white-space: nowrap;
30
+ }
31
+ }
@@ -1,3 +0,0 @@
1
- import { type FilterContextItem } from "@gooddata/sdk-model";
2
- export declare function getAppliedDashboardFilters(selectedAutomationFilters: FilterContextItem[], dashboardHiddenFilters: FilterContextItem[], storeFilters?: boolean): FilterContextItem[] | undefined;
3
- //# sourceMappingURL=filters.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/scheduledEmail/utils/filters.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAI7D,wBAAgB,0BAA0B,CACtC,yBAAyB,EAAE,iBAAiB,EAAE,EAC9C,sBAAsB,EAAE,iBAAiB,EAAE,EAC3C,YAAY,CAAC,EAAE,OAAO,mCAOzB"}
@@ -1,5 +0,0 @@
1
- // (C) 2026 GoodData Corporation
2
- import { getAppliedDashboardFilters as getAppliedDashboardFiltersFromAutomationFilters } from "../../shared/automationFilters/utils.js";
3
- export function getAppliedDashboardFilters(selectedAutomationFilters, dashboardHiddenFilters, storeFilters) {
4
- return getAppliedDashboardFiltersFromAutomationFilters(selectedAutomationFilters, dashboardHiddenFilters, storeFilters);
5
- }
@@ -1,4 +0,0 @@
1
- import { type FilterContextItem } from "@gooddata/sdk-model";
2
- import { type IDashboardFilter } from "../../../../types.js";
3
- export declare function dashboardFilterToFilterContextItem(filter: IDashboardFilter, keepDatasets: boolean): FilterContextItem | undefined;
4
- //# sourceMappingURL=filterContextUtils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"filterContextUtils.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/shared/utils/filterContextUtils.ts"],"names":[],"mappings":"AAKA,OAAO,EAEH,KAAK,iBAAiB,EAmBzB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,wBAAgB,kCAAkC,CAC9C,MAAM,EAAE,gBAAgB,EACxB,YAAY,EAAE,OAAO,GACtB,iBAAiB,GAAG,SAAS,CA8E/B"}
@@ -1,67 +0,0 @@
1
- // (C) 2021-2026 GoodData Corporation
2
- // Derived from _staging/dashboard/dashboardFilterContext.ts
3
- import { NotSupported } from "@gooddata/sdk-backend-spi";
4
- import { filterAttributeElements, filterLocalIdentifier, filterObjRef, isAbsoluteDateFilter, isAllTimeDateFilter, isArbitraryAttributeFilter, isAttributeFilterWithSelection, isMatchAttributeFilter, isMeasureValueFilter, isNegativeAttributeFilter, isObjRef, isRelativeBoundedDateFilter, isRelativeDateFilter, measureValueFilterConditions, measureValueFilterMeasure, newAbsoluteDashboardDateFilter, newAllTimeDashboardDateFilter, newRelativeDashboardDateFilter, } from "@gooddata/sdk-model";
5
- export function dashboardFilterToFilterContextItem(filter, keepDatasets) {
6
- if (isAttributeFilterWithSelection(filter)) {
7
- return {
8
- attributeFilter: {
9
- negativeSelection: isNegativeAttributeFilter(filter),
10
- displayForm: filterObjRef(filter),
11
- attributeElements: filterAttributeElements(filter),
12
- selectionMode: "multi",
13
- localIdentifier: filterLocalIdentifier(filter),
14
- },
15
- };
16
- }
17
- else if (isArbitraryAttributeFilter(filter)) {
18
- return {
19
- arbitraryAttributeFilter: {
20
- displayForm: filterObjRef(filter),
21
- values: filter.arbitraryAttributeFilter.values,
22
- negativeSelection: filter.arbitraryAttributeFilter.negativeSelection ?? false,
23
- localIdentifier: filterLocalIdentifier(filter),
24
- },
25
- };
26
- }
27
- else if (isMatchAttributeFilter(filter)) {
28
- return {
29
- matchAttributeFilter: {
30
- displayForm: filterObjRef(filter),
31
- operator: filter.matchAttributeFilter.operator,
32
- literal: filter.matchAttributeFilter.literal,
33
- caseSensitive: filter.matchAttributeFilter.caseSensitive,
34
- negativeSelection: filter.matchAttributeFilter.negativeSelection,
35
- localIdentifier: filterLocalIdentifier(filter),
36
- },
37
- };
38
- }
39
- else if (isAbsoluteDateFilter(filter)) {
40
- return newAbsoluteDashboardDateFilter(filter.absoluteDateFilter.from, filter.absoluteDateFilter.to, keepDatasets ? filter.absoluteDateFilter.dataSet : undefined, filter.absoluteDateFilter.localIdentifier, filter.absoluteDateFilter.emptyValueHandling);
41
- }
42
- else if (isAllTimeDateFilter(filter)) {
43
- return newAllTimeDashboardDateFilter(keepDatasets ? filter.relativeDateFilter.dataSet : undefined, filter.relativeDateFilter.localIdentifier, filter.relativeDateFilter.emptyValueHandling);
44
- }
45
- else if (isRelativeDateFilter(filter)) {
46
- return newRelativeDashboardDateFilter(filter.relativeDateFilter.granularity, filter.relativeDateFilter.from, filter.relativeDateFilter.to, keepDatasets ? filter.relativeDateFilter.dataSet : undefined, filter.relativeDateFilter.localIdentifier, isRelativeBoundedDateFilter(filter) ? filter.relativeDateFilter.boundedFilter : undefined, filter.relativeDateFilter.emptyValueHandling);
47
- }
48
- else if (isMeasureValueFilter(filter)) {
49
- const measure = measureValueFilterMeasure(filter);
50
- // Dashboard MVFs always reference the measure by ObjRef. Insight MVFs use LocalIdRef
51
- // (bucket localId) and have no honest representation in the dashboard filter context —
52
- // they reach this converter only because automation execution filters mix dashboard and
53
- // insight filters. Caller is responsible for dropping these undefined entries.
54
- if (!isObjRef(measure)) {
55
- return undefined;
56
- }
57
- const conditions = measureValueFilterConditions(filter);
58
- return {
59
- dashboardMeasureValueFilter: {
60
- measure,
61
- localIdentifier: filter.measureValueFilter.localIdentifier ?? `mvf:${JSON.stringify(measure)}`,
62
- ...(conditions ? { conditions } : {}),
63
- },
64
- };
65
- }
66
- throw new NotSupported(`Unsupported filter type! Please provide valid dashboard filter. Filter: ${JSON.stringify(filter)}`);
67
- }