@gooddata/sdk-ui-dashboard 11.56.0-alpha.7 → 11.56.0

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 (308) hide show
  1. package/esm/__version.d.ts +1 -1
  2. package/esm/__version.d.ts.map +1 -1
  3. package/esm/__version.js +1 -1
  4. package/esm/_staging/catalog/computedAttributes.d.ts +43 -0
  5. package/esm/_staging/catalog/computedAttributes.d.ts.map +1 -0
  6. package/esm/_staging/catalog/computedAttributes.js +93 -0
  7. package/esm/_staging/catalog/displayFormMap.d.ts +3 -2
  8. package/esm/_staging/catalog/displayFormMap.d.ts.map +1 -1
  9. package/esm/_staging/catalog/displayFormMap.js +9 -3
  10. package/esm/_staging/metadata/objRefMap.d.ts.map +1 -1
  11. package/esm/_staging/metadata/objRefMap.js +11 -1
  12. package/esm/index.d.ts +9 -5
  13. package/esm/index.d.ts.map +1 -1
  14. package/esm/index.js +7 -3
  15. package/esm/kdaDialog/composition/hooks/useKdaValidAttributes.js +2 -2
  16. package/esm/kdaDialog/dialog/hooks/useValidAttributes.d.ts.map +1 -1
  17. package/esm/kdaDialog/dialog/hooks/useValidAttributes.js +21 -6
  18. package/esm/kdaDialog/hooks/useAttribute.d.ts.map +1 -1
  19. package/esm/kdaDialog/hooks/useAttribute.js +16 -8
  20. package/esm/locales.d.ts +3 -0
  21. package/esm/locales.d.ts.map +1 -1
  22. package/esm/locales.js +3 -0
  23. package/esm/model/commandHandlers/dashboard/common/loadAvailableDisplayFormRefs.d.ts.map +1 -1
  24. package/esm/model/commandHandlers/dashboard/common/loadAvailableDisplayFormRefs.js +15 -6
  25. package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/index.d.ts +2 -3
  26. package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/index.d.ts.map +1 -1
  27. package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/index.js +26 -17
  28. package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/loadCatalog.d.ts +6 -1
  29. package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/loadCatalog.d.ts.map +1 -1
  30. package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/loadCatalog.js +37 -4
  31. package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/resolveDashboardConfig.d.ts +7 -2
  32. package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/resolveDashboardConfig.d.ts.map +1 -1
  33. package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/resolveDashboardConfig.js +15 -3
  34. package/esm/model/commandHandlers/filterContext/attributeFilter/validation/filterDisplayFormValidation.d.ts.map +1 -1
  35. package/esm/model/commandHandlers/filterContext/attributeFilter/validation/filterDisplayFormValidation.js +10 -3
  36. package/esm/model/commandHandlers/filterContext/attributeFilter/validation/uniqueFiltersValidation.d.ts.map +1 -1
  37. package/esm/model/commandHandlers/filterContext/attributeFilter/validation/uniqueFiltersValidation.js +24 -14
  38. package/esm/model/commandHandlers/scheduledEmail/createScheduledEmailHandler.js +2 -2
  39. package/esm/model/commandHandlers/scheduledEmail/saveScheduledEmailHandler.js +2 -2
  40. package/esm/model/commandHandlers/widgets/attributeHierarchyModifiedHandler.d.ts.map +1 -1
  41. package/esm/model/commandHandlers/widgets/attributeHierarchyModifiedHandler.js +6 -0
  42. package/esm/model/commandHandlers/widgets/exportInsightWidgetHandler.d.ts.map +1 -1
  43. package/esm/model/commandHandlers/widgets/exportInsightWidgetHandler.js +2 -2
  44. package/esm/model/commandHandlers/widgets/exportRawInsightWidgetHandler.js +2 -2
  45. package/esm/model/queries/base.d.ts +1 -1
  46. package/esm/model/queries/base.d.ts.map +1 -1
  47. package/esm/model/queries/base.js +1 -1
  48. package/esm/model/queries/computedAttributeExpression.d.ts +27 -0
  49. package/esm/model/queries/computedAttributeExpression.d.ts.map +1 -0
  50. package/esm/model/queries/computedAttributeExpression.js +21 -0
  51. package/esm/model/queries/connectedAttributes.d.ts +19 -1
  52. package/esm/model/queries/connectedAttributes.d.ts.map +1 -1
  53. package/esm/model/queries/connectedAttributes.js +3 -1
  54. package/esm/model/queries/index.d.ts +2 -1
  55. package/esm/model/queries/index.d.ts.map +1 -1
  56. package/esm/model/queryServices/index.d.ts +1 -1
  57. package/esm/model/queryServices/index.d.ts.map +1 -1
  58. package/esm/model/queryServices/index.js +2 -0
  59. package/esm/model/queryServices/queryAttributeByDisplayForm.d.ts.map +1 -1
  60. package/esm/model/queryServices/queryAttributeByDisplayForm.js +12 -3
  61. package/esm/model/queryServices/queryAttributeDataset.d.ts.map +1 -1
  62. package/esm/model/queryServices/queryAttributeDataset.js +9 -1
  63. package/esm/model/queryServices/queryComputedAttributeExpression.d.ts +4 -0
  64. package/esm/model/queryServices/queryComputedAttributeExpression.d.ts.map +1 -0
  65. package/esm/model/queryServices/queryComputedAttributeExpression.js +17 -0
  66. package/esm/model/queryServices/queryConnectedAttributes.d.ts.map +1 -1
  67. package/esm/model/queryServices/queryConnectedAttributes.js +20 -5
  68. package/esm/model/queryServices/queryInsightAttributesMeta.d.ts.map +1 -1
  69. package/esm/model/queryServices/queryInsightAttributesMeta.js +20 -11
  70. package/esm/model/react/useIsWidgetRestricted.d.ts +9 -0
  71. package/esm/model/react/useIsWidgetRestricted.d.ts.map +1 -0
  72. package/esm/model/react/useIsWidgetRestricted.js +14 -0
  73. package/esm/model/store/catalog/catalogReducers.d.ts +2 -1
  74. package/esm/model/store/catalog/catalogReducers.d.ts.map +1 -1
  75. package/esm/model/store/catalog/catalogReducers.js +2 -1
  76. package/esm/model/store/catalog/catalogSelectors.d.ts +21 -1
  77. package/esm/model/store/catalog/catalogSelectors.d.ts.map +1 -1
  78. package/esm/model/store/catalog/catalogSelectors.js +26 -2
  79. package/esm/model/store/catalog/catalogState.d.ts +8 -1
  80. package/esm/model/store/catalog/catalogState.d.ts.map +1 -1
  81. package/esm/model/store/catalog/catalogState.js +1 -0
  82. package/esm/model/store/config/configSelectors.d.ts +11 -0
  83. package/esm/model/store/config/configSelectors.d.ts.map +1 -1
  84. package/esm/model/store/config/configSelectors.js +13 -0
  85. package/esm/model/store/insights/insightsSelectors.js +3 -3
  86. package/esm/model/store/tabs/filterContext/filterContextSelectors.d.ts.map +1 -1
  87. package/esm/model/store/tabs/filterContext/filterContextSelectors.js +8 -4
  88. package/esm/model/store/unavailableObjects/unavailableObjectsSelectors.d.ts +8 -0
  89. package/esm/model/store/unavailableObjects/unavailableObjectsSelectors.d.ts.map +1 -1
  90. package/esm/model/store/unavailableObjects/unavailableObjectsSelectors.js +8 -0
  91. package/esm/model/utils/displayFormResolver.d.ts.map +1 -1
  92. package/esm/model/utils/displayFormResolver.js +11 -1
  93. package/esm/plugins/customizationApis/customizationBuilder.d.ts.map +1 -1
  94. package/esm/plugins/customizationApis/customizationBuilder.js +1 -0
  95. package/esm/plugins/customizationApis/insightCustomizer.d.ts +4 -2
  96. package/esm/plugins/customizationApis/insightCustomizer.d.ts.map +1 -1
  97. package/esm/plugins/customizationApis/insightCustomizer.js +43 -3
  98. package/esm/plugins/customizer.d.ts +14 -1
  99. package/esm/plugins/customizer.d.ts.map +1 -1
  100. package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.d.ts.map +1 -1
  101. package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.js +1 -1
  102. package/esm/presentation/automations/alerting/state/AlertingDialogStateProvider.d.ts.map +1 -1
  103. package/esm/presentation/automations/alerting/state/AlertingDialogStateProvider.js +23 -58
  104. package/esm/presentation/automations/alerting/state/useAlertDraftFilterWrites.d.ts +33 -0
  105. package/esm/presentation/automations/alerting/state/useAlertDraftFilterWrites.d.ts.map +1 -0
  106. package/esm/presentation/automations/alerting/state/useAlertDraftFilterWrites.js +61 -0
  107. package/esm/presentation/automations/alerting/state/useAlertFiltersModel.d.ts +3 -17
  108. package/esm/presentation/automations/alerting/state/useAlertFiltersModel.d.ts.map +1 -1
  109. package/esm/presentation/automations/alerting/state/useAlertFiltersModel.js +3 -52
  110. package/esm/presentation/automations/alerting/state/useAlertFormState.js +1 -1
  111. package/esm/presentation/automations/connectors/hooks/useBuildAutomationsContext.js +2 -2
  112. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.d.ts.map +1 -1
  113. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.js +1 -1
  114. package/esm/presentation/automations/scheduledEmail/blocks/ScheduledEmailDialogShell.js +2 -5
  115. package/esm/presentation/automations/scheduledEmail/state/ScheduledEmailDialogStateProvider.d.ts.map +1 -1
  116. package/esm/presentation/automations/scheduledEmail/state/ScheduledEmailDialogStateProvider.js +22 -40
  117. package/esm/presentation/automations/scheduledEmail/state/useSaveScheduledEmailToBackend.d.ts.map +1 -1
  118. package/esm/presentation/automations/scheduledEmail/state/useSaveScheduledEmailToBackend.js +14 -3
  119. package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailDraftFilterWrites.d.ts +27 -0
  120. package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailDraftFilterWrites.d.ts.map +1 -0
  121. package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailDraftFilterWrites.js +142 -0
  122. package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailFiltersModel.d.ts +4 -6
  123. package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailFiltersModel.d.ts.map +1 -1
  124. package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailFiltersModel.js +9 -151
  125. package/esm/presentation/automations/shared/filters/conversions.d.ts +4 -0
  126. package/esm/presentation/automations/shared/filters/conversions.d.ts.map +1 -1
  127. package/esm/presentation/automations/shared/filters/conversions.js +28 -24
  128. package/esm/presentation/automations/shared/hooks/useShallowStable.d.ts +10 -0
  129. package/esm/presentation/automations/shared/hooks/useShallowStable.d.ts.map +1 -0
  130. package/esm/presentation/automations/shared/hooks/useShallowStable.js +18 -0
  131. package/esm/presentation/dashboard/DashboardSidebar/CreationPanel.d.ts.map +1 -1
  132. package/esm/presentation/dashboard/DashboardSidebar/CreationPanel.js +17 -4
  133. package/esm/presentation/dashboard/DashboardSidebar/SidebarCollapseToggle.d.ts +10 -0
  134. package/esm/presentation/dashboard/DashboardSidebar/SidebarCollapseToggle.d.ts.map +1 -0
  135. package/esm/presentation/dashboard/DashboardSidebar/SidebarCollapseToggle.js +19 -0
  136. package/esm/presentation/dashboard/DashboardSidebar/SidebarConfigurationPanel.d.ts.map +1 -1
  137. package/esm/presentation/dashboard/DashboardSidebar/SidebarConfigurationPanel.js +8 -2
  138. package/esm/presentation/dashboard/DashboardSidebar/SidebarResizeChrome.d.ts.map +1 -1
  139. package/esm/presentation/dashboard/DashboardSidebar/SidebarResizeChrome.js +4 -2
  140. package/esm/presentation/dashboard/DashboardSidebar/SidebarResizeContext.d.ts +8 -3
  141. package/esm/presentation/dashboard/DashboardSidebar/SidebarResizeContext.d.ts.map +1 -1
  142. package/esm/presentation/dashboard/DashboardSidebar/SidebarResizeContext.js +65 -25
  143. package/esm/presentation/dashboard/components/DashboardInner.d.ts.map +1 -1
  144. package/esm/presentation/dashboard/components/DashboardInner.js +4 -4
  145. package/esm/presentation/dashboard/components/DashboardRenderer.d.ts.map +1 -1
  146. package/esm/presentation/dashboard/components/DashboardRenderer.js +2 -2
  147. package/esm/presentation/dashboard/hooks/useDashboard.d.ts +2 -1
  148. package/esm/presentation/dashboard/hooks/useDashboard.d.ts.map +1 -1
  149. package/esm/presentation/dashboard/hooks/useDashboard.js +7 -1
  150. package/esm/presentation/dashboard/types.d.ts +14 -1
  151. package/esm/presentation/dashboard/types.d.ts.map +1 -1
  152. package/esm/presentation/dashboardContexts/DashboardComponentsContext.d.ts +2 -1
  153. package/esm/presentation/dashboardContexts/DashboardComponentsContext.d.ts.map +1 -1
  154. package/esm/presentation/dashboardContexts/DashboardComponentsContext.js +1 -0
  155. package/esm/presentation/dashboardContexts/types.d.ts +20 -0
  156. package/esm/presentation/dashboardContexts/types.d.ts.map +1 -1
  157. package/esm/presentation/dragAndDrop/draggableAttributeFilter/DefaultAttributeFilterDraggingComponent.d.ts.map +1 -1
  158. package/esm/presentation/dragAndDrop/draggableAttributeFilter/DefaultAttributeFilterDraggingComponent.js +4 -3
  159. package/esm/presentation/export/useExportData.js +2 -2
  160. package/esm/presentation/filterBar/attributeFilter/addAttributeFilter/attributeListItemTooltip/AttributeListItemTooltip.d.ts.map +1 -1
  161. package/esm/presentation/filterBar/attributeFilter/addAttributeFilter/attributeListItemTooltip/AttributeListItemTooltip.js +8 -2
  162. package/esm/presentation/filterBar/attributeFilter/addAttributeFilter/attributeListItemTooltip/AttributeListItemTooltipContent.d.ts +12 -1
  163. package/esm/presentation/filterBar/attributeFilter/addAttributeFilter/attributeListItemTooltip/AttributeListItemTooltipContent.d.ts.map +1 -1
  164. package/esm/presentation/filterBar/attributeFilter/addAttributeFilter/attributeListItemTooltip/AttributeListItemTooltipContent.js +19 -2
  165. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/displayForms/AttributeDisplayFormsDropdown.d.ts.map +1 -1
  166. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/displayForms/AttributeDisplayFormsDropdown.js +3 -2
  167. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/hooks/useComputedAttributeExpression.d.ts +14 -0
  168. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/hooks/useComputedAttributeExpression.d.ts.map +1 -0
  169. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/hooks/useComputedAttributeExpression.js +28 -0
  170. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/hooks/useDisplayFormConfiguration.js +2 -2
  171. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/hooks/useValidNeighbourAttributes.d.ts.map +1 -1
  172. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/hooks/useValidNeighbourAttributes.js +12 -2
  173. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/limitValues/shared/limitingItemsHook.d.ts.map +1 -1
  174. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/limitValues/shared/limitingItemsHook.js +6 -5
  175. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/parentFilters/ParentFiltersDisabledItem.js +2 -2
  176. package/esm/presentation/filterBar/filterBar/DefaultFilterBarItem.js +2 -2
  177. package/esm/presentation/filterBar/filterBar/useFiltersWithAddedPlaceholder.js +2 -2
  178. package/esm/presentation/filterBar/measureValueFilter/useDashboardMeasureValueFilterData.d.ts.map +1 -1
  179. package/esm/presentation/filterBar/measureValueFilter/useDashboardMeasureValueFilterData.js +55 -17
  180. package/esm/presentation/flexibleLayout/DashboardLayoutWidget.d.ts.map +1 -1
  181. package/esm/presentation/flexibleLayout/DashboardLayoutWidget.js +6 -1
  182. package/esm/presentation/localization/bundles/de-DE.localization-bundle.d.ts +5 -0
  183. package/esm/presentation/localization/bundles/de-DE.localization-bundle.d.ts.map +1 -1
  184. package/esm/presentation/localization/bundles/de-DE.localization-bundle.js +5 -0
  185. package/esm/presentation/localization/bundles/en-AU.localization-bundle.d.ts +5 -0
  186. package/esm/presentation/localization/bundles/en-AU.localization-bundle.d.ts.map +1 -1
  187. package/esm/presentation/localization/bundles/en-AU.localization-bundle.js +5 -0
  188. package/esm/presentation/localization/bundles/en-GB.localization-bundle.d.ts +5 -0
  189. package/esm/presentation/localization/bundles/en-GB.localization-bundle.d.ts.map +1 -1
  190. package/esm/presentation/localization/bundles/en-GB.localization-bundle.js +5 -0
  191. package/esm/presentation/localization/bundles/en-US.localization-bundle.d.ts +40 -0
  192. package/esm/presentation/localization/bundles/en-US.localization-bundle.d.ts.map +1 -1
  193. package/esm/presentation/localization/bundles/en-US.localization-bundle.js +40 -0
  194. package/esm/presentation/localization/bundles/es-419.localization-bundle.d.ts +5 -0
  195. package/esm/presentation/localization/bundles/es-419.localization-bundle.d.ts.map +1 -1
  196. package/esm/presentation/localization/bundles/es-419.localization-bundle.js +5 -0
  197. package/esm/presentation/localization/bundles/es-ES.localization-bundle.d.ts +5 -0
  198. package/esm/presentation/localization/bundles/es-ES.localization-bundle.d.ts.map +1 -1
  199. package/esm/presentation/localization/bundles/es-ES.localization-bundle.js +5 -0
  200. package/esm/presentation/localization/bundles/fi-FI.localization-bundle.d.ts +5 -0
  201. package/esm/presentation/localization/bundles/fi-FI.localization-bundle.d.ts.map +1 -1
  202. package/esm/presentation/localization/bundles/fi-FI.localization-bundle.js +5 -0
  203. package/esm/presentation/localization/bundles/fr-CA.localization-bundle.d.ts +5 -0
  204. package/esm/presentation/localization/bundles/fr-CA.localization-bundle.d.ts.map +1 -1
  205. package/esm/presentation/localization/bundles/fr-CA.localization-bundle.js +5 -0
  206. package/esm/presentation/localization/bundles/fr-FR.localization-bundle.d.ts +5 -0
  207. package/esm/presentation/localization/bundles/fr-FR.localization-bundle.d.ts.map +1 -1
  208. package/esm/presentation/localization/bundles/fr-FR.localization-bundle.js +5 -0
  209. package/esm/presentation/localization/bundles/id-ID.localization-bundle.d.ts +5 -0
  210. package/esm/presentation/localization/bundles/id-ID.localization-bundle.d.ts.map +1 -1
  211. package/esm/presentation/localization/bundles/id-ID.localization-bundle.js +5 -0
  212. package/esm/presentation/localization/bundles/it-IT.localization-bundle.d.ts +5 -0
  213. package/esm/presentation/localization/bundles/it-IT.localization-bundle.d.ts.map +1 -1
  214. package/esm/presentation/localization/bundles/it-IT.localization-bundle.js +5 -0
  215. package/esm/presentation/localization/bundles/ja-JP.localization-bundle.d.ts +5 -0
  216. package/esm/presentation/localization/bundles/ja-JP.localization-bundle.d.ts.map +1 -1
  217. package/esm/presentation/localization/bundles/ja-JP.localization-bundle.js +5 -0
  218. package/esm/presentation/localization/bundles/ko-KR.localization-bundle.d.ts +5 -0
  219. package/esm/presentation/localization/bundles/ko-KR.localization-bundle.d.ts.map +1 -1
  220. package/esm/presentation/localization/bundles/ko-KR.localization-bundle.js +5 -0
  221. package/esm/presentation/localization/bundles/nl-NL.localization-bundle.d.ts +5 -0
  222. package/esm/presentation/localization/bundles/nl-NL.localization-bundle.d.ts.map +1 -1
  223. package/esm/presentation/localization/bundles/nl-NL.localization-bundle.js +5 -0
  224. package/esm/presentation/localization/bundles/pl-PL.localization-bundle.d.ts +5 -0
  225. package/esm/presentation/localization/bundles/pl-PL.localization-bundle.d.ts.map +1 -1
  226. package/esm/presentation/localization/bundles/pl-PL.localization-bundle.js +5 -0
  227. package/esm/presentation/localization/bundles/pt-BR.localization-bundle.d.ts +5 -0
  228. package/esm/presentation/localization/bundles/pt-BR.localization-bundle.d.ts.map +1 -1
  229. package/esm/presentation/localization/bundles/pt-BR.localization-bundle.js +5 -0
  230. package/esm/presentation/localization/bundles/pt-PT.localization-bundle.d.ts +5 -0
  231. package/esm/presentation/localization/bundles/pt-PT.localization-bundle.d.ts.map +1 -1
  232. package/esm/presentation/localization/bundles/pt-PT.localization-bundle.js +5 -0
  233. package/esm/presentation/localization/bundles/ru-RU.localization-bundle.d.ts +5 -0
  234. package/esm/presentation/localization/bundles/ru-RU.localization-bundle.d.ts.map +1 -1
  235. package/esm/presentation/localization/bundles/ru-RU.localization-bundle.js +5 -0
  236. package/esm/presentation/localization/bundles/sl-SI.localization-bundle.d.ts +5 -0
  237. package/esm/presentation/localization/bundles/sl-SI.localization-bundle.d.ts.map +1 -1
  238. package/esm/presentation/localization/bundles/sl-SI.localization-bundle.js +5 -0
  239. package/esm/presentation/localization/bundles/th-TH.localization-bundle.d.ts +5 -0
  240. package/esm/presentation/localization/bundles/th-TH.localization-bundle.d.ts.map +1 -1
  241. package/esm/presentation/localization/bundles/th-TH.localization-bundle.js +5 -0
  242. package/esm/presentation/localization/bundles/tr-TR.localization-bundle.d.ts +5 -0
  243. package/esm/presentation/localization/bundles/tr-TR.localization-bundle.d.ts.map +1 -1
  244. package/esm/presentation/localization/bundles/tr-TR.localization-bundle.js +5 -0
  245. package/esm/presentation/localization/bundles/uk-UA.localization-bundle.d.ts +5 -0
  246. package/esm/presentation/localization/bundles/uk-UA.localization-bundle.d.ts.map +1 -1
  247. package/esm/presentation/localization/bundles/uk-UA.localization-bundle.js +5 -0
  248. package/esm/presentation/localization/bundles/vi-VN.localization-bundle.d.ts +5 -0
  249. package/esm/presentation/localization/bundles/vi-VN.localization-bundle.d.ts.map +1 -1
  250. package/esm/presentation/localization/bundles/vi-VN.localization-bundle.js +5 -0
  251. package/esm/presentation/localization/bundles/zh-HK.localization-bundle.d.ts +5 -0
  252. package/esm/presentation/localization/bundles/zh-HK.localization-bundle.d.ts.map +1 -1
  253. package/esm/presentation/localization/bundles/zh-HK.localization-bundle.js +5 -0
  254. package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.d.ts +5 -0
  255. package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.d.ts.map +1 -1
  256. package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.js +5 -0
  257. package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.d.ts +5 -0
  258. package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.d.ts.map +1 -1
  259. package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.js +5 -0
  260. package/esm/presentation/widget/common/RestrictedPlaceholder.d.ts +54 -0
  261. package/esm/presentation/widget/common/RestrictedPlaceholder.d.ts.map +1 -0
  262. package/esm/presentation/widget/common/RestrictedPlaceholder.js +49 -0
  263. package/esm/presentation/widget/common/configuration/DateDatasetFilter.d.ts +6 -1
  264. package/esm/presentation/widget/common/configuration/DateDatasetFilter.d.ts.map +1 -1
  265. package/esm/presentation/widget/common/configuration/DateDatasetFilter.js +2 -2
  266. package/esm/presentation/widget/common/configuration/DateFilterCheckbox.d.ts +6 -1
  267. package/esm/presentation/widget/common/configuration/DateFilterCheckbox.d.ts.map +1 -1
  268. package/esm/presentation/widget/common/configuration/DateFilterCheckbox.js +10 -3
  269. package/esm/presentation/widget/insight/DefaultInsightBody/DefaultInsightBody.js +2 -2
  270. package/esm/presentation/widget/insight/ViewModeDashboardInsight/InsightDrillDialog/DrillDialogInsight.js +2 -2
  271. package/esm/presentation/widget/insight/configuration/InsightDateDataSetFilter.d.ts.map +1 -1
  272. package/esm/presentation/widget/insight/configuration/InsightDateDataSetFilter.js +1 -1
  273. package/esm/presentation/widget/insight/configuration/InsightDrillConfigList.d.ts +6 -1
  274. package/esm/presentation/widget/insight/configuration/InsightDrillConfigList.d.ts.map +1 -1
  275. package/esm/presentation/widget/insight/configuration/InsightDrillConfigList.js +13 -2
  276. package/esm/presentation/widget/insight/configuration/InsightDrillConfigPanel/InsightDrillConfigPanel.d.ts.map +1 -1
  277. package/esm/presentation/widget/insight/configuration/InsightDrillConfigPanel/InsightDrillConfigPanel.js +5 -1
  278. package/esm/presentation/widget/insight/configuration/useDrillTargetTypeItems.d.ts +1 -1
  279. package/esm/presentation/widget/insight/configuration/useDrillTargetTypeItems.d.ts.map +1 -1
  280. package/esm/presentation/widget/insight/configuration/useDrillTargetTypeItems.js +2 -2
  281. package/esm/presentation/widget/richText/configuration/RichTextDateDataSetFilter.d.ts.map +1 -1
  282. package/esm/presentation/widget/richText/configuration/RichTextDateDataSetFilter.js +1 -1
  283. package/esm/presentation/widget/visualizationSwitcher/ViewModeDashboardVisualizationSwitcher.d.ts.map +1 -1
  284. package/esm/presentation/widget/visualizationSwitcher/ViewModeDashboardVisualizationSwitcher.js +8 -0
  285. package/esm/presentation/widget/visualizationSwitcher/ViewModeDashboardVisualizationSwitcherRestricted.d.ts +16 -0
  286. package/esm/presentation/widget/visualizationSwitcher/ViewModeDashboardVisualizationSwitcherRestricted.d.ts.map +1 -0
  287. package/esm/presentation/widget/visualizationSwitcher/ViewModeDashboardVisualizationSwitcherRestricted.js +19 -0
  288. package/esm/presentation/widget/widget/InsightWidget/DashboardWidgetInsightGuard.d.ts.map +1 -1
  289. package/esm/presentation/widget/widget/InsightWidget/DashboardWidgetInsightGuard.js +11 -1
  290. package/esm/presentation/widget/widget/InsightWidget/DefaultDashboardInsightWidget.js +2 -2
  291. package/esm/presentation/widget/widget/VisualizationSwitcherWidget/VisualizationSwitcherNavigationHeader.d.ts.map +1 -1
  292. package/esm/presentation/widget/widget/VisualizationSwitcherWidget/VisualizationSwitcherNavigationHeader.js +25 -12
  293. package/esm/sdk-ui-dashboard.d.ts +201 -3
  294. package/package.json +21 -21
  295. package/styles/css/configurationPanel.css +1 -5
  296. package/styles/css/configurationPanel.css.map +1 -1
  297. package/styles/css/filterBar.css +29 -0
  298. package/styles/css/filterBar.css.map +1 -1
  299. package/styles/css/main.css +203 -5
  300. package/styles/css/main.css.map +1 -1
  301. package/styles/css/sidebar.css +165 -0
  302. package/styles/css/sidebar.css.map +1 -1
  303. package/styles/css/visualizationSwitcherWidget.css +8 -0
  304. package/styles/css/visualizationSwitcherWidget.css.map +1 -1
  305. package/styles/scss/configurationPanel.scss +1 -7
  306. package/styles/scss/filterBar.scss +38 -0
  307. package/styles/scss/sidebar.scss +215 -0
  308. package/styles/scss/visualizationSwitcherWidget.scss +9 -0
