@gooddata/sdk-ui-dashboard 11.65.0-alpha.0 → 11.65.0-alpha.10

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 (430) hide show
  1. package/NOTICE +72077 -4
  2. package/esm/__version.d.ts +1 -1
  3. package/esm/__version.d.ts.map +1 -1
  4. package/esm/__version.js +1 -1
  5. package/esm/assets/type-csv-formatted.svg +1 -1
  6. package/esm/assets/type-csv-raw.svg +1 -1
  7. package/esm/index.d.ts +7 -4
  8. package/esm/index.d.ts.map +1 -1
  9. package/esm/index.js +3 -2
  10. package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/resolveDashboardConfig.d.ts.map +1 -1
  11. package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/resolveDashboardConfig.js +1 -3
  12. package/esm/model/commandHandlers/filterContext/attributeFilter/changeAttributeDisplayFormHandler.d.ts.map +1 -1
  13. package/esm/model/commandHandlers/filterContext/attributeFilter/changeAttributeDisplayFormHandler.js +8 -7
  14. package/esm/model/commandHandlers/filterContext/attributeFilter/changeAttributeFilterSelectionHandler.d.ts.map +1 -1
  15. package/esm/model/commandHandlers/filterContext/attributeFilter/changeAttributeFilterSelectionHandler.js +19 -28
  16. package/esm/model/commandHandlers/filterContext/attributeFilter/removeAttributeFiltersHandler.d.ts.map +1 -1
  17. package/esm/model/commandHandlers/filterContext/attributeFilter/removeAttributeFiltersHandler.js +4 -5
  18. package/esm/model/commandHandlers/filterContext/attributeFilter/replaceAttributeFilterItemSelectionHandler.d.ts.map +1 -1
  19. package/esm/model/commandHandlers/filterContext/attributeFilter/replaceAttributeFilterItemSelectionHandler.js +14 -15
  20. package/esm/model/commandHandlers/filterContext/attributeFilter/resolveDisplayFormMetadata.d.ts +4 -1
  21. package/esm/model/commandHandlers/filterContext/attributeFilter/resolveDisplayFormMetadata.d.ts.map +1 -1
  22. package/esm/model/commandHandlers/filterContext/attributeFilter/resolveDisplayFormMetadata.js +11 -2
  23. package/esm/model/commandHandlers/filterContext/changeFilterContextSelectionHandler.d.ts.map +1 -1
  24. package/esm/model/commandHandlers/filterContext/changeFilterContextSelectionHandler.js +23 -45
  25. package/esm/model/commandHandlers/filterContext/common.d.ts +6 -5
  26. package/esm/model/commandHandlers/filterContext/common.d.ts.map +1 -1
  27. package/esm/model/commandHandlers/filterContext/common.js +12 -18
  28. package/esm/model/commandHandlers/filterContext/dateFilter/changeDateFilterSelectionHandler.d.ts.map +1 -1
  29. package/esm/model/commandHandlers/filterContext/dateFilter/changeDateFilterSelectionHandler.js +30 -36
  30. package/esm/model/commandHandlers/filterContext/measureValueFilter/changeMeasureValueFilterConditionHandler.d.ts.map +1 -1
  31. package/esm/model/commandHandlers/filterContext/measureValueFilter/changeMeasureValueFilterConditionHandler.js +11 -17
  32. package/esm/model/commandHandlers/filterContext/measureValueFilter/changeMeasureValueFilterDimensionalityHandler.d.ts.map +1 -1
  33. package/esm/model/commandHandlers/filterContext/measureValueFilter/changeMeasureValueFilterDimensionalityHandler.js +7 -10
  34. package/esm/model/commandHandlers/filterContext/tabSync/expandActionsForTabSync.d.ts +15 -0
  35. package/esm/model/commandHandlers/filterContext/tabSync/expandActionsForTabSync.d.ts.map +1 -0
  36. package/esm/model/commandHandlers/filterContext/tabSync/expandActionsForTabSync.js +88 -0
  37. package/esm/model/commandHandlers/filterContext/tabSync/tabSyncRules.d.ts +11 -0
  38. package/esm/model/commandHandlers/filterContext/tabSync/tabSyncRules.d.ts.map +1 -0
  39. package/esm/model/commandHandlers/filterContext/tabSync/tabSyncRules.js +335 -0
  40. package/esm/model/commandHandlers/filterContext/tabSync/tabSyncSaga.d.ts +52 -0
  41. package/esm/model/commandHandlers/filterContext/tabSync/tabSyncSaga.d.ts.map +1 -0
  42. package/esm/model/commandHandlers/filterContext/tabSync/tabSyncSaga.js +60 -0
  43. package/esm/model/commandHandlers/filterContext/tabSync/tabSyncScope.d.ts +69 -0
  44. package/esm/model/commandHandlers/filterContext/tabSync/tabSyncScope.d.ts.map +1 -0
  45. package/esm/model/commandHandlers/filterContext/tabSync/tabSyncScope.js +2 -0
  46. package/esm/model/commandHandlers/parameters/changeParameterValuesHandler.d.ts +2 -1
  47. package/esm/model/commandHandlers/parameters/changeParameterValuesHandler.d.ts.map +1 -1
  48. package/esm/model/commandHandlers/parameters/changeParameterValuesHandler.js +41 -10
  49. package/esm/model/commands/parameters.d.ts +11 -1
  50. package/esm/model/commands/parameters.d.ts.map +1 -1
  51. package/esm/model/commands/parameters.js +2 -1
  52. package/esm/model/events/base.d.ts +1 -1
  53. package/esm/model/events/base.d.ts.map +1 -1
  54. package/esm/model/events/index.d.ts +2 -1
  55. package/esm/model/events/index.d.ts.map +1 -1
  56. package/esm/model/events/insightEditor.d.ts +128 -0
  57. package/esm/model/events/insightEditor.d.ts.map +1 -0
  58. package/esm/model/events/insightEditor.js +74 -0
  59. package/esm/model/queryServices/queryAttributeElements.js +1 -0
  60. package/esm/model/react/useInitializeDashboardStore.d.ts.map +1 -1
  61. package/esm/model/react/useInitializeDashboardStore.js +4 -9
  62. package/esm/model/store/config/configReducers.d.ts +4 -8
  63. package/esm/model/store/config/configReducers.d.ts.map +1 -1
  64. package/esm/model/store/config/configReducers.js +6 -12
  65. package/esm/model/store/config/configSelectors.d.ts +24 -0
  66. package/esm/model/store/config/configSelectors.d.ts.map +1 -1
  67. package/esm/model/store/config/configSelectors.js +30 -4
  68. package/esm/model/store/config/index.d.ts +2 -3
  69. package/esm/model/store/config/index.d.ts.map +1 -1
  70. package/esm/model/store/tabs/attributeFilterConfigs/attributeFilterConfigsReducers.d.ts +75 -5
  71. package/esm/model/store/tabs/attributeFilterConfigs/attributeFilterConfigsReducers.d.ts.map +1 -1
  72. package/esm/model/store/tabs/attributeFilterConfigs/attributeFilterConfigsReducers.js +35 -60
  73. package/esm/model/store/tabs/dateFilterConfigs/dateFilterConfigsReducers.js +1 -1
  74. package/esm/model/store/tabs/filterContext/filterContextReducers.d.ts +139 -31
  75. package/esm/model/store/tabs/filterContext/filterContextReducers.d.ts.map +1 -1
  76. package/esm/model/store/tabs/filterContext/filterContextReducers.js +314 -529
  77. package/esm/model/store/tabs/filterContext/filterSync.d.ts +35 -13
  78. package/esm/model/store/tabs/filterContext/filterSync.d.ts.map +1 -1
  79. package/esm/model/store/tabs/filterContext/filterSync.js +79 -58
  80. package/esm/model/store/tabs/index.d.ts +10 -12
  81. package/esm/model/store/tabs/index.d.ts.map +1 -1
  82. package/esm/model/store/tabs/layout/layoutReducers.d.ts +1 -0
  83. package/esm/model/store/tabs/layout/layoutReducers.d.ts.map +1 -1
  84. package/esm/model/store/tabs/measureValueFilterConfigs/measureValueFilterConfigsReducers.d.ts.map +1 -1
  85. package/esm/model/store/tabs/parameters/parametersReducers.d.ts +0 -5
  86. package/esm/model/store/tabs/parameters/parametersReducers.d.ts.map +1 -1
  87. package/esm/model/store/tabs/parameters/parametersReducers.js +8 -7
  88. package/esm/model/store/tabs/parameters/parametersSelectors.d.ts +7 -0
  89. package/esm/model/store/tabs/parameters/parametersSelectors.d.ts.map +1 -1
  90. package/esm/model/store/tabs/parameters/parametersSelectors.js +16 -0
  91. package/esm/model/store/tabs/tabsReducers.d.ts +8 -4
  92. package/esm/model/store/tabs/tabsReducers.d.ts.map +1 -1
  93. package/esm/model/store/tabs/tabsReducers.js +15 -18
  94. package/esm/model/store/tabs/tabsState.d.ts +0 -10
  95. package/esm/model/store/tabs/tabsState.d.ts.map +1 -1
  96. package/esm/model/store/tabs/tabsState.js +0 -20
  97. package/esm/model/store/ui/index.d.ts +2 -0
  98. package/esm/model/store/ui/index.d.ts.map +1 -1
  99. package/esm/model/store/ui/uiReducers.d.ts +6 -0
  100. package/esm/model/store/ui/uiReducers.d.ts.map +1 -1
  101. package/esm/model/store/ui/uiReducers.js +8 -0
  102. package/esm/model/store/ui/uiSelectors.d.ts +7 -0
  103. package/esm/model/store/ui/uiSelectors.d.ts.map +1 -1
  104. package/esm/model/store/ui/uiSelectors.js +6 -0
  105. package/esm/model/store/ui/uiState.d.ts +5 -0
  106. package/esm/model/store/ui/uiState.d.ts.map +1 -1
  107. package/esm/model/store/ui/uiState.js +1 -0
  108. package/esm/model/types/attributeFilterTypes.d.ts +5 -0
  109. package/esm/model/types/attributeFilterTypes.d.ts.map +1 -1
  110. package/esm/model/types/attributeFilterTypes.js +1 -1
  111. package/esm/model/types/commonTypes.d.ts +38 -22
  112. package/esm/model/types/commonTypes.d.ts.map +1 -1
  113. package/esm/model/types/insightEditorTypes.d.ts +43 -0
  114. package/esm/model/types/insightEditorTypes.d.ts.map +1 -0
  115. package/esm/model/types/insightEditorTypes.js +2 -0
  116. package/esm/model/utils/attributeFilterMatching.d.ts +10 -0
  117. package/esm/model/utils/attributeFilterMatching.d.ts.map +1 -1
  118. package/esm/model/utils/attributeFilterMatching.js +14 -3
  119. package/esm/model/utils/attributeFilterSelectionTypeCompatibility.d.ts +8 -0
  120. package/esm/model/utils/attributeFilterSelectionTypeCompatibility.d.ts.map +1 -1
  121. package/esm/model/utils/attributeFilterSelectionTypeCompatibility.js +14 -4
  122. package/esm/presentation/automations/alerting/hooks/useAttributeValuesFromExecResults.d.ts +33 -2
  123. package/esm/presentation/automations/alerting/hooks/useAttributeValuesFromExecResults.d.ts.map +1 -1
  124. package/esm/presentation/automations/alerting/hooks/useAttributeValuesFromExecResults.js +29 -13
  125. package/esm/presentation/automations/alerting/state/useAlertSupportedMetrics.d.ts.map +1 -1
  126. package/esm/presentation/automations/alerting/state/useAlertSupportedMetrics.js +3 -2
  127. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/DashboardAttachments.d.ts.map +1 -1
  128. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/DashboardAttachments.js +3 -3
  129. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/WidgetAttachments.d.ts.map +1 -1
  130. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/WidgetAttachments.js +5 -4
  131. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/RecipientsSelect/LiveRegionLastSelectContainer.d.ts +9 -0
  132. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/RecipientsSelect/LiveRegionLastSelectContainer.d.ts.map +1 -0
  133. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/RecipientsSelect/LiveRegionLastSelectContainer.js +12 -0
  134. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/RecipientsSelect/RecipientsSelect.d.ts.map +1 -1
  135. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/RecipientsSelect/RecipientsSelect.js +3 -3
  136. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/RecipientsSelect/RecipientsSelectRenderer.d.ts.map +1 -1
  137. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/RecipientsSelect/RecipientsSelectRenderer.js +14 -7
  138. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/RecipientsSelect/RecipientsSelectionDescription.d.ts +12 -0
  139. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/RecipientsSelect/RecipientsSelectionDescription.d.ts.map +1 -0
  140. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/RecipientsSelect/RecipientsSelectionDescription.js +30 -0
  141. package/esm/presentation/automations/scheduledEmail/utils/users.d.ts +1 -0
  142. package/esm/presentation/automations/scheduledEmail/utils/users.d.ts.map +1 -1
  143. package/esm/presentation/automations/scheduledEmail/utils/users.js +3 -0
  144. package/esm/presentation/automations/shared/automationFilters/utils.d.ts +4 -0
  145. package/esm/presentation/automations/shared/automationFilters/utils.d.ts.map +1 -1
  146. package/esm/presentation/automations/shared/automationFilters/utils.js +12 -5
  147. package/esm/presentation/dashboard/DashboardHeader/DashboardHeader.d.ts +1 -1
  148. package/esm/presentation/dashboard/DashboardHeader/DashboardHeader.d.ts.map +1 -1
  149. package/esm/presentation/dashboard/DashboardHeader/DashboardHeader.js +2 -11
  150. package/esm/presentation/dashboard/DashboardSidebar/CreationPanel.d.ts.map +1 -1
  151. package/esm/presentation/dashboard/DashboardSidebar/CreationPanel.js +10 -1
  152. package/esm/presentation/dashboard/DefaultDashboardContent/DashboardContentLoader.d.ts +5 -0
  153. package/esm/presentation/dashboard/DefaultDashboardContent/DashboardContentLoader.d.ts.map +1 -0
  154. package/esm/presentation/dashboard/DefaultDashboardContent/DashboardContentLoader.js +27 -0
  155. package/esm/presentation/dashboard/DefaultDashboardContent/DefaultDashboardMainContent.d.ts.map +1 -1
  156. package/esm/presentation/dashboard/DefaultDashboardContent/DefaultDashboardMainContent.js +7 -2
  157. package/esm/presentation/dashboard/components/DashboardAiComposingOverlay.d.ts +4 -0
  158. package/esm/presentation/dashboard/components/DashboardAiComposingOverlay.d.ts.map +1 -0
  159. package/esm/presentation/dashboard/components/DashboardAiComposingOverlay.js +151 -0
  160. package/esm/presentation/dashboard/components/DashboardInner.d.ts.map +1 -1
  161. package/esm/presentation/dashboard/components/DashboardInner.js +17 -14
  162. package/esm/presentation/dashboard/components/DashboardInteractionComposing.d.ts +8 -0
  163. package/esm/presentation/dashboard/components/DashboardInteractionComposing.d.ts.map +1 -0
  164. package/esm/presentation/dashboard/components/DashboardInteractionComposing.js +23 -0
  165. package/esm/presentation/dashboard/components/DashboardInteractionLock.d.ts +8 -0
  166. package/esm/presentation/dashboard/components/DashboardInteractionLock.d.ts.map +1 -0
  167. package/esm/presentation/dashboard/components/DashboardInteractionLock.js +29 -0
  168. package/esm/presentation/dashboard/components/DashboardScreenSizeContext.d.ts.map +1 -1
  169. package/esm/presentation/dashboard/components/DashboardScreenSizeContext.js +10 -7
  170. package/esm/presentation/dashboard/components/ToastMessages.d.ts.map +1 -1
  171. package/esm/presentation/dashboard/components/ToastMessages.js +6 -3
  172. package/esm/presentation/dashboard/components/useEditModeLayoutNoteMessages.d.ts +6 -0
  173. package/esm/presentation/dashboard/components/useEditModeLayoutNoteMessages.d.ts.map +1 -0
  174. package/esm/presentation/dashboard/components/useEditModeLayoutNoteMessages.js +48 -0
  175. package/esm/presentation/dashboard/hooks/useDashboard.d.ts.map +1 -1
  176. package/esm/presentation/dashboard/hooks/useDashboard.js +3 -2
  177. package/esm/presentation/dashboard/types.d.ts +5 -0
  178. package/esm/presentation/dashboard/types.d.ts.map +1 -1
  179. package/esm/presentation/dragAndDrop/draggableWidget/AddDashboardLayoutWidgetButton.d.ts.map +1 -1
  180. package/esm/presentation/dragAndDrop/draggableWidget/AddDashboardLayoutWidgetButton.js +2 -4
  181. package/esm/presentation/dragAndDrop/draggableWidget/AddRichTextWidgetButton.d.ts.map +1 -1
  182. package/esm/presentation/dragAndDrop/draggableWidget/AddRichTextWidgetButton.js +3 -3
  183. package/esm/presentation/dragAndDrop/draggableWidget/AddVisualizationSwitcherWidgetButton.d.ts.map +1 -1
  184. package/esm/presentation/dragAndDrop/draggableWidget/AddVisualizationSwitcherWidgetButton.js +2 -4
  185. package/esm/presentation/drill/utils/drillDownUtils.d.ts.map +1 -1
  186. package/esm/presentation/drill/utils/drillDownUtils.js +3 -2
  187. package/esm/presentation/export/hooks/useDashboardRelatedFilters.d.ts +8 -1
  188. package/esm/presentation/export/hooks/useDashboardRelatedFilters.d.ts.map +1 -1
  189. package/esm/presentation/export/hooks/useDashboardRelatedFilters.js +21 -5
  190. package/esm/presentation/filterBar/attributeFilter/DefaultDashboardAttributeFilter.d.ts.map +1 -1
  191. package/esm/presentation/filterBar/attributeFilter/DefaultDashboardAttributeFilter.js +3 -2
  192. package/esm/presentation/filterBar/attributeFilter/addAttributeFilter/AddAttributeFilterPlaceholder.d.ts.map +1 -1
  193. package/esm/presentation/filterBar/attributeFilter/addAttributeFilter/AddAttributeFilterPlaceholder.js +3 -2
  194. package/esm/presentation/filterBar/attributeFilter/addAttributeFilter/attributeListItemTooltip/AttributeListItemTooltip.d.ts.map +1 -1
  195. package/esm/presentation/filterBar/attributeFilter/addAttributeFilter/attributeListItemTooltip/AttributeListItemTooltip.js +4 -1
  196. package/esm/presentation/filterBar/attributeFilter/addAttributeFilter/attributeListItemTooltip/AttributeListItemTooltipContent.d.ts +6 -2
  197. package/esm/presentation/filterBar/attributeFilter/addAttributeFilter/attributeListItemTooltip/AttributeListItemTooltipContent.d.ts.map +1 -1
  198. package/esm/presentation/filterBar/attributeFilter/addAttributeFilter/attributeListItemTooltip/AttributeListItemTooltipContent.js +8 -4
  199. package/esm/presentation/filterBar/filterBar/filterViews/FilterViewDeleteConfirm.d.ts +2 -1
  200. package/esm/presentation/filterBar/filterBar/filterViews/FilterViewDeleteConfirm.d.ts.map +1 -1
  201. package/esm/presentation/filterBar/filterBar/filterViews/FilterViewDeleteConfirm.js +2 -2
  202. package/esm/presentation/filterBar/filterBar/filterViews/FilterViewsList.d.ts.map +1 -1
  203. package/esm/presentation/filterBar/filterBar/filterViews/FilterViewsList.js +11 -5
  204. package/esm/presentation/filterBar/filterBar/hooks/useResetFiltersButton.d.ts.map +1 -1
  205. package/esm/presentation/filterBar/filterBar/hooks/useResetFiltersButton.js +4 -1
  206. package/esm/presentation/insightEditor/InsightEditorContent.d.ts +26 -0
  207. package/esm/presentation/insightEditor/InsightEditorContent.d.ts.map +1 -0
  208. package/esm/presentation/insightEditor/InsightEditorContent.js +158 -0
  209. package/esm/presentation/insightEditor/InsightEditorCreatePanelItem.d.ts +7 -0
  210. package/esm/presentation/insightEditor/InsightEditorCreatePanelItem.d.ts.map +1 -0
  211. package/esm/presentation/insightEditor/InsightEditorCreatePanelItem.js +25 -0
  212. package/esm/presentation/insightEditor/InsightEditorOverlay.d.ts +6 -0
  213. package/esm/presentation/insightEditor/InsightEditorOverlay.d.ts.map +1 -0
  214. package/esm/presentation/insightEditor/InsightEditorOverlay.js +110 -0
  215. package/esm/presentation/insightEditor/InsightEditorPermissionsContext.d.ts +10 -0
  216. package/esm/presentation/insightEditor/InsightEditorPermissionsContext.d.ts.map +1 -0
  217. package/esm/presentation/insightEditor/InsightEditorPermissionsContext.js +18 -0
  218. package/esm/presentation/insightEditor/InsightEditorPlaceholder.d.ts +7 -0
  219. package/esm/presentation/insightEditor/InsightEditorPlaceholder.d.ts.map +1 -0
  220. package/esm/presentation/insightEditor/InsightEditorPlaceholder.js +15 -0
  221. package/esm/presentation/insightEditor/filterContext/attributeFilters.d.ts +4 -0
  222. package/esm/presentation/insightEditor/filterContext/attributeFilters.d.ts.map +1 -0
  223. package/esm/presentation/insightEditor/filterContext/attributeFilters.js +115 -0
  224. package/esm/presentation/insightEditor/filterContext/dateFilters.d.ts +5 -0
  225. package/esm/presentation/insightEditor/filterContext/dateFilters.d.ts.map +1 -0
  226. package/esm/presentation/insightEditor/filterContext/dateFilters.js +117 -0
  227. package/esm/presentation/insightEditor/filterContext/filterIntersection.d.ts +7 -0
  228. package/esm/presentation/insightEditor/filterContext/filterIntersection.d.ts.map +1 -0
  229. package/esm/presentation/insightEditor/filterContext/filterIntersection.js +149 -0
  230. package/esm/presentation/insightEditor/filterContext/insightFilterContext.d.ts +26 -0
  231. package/esm/presentation/insightEditor/filterContext/insightFilterContext.d.ts.map +1 -0
  232. package/esm/presentation/insightEditor/filterContext/insightFilterContext.js +72 -0
  233. package/esm/presentation/insightEditor/filterContext/measureValueFilters.d.ts +20 -0
  234. package/esm/presentation/insightEditor/filterContext/measureValueFilters.d.ts.map +1 -0
  235. package/esm/presentation/insightEditor/filterContext/measureValueFilters.js +76 -0
  236. package/esm/presentation/insightEditor/filterContext/objQualifiers.d.ts +11 -0
  237. package/esm/presentation/insightEditor/filterContext/objQualifiers.d.ts.map +1 -0
  238. package/esm/presentation/insightEditor/filterContext/objQualifiers.js +18 -0
  239. package/esm/presentation/insightEditor/insightEditorEscapeGuard.d.ts +18 -0
  240. package/esm/presentation/insightEditor/insightEditorEscapeGuard.d.ts.map +1 -0
  241. package/esm/presentation/insightEditor/insightEditorEscapeGuard.js +24 -0
  242. package/esm/presentation/insightEditor/insightEditorRoute.d.ts +34 -0
  243. package/esm/presentation/insightEditor/insightEditorRoute.d.ts.map +1 -0
  244. package/esm/presentation/insightEditor/insightEditorRoute.js +48 -0
  245. package/esm/presentation/insightEditor/types.d.ts +7 -0
  246. package/esm/presentation/insightEditor/types.d.ts.map +1 -0
  247. package/esm/presentation/insightEditor/types.js +2 -0
  248. package/esm/presentation/insightEditor/useCanCreateInsightInEditor.d.ts +5 -0
  249. package/esm/presentation/insightEditor/useCanCreateInsightInEditor.d.ts.map +1 -0
  250. package/esm/presentation/insightEditor/useCanCreateInsightInEditor.js +14 -0
  251. package/esm/presentation/insightEditor/useExploreFilterTransfer.d.ts +21 -0
  252. package/esm/presentation/insightEditor/useExploreFilterTransfer.d.ts.map +1 -0
  253. package/esm/presentation/insightEditor/useExploreFilterTransfer.js +193 -0
  254. package/esm/presentation/insightEditor/useInsightEditPermissions.d.ts +17 -0
  255. package/esm/presentation/insightEditor/useInsightEditPermissions.d.ts.map +1 -0
  256. package/esm/presentation/insightEditor/useInsightEditPermissions.js +42 -0
  257. package/esm/presentation/insightEditor/useInsightEditorMenuItems.d.ts +23 -0
  258. package/esm/presentation/insightEditor/useInsightEditorMenuItems.d.ts.map +1 -0
  259. package/esm/presentation/insightEditor/useInsightEditorMenuItems.js +126 -0
  260. package/esm/presentation/insightEditor/useInsightEditorSession.d.ts +19 -0
  261. package/esm/presentation/insightEditor/useInsightEditorSession.d.ts.map +1 -0
  262. package/esm/presentation/insightEditor/useInsightEditorSession.js +141 -0
  263. package/esm/presentation/insightList/InsightList.d.ts.map +1 -1
  264. package/esm/presentation/insightList/InsightList.js +10 -5
  265. package/esm/presentation/localization/bundles/de-DE.localization-bundle.d.ts +6 -0
  266. package/esm/presentation/localization/bundles/de-DE.localization-bundle.d.ts.map +1 -1
  267. package/esm/presentation/localization/bundles/de-DE.localization-bundle.js +48 -42
  268. package/esm/presentation/localization/bundles/en-AU.localization-bundle.d.ts +6 -0
  269. package/esm/presentation/localization/bundles/en-AU.localization-bundle.d.ts.map +1 -1
  270. package/esm/presentation/localization/bundles/en-AU.localization-bundle.js +6 -0
  271. package/esm/presentation/localization/bundles/en-GB.localization-bundle.d.ts +6 -0
  272. package/esm/presentation/localization/bundles/en-GB.localization-bundle.d.ts.map +1 -1
  273. package/esm/presentation/localization/bundles/en-GB.localization-bundle.js +11 -5
  274. package/esm/presentation/localization/bundles/en-US.localization-bundle.d.ts +64 -0
  275. package/esm/presentation/localization/bundles/en-US.localization-bundle.d.ts.map +1 -1
  276. package/esm/presentation/localization/bundles/en-US.localization-bundle.js +64 -0
  277. package/esm/presentation/localization/bundles/es-419.localization-bundle.d.ts +6 -0
  278. package/esm/presentation/localization/bundles/es-419.localization-bundle.d.ts.map +1 -1
  279. package/esm/presentation/localization/bundles/es-419.localization-bundle.js +6 -0
  280. package/esm/presentation/localization/bundles/es-ES.localization-bundle.d.ts +6 -0
  281. package/esm/presentation/localization/bundles/es-ES.localization-bundle.d.ts.map +1 -1
  282. package/esm/presentation/localization/bundles/es-ES.localization-bundle.js +6 -0
  283. package/esm/presentation/localization/bundles/fi-FI.localization-bundle.d.ts +6 -0
  284. package/esm/presentation/localization/bundles/fi-FI.localization-bundle.d.ts.map +1 -1
  285. package/esm/presentation/localization/bundles/fi-FI.localization-bundle.js +6 -0
  286. package/esm/presentation/localization/bundles/fr-CA.localization-bundle.d.ts +6 -0
  287. package/esm/presentation/localization/bundles/fr-CA.localization-bundle.d.ts.map +1 -1
  288. package/esm/presentation/localization/bundles/fr-CA.localization-bundle.js +6 -0
  289. package/esm/presentation/localization/bundles/fr-FR.localization-bundle.d.ts +6 -0
  290. package/esm/presentation/localization/bundles/fr-FR.localization-bundle.d.ts.map +1 -1
  291. package/esm/presentation/localization/bundles/fr-FR.localization-bundle.js +187 -181
  292. package/esm/presentation/localization/bundles/id-ID.localization-bundle.d.ts +6 -0
  293. package/esm/presentation/localization/bundles/id-ID.localization-bundle.d.ts.map +1 -1
  294. package/esm/presentation/localization/bundles/id-ID.localization-bundle.js +6 -0
  295. package/esm/presentation/localization/bundles/it-IT.localization-bundle.d.ts +6 -0
  296. package/esm/presentation/localization/bundles/it-IT.localization-bundle.d.ts.map +1 -1
  297. package/esm/presentation/localization/bundles/it-IT.localization-bundle.js +6 -0
  298. package/esm/presentation/localization/bundles/ja-JP.localization-bundle.d.ts +6 -0
  299. package/esm/presentation/localization/bundles/ja-JP.localization-bundle.d.ts.map +1 -1
  300. package/esm/presentation/localization/bundles/ja-JP.localization-bundle.js +6 -0
  301. package/esm/presentation/localization/bundles/ko-KR.localization-bundle.d.ts +6 -0
  302. package/esm/presentation/localization/bundles/ko-KR.localization-bundle.d.ts.map +1 -1
  303. package/esm/presentation/localization/bundles/ko-KR.localization-bundle.js +6 -0
  304. package/esm/presentation/localization/bundles/nl-NL.localization-bundle.d.ts +6 -0
  305. package/esm/presentation/localization/bundles/nl-NL.localization-bundle.d.ts.map +1 -1
  306. package/esm/presentation/localization/bundles/nl-NL.localization-bundle.js +6 -0
  307. package/esm/presentation/localization/bundles/pl-PL.localization-bundle.d.ts +6 -0
  308. package/esm/presentation/localization/bundles/pl-PL.localization-bundle.d.ts.map +1 -1
  309. package/esm/presentation/localization/bundles/pl-PL.localization-bundle.js +6 -0
  310. package/esm/presentation/localization/bundles/pt-BR.localization-bundle.d.ts +6 -0
  311. package/esm/presentation/localization/bundles/pt-BR.localization-bundle.d.ts.map +1 -1
  312. package/esm/presentation/localization/bundles/pt-BR.localization-bundle.js +6 -0
  313. package/esm/presentation/localization/bundles/pt-PT.localization-bundle.d.ts +6 -0
  314. package/esm/presentation/localization/bundles/pt-PT.localization-bundle.d.ts.map +1 -1
  315. package/esm/presentation/localization/bundles/pt-PT.localization-bundle.js +6 -0
  316. package/esm/presentation/localization/bundles/ru-RU.localization-bundle.d.ts +6 -0
  317. package/esm/presentation/localization/bundles/ru-RU.localization-bundle.d.ts.map +1 -1
  318. package/esm/presentation/localization/bundles/ru-RU.localization-bundle.js +6 -0
  319. package/esm/presentation/localization/bundles/sl-SI.localization-bundle.d.ts +6 -0
  320. package/esm/presentation/localization/bundles/sl-SI.localization-bundle.d.ts.map +1 -1
  321. package/esm/presentation/localization/bundles/sl-SI.localization-bundle.js +6 -0
  322. package/esm/presentation/localization/bundles/th-TH.localization-bundle.d.ts +6 -0
  323. package/esm/presentation/localization/bundles/th-TH.localization-bundle.d.ts.map +1 -1
  324. package/esm/presentation/localization/bundles/th-TH.localization-bundle.js +6 -0
  325. package/esm/presentation/localization/bundles/tr-TR.localization-bundle.d.ts +6 -0
  326. package/esm/presentation/localization/bundles/tr-TR.localization-bundle.d.ts.map +1 -1
  327. package/esm/presentation/localization/bundles/tr-TR.localization-bundle.js +6 -0
  328. package/esm/presentation/localization/bundles/uk-UA.localization-bundle.d.ts +6 -0
  329. package/esm/presentation/localization/bundles/uk-UA.localization-bundle.d.ts.map +1 -1
  330. package/esm/presentation/localization/bundles/uk-UA.localization-bundle.js +6 -0
  331. package/esm/presentation/localization/bundles/vi-VN.localization-bundle.d.ts +6 -0
  332. package/esm/presentation/localization/bundles/vi-VN.localization-bundle.d.ts.map +1 -1
  333. package/esm/presentation/localization/bundles/vi-VN.localization-bundle.js +6 -0
  334. package/esm/presentation/localization/bundles/zh-HK.localization-bundle.d.ts +6 -0
  335. package/esm/presentation/localization/bundles/zh-HK.localization-bundle.d.ts.map +1 -1
  336. package/esm/presentation/localization/bundles/zh-HK.localization-bundle.js +6 -0
  337. package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.d.ts +6 -0
  338. package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.d.ts.map +1 -1
  339. package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.js +6 -0
  340. package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.d.ts +6 -0
  341. package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.d.ts.map +1 -1
  342. package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.js +7 -1
  343. package/esm/presentation/topBar/buttonBar/button/editButton/DefaultEditButton.d.ts.map +1 -1
  344. package/esm/presentation/topBar/buttonBar/button/editButton/DefaultEditButton.js +2 -4
  345. package/esm/presentation/topBar/buttonBar/button/saveAsButton/DefaultSaveAsNewButton.d.ts.map +1 -1
  346. package/esm/presentation/topBar/buttonBar/button/saveAsButton/DefaultSaveAsNewButton.js +3 -2
  347. package/esm/presentation/topBar/buttonBar/button/saveButton/DefaultSaveButton.d.ts.map +1 -1
  348. package/esm/presentation/topBar/buttonBar/button/saveButton/DefaultSaveButton.js +3 -2
  349. package/esm/presentation/topBar/buttonBar/button/settingButton/DefaultSettingButton.d.ts.map +1 -1
  350. package/esm/presentation/topBar/buttonBar/button/settingButton/DefaultSettingButton.js +3 -2
  351. package/esm/presentation/topBar/buttonBar/button/shareButton/DefaultShareButton.d.ts.map +1 -1
  352. package/esm/presentation/topBar/buttonBar/button/shareButton/DefaultShareButton.js +3 -2
  353. package/esm/presentation/topBar/title/EditableTitle.d.ts.map +1 -1
  354. package/esm/presentation/topBar/title/EditableTitle.js +6 -0
  355. package/esm/presentation/widget/insight/DefaultDashboardInsightComponentSetFactory.d.ts +1 -1
  356. package/esm/presentation/widget/insight/DefaultDashboardInsightComponentSetFactory.d.ts.map +1 -1
  357. package/esm/presentation/widget/insight/DefaultDashboardInsightComponentSetFactory.js +13 -1
  358. package/esm/presentation/widget/insightMenu/DefaultDashboardInsightMenu/DashboardInsightMenu/index.d.ts.map +1 -1
  359. package/esm/presentation/widget/insightMenu/DefaultDashboardInsightMenu/DashboardInsightMenu/index.js +10 -1
  360. package/esm/presentation/widget/richText/EditModeDashboardRichText.js +1 -1
  361. package/esm/presentation/widget/visualizationSwitcher/EditModeDashboardVisualizationSwitcher.js +1 -1
  362. package/esm/presentation/widget/visualizationSwitcher/configuration/ToolbarTop.js +2 -2
  363. package/esm/presentation/widget/widget/InsightWidget/useEditableInsightMenu.d.ts.map +1 -1
  364. package/esm/presentation/widget/widget/InsightWidget/useEditableInsightMenu.js +5 -1
  365. package/esm/presentation/widget/widget/InsightWidget/useInsightMenu.d.ts.map +1 -1
  366. package/esm/presentation/widget/widget/InsightWidget/useInsightMenu.js +4 -1
  367. package/esm/sdk-ui-dashboard.d.ts +528 -68
  368. package/package.json +23 -21
  369. package/styles/css/alerting.css +1 -1
  370. package/styles/css/alerting.css.map +1 -1
  371. package/styles/css/attributeFilterConfig.css +3 -3
  372. package/styles/css/automationFilters.css +1 -1
  373. package/styles/css/configurationPanel.css +2 -2
  374. package/styles/css/configurationPanel.css.map +1 -1
  375. package/styles/css/dashboard.css +149 -86
  376. package/styles/css/dashboard.css.map +1 -1
  377. package/styles/css/dashboardContentLoader.css +45 -0
  378. package/styles/css/dashboardContentLoader.css.map +1 -0
  379. package/styles/css/dashboardNestedLayoutToolbar.css.map +1 -1
  380. package/styles/css/dashboardNestedLayoutWidget.css +1 -1
  381. package/styles/css/dashboardSettingsDialog.css +1 -1
  382. package/styles/css/dragAndDrop.css +0 -8
  383. package/styles/css/dragAndDrop.css.map +1 -1
  384. package/styles/css/drillConfigPanel.css +7 -7
  385. package/styles/css/drillConfigPanel.css.map +1 -1
  386. package/styles/css/filterBar.css +4 -4
  387. package/styles/css/filterBar.css.map +1 -1
  388. package/styles/css/grouped-navigation.css +2 -2
  389. package/styles/css/grouped-navigation.css.map +1 -1
  390. package/styles/css/icons.css.map +1 -1
  391. package/styles/css/insightConfiguration.css +1 -1
  392. package/styles/css/insightConfiguration.css.map +1 -1
  393. package/styles/css/insightEditor.css +46 -0
  394. package/styles/css/insightEditor.css.map +1 -0
  395. package/styles/css/kpi.css +2 -2
  396. package/styles/css/kpi.css.map +1 -1
  397. package/styles/css/kpi_alert_dialog.css +2 -2
  398. package/styles/css/layout.css +5 -5
  399. package/styles/css/layout.css.map +1 -1
  400. package/styles/css/main.css +343 -218
  401. package/styles/css/main.css.map +1 -1
  402. package/styles/css/notifications_channels_dialog.css +2 -2
  403. package/styles/css/notifications_channels_dialog.css.map +1 -1
  404. package/styles/css/resizing.css.map +1 -1
  405. package/styles/css/richTextWidget.css.map +1 -1
  406. package/styles/css/saveAsDialog.css.map +1 -1
  407. package/styles/css/sidebar.css +35 -10
  408. package/styles/css/sidebar.css.map +1 -1
  409. package/styles/css/topBar.css.map +1 -1
  410. package/styles/css/visualization.css.map +1 -1
  411. package/styles/css/visualizationSwitcherHeader.css.map +1 -1
  412. package/styles/css/visualizationSwitcherToolbar.css +1 -1
  413. package/styles/css/visualizationSwitcherToolbar.css.map +1 -1
  414. package/styles/css/visualizationSwitcherWidget.css +1 -1
  415. package/styles/css/visualizationSwitcherWidget.css.map +1 -1
  416. package/styles/scss/_variables.scss +3 -2
  417. package/styles/scss/_zIndexes.scss +4 -0
  418. package/styles/scss/attributeFilterConfig.scss +1 -1
  419. package/styles/scss/configurationPanel.scss +1 -1
  420. package/styles/scss/dashboard.scss +113 -94
  421. package/styles/scss/dashboardContentLoader.scss +45 -0
  422. package/styles/scss/dragAndDrop.scss +2 -9
  423. package/styles/scss/drillConfigPanel.scss +3 -3
  424. package/styles/scss/insightEditor.scss +53 -0
  425. package/styles/scss/layout.scss +1 -1
  426. package/styles/scss/main.scss +1 -0
  427. package/styles/scss/sidebar.scss +47 -12
  428. package/esm/presentation/dashboard/components/DashboardSkeleton.d.ts +0 -5
  429. package/esm/presentation/dashboard/components/DashboardSkeleton.d.ts.map +0 -1
  430. package/esm/presentation/dashboard/components/DashboardSkeleton.js +0 -20
@@ -2,8 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  // (C) 2024-2026 GoodData Corporation
3
3
  import cx from "classnames";
4
4
  import { FormattedMessage } from "react-intl";
5
- import { IconColumnContainer, OverlayController, OverlayControllerProvider, UiLink, UiTooltip, bemFactory, useMediaQuery, } from "@gooddata/sdk-ui-kit";
6
- import { useTheme } from "@gooddata/sdk-ui-theme-provider";
5
+ import { OverlayController, OverlayControllerProvider, UiIcon, UiLink, UiTooltip, bemFactory, useMediaQuery, } from "@gooddata/sdk-ui-kit";
7
6
  import { useDashboardSelector } from "../../../model/react/DashboardStoreProvider.js";
8
7
  import { selectIsWhiteLabeled } from "../../../model/store/config/configSelectors.js";
9
8
  import { DASHBOARD_DIALOG_OVERS_Z_INDEX } from "../../constants/zIndex.js";
@@ -12,8 +11,7 @@ const tooltipBem = bemFactory("gd-container-tooltip");
12
11
  export function AddDashboardLayoutWidgetButton() {
13
12
  const isMobileDevice = useMediaQuery("mobileDevice");
14
13
  const isWhiteLabeled = useDashboardSelector(selectIsWhiteLabeled);
15
- const theme = useTheme();
16
- return (_jsxs("div", { className: "add-item-placeholder add-panel-item s-add-dashboard-layout", children: [_jsx(IconColumnContainer, { color: theme?.palette?.complementary?.c6 ?? "#94a1ad" }), _jsxs("div", { className: "add-panel-item__text", children: [_jsx(FormattedMessage, { id: "addPanel.dashboardLayout" }), _jsx(OverlayControllerProvider, { overlayController: overlayController, children: _jsx(UiTooltip, { arrowPlacement: "left", content: _jsxs("div", { className: tooltipBem.b(), children: [_jsx("div", { className: tooltipBem.e("image") }), _jsx("div", { className: tooltipBem.e("text"), children: _jsx(FormattedMessage, { id: "addPanel.dashboardLayout.tooltip" }) }), isWhiteLabeled ? null : (_jsx("div", { className: tooltipBem.e("actions"), children: _jsx(UiLink, { variant: "inverse", rel: "noreferrer noopener", target: "_blank", href: "https://www.gooddata.com/docs/cloud/create-dashboards/dashboard-layout/#column-container", children: _jsx(FormattedMessage, { id: "addPanel.dashboardLayout.tooltip.learnMore" }) }) }))] }), anchor: _jsx("div", { className: cx("s-description-trigger gd-add-item-placeholder-help-trigger", {
14
+ return (_jsxs("div", { className: "add-item-placeholder add-panel-item s-add-dashboard-layout", children: [_jsx("div", { className: "add-item-placeholder__icon", children: _jsx(UiIcon, { type: "columnGroup", size: 18, layout: "block" }) }), _jsxs("div", { className: "add-panel-item__text", children: [_jsx(FormattedMessage, { id: "addPanel.dashboardLayout" }), _jsx(OverlayControllerProvider, { overlayController: overlayController, children: _jsx(UiTooltip, { arrowPlacement: "left", content: _jsxs("div", { className: tooltipBem.b(), children: [_jsx("div", { className: tooltipBem.e("image") }), _jsx("div", { className: tooltipBem.e("text"), children: _jsx(FormattedMessage, { id: "addPanel.dashboardLayout.tooltip" }) }), isWhiteLabeled ? null : (_jsx("div", { className: tooltipBem.e("actions"), children: _jsx(UiLink, { variant: "inverse", rel: "noreferrer noopener", target: "_blank", href: "https://www.gooddata.com/docs/cloud/create-dashboards/dashboard-layout/#column-container", children: _jsx(FormattedMessage, { id: "addPanel.dashboardLayout.tooltip.learnMore" }) }) }))] }), anchor: _jsx("div", { className: cx("s-description-trigger gd-add-item-placeholder-help-trigger", {
17
15
  "is-mobile": isMobileDevice,
18
16
  }), children: _jsx("div", { className: "gd-icon-circle-question" }) }), optimalPlacement: true, triggerBy: ["hover"] }) })] })] }));
19
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AddRichTextWidgetButton.d.ts","sourceRoot":"","sources":["../../../../src/presentation/dragAndDrop/draggableWidget/AddRichTextWidgetButton.tsx"],"names":[],"mappings":"AAMA,wBAAgB,uBAAuB,4CAOtC"}
1
+ {"version":3,"file":"AddRichTextWidgetButton.d.ts","sourceRoot":"","sources":["../../../../src/presentation/dragAndDrop/draggableWidget/AddRichTextWidgetButton.tsx"],"names":[],"mappings":"AAMA,wBAAgB,uBAAuB,4CAStC"}
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- // (C) 2022-2025 GoodData Corporation
2
+ // (C) 2022-2026 GoodData Corporation
3
3
  import { FormattedMessage } from "react-intl";
4
- import { IconRichText } from "@gooddata/sdk-ui-kit";
4
+ import { UiIcon } from "@gooddata/sdk-ui-kit";
5
5
  export function AddRichTextWidgetButton() {
6
- return (_jsxs("div", { className: "add-item-placeholder add-panel-item s-add-rich-text", children: [_jsx(IconRichText, {}), _jsx(FormattedMessage, { id: "addPanel.richText" })] }));
6
+ return (_jsxs("div", { className: "add-item-placeholder add-panel-item s-add-rich-text", children: [_jsx("div", { className: "add-item-placeholder__icon", children: _jsx(UiIcon, { type: "richText", size: 18, layout: "block" }) }), _jsx(FormattedMessage, { id: "addPanel.richText" })] }));
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AddVisualizationSwitcherWidgetButton.d.ts","sourceRoot":"","sources":["../../../../src/presentation/dragAndDrop/draggableWidget/AddVisualizationSwitcherWidgetButton.tsx"],"names":[],"mappings":"AAqBA,wBAAgB,oCAAoC,4CA0BnD"}
1
+ {"version":3,"file":"AddVisualizationSwitcherWidgetButton.d.ts","sourceRoot":"","sources":["../../../../src/presentation/dragAndDrop/draggableWidget/AddVisualizationSwitcherWidgetButton.tsx"],"names":[],"mappings":"AAoBA,wBAAgB,oCAAoC,4CA2BnD"}
@@ -2,15 +2,13 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  // (C) 2024-2026 GoodData Corporation
3
3
  import cx from "classnames";
4
4
  import { FormattedMessage } from "react-intl";
5
- import { Bubble, BubbleHoverTrigger, IconVisualizationSwitcher, OverlayController, OverlayControllerProvider, useMediaQuery, } from "@gooddata/sdk-ui-kit";
6
- import { useTheme } from "@gooddata/sdk-ui-theme-provider";
5
+ import { Bubble, BubbleHoverTrigger, OverlayController, OverlayControllerProvider, UiIcon, useMediaQuery, } from "@gooddata/sdk-ui-kit";
7
6
  import { DASHBOARD_DIALOG_OVERS_Z_INDEX } from "../../constants/zIndex.js";
8
7
  const bubbleAlignPoints = [{ align: "cr cl", offset: { x: 5, y: 0 } }];
9
8
  const overlayController = OverlayController.getInstance(DASHBOARD_DIALOG_OVERS_Z_INDEX);
10
9
  export function AddVisualizationSwitcherWidgetButton() {
11
10
  const isMobileDevice = useMediaQuery("mobileDevice");
12
- const theme = useTheme();
13
- return (_jsxs("div", { className: "add-item-placeholder add-panel-item s-add-visualization-switcher", children: [_jsx(IconVisualizationSwitcher, { color: theme?.palette?.complementary?.c6 ?? "#94a1ad" }), _jsx(FormattedMessage, { id: "addPanel.visualizationSwitcher" }), _jsx(OverlayControllerProvider, { overlayController: overlayController, children: _jsxs(BubbleHoverTrigger, { eventsOnBubble: true, className: "gd-add-item-placeholder-help-trigger gd-add-visualization-switcher s-add-visualization-switcher-bubble-trigger", children: [_jsx("div", { className: cx("s-description-trigger", {
11
+ return (_jsxs("div", { className: "add-item-placeholder add-panel-item s-add-visualization-switcher", children: [_jsx("div", { className: "add-item-placeholder__icon", children: _jsx(UiIcon, { type: "visualizationStack", size: 18, layout: "block" }) }), _jsx(FormattedMessage, { id: "addPanel.visualizationSwitcher" }), _jsx(OverlayControllerProvider, { overlayController: overlayController, children: _jsxs(BubbleHoverTrigger, { eventsOnBubble: true, className: "gd-add-item-placeholder-help-trigger gd-add-visualization-switcher s-add-visualization-switcher-bubble-trigger", children: [_jsx("div", { className: cx("s-description-trigger", {
14
12
  "is-mobile": isMobileDevice,
15
13
  }), children: _jsx("div", { className: "gd-icon-circle-question" }) }), _jsx(Bubble, { alignPoints: bubbleAlignPoints, alignTo: ".gd-add-item-placeholder-help-trigger", children: _jsx(FormattedMessage, { id: "addPanel.visualizationSwitcher.tooltip" }) })] }) })] }));
16
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"drillDownUtils.d.ts","sourceRoot":"","sources":["../../../../src/presentation/drill/utils/drillDownUtils.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,KAAK,mCAAmC,EACxC,KAAK,uCAAuC,EAG/C,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,WAAW,EAAoC,MAAM,kBAAkB,CAAC;AAOtF,OAAO,EAAE,KAAK,wBAAwB,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAG7F;;GAEG;AACH,wBAAgB,iBAAiB,CAC7B,eAAe,EAAE,oBAAoB,EACrC,UAAU,EAAE,WAAW,EACvB,sCAAsC,CAAC,EAAE,uCAAuC,EAAE,EAClF,sBAAsB,CAAC,EAAE,mCAAmC,GAC7D,MAAM,GAAG,IAAI,CAoBf;AAED;;GAEG;AACH,wBAAgB,mCAAmC,CAC/C,kBAAkB,EAAE,MAAM,EAC1B,UAAU,EAAE,WAAW,GACxB,MAAM,GAAG,IAAI,CASf;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,eAAe,EAAE,wBAAwB,EAAE,GAAG,MAAM,CAE3F;AAED;;;;;GAKG;AACH,wBAAgB,kCAAkC,CAC9C,gBAAgB,EAAE,wBAAwB,EAAE,EAC5C,gBAAgB,GAAE,wBAAwB,EAAO,GAClD,wBAAwB,EAAE,CA0B5B"}
1
+ {"version":3,"file":"drillDownUtils.d.ts","sourceRoot":"","sources":["../../../../src/presentation/drill/utils/drillDownUtils.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,KAAK,mCAAmC,EACxC,KAAK,uCAAuC,EAG/C,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,WAAW,EAAoC,MAAM,kBAAkB,CAAC;AAOtF,OAAO,EAAE,KAAK,wBAAwB,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAG7F;;GAEG;AACH,wBAAgB,iBAAiB,CAC7B,eAAe,EAAE,oBAAoB,EACrC,UAAU,EAAE,WAAW,EACvB,sCAAsC,CAAC,EAAE,uCAAuC,EAAE,EAClF,sBAAsB,CAAC,EAAE,mCAAmC,GAC7D,MAAM,GAAG,IAAI,CAoBf;AAED;;GAEG;AACH,wBAAgB,mCAAmC,CAC/C,kBAAkB,EAAE,MAAM,EAC1B,UAAU,EAAE,WAAW,GACxB,MAAM,GAAG,IAAI,CAaf;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,eAAe,EAAE,wBAAwB,EAAE,GAAG,MAAM,CAE3F;AAED;;;;;GAKG;AACH,wBAAgB,kCAAkC,CAC9C,gBAAgB,EAAE,wBAAwB,EAAE,EAC5C,gBAAgB,GAAE,wBAAwB,EAAO,GAClD,wBAAwB,EAAE,CA0B5B"}
@@ -1,4 +1,4 @@
1
- // (C) 2020-2025 GoodData Corporation
1
+ // (C) 2020-2026 GoodData Corporation
2
2
  import { compact, isEqual, uniqWith } from "lodash-es";
3
3
  import { isCrossFiltering, isDrillToLegacyDashboard, } from "@gooddata/sdk-model";
4
4
  import { isDrillIntersectionAttributeItem } from "@gooddata/sdk-ui";
@@ -28,7 +28,8 @@ export function getDrillOriginAttributeElementTitle(drillOriginLocalId, drillEve
28
28
  .map((intersectionElement) => intersectionElement.header)
29
29
  .filter(isDrillIntersectionAttributeItem)
30
30
  .filter((intersectionAttributeItem) => intersectionAttributeItem.attributeHeader.localIdentifier === drillOriginLocalId)
31
- .map((intersectionAttributeItem) => intersectionAttributeItem.attributeHeaderItem.name)[0];
31
+ .map((intersectionAttributeItem) => intersectionAttributeItem.attributeHeaderItem.formattedName ??
32
+ intersectionAttributeItem.attributeHeaderItem.name)[0];
32
33
  }
33
34
  /**
34
35
  * Get total number of IDrillToUrl
@@ -1,4 +1,4 @@
1
- import { type DashboardAttributeFilterConfigMode, type DashboardDateFilterConfigMode } from "@gooddata/sdk-model";
1
+ import { type DashboardAttributeFilterConfigMode, type DashboardDateFilterConfigMode, type IAttributeElement, type ISeparators } from "@gooddata/sdk-model";
2
2
  /**
3
3
  * @alpha
4
4
  */
@@ -19,4 +19,11 @@ export declare function useDashboardRelatedFilters(run: boolean): {
19
19
  isError: boolean;
20
20
  isSuccess: boolean;
21
21
  };
22
+ /**
23
+ * Titles to display for the elements: the raw titles, with the values of a numeric computed attribute
24
+ * formatted by the number format of the elements query result.
25
+ *
26
+ * @internal exported for tests
27
+ */
28
+ export declare function elementsDisplayTitles(elements: IAttributeElement[], numberFormat: string | undefined, separators: ISeparators | undefined): Array<string | null>;
22
29
  //# sourceMappingURL=useDashboardRelatedFilters.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDashboardRelatedFilters.d.ts","sourceRoot":"","sources":["../../../../src/presentation/export/hooks/useDashboardRelatedFilters.ts"],"names":[],"mappings":"AAGA,OAAO,EACH,KAAK,kCAAkC,EACvC,KAAK,6BAA6B,EAOrC,MAAM,qBAAqB,CAAC;AAW7B;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACjC,IAAI,EAAE,iBAAiB,GAAG,YAAY,GAAG,oBAAoB,CAAC;IAC9D,GAAG,EAAE,OAAO,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,IAAI,CAAC;IACd,IAAI,EAAE,6BAA6B,GAAG,kCAAkC,CAAC;CAC5E,CAAC;AAEF,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,OAAO,GAAG;IACtD,WAAW,EAAE,sBAAsB,EAAE,CAAC;IACtC,gBAAgB,EAAE,sBAAsB,EAAE,CAAC;IAC3C,mBAAmB,EAAE,sBAAsB,EAAE,CAAC;IAC9C,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;CACtB,CA2DA"}
1
+ {"version":3,"file":"useDashboardRelatedFilters.d.ts","sourceRoot":"","sources":["../../../../src/presentation/export/hooks/useDashboardRelatedFilters.ts"],"names":[],"mappings":"AAGA,OAAO,EACH,KAAK,kCAAkC,EACvC,KAAK,6BAA6B,EAElC,KAAK,iBAAiB,EAEtB,KAAK,WAAW,EAInB,MAAM,qBAAqB,CAAC;AAkB7B;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACjC,IAAI,EAAE,iBAAiB,GAAG,YAAY,GAAG,oBAAoB,CAAC;IAC9D,GAAG,EAAE,OAAO,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,IAAI,CAAC;IACd,IAAI,EAAE,6BAA6B,GAAG,kCAAkC,CAAC;CAC5E,CAAC;AAEF,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,OAAO,GAAG;IACtD,WAAW,EAAE,sBAAsB,EAAE,CAAC;IACtC,gBAAgB,EAAE,sBAAsB,EAAE,CAAC;IAC3C,mBAAmB,EAAE,sBAAsB,EAAE,CAAC;IAC9C,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;CACtB,CA4DA;AA4CD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACjC,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,UAAU,EAAE,WAAW,GAAG,SAAS,GACpC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAQtB"}
@@ -1,8 +1,9 @@
1
1
  // (C) 2022-2026 GoodData Corporation
2
2
  import { areObjRefsEqual, getAttributeElementsItems, isDashboardAttributeFilter, } from "@gooddata/sdk-model";
3
- import { useBackendStrict, useCancelablePromise, useWorkspaceStrict } from "@gooddata/sdk-ui";
3
+ import { createNumberFormatter, formatAttributeValue, useBackendStrict, useCancelablePromise, useWorkspaceStrict, } from "@gooddata/sdk-ui";
4
4
  import { useFiltersNamings } from "../../../_staging/sharedHooks/useFiltersNamings.js";
5
5
  import { useDashboardSelector } from "../../../model/react/DashboardStoreProvider.js";
6
+ import { selectSeparators } from "../../../model/store/config/configSelectors.js";
6
7
  import { selectExecutableDashboardFilters } from "../../../model/store/filtering/dashboardFilterSelectors.js";
7
8
  import { selectAttributeFilterConfigsOverrides } from "../../../model/store/tabs/attributeFilterConfigs/attributeFilterConfigsSelectors.js";
8
9
  import { selectDateFilterConfigOverrides } from "../../../model/store/tabs/dateFilterConfig/dateFilterConfigSelectors.js";
@@ -16,14 +17,15 @@ export function useDashboardRelatedFilters(run) {
16
17
  const dateFiltersConfig = useDashboardSelector(selectDateFilterConfigsOverrides);
17
18
  const attributeFiltersConfig = useDashboardSelector(selectAttributeFilterConfigsOverrides);
18
19
  const measureValueFiltersConfig = useDashboardSelector(selectMeasureValueFilterConfigsOverrides);
20
+ const separators = useDashboardSelector(selectSeparators);
19
21
  const { result, status } = useCancelablePromise({
20
22
  promise: async () => {
21
23
  if (!run) {
22
24
  return dashboardFilters;
23
25
  }
24
- return Promise.all(dashboardFilters.map((f) => updateLabelElements(backend, workspaceId, attributeFiltersConfig, f)));
26
+ return Promise.all(dashboardFilters.map((f) => updateLabelElements(backend, workspaceId, attributeFiltersConfig, separators, f)));
25
27
  },
26
- }, [run, dashboardFilters]);
28
+ }, [run, dashboardFilters, separators]);
27
29
  const filters = useFiltersNamings(result ?? []);
28
30
  const all = filters.filter((f) => f && !f.all).map((f) => {
29
31
  if (f?.common) {
@@ -58,7 +60,7 @@ export function useDashboardRelatedFilters(run) {
58
60
  measureValueFilters: all.filter((f) => f?.type === "measureValueFilter"),
59
61
  };
60
62
  }
61
- async function updateLabelElements(backend, workspaceId, attributeFiltersConfig, dashboardFilter) {
63
+ async function updateLabelElements(backend, workspaceId, attributeFiltersConfig, separators, dashboardFilter) {
62
64
  // Skip filters that are not attribute filters
63
65
  if (isDashboardAttributeFilter(dashboardFilter)) {
64
66
  const config = attributeFiltersConfig.find((c) => c.localIdentifier === dashboardFilter.attributeFilter.localIdentifier);
@@ -76,15 +78,29 @@ async function updateLabelElements(backend, workspaceId, attributeFiltersConfig,
76
78
  });
77
79
  const data = await query.query();
78
80
  const all = await data.all();
81
+ // the filter is only described to the user from here on, so it carries the titles to display
79
82
  return {
80
83
  ...dashboardFilter,
81
84
  attributeFilter: {
82
85
  ...dashboardFilter.attributeFilter,
83
86
  attributeElements: {
84
- values: all.map((a) => a.title),
87
+ values: elementsDisplayTitles(all, data.numberFormat, separators),
85
88
  },
86
89
  },
87
90
  };
88
91
  }
89
92
  return dashboardFilter;
90
93
  }
94
+ /**
95
+ * Titles to display for the elements: the raw titles, with the values of a numeric computed attribute
96
+ * formatted by the number format of the elements query result.
97
+ *
98
+ * @internal exported for tests
99
+ */
100
+ export function elementsDisplayTitles(elements, numberFormat, separators) {
101
+ if (!numberFormat) {
102
+ return elements.map((element) => element.title);
103
+ }
104
+ const formatter = createNumberFormatter(separators);
105
+ return elements.map((element) => formatAttributeValue(element.title, numberFormat, formatter));
106
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultDashboardAttributeFilter.d.ts","sourceRoot":"","sources":["../../../../src/presentation/filterBar/attributeFilter/DefaultDashboardAttributeFilter.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAkD,MAAM,OAAO,CAAC;AAwE1F,OAAO,EAAE,KAAK,8BAA8B,EAAE,MAAM,YAAY,CAAC;AAKjE;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,8BAA8B,GAAG,YAAY,GAAG,IAAI,CAa1G;AAED;;GAEG;AACH,wBAAgB,kCAAkC,CAC9C,KAAK,EAAE,8BAA8B,GACtC,YAAY,GAAG,IAAI,CAErB"}
1
+ {"version":3,"file":"DefaultDashboardAttributeFilter.d.ts","sourceRoot":"","sources":["../../../../src/presentation/filterBar/attributeFilter/DefaultDashboardAttributeFilter.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAkD,MAAM,OAAO,CAAC;AAyE1F,OAAO,EAAE,KAAK,8BAA8B,EAAE,MAAM,YAAY,CAAC;AAKjE;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,8BAA8B,GAAG,YAAY,GAAG,IAAI,CAa1G;AAED;;GAEG;AACH,wBAAgB,kCAAkC,CAC9C,KAAK,EAAE,8BAA8B,GACtC,YAAY,GAAG,IAAI,CAErB"}
@@ -9,7 +9,7 @@ import { useAttributes } from "../../../_staging/sharedHooks/useAttributes.js";
9
9
  import { useDashboardSelector } from "../../../model/react/DashboardStoreProvider.js";
10
10
  import { useDashboardUserInteraction } from "../../../model/react/useDashboardUserInteraction.js";
11
11
  import { selectBackendCapabilities } from "../../../model/store/backendCapabilities/backendCapabilitiesSelectors.js";
12
- import { selectAvailableAttributeFilterSelectionTypes, selectEnableImmediateAttributeFilterDisplayAsLabelMigration, selectIsApplyFiltersAllAtOnceEnabledAndSet, selectLocale, } from "../../../model/store/config/configSelectors.js";
12
+ import { selectAvailableAttributeFilterSelectionTypes, selectEnableImmediateAttributeFilterDisplayAsLabelMigration, selectIsApplyFiltersAllAtOnceEnabledAndSet, selectLocale, selectSeparators, } from "../../../model/store/config/configSelectors.js";
13
13
  import { selectIsFilterFromCrossFilteringByLocalIdentifier } from "../../../model/store/drill/drillSelectors.js";
14
14
  import { selectIsInEditMode } from "../../../model/store/renderMode/renderModeSelectors.js";
15
15
  import { selectAttributeFilterConfigsModeMap, selectAttributeFilterConfigsModeMapByTab, selectAttributeFilterConfigsSelectionTypeMap, selectAttributeFilterConfigsSelectionTypeMapByTab, } from "../../../model/store/tabs/attributeFilterConfigs/attributeFilterConfigsSelectors.js";
@@ -54,6 +54,7 @@ function DefaultDashboardAttributeFilterInner(props) {
54
54
  const locale = useDashboardSelector(selectLocale);
55
55
  const isEditMode = useDashboardSelector(selectIsInEditMode);
56
56
  const capabilities = useDashboardSelector(selectBackendCapabilities);
57
+ const separators = useDashboardSelector(selectSeparators);
57
58
  // Extract common properties using wide utilities; narrow props only for standard filters
58
59
  const filterLocalId = dashboardAttributeFilterItemLocalIdentifier(filter);
59
60
  const filterTitle = dashboardAttributeFilterItemTitle(filter);
@@ -325,7 +326,7 @@ function DefaultDashboardAttributeFilterInner(props) {
325
326
  isApplyAllAtOnceEnabledAndSet,
326
327
  ]);
327
328
  const AttributeFilterComponent = props.AttributeFilterComponent ?? AttributeFilterButton;
328
- const filterContent = (_jsx(AttributeFilterComponent, { title: filterTitle, resetOnParentFilterChange: false, filter: isApplyAllAtOnceEnabledAndSet ? workingAttributeFilter : attributeFilter, displayAsLabel: displayAsLabel, overlayPositionType: overlayPositionType, onApply: (newFilter, isInverted, selectionMode, selectionTitles, displayAsLabel, isResultOfMigration, additionalProps) => {
329
+ const filterContent = (_jsx(AttributeFilterComponent, { title: filterTitle, separators: separators, resetOnParentFilterChange: false, filter: isApplyAllAtOnceEnabledAndSet ? workingAttributeFilter : attributeFilter, displayAsLabel: displayAsLabel, overlayPositionType: overlayPositionType, onApply: (newFilter, isInverted, selectionMode, selectionTitles, displayAsLabel, isResultOfMigration, additionalProps) => {
329
330
  const isSelectionInvalid = additionalProps?.isSelectionInvalid ?? false;
330
331
  const applyToWorkingOnly = additionalProps?.applyToWorkingOnly ?? false;
331
332
  // Convert the SDK-level filter to a dashboard filter item.
@@ -1 +1 @@
1
- {"version":3,"file":"AddAttributeFilterPlaceholder.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/filterBar/attributeFilter/addAttributeFilter/AddAttributeFilterPlaceholder.tsx"],"names":[],"mappings":"AAKA;;GAEG;AACH,MAAM,WAAW,mCAAmC;IAChD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,EAAE,QAAQ,EAAE,EAAE,mCAAmC,2CAe9F"}
1
+ {"version":3,"file":"AddAttributeFilterPlaceholder.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/filterBar/attributeFilter/addAttributeFilter/AddAttributeFilterPlaceholder.tsx"],"names":[],"mappings":"AAOA;;GAEG;AACH,MAAM,WAAW,mCAAmC;IAChD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,EAAE,QAAQ,EAAE,EAAE,mCAAmC,2CAkB9F"}
@@ -1,7 +1,8 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  // (C) 2007-2026 GoodData Corporation
3
3
  import cx from "classnames";
4
4
  import { FormattedMessage } from "react-intl";
5
+ import { UiIcon } from "@gooddata/sdk-ui-kit";
5
6
  /**
6
7
  * @internal
7
8
  */
@@ -9,5 +10,5 @@ export function AddAttributeFilterPlaceholder({ disabled }) {
9
10
  const className = cx("add-item-placeholder", "add-attribute-filter-placeholder", "s-add-attribute-filter", {
10
11
  disabled,
11
12
  });
12
- return (_jsx("div", { className: className, children: _jsx(FormattedMessage, { id: "addPanel.filter" }) }));
13
+ return (_jsxs("div", { className: className, children: [_jsx("div", { className: "add-item-placeholder__icon", children: _jsx(UiIcon, { type: "filter", size: 18, layout: "block" }) }), _jsx(FormattedMessage, { id: "addPanel.filter" })] }));
13
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AttributeListItemTooltip.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/filterBar/attributeFilter/addAttributeFilter/attributeListItemTooltip/AttributeListItemTooltip.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAY,MAAM,OAAO,CAAC;AAEjD,OAAO,EAAE,KAAK,iBAAiB,EAA0B,MAAM,qBAAqB,CAAC;AAgBrF,UAAU,8BAA8B;IACpC,IAAI,EAAE,iBAAiB,CAAC;CAC3B;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,IAAI,EAAE,EAAE,8BAA8B,GAAG,SAAS,CAkD5F"}
1
+ {"version":3,"file":"AttributeListItemTooltip.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/filterBar/attributeFilter/addAttributeFilter/attributeListItemTooltip/AttributeListItemTooltip.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAY,MAAM,OAAO,CAAC;AAEjD,OAAO,EAAE,KAAK,iBAAiB,EAA0B,MAAM,qBAAqB,CAAC;AAkBrF,UAAU,8BAA8B;IACpC,IAAI,EAAE,iBAAiB,CAAC;CAC3B;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,IAAI,EAAE,EAAE,8BAA8B,GAAG,SAAS,CAoD5F"}
@@ -3,6 +3,8 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { useState } from "react";
4
4
  import { isComputedAttributeRef } from "@gooddata/sdk-model";
5
5
  import { Bubble, BubbleHoverTrigger } from "@gooddata/sdk-ui-kit";
6
+ import { useDashboardSelector } from "../../../../../model/react/DashboardStoreProvider.js";
7
+ import { selectSeparators } from "../../../../../model/store/config/configSelectors.js";
6
8
  import { useAttributeDataSet } from "../../dashboardDropdownBody/configuration/hooks/useAttributeDataSet.js";
7
9
  import { useAttributeElements } from "../../dashboardDropdownBody/configuration/hooks/useAttributeElements.js";
8
10
  import { useComputedAttributeExpression } from "../../dashboardDropdownBody/configuration/hooks/useComputedAttributeExpression.js";
@@ -17,11 +19,12 @@ const bubbleAlignPoints = [
17
19
  */
18
20
  export function AttributeListItemTooltip({ item }) {
19
21
  const [isHover, setIsHover] = useState(false);
22
+ const separators = useDashboardSelector(selectSeparators);
20
23
  const { attributeElements, attributesElementsLoading } = useAttributeElements(item.defaultDisplayForm.ref, ATTR_ELEMENTS_LIMIT, isHover);
21
24
  // a computed attribute belongs to no dataset and additionally shows its MAQL definition,
22
25
  // after the values
23
26
  const isComputedAttribute = isComputedAttributeRef(item.attribute.ref);
24
27
  const { attributeDataSet, attributesDataSetLoading } = useAttributeDataSet(item.attribute.ref, isHover && !isComputedAttribute);
25
28
  const { expressionTokens, expressionTokensLoading } = useComputedAttributeExpression(item.attribute.ref, isHover && isComputedAttribute);
26
- return (_jsx("div", { children: _jsxs(BubbleHoverTrigger, { showDelay: 0, hideDelay: 0, eventsOnBubble: true, className: "gd-attribute-item-tooltip-icon", children: [_jsx("span", { onMouseEnter: () => setIsHover(true), className: "gd-icon-circle-question gd-list-item-tooltip-icon s-attribute-dropdown-list-item-tooltip" }), _jsx(Bubble, { className: "gd-attribute-dropdown-list-item-details s-attribute-filter-details-bubble", alignPoints: bubbleAlignPoints, arrowStyle: { display: "none" }, children: _jsx(AttributeListItemTooltipContent, { item: item, hideDataSet: isComputedAttribute, attributesDataSetLoading: attributesDataSetLoading, attributesElementsLoading: attributesElementsLoading, attributeDataSet: attributeDataSet, attributeElements: attributeElements, expressionTokens: isComputedAttribute ? expressionTokens : undefined, expressionTokensLoading: isComputedAttribute ? expressionTokensLoading : undefined }) })] }) }));
29
+ return (_jsx("div", { children: _jsxs(BubbleHoverTrigger, { showDelay: 0, hideDelay: 0, eventsOnBubble: true, className: "gd-attribute-item-tooltip-icon", children: [_jsx("span", { onMouseEnter: () => setIsHover(true), className: "gd-icon-circle-question gd-list-item-tooltip-icon s-attribute-dropdown-list-item-tooltip" }), _jsx(Bubble, { className: "gd-attribute-dropdown-list-item-details s-attribute-filter-details-bubble", alignPoints: bubbleAlignPoints, arrowStyle: { display: "none" }, children: _jsx(AttributeListItemTooltipContent, { item: item, hideDataSet: isComputedAttribute, attributesDataSetLoading: attributesDataSetLoading, attributesElementsLoading: attributesElementsLoading, attributeDataSet: attributeDataSet, attributeElements: attributeElements, separators: separators, expressionTokens: isComputedAttribute ? expressionTokens : undefined, expressionTokensLoading: isComputedAttribute ? expressionTokensLoading : undefined }) })] }) }));
27
30
  }
@@ -1,5 +1,5 @@
1
1
  import { type IMeasureExpressionToken } from "@gooddata/sdk-backend-spi";
2
- import { type ICatalogAttribute, type IDataSetMetadataObject } from "@gooddata/sdk-model";
2
+ import { type ICatalogAttribute, type IDataSetMetadataObject, type ISeparators } from "@gooddata/sdk-model";
3
3
  import type { IUseAttributeElements } from "../../../../../model/types/attributeFilterTypes.js";
4
4
  interface IAttributeListItemTooltipContentProps {
5
5
  item: ICatalogAttribute;
@@ -11,6 +11,10 @@ interface IAttributeListItemTooltipContentProps {
11
11
  attributesElementsLoading: boolean;
12
12
  attributeDataSet?: IDataSetMetadataObject;
13
13
  attributeElements?: IUseAttributeElements;
14
+ /**
15
+ * Separators to format the values of a numeric computed attribute with.
16
+ */
17
+ separators?: ISeparators;
14
18
  /**
15
19
  * Tokenized MAQL expression; provided only for computed attributes, rendered after the values
16
20
  * with the referenced objects resolved to their titles.
@@ -21,6 +25,6 @@ interface IAttributeListItemTooltipContentProps {
21
25
  /**
22
26
  * @internal
23
27
  */
24
- export declare function AttributeListItemTooltipContent({ item, hideDataSet, attributesDataSetLoading, attributesElementsLoading, attributeDataSet, attributeElements, expressionTokens, expressionTokensLoading, }: IAttributeListItemTooltipContentProps): import("react/jsx-runtime").JSX.Element;
28
+ export declare function AttributeListItemTooltipContent({ item, hideDataSet, attributesDataSetLoading, attributesElementsLoading, attributeDataSet, attributeElements, separators, expressionTokens, expressionTokensLoading, }: IAttributeListItemTooltipContentProps): import("react/jsx-runtime").JSX.Element;
25
29
  export {};
26
30
  //# sourceMappingURL=AttributeListItemTooltipContent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AttributeListItemTooltipContent.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/filterBar/attributeFilter/addAttributeFilter/attributeListItemTooltip/AttributeListItemTooltipContent.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE1F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oDAAoD,CAAC;AA4DhG,UAAU,qCAAqC;IAC3C,IAAI,EAAE,iBAAiB,CAAC;IACxB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,wBAAwB,EAAE,OAAO,CAAC;IAClC,yBAAyB,EAAE,OAAO,CAAC;IACnC,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;IAC1C,iBAAiB,CAAC,EAAE,qBAAqB,CAAC;IAC1C;;;OAGG;IACH,gBAAgB,CAAC,EAAE,uBAAuB,EAAE,CAAC;IAC7C,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACrC;AAED;;GAEG;AACH,wBAAgB,+BAA+B,CAAC,EAC5C,IAAI,EACJ,WAAW,EACX,wBAAwB,EACxB,yBAAyB,EACzB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,uBAAuB,GAC1B,EAAE,qCAAqC,2CAiDvC"}
1
+ {"version":3,"file":"AttributeListItemTooltipContent.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/filterBar/attributeFilter/addAttributeFilter/attributeListItemTooltip/AttributeListItemTooltipContent.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAG5G,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oDAAoD,CAAC;AAqEhG,UAAU,qCAAqC;IAC3C,IAAI,EAAE,iBAAiB,CAAC;IACxB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,wBAAwB,EAAE,OAAO,CAAC;IAClC,yBAAyB,EAAE,OAAO,CAAC;IACnC,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;IAC1C,iBAAiB,CAAC,EAAE,qBAAqB,CAAC;IAC1C;;OAEG;IACH,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,uBAAuB,EAAE,CAAC;IAC7C,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACrC;AAED;;GAEG;AACH,wBAAgB,+BAA+B,CAAC,EAC5C,IAAI,EACJ,WAAW,EACX,wBAAwB,EACxB,yBAAyB,EACzB,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,EACV,gBAAgB,EAChB,uBAAuB,GAC1B,EAAE,qCAAqC,2CAmDvC"}
@@ -1,6 +1,7 @@
1
1
  import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  // (C) 2023-2026 GoodData Corporation
3
3
  import { FormattedMessage, useIntl } from "react-intl";
4
+ import { createNumberFormatter, formatAttributeValue } from "@gooddata/sdk-ui";
4
5
  const PLAIN_TOKEN_TYPES = ["text", "quoted_text", "number", "comment", "bracket"];
5
6
  function AttrTooltipExpression({ tokens }) {
6
7
  const intl = useIntl();
@@ -17,15 +18,18 @@ function AttrTooltipExpression({ tokens }) {
17
18
  return (_jsx("span", { className: `gd-maql-token-object gd-maql-token-${token.type}`, children: token.value }, idx));
18
19
  }) }));
19
20
  }
20
- function AttrTooltipElements({ elements, totalCount }) {
21
+ function AttrTooltipElements({ elements, totalCount, numberFormat, separators, }) {
21
22
  const intl = useIntl();
22
23
  const remainingElementsCount = totalCount - elements.length;
23
- return (_jsxs(_Fragment, { children: [elements.map((element, idx) => (_jsxs("span", { className: "gd-attribute-element s-attribute-element", children: [element.title || `(${intl.formatMessage({ id: "empty_value" })})`, _jsx("br", {})] }, idx))), remainingElementsCount > 0 && (_jsx("span", { className: "attribute-tooltip-elements-more", children: _jsx(FormattedMessage, { id: "attributesDropdown.details.shortening_decoration", values: { count: remainingElementsCount } }) }, elements.length))] }));
24
+ // the values of a numeric computed attribute are displayed formatted, like the filter displays them
25
+ const formatter = createNumberFormatter(separators);
26
+ const displayTitle = (title) => numberFormat ? formatAttributeValue(title, numberFormat, formatter) : title;
27
+ return (_jsxs(_Fragment, { children: [elements.map((element, idx) => (_jsxs("span", { className: "gd-attribute-element s-attribute-element", children: [displayTitle(element.title) || `(${intl.formatMessage({ id: "empty_value" })})`, _jsx("br", {})] }, idx))), remainingElementsCount > 0 && (_jsx("span", { className: "attribute-tooltip-elements-more", children: _jsx(FormattedMessage, { id: "attributesDropdown.details.shortening_decoration", values: { count: remainingElementsCount } }) }, elements.length))] }));
24
28
  }
25
29
  /**
26
30
  * @internal
27
31
  */
28
- export function AttributeListItemTooltipContent({ item, hideDataSet, attributesDataSetLoading, attributesElementsLoading, attributeDataSet, attributeElements, expressionTokens, expressionTokensLoading, }) {
32
+ export function AttributeListItemTooltipContent({ item, hideDataSet, attributesDataSetLoading, attributesElementsLoading, attributeDataSet, attributeElements, separators, expressionTokens, expressionTokensLoading, }) {
29
33
  const showExpression = expressionTokensLoading || expressionTokens !== undefined;
30
- return (_jsxs("div", { className: "gd-attribute-dropdown-list-tooltip-content s-attribute-dropdown-item-list-tooltip-content", children: [_jsx("h3", { className: "s-attribute-filter-tooltip-header", children: item.attribute.title }), hideDataSet ? null : (_jsxs(_Fragment, { children: [_jsx("h4", { children: _jsx(FormattedMessage, { id: "attributesDropdown.details.dataset" }) }), _jsx("p", { className: "s-attribute-filter-tooltip-item-dataset", children: attributesDataSetLoading ? (_jsx(FormattedMessage, { id: "loading" })) : (attributeDataSet?.title) })] })), _jsx("h4", { children: _jsx(FormattedMessage, { id: "attributesDropdown.details.values" }) }), _jsx("p", { className: "s-attribute-filter-tooltip-item-elements", children: attributesElementsLoading ? (_jsx(FormattedMessage, { id: "loading" })) : attributeElements ? (_jsx(AttrTooltipElements, { elements: attributeElements.elements, totalCount: attributeElements.totalCount })) : null }), showExpression ? (_jsxs(_Fragment, { children: [_jsx("h4", { children: _jsx(FormattedMessage, { id: "attributesDropdown.details.definedAs" }) }), _jsx("p", { className: "s-attribute-filter-tooltip-item-maql", children: expressionTokensLoading ? (_jsx(FormattedMessage, { id: "loading" })) : (_jsx(AttrTooltipExpression, { tokens: expressionTokens })) })] })) : null] }));
34
+ return (_jsxs("div", { className: "gd-attribute-dropdown-list-tooltip-content s-attribute-dropdown-item-list-tooltip-content", children: [_jsx("h3", { className: "s-attribute-filter-tooltip-header", children: item.attribute.title }), hideDataSet ? null : (_jsxs(_Fragment, { children: [_jsx("h4", { children: _jsx(FormattedMessage, { id: "attributesDropdown.details.dataset" }) }), _jsx("p", { className: "s-attribute-filter-tooltip-item-dataset", children: attributesDataSetLoading ? (_jsx(FormattedMessage, { id: "loading" })) : (attributeDataSet?.title) })] })), _jsx("h4", { children: _jsx(FormattedMessage, { id: "attributesDropdown.details.values" }) }), _jsx("p", { className: "s-attribute-filter-tooltip-item-elements", children: attributesElementsLoading ? (_jsx(FormattedMessage, { id: "loading" })) : attributeElements ? (_jsx(AttrTooltipElements, { elements: attributeElements.elements, totalCount: attributeElements.totalCount, numberFormat: attributeElements.numberFormat, separators: separators })) : null }), showExpression ? (_jsxs(_Fragment, { children: [_jsx("h4", { children: _jsx(FormattedMessage, { id: "attributesDropdown.details.definedAs" }) }), _jsx("p", { className: "s-attribute-filter-tooltip-item-maql", children: expressionTokensLoading ? (_jsx(FormattedMessage, { id: "loading" })) : (_jsx(AttrTooltipExpression, { tokens: expressionTokens })) })] })) : null] }));
31
35
  }
@@ -3,6 +3,7 @@ export interface IFilterViewDeleteConfirmProps {
3
3
  filterView: IDashboardFilterView;
4
4
  onConfirm: () => void;
5
5
  onCancel: () => void;
6
+ returnFocusTo?: string;
6
7
  }
7
- export declare function FilterViewDeleteConfirm({ filterView, onConfirm, onCancel }: IFilterViewDeleteConfirmProps): import("react/jsx-runtime").JSX.Element;
8
+ export declare function FilterViewDeleteConfirm({ filterView, onConfirm, onCancel, returnFocusTo, }: IFilterViewDeleteConfirmProps): import("react/jsx-runtime").JSX.Element;
8
9
  //# sourceMappingURL=FilterViewDeleteConfirm.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FilterViewDeleteConfirm.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/filterBar/filterBar/filterViews/FilterViewDeleteConfirm.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAGhE,MAAM,WAAW,6BAA6B;IAC1C,UAAU,EAAE,oBAAoB,CAAC;IACjC,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,wBAAgB,uBAAuB,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,6BAA6B,2CAyBzG"}
1
+ {"version":3,"file":"FilterViewDeleteConfirm.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/filterBar/filterBar/filterViews/FilterViewDeleteConfirm.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAGhE,MAAM,WAAW,6BAA6B;IAC1C,UAAU,EAAE,oBAAoB,CAAC;IACjC,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,uBAAuB,CAAC,EACpC,UAAU,EACV,SAAS,EACT,QAAQ,EACR,aAAa,GAChB,EAAE,6BAA6B,2CA0B/B"}
@@ -1,9 +1,9 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { FormattedMessage, useIntl } from "react-intl";
3
3
  import { ConfirmDialog, Typography } from "@gooddata/sdk-ui-kit";
4
- export function FilterViewDeleteConfirm({ filterView, onConfirm, onCancel }) {
4
+ export function FilterViewDeleteConfirm({ filterView, onConfirm, onCancel, returnFocusTo, }) {
5
5
  const intl = useIntl();
6
- return (_jsx(ConfirmDialog, { onSubmit: onConfirm, onCancel: onCancel, isPositive: false, className: "gd-filter-view__delete-dialog s-gd-filter-view__delete-dialog", headline: intl.formatMessage({ id: "filters.filterViews.delete.title" }), submitButtonText: intl.formatMessage({ id: "filters.filterViews.delete.deleteButton" }), cancelButtonText: intl.formatMessage({ id: "filters.filterViews.delete.cancelButton" }), children: _jsx(Typography, { tagName: "p", children: _jsx(FormattedMessage, { id: "filters.filterViews.delete.body", values: {
6
+ return (_jsx(ConfirmDialog, { onSubmit: onConfirm, onCancel: onCancel, returnFocusTo: returnFocusTo, isPositive: false, className: "gd-filter-view__delete-dialog s-gd-filter-view__delete-dialog", headline: intl.formatMessage({ id: "filters.filterViews.delete.title" }), submitButtonText: intl.formatMessage({ id: "filters.filterViews.delete.deleteButton" }), cancelButtonText: intl.formatMessage({ id: "filters.filterViews.delete.cancelButton" }), children: _jsx(Typography, { tagName: "p", children: _jsx(FormattedMessage, { id: "filters.filterViews.delete.body", values: {
7
7
  view: filterView.name,
8
8
  b: (chunks) => (_jsx("strong", { className: "gd-filter-view__delete-dialog__item", children: chunks })),
9
9
  } }) }) }));
@@ -1 +1 @@
1
- {"version":3,"file":"FilterViewsList.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/filterBar/filterBar/filterViews/FilterViewsList.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,oBAAoB,EAAkB,MAAM,qBAAqB,CAAC;AAmMhF,MAAM,WAAW,6BAA6B;IAC1C,WAAW,EAAE,oBAAoB,EAAE,GAAG,SAAS,CAAC;IAChD,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,eAAe,CAAC,EAC5B,WAAgB,EAChB,QAAQ,EACR,OAAO,EACP,OAAO,EAAE,WAAW,GACvB,EAAE,6BAA6B,2CAwO/B"}
1
+ {"version":3,"file":"FilterViewsList.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/filterBar/filterBar/filterViews/FilterViewsList.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,oBAAoB,EAAkB,MAAM,qBAAqB,CAAC;AAmMhF,MAAM,WAAW,6BAA6B;IAC1C,WAAW,EAAE,oBAAoB,EAAE,GAAG,SAAS,CAAC;IAChD,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,eAAe,CAAC,EAC5B,WAAgB,EAChB,QAAQ,EACR,OAAO,EACP,OAAO,EAAE,WAAW,GACvB,EAAE,6BAA6B,2CA4O/B"}
@@ -21,7 +21,7 @@ function SetAsDefaultButton({ isDefault, isFocused, onClick, title, id, }) {
21
21
  }
22
22
  function DeleteButton({ isFocused, onClick, title, id, }) {
23
23
  const { formatMessage } = useIntl();
24
- return (_jsx("div", { className: "gd-filter-view__item__delete-button-wrapper", role: "gridcell", children: _jsx(UiTooltip, { arrowPlacement: "top-end", triggerBy: isFocused ? [] : ["hover"], content: formatMessage({ id: "filters.filterViews.add.deleteTooltip" }), anchor: _jsx("div", { className: cx("gd-filter-view__item__button gd-filter-view__item__button--delete", {
24
+ return (_jsx("div", { className: "gd-filter-view__item__delete-button-wrapper", role: "gridcell", children: _jsx(UiTooltip, { arrowPlacement: "top-end", triggerBy: ["hover", "focus"], content: formatMessage({ id: "filters.filterViews.add.deleteTooltip" }), anchor: _jsx("div", { className: cx("gd-filter-view__item__button gd-filter-view__item__button--delete", {
25
25
  "gd-filter-view__item__button--isFocused": isFocused,
26
26
  }), role: "button", "aria-label": formatMessage({ id: "filters.filterViews.add.deleteTooltip.ariaLabel" }, { name: title }), onClick: onClick, id: id, tabIndex: isFocused ? 0 : -1, children: _jsx(UiIcon, { type: "trash", size: 12, layout: "block", color: "currentColor" }) }) }) }));
27
27
  }
@@ -75,16 +75,19 @@ export function FilterViewsList({ filterViews = [], onAddNew, onClose, titleId:
75
75
  onClose();
76
76
  };
77
77
  }, [createSetAsDefaultHandler, onClose]);
78
- const createDeleteHandler = useCallback((filterView) => {
78
+ function createDeleteHandler(filterView) {
79
79
  if (!canCreateFilterView) {
80
80
  return undefined;
81
81
  }
82
82
  return () => {
83
+ // Screen-reader activation can click an action without moving DOM focus.
84
+ setFocusedIndex(filterViews.indexOf(filterView));
85
+ setFocusedAction("delete");
83
86
  setFilterViewToDelete(filterView);
84
87
  };
85
- }, [canCreateFilterView]);
88
+ }
86
89
  const refocusKey = `${isLoading}`;
87
- const { onKeyboardNavigation, focusedItem, focusedAction, setFocusedAction } = useListWithActionsKeyboardNavigation({
90
+ const { onKeyboardNavigation, focusedItem, focusedAction, setFocusedAction, setFocusedIndex } = useListWithActionsKeyboardNavigation({
88
91
  items: filterViews,
89
92
  getItemAdditionalActions,
90
93
  actionHandlers: {
@@ -109,7 +112,10 @@ export function FilterViewsList({ filterViews = [], onAddNew, onClose, titleId:
109
112
  }
110
113
  setFocusedAction(SELECT_ITEM_ACTION);
111
114
  }, [containerRef, filterViewToDelete, setFocusedAction]);
112
- return (_jsxs(UiFocusManager, { enableFocusTrap: true, enableAutofocus: { refocusKey, initialFocus: infoButtonId }, children: [filterViewToDelete ? (_jsx(FilterViewDeleteConfirm, { filterView: filterViewToDelete, onConfirm: () => {
115
+ return (_jsxs(UiFocusManager, { enableFocusTrap: true, enableAutofocus: { refocusKey, initialFocus: infoButtonId }, children: [filterViewToDelete ? (_jsx(FilterViewDeleteConfirm, { filterView: filterViewToDelete, returnFocusTo: scopedIdStoreValue.makeId({
116
+ item: filterViewToDelete,
117
+ specifier: "delete",
118
+ }), onConfirm: () => {
113
119
  dispatch(deleteFilterView(filterViewToDelete.ref));
114
120
  setFilterViewToDelete(undefined);
115
121
  }, onCancel: () => {
@@ -1 +1 @@
1
- {"version":3,"file":"useResetFiltersButton.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/filterBar/filterBar/hooks/useResetFiltersButton.ts"],"names":[],"mappings":"AAqLA;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,QAAO;IACrC,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,KAAK,GAAG,aAAa,CAAC;IACjC,YAAY,EAAE,MAAM,IAAI,CAAC;CA+J5B,CAAC"}
1
+ {"version":3,"file":"useResetFiltersButton.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/filterBar/filterBar/hooks/useResetFiltersButton.ts"],"names":[],"mappings":"AAqLA;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,QAAO;IACrC,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,KAAK,GAAG,aAAa,CAAC;IACjC,YAAY,EAAE,MAAM,IAAI,CAAC;CAoK5B,CAAC"}
@@ -182,7 +182,10 @@ export const useResetFiltersButton = () => {
182
182
  dispatch(drillActions.resetCrossFiltering(activeTabId));
183
183
  }
184
184
  if (canResetParameters) {
185
- dispatch(changeParameterValues({ parameters: parameterResetTargets }));
185
+ dispatch(changeParameterValues({
186
+ parameters: parameterResetTargets,
187
+ restorePerTabOriginals: true,
188
+ }));
186
189
  dispatchEvent(parametersSelectionReset());
187
190
  parametersStateReset();
188
191
  }
@@ -0,0 +1,26 @@
1
+ import { type MutableRefObject } from "react";
2
+ import { type InsightEditorTarget } from "../../model/types/insightEditorTypes.js";
3
+ import { type IInsightEditorCloseHandle } from "./types.js";
4
+ import { type IInsightEditorSession } from "./useInsightEditorSession.js";
5
+ import "@gooddata/sdk-ui-kit/styles/css/main.css";
6
+ import "@gooddata/sdk-ui-pivot/styles/css/main.css";
7
+ import "@gooddata/sdk-ui-geo/styles/css/main.css";
8
+ import "@gooddata/sdk-ui-charts/styles/css/main.css";
9
+ import "@gooddata/sdk-ui-filters/styles/css/measureValueFilter.css";
10
+ import "@gooddata/sdk-ui-filters/styles/css/dateFilter.css";
11
+ import "@gooddata/sdk-ui-filters/styles/css/rankingFilter.css";
12
+ import "@gooddata/sdk-ui-filters/styles/css/attributeFilterNext.css";
13
+ import "@gooddata/sdk-ui-ext/styles/css/main.css";
14
+ import "@gooddata/sdk-ui-semantic-search/styles/css/internal.css";
15
+ import "@gooddata/sdk-ui-analytical-designer/styles/css/main.css";
16
+ export interface IInsightEditorContentProps {
17
+ target: InsightEditorTarget;
18
+ session: IInsightEditorSession;
19
+ closeHandleRef: MutableRefObject<IInsightEditorCloseHandle | null>;
20
+ }
21
+ /**
22
+ * Analytical Designer in the insight editor overlay. It lives in a lazily loaded chunk together with
23
+ * the whole Analytical Designer.
24
+ */
25
+ export declare function InsightEditorContent({ target, session, closeHandleRef }: IInsightEditorContentProps): import("react/jsx-runtime").JSX.Element;
26
+ //# sourceMappingURL=InsightEditorContent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InsightEditorContent.d.ts","sourceRoot":"","sources":["../../../src/presentation/insightEditor/InsightEditorContent.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,gBAAgB,EAAwC,MAAM,OAAO,CAAC;AAuCpF,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAGnF,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAE5D,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAI1E,OAAO,0CAA0C,CAAC;AAElD,OAAO,4CAA4C,CAAC;AAEpD,OAAO,0CAA0C,CAAC;AAElD,OAAO,6CAA6C,CAAC;AAErD,OAAO,4DAA4D,CAAC;AAEpE,OAAO,oDAAoD,CAAC;AAE5D,OAAO,uDAAuD,CAAC;AAE/D,OAAO,6DAA6D,CAAC;AAErE,OAAO,0CAA0C,CAAC;AAElD,OAAO,0DAA0D,CAAC;AAElE,OAAO,0DAA0D,CAAC;AAElE,MAAM,WAAW,0BAA0B;IACvC,MAAM,EAAE,mBAAmB,CAAC;IAC5B,OAAO,EAAE,qBAAqB,CAAC;IAC/B,cAAc,EAAE,gBAAgB,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAAC;CACtE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,0BAA0B,2CAgEnG"}