@@ -1,20 +1,25 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  // (C) 2007-2026 GoodData Corporation
3
- import { useMemo } from "react";
3
+ import { useMemo, useState } from "react";
4
4
  import cx from "classnames";
5
5
  import { compact, sortBy } from "lodash-es";
6
- import { FormattedMessage } from "react-intl";
7
- import { Typography } from "@gooddata/sdk-ui-kit";
6
+ import { FormattedMessage, useIntl } from "react-intl";
7
+ import { Typography, UiIconButton } from "@gooddata/sdk-ui-kit";
8
8
  import { useDashboardSelector } from "../../../model/react/DashboardStoreProvider.js";
9
9
  import { selectSupportsRichTextWidgets } from "../../../model/store/backendCapabilities/backendCapabilitiesSelectors.js";
10
10
  import { selectIsAiGenerating } from "../../../model/store/config/configSelectors.js";
11
11
  import { selectIsNewDashboard } from "../../../model/store/meta/metaSelectors.js";
12
12
  import { DraggableInsightList } from "./DraggableInsightList/DraggableInsightList.js";
13
+ import { SidebarCollapseToggle } from "./SidebarCollapseToggle.js";
14
+ import { useResizableSidebar } from "./SidebarResizeContext.js";
13
15
  export function CreationPanel(props) {
14
16
  const { className, WrapCreatePanelItemWithDragComponent, WrapInsightListItemWithDragComponent } = props;
17
+ const intl = useIntl();
15
18
  const supportsRichText = useDashboardSelector(selectSupportsRichTextWidgets);
16
19
  const isNewDashboard = useDashboardSelector(selectIsNewDashboard);
17
20
  const isAiGenerating = useDashboardSelector(selectIsAiGenerating);
21
+ const { canCollapse, isCollapsed, setCollapsed } = useResizableSidebar();
22
+ const [focusSearch, setFocusSearch] = useState(undefined);
18
23
  const AttributeFilterComponentSet = props.AttributeFilterComponentSet;
19
24
  const InsightWidgetComponentSet = props.InsightWidgetComponentSet;
20
25
  const RichTextWidgetComponentSet = props.RichTextWidgetComponentSet;
@@ -41,5 +46,13 @@ export function CreationPanel(props) {
41
46
  WrapCreatePanelItemWithDragComponent,
42
47
  isAiGenerating,
43
48
  ]);
44
- return (_jsx("div", { className: cx("configuration-panel creation-panel", className), children: _jsxs("div", { className: "configuration-panel-content", children: [_jsx(Typography, { tagName: "h2", className: "flex-panel-item-nostretch", children: _jsx(FormattedMessage, { id: "visualizationsList.dragToAdd" }) }), _jsxs("div", { className: "configuration-category drag-to-add", children: [_jsx(Typography, { tagName: "h3", children: _jsx(FormattedMessage, { id: "addPanel.newItem" }) }), _jsx("div", { className: "add-item-panel", children: addItemPanelItems })] }), _jsxs("div", { className: "configuration-category configuration-category-vis drag-to-add flex-panel-item-stretch", children: [_jsx(Typography, { tagName: "h3", children: _jsx(FormattedMessage, { id: "visualizationsList.savedVisualizations" }) }), _jsx(DraggableInsightList, { WrapInsightListItemWithDragComponent: WrapInsightListItemWithDragComponent, recalculateSizeReference: className, searchAutofocus: !isNewDashboard, disabled: isAiGenerating })] })] }) }));
49
+ return (_jsx("div", { className: cx("configuration-panel creation-panel", className), children: _jsxs("div", { className: "configuration-panel-content", children: [_jsxs("div", { className: "gd-creation-panel-header flex-panel-item-nostretch", children: [_jsx(Typography, { tagName: "h2", children: _jsx(FormattedMessage, { id: "visualizationsList.dragToAdd" }) }), canCollapse ? (_jsx(SidebarCollapseToggle, { isCollapsed: isCollapsed, onToggle: () => {
50
+ setFocusSearch(false);
51
+ setCollapsed(!isCollapsed);
52
+ } })) : null] }), _jsx("div", { className: "configuration-category drag-to-add", role: "group", "aria-label": intl.formatMessage({ id: "addPanel.newItem" }), children: _jsx("div", { className: "add-item-panel", children: addItemPanelItems }) }), _jsxs("div", { className: "configuration-category configuration-category-vis drag-to-add flex-panel-item-stretch", role: "group", "aria-label": intl.formatMessage({ id: "visualizationsList.savedVisualizations" }), children: [canCollapse ? (_jsx("div", { className: "gd-sidebar-rail-search", children: _jsx(UiIconButton, { icon: "search", label: intl.formatMessage({ id: "sidebar.search" }), size: "medium", variant: "tertiary", dataTestId: "s-dashboard-sidebar-rail-search", accessibilityConfig: {
53
+ ariaLabel: intl.formatMessage({ id: "sidebar.search" }),
54
+ }, onClick: () => {
55
+ setFocusSearch(true);
56
+ setCollapsed(false);
57
+ } }) })) : null, _jsx(DraggableInsightList, { WrapInsightListItemWithDragComponent: WrapInsightListItemWithDragComponent, recalculateSizeReference: className, searchAutofocus: !isCollapsed && (focusSearch ?? !isNewDashboard), disabled: isAiGenerating })] })] }) }));
45
58
  }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Collapses the dashboard sidebar to the icon rail and expands it back.
3
+ *
4
+ * @internal
5
+ */
6
+ export declare function SidebarCollapseToggle({ isCollapsed, onToggle, }: {
7
+ isCollapsed: boolean;
8
+ onToggle: () => void;
9
+ }): import("react/jsx-runtime").JSX.Element;
10
+ //# sourceMappingURL=SidebarCollapseToggle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SidebarCollapseToggle.d.ts","sourceRoot":"","sources":["../../../../src/presentation/dashboard/DashboardSidebar/SidebarCollapseToggle.tsx"],"names":[],"mappings":"AAMA;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,EAClC,WAAW,EACX,QAAQ,GACX,EAAE;IACC,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACxB,2CAsBA"}
@@ -0,0 +1,19 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ // (C) 2026 GoodData Corporation
3
+ import { useIntl } from "react-intl";
4
+ import { UiIconButton } from "@gooddata/sdk-ui-kit";
5
+ /**
6
+ * Collapses the dashboard sidebar to the icon rail and expands it back.
7
+ *
8
+ * @internal
9
+ */
10
+ export function SidebarCollapseToggle({ isCollapsed, onToggle, }) {
11
+ const intl = useIntl();
12
+ const label = isCollapsed
13
+ ? intl.formatMessage({ id: "sidebar.expand" })
14
+ : intl.formatMessage({ id: "sidebar.collapse" });
15
+ return (_jsx("div", { className: "gd-sidebar-collapse-toggle", children: _jsx(UiIconButton, { icon: isCollapsed ? "sidePanelExpand" : "sidePanelCollapse", label: label, size: "medium", variant: "tertiary", dataTestId: "s-dashboard-sidebar-collapse-toggle", accessibilityConfig: {
16
+ ariaLabel: label,
17
+ ariaExpanded: !isCollapsed,
18
+ }, onClick: onToggle }) }));
19
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"SidebarConfigurationPanel.d.ts","sourceRoot":"","sources":["../../../../src/presentation/dashboard/DashboardSidebar/SidebarConfigurationPanel.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAS1C,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,YAAY,GAAG,IAAI,CAgD3G"}
1
+ {"version":3,"file":"SidebarConfigurationPanel.d.ts","sourceRoot":"","sources":["../../../../src/presentation/dashboard/DashboardSidebar/SidebarConfigurationPanel.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAa1C,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,YAAY,GAAG,IAAI,CAmE3G"}
@@ -1,10 +1,13 @@
1
1
  import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import cx from "classnames";
2
3
  import { useDashboardSelector } from "../../../model/react/DashboardStoreProvider.js";
3
4
  import { useWidgetSelection } from "../../../model/react/useWidgetSelection.js";
4
5
  import { selectSettings } from "../../../model/store/config/configSelectors.js";
5
6
  import { CreationPanel } from "./CreationPanel.js";
6
7
  import { FloatingToolbar } from "./FloatingToolbar.js";
8
+ import { SidebarCollapseToggle } from "./SidebarCollapseToggle.js";
7
9
  import { SidebarResizeChrome } from "./SidebarResizeChrome.js";
10
+ import { useResizableSidebar } from "./SidebarResizeContext.js";
8
11
  /**
9
12
  * @internal
10
13
  */
@@ -15,12 +18,15 @@ export function SidebarConfigurationPanel(props) {
15
18
  const settings = useDashboardSelector(selectSettings);
16
19
  const enableEnhancedInsightPicker = settings?.enableEnhancedInsightPicker ?? false;
17
20
  const enableDashboardSidebarResize = settings?.enableDashboardSidebarResize ?? false;
21
+ const { isCollapsed, canCollapse, setCollapsed, expandedWidth } = useResizableSidebar();
18
22
  if (enableEnhancedInsightPicker) {
19
23
  return _jsx(FloatingToolbar, {});
20
24
  }
21
- const content = (_jsxs(_Fragment, { children: [_jsx("div", { className: "flex-panel-full-height", children: _jsx(CreationPanel, { className: configurationPanelClassName, WrapCreatePanelItemWithDragComponent: WrapCreatePanelItemWithDragComponent, WrapInsightListItemWithDragComponent: WrapInsightListItemWithDragComponent, AttributeFilterComponentSet: AttributeFilterComponentSet, InsightWidgetComponentSet: InsightWidgetComponentSet, RichTextWidgetComponentSet: RichTextWidgetComponentSet, VisualizationSwitcherWidgetComponentSet: VisualizationSwitcherWidgetComponentSet, DashboardLayoutWidgetComponentSet: DashboardLayoutWidgetComponentSet }) }), _jsx(DeleteDropZoneComponent, {})] }));
25
+ const content = (_jsxs(_Fragment, { children: [canCollapse ? (_jsx("div", { className: "gd-sidebar-rail", children: _jsx(SidebarCollapseToggle, { isCollapsed: isCollapsed, onToggle: () => setCollapsed(!isCollapsed) }) })) : null, _jsx("div", { className: cx("gd-sidebar-panel", { "gd-sidebar-panel--collapsible": canCollapse }), children: _jsx("div", { className: "flex-panel-full-height", style: canCollapse ? { width: expandedWidth } : undefined, children: _jsx(CreationPanel, { className: configurationPanelClassName, WrapCreatePanelItemWithDragComponent: WrapCreatePanelItemWithDragComponent, WrapInsightListItemWithDragComponent: WrapInsightListItemWithDragComponent, AttributeFilterComponentSet: AttributeFilterComponentSet, InsightWidgetComponentSet: InsightWidgetComponentSet, RichTextWidgetComponentSet: RichTextWidgetComponentSet, VisualizationSwitcherWidgetComponentSet: VisualizationSwitcherWidgetComponentSet, DashboardLayoutWidgetComponentSet: DashboardLayoutWidgetComponentSet }) }) }), _jsx(DeleteDropZoneComponent, {})] }));
22
26
  if (enableDashboardSidebarResize) {
23
27
  return _jsx(SidebarResizeChrome, { onContainerClick: deselectWidgets, children: content });
24
28
  }
25
- return (_jsx("div", { className: "col gd-flex-item gd-sidebar-container", onClick: deselectWidgets, children: content }));
29
+ return (_jsx("div", { className: cx("col gd-flex-item gd-sidebar-container", {
30
+ "gd-sidebar-container--collapsed": isCollapsed,
31
+ }), onClick: deselectWidgets, children: content }));
26
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SidebarResizeChrome.d.ts","sourceRoot":"","sources":["../../../../src/presentation/dashboard/DashboardSidebar/SidebarResizeChrome.tsx"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,YAAY,EACjB,KAAK,SAAS,EAIjB,MAAM,OAAO,CAAC;AAkBf;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CAAC,EAChC,gBAAgB,EAChB,QAAQ,GACX,EAAE;IACC,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,QAAQ,EAAE,SAAS,CAAC;CACvB,GAAG,YAAY,CAiHf"}
1
+ {"version":3,"file":"SidebarResizeChrome.d.ts","sourceRoot":"","sources":["../../../../src/presentation/dashboard/DashboardSidebar/SidebarResizeChrome.tsx"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,YAAY,EACjB,KAAK,SAAS,EAIjB,MAAM,OAAO,CAAC;AAkBf;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CAAC,EAChC,gBAAgB,EAChB,QAAQ,GACX,EAAE;IACC,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,QAAQ,EAAE,SAAS,CAAC;CACvB,GAAG,YAAY,CAmHf"}
@@ -32,7 +32,7 @@ const handleSeparatorKeyboardNavigation = makeKeyboardNavigation({
32
32
  export function SidebarResizeChrome({ onContainerClick, children, }) {
33
33
  const [dragWidth, setDragWidth] = useState(null);
34
34
  const dragOriginRef = useRef(null);
35
- const { width, min, max, canResize, setWidth } = useResizableSidebar();
35
+ const { width, min, max, canResize, setWidth, isCollapsed } = useResizableSidebar();
36
36
  const isDragging = dragWidth !== null;
37
37
  // Tear down the drag without committing — used when the user presses Escape.
38
38
  const endDrag = () => {
@@ -85,7 +85,9 @@ export function SidebarResizeChrome({ onContainerClick, children, }) {
85
85
  return (_jsx("div", { className: cx("gd-resizable-sidebar", {
86
86
  "gd-resizable-sidebar--resizable": canResize,
87
87
  "gd-resizable-sidebar--dragging": isDragging,
88
- }), style: { width }, children: _jsxs("div", { className: "col gd-flex-item gd-sidebar-container gd-sidebar-container--resizable", onClick: onContainerClick, children: [children, _jsx("button", { type: "button", style: {
88
+ }), style: { width }, children: _jsxs("div", { className: cx("col gd-flex-item gd-sidebar-container gd-sidebar-container--resizable", {
89
+ "gd-sidebar-container--collapsed": isCollapsed,
90
+ }), onClick: onContainerClick, children: [children, _jsx("button", { type: "button", style: {
89
91
  "--drag-x": `${isDragging ? dragWidth : width}px`,
90
92
  }, className: cx("gd-resizable-sidebar__handle", {
91
93
  "gd-resizable-sidebar__handle--dragging": isDragging,
@@ -1,15 +1,20 @@
1
1
  import { type ReactNode } from "react";
2
2
  interface IResizableSidebar {
3
3
  width: number;
4
+ expandedWidth: number;
4
5
  min: number;
5
6
  max: number;
6
7
  canResize: boolean;
7
8
  setWidth: (width: number) => void;
9
+ canCollapse: boolean;
10
+ isCollapsed: boolean;
11
+ setCollapsed: (collapsed: boolean) => void;
8
12
  }
9
13
  /**
10
- * Computes the resizable-sidebar state. When the sidebar is not resizable (not edit mode, the feature
11
- * is off, or it is replaced by the enhanced insight picker) it returns the static
12
- * {@link NON_RESIZABLE_SIDEBAR} — no window resize listener, no width math.
14
+ * Computes the sidebar width state — both the drag-to-resize bounds and the collapsed/expanded
15
+ * state of the panel. When the sidebar is neither resizable nor collapsible (not edit mode, both
16
+ * features are off, or it is replaced by the enhanced insight picker) it returns the static
17
+ * {@link STATIC_SIDEBAR} — no window resize listener, no width math.
13
18
  *
14
19
  * Reads the config store, so it must be called below the dashboard loading gate where the config is
15
20
  * initialized.
@@ -1 +1 @@
1
- {"version":3,"file":"SidebarResizeContext.d.ts","sourceRoot":"","sources":["../../../../src/presentation/dashboard/DashboardSidebar/SidebarResizeContext.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAkD,MAAM,OAAO,CAAC;AAsCvF,UAAU,iBAAiB;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAeD;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,IAAI,iBAAiB,CA2B5D;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,EACrC,KAAK,EACL,QAAQ,GACX,EAAE;IACC,KAAK,EAAE,iBAAiB,CAAC;IACzB,QAAQ,EAAE,SAAS,CAAC;CACvB,2CAEA;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,iBAAiB,CAEvD"}
1
+ {"version":3,"file":"SidebarResizeContext.d.ts","sourceRoot":"","sources":["../../../../src/presentation/dashboard/DashboardSidebar/SidebarResizeContext.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAA2D,MAAM,OAAO,CAAC;AAwChG,UAAU,iBAAiB;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;CAC9C;AAmBD;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,IAAI,iBAAiB,CAiE5D;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,EACrC,KAAK,EACL,QAAQ,GACX,EAAE;IACC,KAAK,EAAE,iBAAiB,CAAC;IACzB,QAAQ,EAAE,SAAS,CAAC;CACvB,2CAEA;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,iBAAiB,CAEvD"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  // (C) 2026 GoodData Corporation
3
- import { createContext, useContext, useEffect, useState } from "react";
3
+ import { createContext, useContext, useEffect, useMemo, useState } from "react";
4
4
  import { clamp } from "lodash-es";
5
5
  import { useLocalStorage } from "@gooddata/sdk-ui";
6
6
  import { useDashboardSelector } from "../../../model/react/DashboardStoreProvider.js";
@@ -8,8 +8,10 @@ import { selectSettings } from "../../../model/store/config/configSelectors.js";
8
8
  import { selectIsInEditMode } from "../../../model/store/renderMode/renderModeSelectors.js";
9
9
  const SIDEBAR_MIN_WIDTH = 230;
10
10
  const SIDEBAR_MAX_WIDTH = 500;
11
+ const SIDEBAR_COLLAPSED_WIDTH = 48;
11
12
  const EDITOR_MIN_WIDTH = 960;
12
- const LOCAL_STORAGE_KEY = "gd-dashboard-sidebar-width";
13
+ const WIDTH_STORAGE_KEY = "gd-dashboard-sidebar-width";
14
+ const COLLAPSED_STORAGE_KEY = "gd-dashboard-sidebar-collapsed";
13
15
  /**
14
16
  * Returns the current `window.innerWidth`, kept in sync with the `resize` event. Only attaches the
15
17
  * listener while `active`, so a non-resizable sidebar triggers no resize-driven re-renders.
@@ -27,21 +29,26 @@ function useWindowWidth(active) {
27
29
  }, [active]);
28
30
  return width;
29
31
  }
30
- // Stable value used whenever the sidebar is not resizable: it is fixed at the minimum width, cannot
31
- // be resized, and ignores writes — so consumers never have to null-check.
32
- const NON_RESIZABLE_SIDEBAR = {
32
+ // Stable value used whenever the sidebar is neither resizable nor collapsible: it is fixed at the
33
+ // minimum width and ignores writes — so consumers never have to null-check.
34
+ const STATIC_SIDEBAR = {
33
35
  width: SIDEBAR_MIN_WIDTH,
36
+ expandedWidth: SIDEBAR_MIN_WIDTH,
34
37
  min: SIDEBAR_MIN_WIDTH,
35
38
  max: SIDEBAR_MIN_WIDTH,
36
39
  canResize: false,
37
40
  setWidth: () => { },
41
+ canCollapse: false,
42
+ isCollapsed: false,
43
+ setCollapsed: () => { },
38
44
  };
39
- const ResizableSidebarContext = createContext(NON_RESIZABLE_SIDEBAR);
45
+ const ResizableSidebarContext = createContext(STATIC_SIDEBAR);
40
46
  ResizableSidebarContext.displayName = "ResizableSidebarContext";
41
47
  /**
42
- * Computes the resizable-sidebar state. When the sidebar is not resizable (not edit mode, the feature
43
- * is off, or it is replaced by the enhanced insight picker) it returns the static
44
- * {@link NON_RESIZABLE_SIDEBAR} — no window resize listener, no width math.
48
+ * Computes the sidebar width state — both the drag-to-resize bounds and the collapsed/expanded
49
+ * state of the panel. When the sidebar is neither resizable nor collapsible (not edit mode, both
50
+ * features are off, or it is replaced by the enhanced insight picker) it returns the static
51
+ * {@link STATIC_SIDEBAR} — no window resize listener, no width math.
45
52
  *
46
53
  * Reads the config store, so it must be called below the dashboard loading gate where the config is
47
54
  * initialized.
@@ -53,23 +60,56 @@ export function useResizableSidebarState() {
53
60
  const isEditMode = useDashboardSelector(selectIsInEditMode);
54
61
  const isSidebarResizeEnabled = settings?.enableDashboardSidebarResize ?? false;
55
62
  const enableEnhancedInsightPicker = settings?.enableEnhancedInsightPicker ?? false;
56
- const isResizable = isEditMode && isSidebarResizeEnabled && !enableEnhancedInsightPicker;
63
+ const isGenAiRightPanelEnabled = settings?.enableGenAiRightPanel ?? false;
64
+ const hasCreationPanel = isEditMode && !enableEnhancedInsightPicker;
65
+ const isResizable = hasCreationPanel && isSidebarResizeEnabled;
66
+ const canCollapse = hasCreationPanel && isGenAiRightPanelEnabled;
57
67
  const containerWidth = useWindowWidth(isResizable);
58
- const [persistedWidth, setPersistedWidth] = useLocalStorage(LOCAL_STORAGE_KEY, SIDEBAR_MIN_WIDTH);
59
- if (!isResizable) {
60
- return NON_RESIZABLE_SIDEBAR;
61
- }
62
- const max = clamp(containerWidth - EDITOR_MIN_WIDTH, SIDEBAR_MIN_WIDTH, SIDEBAR_MAX_WIDTH);
63
- const width = clamp(persistedWidth, SIDEBAR_MIN_WIDTH, max);
64
- return {
65
- width,
66
- min: SIDEBAR_MIN_WIDTH,
67
- max,
68
- canResize: max > SIDEBAR_MIN_WIDTH,
69
- // Clamp every write to the current bounds, so callers can't persist an out-of-range width and
70
- // a non-resizable sidebar (max === min) collapses any value back to the minimum.
71
- setWidth: (next) => setPersistedWidth(clamp(next, SIDEBAR_MIN_WIDTH, max)),
72
- };
68
+ const [persistedWidth, setPersistedWidth] = useLocalStorage(WIDTH_STORAGE_KEY, SIDEBAR_MIN_WIDTH);
69
+ const [persistedCollapsed, setPersistedCollapsed] = useLocalStorage(COLLAPSED_STORAGE_KEY, false);
70
+ return useMemo(() => {
71
+ const max = clamp(containerWidth - EDITOR_MIN_WIDTH, SIDEBAR_MIN_WIDTH, SIDEBAR_MAX_WIDTH);
72
+ const expandedWidth = isResizable ? clamp(persistedWidth, SIDEBAR_MIN_WIDTH, max) : SIDEBAR_MIN_WIDTH;
73
+ if (canCollapse && persistedCollapsed) {
74
+ return {
75
+ width: SIDEBAR_COLLAPSED_WIDTH,
76
+ expandedWidth,
77
+ min: SIDEBAR_COLLAPSED_WIDTH,
78
+ max: SIDEBAR_COLLAPSED_WIDTH,
79
+ canResize: false,
80
+ setWidth: () => { },
81
+ canCollapse,
82
+ isCollapsed: true,
83
+ setCollapsed: setPersistedCollapsed,
84
+ };
85
+ }
86
+ if (!isResizable) {
87
+ return canCollapse
88
+ ? { ...STATIC_SIDEBAR, canCollapse, setCollapsed: setPersistedCollapsed }
89
+ : STATIC_SIDEBAR;
90
+ }
91
+ return {
92
+ width: expandedWidth,
93
+ expandedWidth,
94
+ min: SIDEBAR_MIN_WIDTH,
95
+ max,
96
+ canResize: max > SIDEBAR_MIN_WIDTH,
97
+ // Clamp every write to the current bounds, so callers can't persist an out-of-range width and
98
+ // a non-resizable sidebar (max === min) collapses any value back to the minimum.
99
+ setWidth: (next) => setPersistedWidth(clamp(next, SIDEBAR_MIN_WIDTH, max)),
100
+ canCollapse,
101
+ isCollapsed: false,
102
+ setCollapsed: setPersistedCollapsed,
103
+ };
104
+ }, [
105
+ canCollapse,
106
+ persistedCollapsed,
107
+ setPersistedCollapsed,
108
+ isResizable,
109
+ containerWidth,
110
+ persistedWidth,
111
+ setPersistedWidth,
112
+ ]);
73
113
  }
74
114
  /**
75
115
  * Shares the resize state produced by {@link useResizableSidebarState} with descendants such as the
@@ -1 +1 @@
1
- {"version":3,"file":"DashboardInner.d.ts","sourceRoot":"","sources":["../../../../src/presentation/dashboard/components/DashboardInner.tsx"],"names":[],"mappings":"AA4CA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAQnD,wBAAgB,cAAc,CAAC,KAAK,EAAE,eAAe,2CAwHpD"}
1
+ {"version":3,"file":"DashboardInner.d.ts","sourceRoot":"","sources":["../../../../src/presentation/dashboard/components/DashboardInner.tsx"],"names":[],"mappings":"AA4CA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAQnD,wBAAgB,cAAc,CAAC,KAAK,EAAE,eAAe,2CAyHpD"}
@@ -60,10 +60,10 @@ export function DashboardInner(props) {
60
60
  "gd-dash-content--density-compact": density === "compact",
61
61
  });
62
62
  const resizableSidebar = useResizableSidebarState();
63
- // When the sidebar can be resized, expose its live width so the sibling content area can subtract
64
- // it (see `--gd-dashboard-sidebar-width` in sdk-dashboard.scss). Otherwise leave it unset so the
65
- // content falls back to the static sidebar width.
66
- const dashboardsRootStyle = resizableSidebar.canResize
63
+ // When the sidebar can be resized or is collapsed to the icon rail, expose its live width so the
64
+ // sibling content area can subtract it (see `--gd-dashboard-sidebar-width` in sdk-dashboard.scss).
65
+ // Otherwise leave it unset so the content falls back to the static per-breakpoint sidebar width.
66
+ const dashboardsRootStyle = resizableSidebar.canResize || resizableSidebar.isCollapsed
67
67
  ? {
68
68
  "--gd-dashboard-sidebar-width": `${resizableSidebar.width}px`,
69
69
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DashboardRenderer.d.ts","sourceRoot":"","sources":["../../../../src/presentation/dashboard/components/DashboardRenderer.tsx"],"names":[],"mappings":"AA8CA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAqEnD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,eAAe,2CAsMvD"}
1
+ {"version":3,"file":"DashboardRenderer.d.ts","sourceRoot":"","sources":["../../../../src/presentation/dashboard/components/DashboardRenderer.tsx"],"names":[],"mappings":"AA8CA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAqEnD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,eAAe,2CA0MvD"}
@@ -92,9 +92,9 @@ function shouldUseThemeProvider(props, hasThemeProvider) {
92
92
  * @internal
93
93
  */
94
94
  export function DashboardRenderer(props) {
95
- const { backend, workspace, hasThemeProvider, dashboardOrRef, attributeFilterProvider, dateFilterProvider, measureValueFilterProvider, filterGroupProvider, widgetProvider, insightProvider, insightBodyProvider, insightMenuButtonProvider, dashboardContentProvider, insightMenuProvider, richTextMenuProvider, richTextMenuTitleProvider, insightMenuTitleProvider, insightWidgetComponentSet, attributeFilterComponentSet, dateFilterComponentSet, richTextProvider, visualizationSwitcherProvider, richTextWidgetComponentSet, visualizationSwitcherWidgetComponentSet, visualizationSwitcherToolbarComponentProvider, dashboardLayoutWidgetComponentSet, showAsTableButtonComponentProvider, drillDialogExportDropdownProvider, } = useDashboard(props);
95
+ const { backend, workspace, hasThemeProvider, dashboardOrRef, attributeFilterProvider, dateFilterProvider, measureValueFilterProvider, filterGroupProvider, widgetProvider, insightProvider, insightBodyProvider, insightMenuButtonProvider, dashboardContentProvider, insightMenuProvider, richTextMenuProvider, richTextMenuTitleProvider, insightMenuTitleProvider, insightWidgetComponentSet, attributeFilterComponentSet, dateFilterComponentSet, richTextProvider, restrictedPlaceholderProvider, visualizationSwitcherProvider, richTextWidgetComponentSet, visualizationSwitcherWidgetComponentSet, visualizationSwitcherToolbarComponentProvider, dashboardLayoutWidgetComponentSet, showAsTableButtonComponentProvider, drillDialogExportDropdownProvider, } = useDashboard(props);
96
96
  const components = resolveComponentsWithDefaults(props);
97
- const dashboardRender = (_jsx(BackendProvider, { backend: backend, children: _jsx(WorkspaceProvider, { workspace: workspace, children: _jsx(OverlayControllerProvider, { overlayController: overlayController, children: _jsx(DashboardStoreProvider, { backend: props.backend, workspace: props.workspace, dashboard: dashboardOrRef, persistedDashboard: props.persistedDashboard, filterContextRef: props.filterContextRef, eventHandlers: props.eventHandlers, config: props.config, permissions: props.permissions, onStateChange: props.onStateChange, onEventingInitialized: props.onEventingInitialized, additionalReduxContext: props.additionalReduxContext, customizationFns: props.customizationFns, widgetsOverlayFn: props.widgetsOverlayFn, initialTabId: props.initialTabId, children: _jsx(ExportTemplateDialogContextProvider, { children: _jsx(ExportXlsxDialogContextProvider, { children: _jsx(ExportCsvDialogContextProvider, { children: _jsx(ExportTabularPdfDialogContextProvider, { children: _jsx(DashboardCustomizationsProvider, { insightMenuItemsProvider: props.insightMenuItemsProvider, richTextMenuItemsProvider: props.richTextMenuItemsProvider, existingExportTransformFn: props.customizationFns?.existingExportTransformFn, slideConfig: props.config?.slideConfig, children: _jsx(DashboardComponentsProvider, { ErrorComponent: components.ErrorComponent, LoadingComponent: components.LoadingComponent, LayoutComponent: components.LayoutComponent, InsightComponentProvider: insightProvider, InsightBodyComponentProvider: insightBodyProvider, InsightMenuButtonComponentProvider: insightMenuButtonProvider, InsightMenuTitleComponentProvider: insightMenuTitleProvider, InsightMenuComponentProvider: insightMenuProvider, VisualizationSwitcherToolbarComponentProvider: visualizationSwitcherToolbarComponentProvider, RichTextComponentProvider: richTextProvider, RichTextMenuComponentProvider: richTextMenuProvider, RichTextMenuTitleComponentProvider: richTextMenuTitleProvider, VisualizationSwitcherComponentProvider: visualizationSwitcherProvider, WidgetComponentProvider: widgetProvider, ButtonBarComponent: components.ButtonBarComponent, MenuButtonComponent: components.MenuButtonComponent, TopBarComponent: components.TopBarComponent, ToolbarComponent: components.ToolbarComponent, TitleComponent: components.TitleComponent, ScheduledEmailDialogComponent: components.ScheduledEmailDialogComponent, ScheduledEmailDialogContextDecoratorComponent: components.ScheduledEmailDialogContextDecoratorComponent, ScheduledEmailManagementDialogComponent: components.ScheduledEmailManagementDialogComponent, ScheduledEmailManagementDialogContextDecoratorComponent: components.ScheduledEmailManagementDialogContextDecoratorComponent, ShareDialogComponent: components.ShareDialogComponent, AlertingManagementDialogComponent: components.AlertingManagementDialogComponent, AlertingManagementDialogContextDecoratorComponent: components.AlertingManagementDialogContextDecoratorComponent, AutomationsContextDecoratorComponent: components.AutomationsContextDecoratorComponent, AlertingDialogComponent: components.AlertingDialogComponent, AlertingDialogContextDecoratorComponent: components.AlertingDialogContextDecoratorComponent, SaveAsDialogComponent: components.SaveAsDialogComponent, DashboardAttributeFilterComponentProvider: attributeFilterProvider, DashboardDateFilterComponentProvider: dateFilterProvider, DashboardMeasureValueFilterComponentProvider: measureValueFilterProvider, DashboardFilterGroupComponentProvider: filterGroupProvider, FilterBarComponent: components.FilterBarComponent, SidebarComponent: components.SidebarComponent, InsightWidgetComponentSet: insightWidgetComponentSet, RichTextWidgetComponentSet: richTextWidgetComponentSet, VisualizationSwitcherWidgetComponentSet: visualizationSwitcherWidgetComponentSet, DashboardLayoutWidgetComponentSet: dashboardLayoutWidgetComponentSet, AttributeFilterComponentSet: attributeFilterComponentSet, DateFilterComponentSet: dateFilterComponentSet, EmptyLayoutDropZoneBodyComponent: components.EmptyLayoutDropZoneBodyComponent, SaveButtonComponent: components.SaveButtonComponent, DashboardContentComponentProvider: dashboardContentProvider, SettingButtonComponent: components.SettingButtonComponent, DashboardSettingsDialogComponent: components.DashboardSettingsDialogComponent, ShowAsTableButtonComponentProvider: showAsTableButtonComponentProvider, DrillDialogExportDropdownComponentProvider: drillDialogExportDropdownProvider, children: _jsx(DashboardConfigProvider, { menuButtonConfig: props.menuButtonConfig, children: _jsx(DndProvider, { backend: HTML5Backend, children: _jsx(LayoutResizeStateProvider, { children: _jsx(DashboardItemPathAndSizeProvider, { children: _jsxs(HoveredWidgetProvider, { children: [_jsx(DensityInitializer, {}), _jsx(DashboardLoading, { ...props })] }) }) }) }) }) }) }) }) }) }) }) }) }) }) }));
97
+ const dashboardRender = (_jsx(BackendProvider, { backend: backend, children: _jsx(WorkspaceProvider, { workspace: workspace, children: _jsx(OverlayControllerProvider, { overlayController: overlayController, children: _jsx(DashboardStoreProvider, { backend: props.backend, workspace: props.workspace, dashboard: dashboardOrRef, persistedDashboard: props.persistedDashboard, filterContextRef: props.filterContextRef, eventHandlers: props.eventHandlers, config: props.config, permissions: props.permissions, onStateChange: props.onStateChange, onEventingInitialized: props.onEventingInitialized, additionalReduxContext: props.additionalReduxContext, customizationFns: props.customizationFns, widgetsOverlayFn: props.widgetsOverlayFn, initialTabId: props.initialTabId, children: _jsx(ExportTemplateDialogContextProvider, { children: _jsx(ExportXlsxDialogContextProvider, { children: _jsx(ExportCsvDialogContextProvider, { children: _jsx(ExportTabularPdfDialogContextProvider, { children: _jsx(DashboardCustomizationsProvider, { insightMenuItemsProvider: props.insightMenuItemsProvider, richTextMenuItemsProvider: props.richTextMenuItemsProvider, existingExportTransformFn: props.customizationFns?.existingExportTransformFn, slideConfig: props.config?.slideConfig, children: _jsx(DashboardComponentsProvider, { ErrorComponent: components.ErrorComponent, LoadingComponent: components.LoadingComponent, LayoutComponent: components.LayoutComponent, InsightComponentProvider: insightProvider, InsightBodyComponentProvider: insightBodyProvider, InsightMenuButtonComponentProvider: insightMenuButtonProvider, InsightMenuTitleComponentProvider: insightMenuTitleProvider, InsightMenuComponentProvider: insightMenuProvider, VisualizationSwitcherToolbarComponentProvider: visualizationSwitcherToolbarComponentProvider, RichTextComponentProvider: richTextProvider, RestrictedPlaceholderComponentProvider: restrictedPlaceholderProvider, RichTextMenuComponentProvider: richTextMenuProvider, RichTextMenuTitleComponentProvider: richTextMenuTitleProvider, VisualizationSwitcherComponentProvider: visualizationSwitcherProvider, WidgetComponentProvider: widgetProvider, ButtonBarComponent: components.ButtonBarComponent, MenuButtonComponent: components.MenuButtonComponent, TopBarComponent: components.TopBarComponent, ToolbarComponent: components.ToolbarComponent, TitleComponent: components.TitleComponent, ScheduledEmailDialogComponent: components.ScheduledEmailDialogComponent, ScheduledEmailDialogContextDecoratorComponent: components.ScheduledEmailDialogContextDecoratorComponent, ScheduledEmailManagementDialogComponent: components.ScheduledEmailManagementDialogComponent, ScheduledEmailManagementDialogContextDecoratorComponent: components.ScheduledEmailManagementDialogContextDecoratorComponent, ShareDialogComponent: components.ShareDialogComponent, AlertingManagementDialogComponent: components.AlertingManagementDialogComponent, AlertingManagementDialogContextDecoratorComponent: components.AlertingManagementDialogContextDecoratorComponent, AutomationsContextDecoratorComponent: components.AutomationsContextDecoratorComponent, AlertingDialogComponent: components.AlertingDialogComponent, AlertingDialogContextDecoratorComponent: components.AlertingDialogContextDecoratorComponent, SaveAsDialogComponent: components.SaveAsDialogComponent, DashboardAttributeFilterComponentProvider: attributeFilterProvider, DashboardDateFilterComponentProvider: dateFilterProvider, DashboardMeasureValueFilterComponentProvider: measureValueFilterProvider, DashboardFilterGroupComponentProvider: filterGroupProvider, FilterBarComponent: components.FilterBarComponent, SidebarComponent: components.SidebarComponent, InsightWidgetComponentSet: insightWidgetComponentSet, RichTextWidgetComponentSet: richTextWidgetComponentSet, VisualizationSwitcherWidgetComponentSet: visualizationSwitcherWidgetComponentSet, DashboardLayoutWidgetComponentSet: dashboardLayoutWidgetComponentSet, AttributeFilterComponentSet: attributeFilterComponentSet, DateFilterComponentSet: dateFilterComponentSet, EmptyLayoutDropZoneBodyComponent: components.EmptyLayoutDropZoneBodyComponent, SaveButtonComponent: components.SaveButtonComponent, DashboardContentComponentProvider: dashboardContentProvider, SettingButtonComponent: components.SettingButtonComponent, DashboardSettingsDialogComponent: components.DashboardSettingsDialogComponent, ShowAsTableButtonComponentProvider: showAsTableButtonComponentProvider, DrillDialogExportDropdownComponentProvider: drillDialogExportDropdownProvider, children: _jsx(DashboardConfigProvider, { menuButtonConfig: props.menuButtonConfig, children: _jsx(DndProvider, { backend: HTML5Backend, children: _jsx(LayoutResizeStateProvider, { children: _jsx(DashboardItemPathAndSizeProvider, { children: _jsxs(HoveredWidgetProvider, { children: [_jsx(DensityInitializer, {}), _jsx(DashboardLoading, { ...props })] }) }) }) }) }) }) }) }) }) }) }) }) }) }) }));
98
98
  if (shouldUseThemeProvider(props, hasThemeProvider)) {
99
99
  return (_jsx(ThemeProvider, { theme: props.theme, modifier: props.themeModifier ?? defaultDashboardThemeModifier, backend: backend, workspace: workspace,
100
100
  // Do not remove global theme styles on unmount, if the theme is provided as a prop,
@@ -1,7 +1,7 @@
1
1
  import { type IAnalyticalBackend } from "@gooddata/sdk-backend-spi";
2
2
  import { type IdentifierRef, type UriRef } from "@gooddata/sdk-model";
3
3
  import { type AttributeFilterComponentSet, type DashboardLayoutWidgetComponentSet, type DateFilterComponentSet, type InsightWidgetComponentSet, type RichTextWidgetComponentSet, type VisualizationSwitcherWidgetComponentSet } from "../../componentDefinition/types.js";
4
- import { type AttributeFilterComponentProvider, type DashboardContentComponentProvider, type DashboardLayoutComponentProvider, type DateFilterComponentProvider, type DrillDialogExportDropdownComponentProvider, type FilterGroupComponentProvider, type InsightBodyComponentProvider, type InsightComponentProvider, type InsightMenuButtonComponentProvider, type InsightMenuComponentProvider, type InsightMenuTitleComponentProvider, type MeasureValueFilterComponentProvider, type RichTextComponentProvider, type RichTextMenuComponentProvider, type RichTextMenuTitleComponentProvider, type ShowAsTableButtonComponentProvider, type VisualizationSwitcherComponentProvider, type VisualizationSwitcherToolbarComponentProvider, type WidgetComponentProvider } from "../../dashboardContexts/types.js";
4
+ import { type AttributeFilterComponentProvider, type DashboardContentComponentProvider, type DashboardLayoutComponentProvider, type DateFilterComponentProvider, type DrillDialogExportDropdownComponentProvider, type FilterGroupComponentProvider, type InsightBodyComponentProvider, type InsightComponentProvider, type InsightMenuButtonComponentProvider, type InsightMenuComponentProvider, type InsightMenuTitleComponentProvider, type MeasureValueFilterComponentProvider, type RestrictedPlaceholderComponentProvider, type RichTextComponentProvider, type RichTextMenuComponentProvider, type RichTextMenuTitleComponentProvider, type ShowAsTableButtonComponentProvider, type VisualizationSwitcherComponentProvider, type VisualizationSwitcherToolbarComponentProvider, type WidgetComponentProvider } from "../../dashboardContexts/types.js";
5
5
  import { type IDashboardProps } from "../types.js";
6
6
  interface IUseDashboardResult {
7
7
  backend: IAnalyticalBackend;
@@ -25,6 +25,7 @@ interface IUseDashboardResult {
25
25
  attributeFilterComponentSet: AttributeFilterComponentSet;
26
26
  dateFilterComponentSet: DateFilterComponentSet;
27
27
  richTextProvider: RichTextComponentProvider;
28
+ restrictedPlaceholderProvider: RestrictedPlaceholderComponentProvider;
28
29
  richTextWidgetComponentSet: RichTextWidgetComponentSet;
29
30
  visualizationSwitcherProvider: VisualizationSwitcherComponentProvider;
30
31
  visualizationSwitcherWidgetComponentSet: VisualizationSwitcherWidgetComponentSet;
@@ -1 +1 @@
1
- {"version":3,"file":"useDashboard.d.ts","sourceRoot":"","sources":["../../../../src/presentation/dashboard/hooks/useDashboard.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,MAAM,EAAS,MAAM,qBAAqB,CAAC;AAI7E,OAAO,EACH,KAAK,2BAA2B,EAChC,KAAK,iCAAiC,EACtC,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,KAAK,uCAAuC,EAC/C,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACH,KAAK,gCAAgC,EACrC,KAAK,iCAAiC,EACtC,KAAK,gCAAgC,EACrC,KAAK,2BAA2B,EAChC,KAAK,0CAA0C,EAC/C,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,EACjC,KAAK,wBAAwB,EAC7B,KAAK,kCAAkC,EACvC,KAAK,4BAA4B,EACjC,KAAK,iCAAiC,EACtC,KAAK,mCAAmC,EACxC,KAAK,yBAAyB,EAC9B,KAAK,6BAA6B,EAClC,KAAK,kCAAkC,EACvC,KAAK,kCAAkC,EACvC,KAAK,sCAAsC,EAC3C,KAAK,6CAA6C,EAClD,KAAK,uBAAuB,EAC/B,MAAM,kCAAkC,CAAC;AA0B1C,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,UAAU,mBAAmB;IACzB,OAAO,EAAE,kBAAkB,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAAC;IACnD,gBAAgB,EAAE,OAAO,CAAC;IAC1B,uBAAuB,EAAE,gCAAgC,CAAC;IAC1D,mBAAmB,EAAE,4BAA4B,CAAC;IAClD,kBAAkB,EAAE,2BAA2B,CAAC;IAChD,0BAA0B,EAAE,mCAAmC,CAAC;IAChE,cAAc,EAAE,uBAAuB,CAAC;IACxC,eAAe,EAAE,wBAAwB,CAAC;IAC1C,mBAAmB,EAAE,4BAA4B,CAAC;IAClD,yBAAyB,EAAE,kCAAkC,CAAC;IAC9D,mBAAmB,EAAE,4BAA4B,CAAC;IAClD,oBAAoB,EAAE,6BAA6B,CAAC;IACpD,wBAAwB,EAAE,iCAAiC,CAAC;IAC5D,yBAAyB,EAAE,kCAAkC,CAAC;IAC9D,wBAAwB,EAAE,iCAAiC,CAAC;IAC5D,yBAAyB,EAAE,yBAAyB,CAAC;IACrD,2BAA2B,EAAE,2BAA2B,CAAC;IACzD,sBAAsB,EAAE,sBAAsB,CAAC;IAC/C,gBAAgB,EAAE,yBAAyB,CAAC;IAC5C,0BAA0B,EAAE,0BAA0B,CAAC;IACvD,6BAA6B,EAAE,sCAAsC,CAAC;IACtE,uCAAuC,EAAE,uCAAuC,CAAC;IACjF,6CAA6C,EAAE,6CAA6C,CAAC;IAC7F,uBAAuB,EAAE,gCAAgC,CAAC;IAC1D,iCAAiC,EAAE,iCAAiC,CAAC;IACrE,kCAAkC,EAAE,kCAAkC,CAAC;IACvE,iCAAiC,EAAE,0CAA0C,CAAC;CACjF;AAED,eAAO,MAAM,YAAY,UAAW,eAAe,KAAG,mBA2PrD,CAAC"}
1
+ {"version":3,"file":"useDashboard.d.ts","sourceRoot":"","sources":["../../../../src/presentation/dashboard/hooks/useDashboard.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,MAAM,EAAS,MAAM,qBAAqB,CAAC;AAI7E,OAAO,EACH,KAAK,2BAA2B,EAChC,KAAK,iCAAiC,EACtC,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,KAAK,uCAAuC,EAC/C,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACH,KAAK,gCAAgC,EACrC,KAAK,iCAAiC,EACtC,KAAK,gCAAgC,EACrC,KAAK,2BAA2B,EAChC,KAAK,0CAA0C,EAC/C,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,EACjC,KAAK,wBAAwB,EAC7B,KAAK,kCAAkC,EACvC,KAAK,4BAA4B,EACjC,KAAK,iCAAiC,EACtC,KAAK,mCAAmC,EACxC,KAAK,sCAAsC,EAC3C,KAAK,yBAAyB,EAC9B,KAAK,6BAA6B,EAClC,KAAK,kCAAkC,EACvC,KAAK,kCAAkC,EACvC,KAAK,sCAAsC,EAC3C,KAAK,6CAA6C,EAClD,KAAK,uBAAuB,EAC/B,MAAM,kCAAkC,CAAC;AA2B1C,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,UAAU,mBAAmB;IACzB,OAAO,EAAE,kBAAkB,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAAC;IACnD,gBAAgB,EAAE,OAAO,CAAC;IAC1B,uBAAuB,EAAE,gCAAgC,CAAC;IAC1D,mBAAmB,EAAE,4BAA4B,CAAC;IAClD,kBAAkB,EAAE,2BAA2B,CAAC;IAChD,0BAA0B,EAAE,mCAAmC,CAAC;IAChE,cAAc,EAAE,uBAAuB,CAAC;IACxC,eAAe,EAAE,wBAAwB,CAAC;IAC1C,mBAAmB,EAAE,4BAA4B,CAAC;IAClD,yBAAyB,EAAE,kCAAkC,CAAC;IAC9D,mBAAmB,EAAE,4BAA4B,CAAC;IAClD,oBAAoB,EAAE,6BAA6B,CAAC;IACpD,wBAAwB,EAAE,iCAAiC,CAAC;IAC5D,yBAAyB,EAAE,kCAAkC,CAAC;IAC9D,wBAAwB,EAAE,iCAAiC,CAAC;IAC5D,yBAAyB,EAAE,yBAAyB,CAAC;IACrD,2BAA2B,EAAE,2BAA2B,CAAC;IACzD,sBAAsB,EAAE,sBAAsB,CAAC;IAC/C,gBAAgB,EAAE,yBAAyB,CAAC;IAC5C,6BAA6B,EAAE,sCAAsC,CAAC;IACtE,0BAA0B,EAAE,0BAA0B,CAAC;IACvD,6BAA6B,EAAE,sCAAsC,CAAC;IACtE,uCAAuC,EAAE,uCAAuC,CAAC;IACjF,6CAA6C,EAAE,6CAA6C,CAAC;IAC7F,uBAAuB,EAAE,gCAAgC,CAAC;IAC1D,iCAAiC,EAAE,iCAAiC,CAAC;IACrE,kCAAkC,EAAE,kCAAkC,CAAC;IACvE,iCAAiC,EAAE,0CAA0C,CAAC;CACjF;AAED,eAAO,MAAM,YAAY,UAAW,eAAe,KAAG,mBAqQrD,CAAC"}
@@ -9,6 +9,7 @@ import { DefaultDashboardDateFilter } from "../../filterBar/dateFilter/DefaultDa
9
9
  import { DefaultDashboardDateFilterComponentSetFactory } from "../../filterBar/dateFilter/DefaultDashboardDateFilterComponentSetFactory.js";
10
10
  import { DefaultDashboardFilterGroup } from "../../filterBar/filterBar/DefaultDashboardFilterGroup.js";
11
11
  import { DefaultDashboardMeasureValueFilter } from "../../filterBar/measureValueFilter/DefaultDashboardMeasureValueFilter.js";
12
+ import { RestrictedPlaceholderContent } from "../../widget/common/RestrictedPlaceholder.js";
12
13
  import { DefaultDashboardLayout as DefaultDashboardNestedLayout } from "../../widget/dashboardLayout/DefaultDashboardLayout.js";
13
14
  import { DefaultDashboardLayoutComponentSetFactory } from "../../widget/dashboardLayout/DefaultDashboardLayoutComponentSetFactory.js";
14
15
  import { DefaultDashboardInsight } from "../../widget/insight/DefaultDashboardInsight.js";
@@ -29,7 +30,7 @@ import { DefaultDashboardVisualizationSwitcherComponentSetFactory } from "../../
29
30
  import { DefaultDashboardWidget } from "../../widget/widget/DefaultDashboardWidget.js";
30
31
  import { DefaultDashboardMainContent } from "../DefaultDashboardContent/DefaultDashboardMainContent.js";
31
32
  export const useDashboard = (props) => {
32
- const { dashboard, DashboardAttributeFilterComponentProvider, DashboardDateFilterComponentProvider, DashboardMeasureValueFilterComponentProvider, DashboardFilterGroupComponentProvider, WidgetComponentProvider, InsightComponentProvider, InsightBodyComponentProvider, InsightMenuButtonComponentProvider, InsightMenuComponentProvider, InsightMenuTitleComponentProvider, InsightComponentSetProvider, DashboardContentComponentProvider, RichTextComponentProvider, RichTextMenuComponentProvider, RichTextMenuTitleComponentProvider, VisualizationSwitcherComponentProvider, VisualizationSwitcherToolbarComponentProvider, DashboardLayoutComponentProvider, ShowAsTableButtonComponentProvider, DrillDialogExportDropdownComponentProvider, } = props;
33
+ const { dashboard, DashboardAttributeFilterComponentProvider, DashboardDateFilterComponentProvider, DashboardMeasureValueFilterComponentProvider, DashboardFilterGroupComponentProvider, WidgetComponentProvider, InsightComponentProvider, InsightBodyComponentProvider, InsightMenuButtonComponentProvider, InsightMenuComponentProvider, InsightMenuTitleComponentProvider, InsightComponentSetProvider, DashboardContentComponentProvider, RichTextComponentProvider, RestrictedPlaceholderComponentProvider, RichTextMenuComponentProvider, RichTextMenuTitleComponentProvider, VisualizationSwitcherComponentProvider, VisualizationSwitcherToolbarComponentProvider, DashboardLayoutComponentProvider, ShowAsTableButtonComponentProvider, DrillDialogExportDropdownComponentProvider, } = props;
33
34
  const backend = useBackendStrict(props.backend);
34
35
  const workspace = useWorkspaceStrict(props.workspace);
35
36
  const attributeFilterProvider = useCallback((filter) => {
@@ -101,6 +102,10 @@ export const useDashboard = (props) => {
101
102
  const userSpecified = RichTextComponentProvider?.(richText);
102
103
  return userSpecified ?? DefaultDashboardRichText;
103
104
  }, [RichTextComponentProvider]);
105
+ const restrictedPlaceholderProvider = useCallback((widget) => {
106
+ const userSpecified = RestrictedPlaceholderComponentProvider?.(widget);
107
+ return userSpecified ?? RestrictedPlaceholderContent;
108
+ }, [RestrictedPlaceholderComponentProvider]);
104
109
  const richTextMenuProvider = useCallback((richText) => {
105
110
  const userSpecified = RichTextMenuComponentProvider?.(richText);
106
111
  // if user customizes the items, always use the "new" default menu
@@ -157,6 +162,7 @@ export const useDashboard = (props) => {
157
162
  attributeFilterComponentSet,
158
163
  dateFilterComponentSet,
159
164
  richTextProvider,
165
+ restrictedPlaceholderProvider,
160
166
  richTextMenuProvider,
161
167
  richTextMenuTitleProvider,
162
168
  richTextWidgetComponentSet,
@@ -10,7 +10,7 @@ import { type CustomAutomationsContextDecoratorComponent } from "../../types.js"
10
10
  import { type CustomAlertingDialogComponent, type CustomAlertingDialogContextDecoratorComponent, type CustomAlertingManagementDialogComponent, type CustomAlertingManagementDialogContextDecoratorComponent } from "../automations/alerting/types.js";
11
11
  import { type CustomScheduledEmailDialogComponent, type CustomScheduledEmailDialogContextDecoratorComponent, type CustomScheduledEmailManagementDialogComponent, type CustomScheduledEmailManagementDialogContextDecoratorComponent } from "../automations/scheduledEmail/types.js";
12
12
  import { type InsightComponentSetProvider } from "../componentDefinition/types.js";
13
- import { type InsightMenuItemsProvider, type OptionalAttributeFilterComponentProvider, type OptionalDashboardContentComponentProvider, type OptionalDashboardLayoutComponentProvider, type OptionalDateFilterComponentProvider, type OptionalDrillDialogExportDropdownComponentProvider, type OptionalFilterGroupComponentProvider, type OptionalInsightBodyComponentProvider, type OptionalInsightComponentProvider, type OptionalInsightMenuButtonComponentProvider, type OptionalInsightMenuComponentProvider, type OptionalInsightMenuTitleComponentProvider, type OptionalMeasureValueFilterComponentProvider, type OptionalRichTextComponentProvider, type OptionalRichTextMenuComponentProvider, type OptionalRichTextMenuTitleComponentProvider, type OptionalShowAsTableButtonComponentProvider, type OptionalVisualizationSwitcherComponentProvider, type OptionalVisualizationSwitcherToolbarComponentProvider, type OptionalWidgetComponentProvider, type RichTextMenuItemsProvider } from "../dashboardContexts/types.js";
13
+ import { type InsightMenuItemsProvider, type OptionalAttributeFilterComponentProvider, type OptionalDashboardContentComponentProvider, type OptionalDashboardLayoutComponentProvider, type OptionalDateFilterComponentProvider, type OptionalDrillDialogExportDropdownComponentProvider, type OptionalFilterGroupComponentProvider, type OptionalInsightBodyComponentProvider, type OptionalInsightComponentProvider, type OptionalInsightMenuButtonComponentProvider, type OptionalInsightMenuComponentProvider, type OptionalInsightMenuTitleComponentProvider, type OptionalMeasureValueFilterComponentProvider, type OptionalRestrictedPlaceholderComponentProvider, type OptionalRichTextComponentProvider, type OptionalRichTextMenuComponentProvider, type OptionalRichTextMenuTitleComponentProvider, type OptionalShowAsTableButtonComponentProvider, type OptionalVisualizationSwitcherComponentProvider, type OptionalVisualizationSwitcherToolbarComponentProvider, type OptionalWidgetComponentProvider, type RichTextMenuItemsProvider } from "../dashboardContexts/types.js";
14
14
  import { type CustomDashboardSettingsDialogComponent } from "../dashboardSettingsDialog/types.js";
15
15
  import { type CustomFilterBarComponent } from "../filterBar/filterBar/types.js";
16
16
  import { type CustomEmptyLayoutDropZoneBodyComponent } from "../flexibleLayout/types.js";
@@ -197,6 +197,19 @@ export interface IDashboardCustomComponentProps {
197
197
  * @public
198
198
  */
199
199
  RichTextComponentProvider?: OptionalRichTextComponentProvider;
200
+ /**
201
+ * Specify function to obtain a custom component standing in for an insight widget the current
202
+ * user is not allowed to see.
203
+ *
204
+ * @remarks
205
+ * - If not provided, the default access placeholder is used.
206
+ * - If the factory function returns undefined, the default is used for that widget. This is
207
+ * useful to customize the placeholder for particular widgets only.
208
+ * - The insight is deliberately not passed to the factory: it is the object being withheld.
209
+ *
210
+ * @alpha
211
+ */
212
+ RestrictedPlaceholderComponentProvider?: OptionalRestrictedPlaceholderComponentProvider;
200
213
  /**
201
214
  * Specify function to obtain custom component to use for rendering a visualization switcher.
202
215
  *
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/presentation/dashboard/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/presentation/dashboard/types.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,7 @@ import { type CustomMenuButtonComponent } from "../topBar/menuButton/types.js";
18
18
  import { type CustomTitleComponent } from "../topBar/title/types.js";
19
19
  import { type CustomTopBarComponent } from "../topBar/topBar/types.js";
20
20
  import { type CustomDashboardLayoutComponent } from "../widget/dashboardLayout/types.js";
21
- import { type AttributeFilterComponentProvider, type DashboardContentComponentProvider, type DateFilterComponentProvider, type DrillDialogExportDropdownComponentProvider, type FilterGroupComponentProvider, type InsightBodyComponentProvider, type InsightComponentProvider, type InsightMenuButtonComponentProvider, type InsightMenuComponentProvider, type InsightMenuTitleComponentProvider, type MeasureValueFilterComponentProvider, type RichTextComponentProvider, type RichTextMenuComponentProvider, type RichTextMenuTitleComponentProvider, type ShowAsTableButtonComponentProvider, type VisualizationSwitcherComponentProvider, type VisualizationSwitcherToolbarComponentProvider, type WidgetComponentProvider } from "./types.js";
21
+ import { type AttributeFilterComponentProvider, type DashboardContentComponentProvider, type DateFilterComponentProvider, type DrillDialogExportDropdownComponentProvider, type FilterGroupComponentProvider, type InsightBodyComponentProvider, type InsightComponentProvider, type InsightMenuButtonComponentProvider, type InsightMenuComponentProvider, type InsightMenuTitleComponentProvider, type MeasureValueFilterComponentProvider, type RestrictedPlaceholderComponentProvider, type RichTextComponentProvider, type RichTextMenuComponentProvider, type RichTextMenuTitleComponentProvider, type ShowAsTableButtonComponentProvider, type VisualizationSwitcherComponentProvider, type VisualizationSwitcherToolbarComponentProvider, type WidgetComponentProvider } from "./types.js";
22
22
  /**
23
23
  * @internal
24
24
  */
@@ -36,6 +36,7 @@ interface IDashboardComponentsContext {
36
36
  RichTextMenuTitleComponentProvider: RichTextMenuTitleComponentProvider;
37
37
  VisualizationSwitcherToolbarComponentProvider: VisualizationSwitcherToolbarComponentProvider;
38
38
  RichTextComponentProvider: RichTextComponentProvider;
39
+ RestrictedPlaceholderComponentProvider: RestrictedPlaceholderComponentProvider;
39
40
  VisualizationSwitcherComponentProvider: VisualizationSwitcherComponentProvider;
40
41
  ButtonBarComponent: CustomButtonBarComponent;
41
42
  MenuButtonComponent: CustomMenuButtonComponent;
@@ -1 +1 @@
1
- {"version":3,"file":"DashboardComponentsContext.d.ts","sourceRoot":"","sources":["../../../src/presentation/dashboardContexts/DashboardComponentsContext.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DashboardComponentsContext.d.ts","sourceRoot":"","sources":["../../../src/presentation/dashboardContexts/DashboardComponentsContext.tsx"],"names":[],"mappings":"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"}
@@ -20,6 +20,7 @@ const DashboardComponentsContext = createContext({
20
20
  RichTextMenuComponentProvider: ThrowMissingComponentError("RichTextMenuComponent"),
21
21
  RichTextMenuTitleComponentProvider: ThrowMissingComponentError("RichTextMenuTitleComponentProvider"),
22
22
  RichTextComponentProvider: ThrowMissingComponentError("RichTextComponent"),
23
+ RestrictedPlaceholderComponentProvider: ThrowMissingComponentError("RestrictedPlaceholderComponent"),
23
24
  VisualizationSwitcherComponentProvider: ThrowMissingComponentError("VisualizationSwitcherComponent"),
24
25
  WidgetComponentProvider: ThrowMissingComponentError("WidgetComponent"),
25
26
  ButtonBarComponent: ThrowMissingComponentError("ButtonBarComponent"),
@@ -11,6 +11,7 @@ import { type CustomFilterBarComponent, type IFilterBarProps } from "../filterBa
11
11
  import { type CustomDashboardMeasureValueFilterComponent } from "../filterBar/measureValueFilter/types.js";
12
12
  import { type CustomTitleComponent, type ITitleProps } from "../topBar/title/types.js";
13
13
  import { type CustomTopBarComponent, type ITopBarProps } from "../topBar/topBar/types.js";
14
+ import { type IRestrictedPlaceholderContentProps } from "../widget/common/RestrictedPlaceholder.js";
14
15
  import { type CustomDashboardLayoutComponent, type CustomDashboardLayoutComponent as CustomDashboardNestedLayoutComponent, type IDashboardLayoutProps } from "../widget/dashboardLayout/types.js";
15
16
  import { type CustomDashboardInsightComponent, type CustomInsightBodyComponent } from "../widget/insight/types.js";
16
17
  import { type CustomDrillDialogExportDropdownComponent } from "../widget/insight/ViewModeDashboardInsight/InsightDrillDialog/drillDialogExportDropdownTypes.js";
@@ -97,6 +98,25 @@ export type RichTextComponentProvider = (widget: IRichTextWidget) => CustomDashb
97
98
  * @public
98
99
  */
99
100
  export type OptionalRichTextComponentProvider = OptionalProvider<RichTextComponentProvider>;
101
+ /**
102
+ * Content shown inside a restricted placeholder. The dashboard owns the surrounding tile, and for a
103
+ * visualization switcher also its entry list, so this component supplies only the inner content and
104
+ * is therefore usable in both places.
105
+ *
106
+ * @alpha
107
+ */
108
+ export type CustomRestrictedPlaceholderComponent = ComponentType<IRestrictedPlaceholderContentProps>;
109
+ /**
110
+ * Provides the content shown in place of a widget the current user may not see. The insight itself
111
+ * is deliberately not passed — it is the object being withheld.
112
+ *
113
+ * @alpha
114
+ */
115
+ export type RestrictedPlaceholderComponentProvider = (widget: IInsightWidget) => CustomRestrictedPlaceholderComponent;
116
+ /**
117
+ * @alpha
118
+ */
119
+ export type OptionalRestrictedPlaceholderComponentProvider = OptionalProvider<RestrictedPlaceholderComponentProvider>;
100
120
  /**
101
121
  * @alpha
102
122
  */