@gooddata/sdk-ui-dashboard 11.65.0-alpha.9 → 11.66.0-alpha.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 (275) hide show
  1. package/NOTICE +536 -2137
  2. package/README.md +1 -1
  3. package/esm/__version.d.ts +1 -1
  4. package/esm/__version.js +1 -1
  5. package/esm/index.d.ts +6 -4
  6. package/esm/index.d.ts.map +1 -1
  7. package/esm/index.js +3 -2
  8. package/esm/model/commandHandlers/dashboard/common/filterViews.d.ts +36 -3
  9. package/esm/model/commandHandlers/dashboard/common/filterViews.d.ts.map +1 -1
  10. package/esm/model/commandHandlers/dashboard/common/filterViews.js +138 -26
  11. package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/index.d.ts +15 -4
  12. package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/index.d.ts.map +1 -1
  13. package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/index.js +55 -11
  14. package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/preloadAttributeFiltersData.d.ts +6 -1
  15. package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/preloadAttributeFiltersData.d.ts.map +1 -1
  16. package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/preloadAttributeFiltersData.js +14 -6
  17. package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/resolveDashboardConfig.d.ts.map +1 -1
  18. package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/resolveDashboardConfig.js +1 -0
  19. package/esm/model/commandHandlers/dashboard/resetDashboardHandler.d.ts.map +1 -1
  20. package/esm/model/commandHandlers/dashboard/resetDashboardHandler.js +21 -8
  21. package/esm/model/commandHandlers/filterContext/changeFilterContextSelectionHandler.d.ts.map +1 -1
  22. package/esm/model/commandHandlers/filterContext/changeFilterContextSelectionHandler.js +9 -3
  23. package/esm/model/commandHandlers/filterContext/filterViewHandler.d.ts +10 -0
  24. package/esm/model/commandHandlers/filterContext/filterViewHandler.d.ts.map +1 -1
  25. package/esm/model/commandHandlers/filterContext/filterViewHandler.js +79 -24
  26. package/esm/model/commandHandlers/filterContext/tabSync/writtenTargets.d.ts +17 -0
  27. package/esm/model/commandHandlers/filterContext/tabSync/writtenTargets.d.ts.map +1 -0
  28. package/esm/model/commandHandlers/filterContext/tabSync/writtenTargets.js +79 -0
  29. package/esm/model/commandHandlers/parameters/changeParameterValuesHandler.d.ts.map +1 -1
  30. package/esm/model/commandHandlers/parameters/changeParameterValuesHandler.js +7 -3
  31. package/esm/model/commandHandlers/tabs/switchDashboardTabHandler.d.ts.map +1 -1
  32. package/esm/model/commandHandlers/tabs/switchDashboardTabHandler.js +3 -1
  33. package/esm/model/commands/filters.d.ts +16 -1
  34. package/esm/model/commands/filters.d.ts.map +1 -1
  35. package/esm/model/commands/filters.js +2 -1
  36. package/esm/model/commands/parameters.d.ts +10 -1
  37. package/esm/model/commands/parameters.d.ts.map +1 -1
  38. package/esm/model/commands/parameters.js +2 -1
  39. package/esm/model/events/base.d.ts +1 -1
  40. package/esm/model/events/base.d.ts.map +1 -1
  41. package/esm/model/events/index.d.ts +2 -1
  42. package/esm/model/events/index.d.ts.map +1 -1
  43. package/esm/model/events/insightEditor.d.ts +128 -0
  44. package/esm/model/events/insightEditor.d.ts.map +1 -0
  45. package/esm/model/events/insightEditor.js +74 -0
  46. package/esm/model/store/config/configSelectors.d.ts +12 -0
  47. package/esm/model/store/config/configSelectors.d.ts.map +1 -1
  48. package/esm/model/store/config/configSelectors.js +12 -0
  49. package/esm/model/store/filterViews/filterViewsReducers.d.ts +8 -0
  50. package/esm/model/store/filterViews/filterViewsReducers.d.ts.map +1 -1
  51. package/esm/model/store/filterViews/filterViewsReducers.js +11 -0
  52. package/esm/model/store/filterViews/filterViewsReducersSelectors.d.ts +6 -0
  53. package/esm/model/store/filterViews/filterViewsReducersSelectors.d.ts.map +1 -1
  54. package/esm/model/store/filterViews/filterViewsReducersSelectors.js +6 -0
  55. package/esm/model/store/filterViews/filterViewsState.d.ts +6 -0
  56. package/esm/model/store/filterViews/filterViewsState.d.ts.map +1 -1
  57. package/esm/model/store/filterViews/index.d.ts +2 -0
  58. package/esm/model/store/filterViews/index.d.ts.map +1 -1
  59. package/esm/model/store/meta/metaSelectors.d.ts +7 -0
  60. package/esm/model/store/meta/metaSelectors.d.ts.map +1 -1
  61. package/esm/model/store/meta/metaSelectors.js +10 -0
  62. package/esm/model/store/tabs/filterContext/filterContextReducers.d.ts +24 -0
  63. package/esm/model/store/tabs/filterContext/filterContextReducers.d.ts.map +1 -1
  64. package/esm/model/store/tabs/filterContext/filterContextReducers.js +75 -0
  65. package/esm/model/store/tabs/index.d.ts +8 -0
  66. package/esm/model/store/tabs/index.d.ts.map +1 -1
  67. package/esm/model/store/tabs/parameters/parametersReducers.d.ts +16 -0
  68. package/esm/model/store/tabs/parameters/parametersReducers.d.ts.map +1 -1
  69. package/esm/model/store/tabs/parameters/parametersReducers.js +25 -0
  70. package/esm/model/store/ui/index.d.ts +2 -0
  71. package/esm/model/store/ui/index.d.ts.map +1 -1
  72. package/esm/model/store/ui/uiReducers.d.ts +6 -0
  73. package/esm/model/store/ui/uiReducers.d.ts.map +1 -1
  74. package/esm/model/store/ui/uiReducers.js +8 -0
  75. package/esm/model/store/ui/uiSelectors.d.ts +7 -0
  76. package/esm/model/store/ui/uiSelectors.d.ts.map +1 -1
  77. package/esm/model/store/ui/uiSelectors.js +6 -0
  78. package/esm/model/store/ui/uiState.d.ts +5 -0
  79. package/esm/model/store/ui/uiState.d.ts.map +1 -1
  80. package/esm/model/store/ui/uiState.js +1 -0
  81. package/esm/model/types/commonTypes.d.ts +18 -0
  82. package/esm/model/types/commonTypes.d.ts.map +1 -1
  83. package/esm/model/types/insightEditorTypes.d.ts +43 -0
  84. package/esm/model/types/insightEditorTypes.d.ts.map +1 -0
  85. package/esm/model/types/insightEditorTypes.js +2 -0
  86. package/esm/presentation/automations/alerting/DefaultAlertingManagementDialog/DefaultAlertingManagementDialogContent.d.ts.map +1 -1
  87. package/esm/presentation/automations/alerting/DefaultAlertingManagementDialog/DefaultAlertingManagementDialogContent.js +1 -4
  88. package/esm/presentation/automations/connectors/hooks/useAutomationManagementEditRouting.d.ts.map +1 -1
  89. package/esm/presentation/automations/connectors/hooks/useAutomationManagementEditRouting.js +2 -6
  90. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/RecipientsSelect/RecipientsSelectRenderer.d.ts.map +1 -1
  91. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/RecipientsSelect/RecipientsSelectRenderer.js +6 -1
  92. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailManagementDialog/DefaultScheduledEmailManagementDialogContent.d.ts.map +1 -1
  93. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailManagementDialog/DefaultScheduledEmailManagementDialogContent.js +2 -5
  94. package/esm/presentation/automations/shared/automationFilters/utils.d.ts +4 -0
  95. package/esm/presentation/automations/shared/automationFilters/utils.d.ts.map +1 -1
  96. package/esm/presentation/automations/shared/automationFilters/utils.js +12 -5
  97. package/esm/presentation/automations/shared/utils/automationUtils.d.ts +1 -2
  98. package/esm/presentation/automations/shared/utils/automationUtils.d.ts.map +1 -1
  99. package/esm/presentation/automations/shared/utils/automationUtils.js +0 -1
  100. package/esm/presentation/dashboard/DashboardHeader/DashboardHeader.d.ts +1 -1
  101. package/esm/presentation/dashboard/DashboardHeader/DashboardHeader.d.ts.map +1 -1
  102. package/esm/presentation/dashboard/DashboardHeader/DashboardHeader.js +0 -10
  103. package/esm/presentation/dashboard/DashboardSidebar/CreationPanel.d.ts.map +1 -1
  104. package/esm/presentation/dashboard/DashboardSidebar/CreationPanel.js +10 -1
  105. package/esm/presentation/dashboard/DefaultDashboardContent/DashboardContentLoader.d.ts +5 -0
  106. package/esm/presentation/dashboard/DefaultDashboardContent/DashboardContentLoader.d.ts.map +1 -0
  107. package/esm/presentation/dashboard/DefaultDashboardContent/DashboardContentLoader.js +27 -0
  108. package/esm/presentation/dashboard/DefaultDashboardContent/DefaultDashboardMainContent.d.ts.map +1 -1
  109. package/esm/presentation/dashboard/DefaultDashboardContent/DefaultDashboardMainContent.js +7 -2
  110. package/esm/presentation/dashboard/components/DashboardInner.d.ts.map +1 -1
  111. package/esm/presentation/dashboard/components/DashboardInner.js +13 -9
  112. package/esm/presentation/dashboard/hooks/useDashboard.d.ts.map +1 -1
  113. package/esm/presentation/dashboard/hooks/useDashboard.js +3 -2
  114. package/esm/presentation/insightEditor/InsightEditorContent.d.ts +26 -0
  115. package/esm/presentation/insightEditor/InsightEditorContent.d.ts.map +1 -0
  116. package/esm/presentation/insightEditor/InsightEditorContent.js +179 -0
  117. package/esm/presentation/insightEditor/InsightEditorCreatePanelItem.d.ts +7 -0
  118. package/esm/presentation/insightEditor/InsightEditorCreatePanelItem.d.ts.map +1 -0
  119. package/esm/presentation/insightEditor/InsightEditorCreatePanelItem.js +25 -0
  120. package/esm/presentation/insightEditor/InsightEditorOverlay.d.ts +6 -0
  121. package/esm/presentation/insightEditor/InsightEditorOverlay.d.ts.map +1 -0
  122. package/esm/presentation/insightEditor/InsightEditorOverlay.js +110 -0
  123. package/esm/presentation/insightEditor/InsightEditorPermissionsContext.d.ts +10 -0
  124. package/esm/presentation/insightEditor/InsightEditorPermissionsContext.d.ts.map +1 -0
  125. package/esm/presentation/insightEditor/InsightEditorPermissionsContext.js +18 -0
  126. package/esm/presentation/insightEditor/InsightEditorPlaceholder.d.ts +7 -0
  127. package/esm/presentation/insightEditor/InsightEditorPlaceholder.d.ts.map +1 -0
  128. package/esm/presentation/insightEditor/InsightEditorPlaceholder.js +15 -0
  129. package/esm/presentation/insightEditor/filterContext/attributeFilters.d.ts +4 -0
  130. package/esm/presentation/insightEditor/filterContext/attributeFilters.d.ts.map +1 -0
  131. package/esm/presentation/insightEditor/filterContext/attributeFilters.js +115 -0
  132. package/esm/presentation/insightEditor/filterContext/dateFilters.d.ts +5 -0
  133. package/esm/presentation/insightEditor/filterContext/dateFilters.d.ts.map +1 -0
  134. package/esm/presentation/insightEditor/filterContext/dateFilters.js +117 -0
  135. package/esm/presentation/insightEditor/filterContext/filterIntersection.d.ts +7 -0
  136. package/esm/presentation/insightEditor/filterContext/filterIntersection.d.ts.map +1 -0
  137. package/esm/presentation/insightEditor/filterContext/filterIntersection.js +149 -0
  138. package/esm/presentation/insightEditor/filterContext/insightFilterContext.d.ts +26 -0
  139. package/esm/presentation/insightEditor/filterContext/insightFilterContext.d.ts.map +1 -0
  140. package/esm/presentation/insightEditor/filterContext/insightFilterContext.js +72 -0
  141. package/esm/presentation/insightEditor/filterContext/measureValueFilters.d.ts +20 -0
  142. package/esm/presentation/insightEditor/filterContext/measureValueFilters.d.ts.map +1 -0
  143. package/esm/presentation/insightEditor/filterContext/measureValueFilters.js +76 -0
  144. package/esm/presentation/insightEditor/filterContext/objQualifiers.d.ts +11 -0
  145. package/esm/presentation/insightEditor/filterContext/objQualifiers.d.ts.map +1 -0
  146. package/esm/presentation/insightEditor/filterContext/objQualifiers.js +18 -0
  147. package/esm/presentation/insightEditor/insightEditorEscapeGuard.d.ts +18 -0
  148. package/esm/presentation/insightEditor/insightEditorEscapeGuard.d.ts.map +1 -0
  149. package/esm/presentation/insightEditor/insightEditorEscapeGuard.js +24 -0
  150. package/esm/presentation/insightEditor/insightEditorRoute.d.ts +34 -0
  151. package/esm/presentation/insightEditor/insightEditorRoute.d.ts.map +1 -0
  152. package/esm/presentation/insightEditor/insightEditorRoute.js +48 -0
  153. package/esm/presentation/insightEditor/types.d.ts +7 -0
  154. package/esm/presentation/insightEditor/types.d.ts.map +1 -0
  155. package/esm/presentation/insightEditor/types.js +2 -0
  156. package/esm/presentation/insightEditor/useCanCreateInsightInEditor.d.ts +5 -0
  157. package/esm/presentation/insightEditor/useCanCreateInsightInEditor.d.ts.map +1 -0
  158. package/esm/presentation/insightEditor/useCanCreateInsightInEditor.js +14 -0
  159. package/esm/presentation/insightEditor/useExploreFilterTransfer.d.ts +23 -0
  160. package/esm/presentation/insightEditor/useExploreFilterTransfer.d.ts.map +1 -0
  161. package/esm/presentation/insightEditor/useExploreFilterTransfer.js +194 -0
  162. package/esm/presentation/insightEditor/useInsightEditPermissions.d.ts +17 -0
  163. package/esm/presentation/insightEditor/useInsightEditPermissions.d.ts.map +1 -0
  164. package/esm/presentation/insightEditor/useInsightEditPermissions.js +42 -0
  165. package/esm/presentation/insightEditor/useInsightEditorMenuItems.d.ts +23 -0
  166. package/esm/presentation/insightEditor/useInsightEditorMenuItems.d.ts.map +1 -0
  167. package/esm/presentation/insightEditor/useInsightEditorMenuItems.js +126 -0
  168. package/esm/presentation/insightEditor/useInsightEditorSession.d.ts +19 -0
  169. package/esm/presentation/insightEditor/useInsightEditorSession.d.ts.map +1 -0
  170. package/esm/presentation/insightEditor/useInsightEditorSession.js +141 -0
  171. package/esm/presentation/insightList/InsightList.d.ts.map +1 -1
  172. package/esm/presentation/insightList/InsightList.js +10 -5
  173. package/esm/presentation/localization/bundles/de-DE.localization-bundle.d.ts +10 -0
  174. package/esm/presentation/localization/bundles/de-DE.localization-bundle.d.ts.map +1 -1
  175. package/esm/presentation/localization/bundles/de-DE.localization-bundle.js +11 -1
  176. package/esm/presentation/localization/bundles/en-AU.localization-bundle.d.ts +10 -0
  177. package/esm/presentation/localization/bundles/en-AU.localization-bundle.d.ts.map +1 -1
  178. package/esm/presentation/localization/bundles/en-AU.localization-bundle.js +11 -1
  179. package/esm/presentation/localization/bundles/en-GB.localization-bundle.d.ts +10 -0
  180. package/esm/presentation/localization/bundles/en-GB.localization-bundle.d.ts.map +1 -1
  181. package/esm/presentation/localization/bundles/en-GB.localization-bundle.js +16 -6
  182. package/esm/presentation/localization/bundles/en-US.localization-bundle.d.ts +32 -0
  183. package/esm/presentation/localization/bundles/en-US.localization-bundle.d.ts.map +1 -1
  184. package/esm/presentation/localization/bundles/en-US.localization-bundle.js +32 -0
  185. package/esm/presentation/localization/bundles/es-419.localization-bundle.d.ts +10 -0
  186. package/esm/presentation/localization/bundles/es-419.localization-bundle.d.ts.map +1 -1
  187. package/esm/presentation/localization/bundles/es-419.localization-bundle.js +11 -1
  188. package/esm/presentation/localization/bundles/es-ES.localization-bundle.d.ts +10 -0
  189. package/esm/presentation/localization/bundles/es-ES.localization-bundle.d.ts.map +1 -1
  190. package/esm/presentation/localization/bundles/es-ES.localization-bundle.js +50 -40
  191. package/esm/presentation/localization/bundles/fi-FI.localization-bundle.d.ts +10 -0
  192. package/esm/presentation/localization/bundles/fi-FI.localization-bundle.d.ts.map +1 -1
  193. package/esm/presentation/localization/bundles/fi-FI.localization-bundle.js +11 -1
  194. package/esm/presentation/localization/bundles/fr-CA.localization-bundle.d.ts +10 -0
  195. package/esm/presentation/localization/bundles/fr-CA.localization-bundle.d.ts.map +1 -1
  196. package/esm/presentation/localization/bundles/fr-CA.localization-bundle.js +12 -2
  197. package/esm/presentation/localization/bundles/fr-FR.localization-bundle.d.ts +10 -0
  198. package/esm/presentation/localization/bundles/fr-FR.localization-bundle.d.ts.map +1 -1
  199. package/esm/presentation/localization/bundles/fr-FR.localization-bundle.js +186 -176
  200. package/esm/presentation/localization/bundles/id-ID.localization-bundle.d.ts +10 -0
  201. package/esm/presentation/localization/bundles/id-ID.localization-bundle.d.ts.map +1 -1
  202. package/esm/presentation/localization/bundles/id-ID.localization-bundle.js +11 -1
  203. package/esm/presentation/localization/bundles/it-IT.localization-bundle.d.ts +10 -0
  204. package/esm/presentation/localization/bundles/it-IT.localization-bundle.d.ts.map +1 -1
  205. package/esm/presentation/localization/bundles/it-IT.localization-bundle.js +11 -1
  206. package/esm/presentation/localization/bundles/ja-JP.localization-bundle.d.ts +10 -0
  207. package/esm/presentation/localization/bundles/ja-JP.localization-bundle.d.ts.map +1 -1
  208. package/esm/presentation/localization/bundles/ja-JP.localization-bundle.js +11 -1
  209. package/esm/presentation/localization/bundles/ko-KR.localization-bundle.d.ts +10 -0
  210. package/esm/presentation/localization/bundles/ko-KR.localization-bundle.d.ts.map +1 -1
  211. package/esm/presentation/localization/bundles/ko-KR.localization-bundle.js +11 -1
  212. package/esm/presentation/localization/bundles/nl-NL.localization-bundle.d.ts +10 -0
  213. package/esm/presentation/localization/bundles/nl-NL.localization-bundle.d.ts.map +1 -1
  214. package/esm/presentation/localization/bundles/nl-NL.localization-bundle.js +11 -1
  215. package/esm/presentation/localization/bundles/pl-PL.localization-bundle.d.ts +10 -0
  216. package/esm/presentation/localization/bundles/pl-PL.localization-bundle.d.ts.map +1 -1
  217. package/esm/presentation/localization/bundles/pl-PL.localization-bundle.js +11 -1
  218. package/esm/presentation/localization/bundles/pt-BR.localization-bundle.d.ts +10 -0
  219. package/esm/presentation/localization/bundles/pt-BR.localization-bundle.d.ts.map +1 -1
  220. package/esm/presentation/localization/bundles/pt-BR.localization-bundle.js +11 -1
  221. package/esm/presentation/localization/bundles/pt-PT.localization-bundle.d.ts +10 -0
  222. package/esm/presentation/localization/bundles/pt-PT.localization-bundle.d.ts.map +1 -1
  223. package/esm/presentation/localization/bundles/pt-PT.localization-bundle.js +11 -1
  224. package/esm/presentation/localization/bundles/ru-RU.localization-bundle.d.ts +10 -0
  225. package/esm/presentation/localization/bundles/ru-RU.localization-bundle.d.ts.map +1 -1
  226. package/esm/presentation/localization/bundles/ru-RU.localization-bundle.js +11 -1
  227. package/esm/presentation/localization/bundles/sl-SI.localization-bundle.d.ts +10 -0
  228. package/esm/presentation/localization/bundles/sl-SI.localization-bundle.d.ts.map +1 -1
  229. package/esm/presentation/localization/bundles/sl-SI.localization-bundle.js +11 -1
  230. package/esm/presentation/localization/bundles/th-TH.localization-bundle.d.ts +10 -0
  231. package/esm/presentation/localization/bundles/th-TH.localization-bundle.d.ts.map +1 -1
  232. package/esm/presentation/localization/bundles/th-TH.localization-bundle.js +11 -1
  233. package/esm/presentation/localization/bundles/tr-TR.localization-bundle.d.ts +10 -0
  234. package/esm/presentation/localization/bundles/tr-TR.localization-bundle.d.ts.map +1 -1
  235. package/esm/presentation/localization/bundles/tr-TR.localization-bundle.js +11 -1
  236. package/esm/presentation/localization/bundles/uk-UA.localization-bundle.d.ts +10 -0
  237. package/esm/presentation/localization/bundles/uk-UA.localization-bundle.d.ts.map +1 -1
  238. package/esm/presentation/localization/bundles/uk-UA.localization-bundle.js +11 -1
  239. package/esm/presentation/localization/bundles/vi-VN.localization-bundle.d.ts +10 -0
  240. package/esm/presentation/localization/bundles/vi-VN.localization-bundle.d.ts.map +1 -1
  241. package/esm/presentation/localization/bundles/vi-VN.localization-bundle.js +11 -1
  242. package/esm/presentation/localization/bundles/zh-HK.localization-bundle.d.ts +10 -0
  243. package/esm/presentation/localization/bundles/zh-HK.localization-bundle.d.ts.map +1 -1
  244. package/esm/presentation/localization/bundles/zh-HK.localization-bundle.js +11 -1
  245. package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.d.ts +10 -0
  246. package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.d.ts.map +1 -1
  247. package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.js +11 -1
  248. package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.d.ts +10 -0
  249. package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.d.ts.map +1 -1
  250. package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.js +11 -1
  251. package/esm/presentation/shareDialog/DefaultShareDialog.d.ts.map +1 -1
  252. package/esm/presentation/shareDialog/DefaultShareDialog.js +2 -5
  253. package/esm/presentation/topBar/title/EditableTitle.d.ts.map +1 -1
  254. package/esm/presentation/topBar/title/EditableTitle.js +6 -0
  255. package/esm/presentation/widget/insight/DefaultDashboardInsightComponentSetFactory.d.ts +1 -1
  256. package/esm/presentation/widget/insight/DefaultDashboardInsightComponentSetFactory.d.ts.map +1 -1
  257. package/esm/presentation/widget/insight/DefaultDashboardInsightComponentSetFactory.js +13 -1
  258. package/esm/presentation/widget/widget/InsightWidget/useEditableInsightMenu.d.ts.map +1 -1
  259. package/esm/presentation/widget/widget/InsightWidget/useEditableInsightMenu.js +5 -1
  260. package/esm/presentation/widget/widget/InsightWidget/useInsightMenu.d.ts.map +1 -1
  261. package/esm/presentation/widget/widget/InsightWidget/useInsightMenu.js +4 -1
  262. package/esm/sdk-ui-dashboard.d.ts +301 -5
  263. package/package.json +23 -21
  264. package/styles/css/dashboard.css +40 -1
  265. package/styles/css/dashboard.css.map +1 -1
  266. package/styles/css/dashboardContentLoader.css +45 -0
  267. package/styles/css/dashboardContentLoader.css.map +1 -0
  268. package/styles/css/insightEditor.css +46 -0
  269. package/styles/css/insightEditor.css.map +1 -0
  270. package/styles/css/main.css +86 -1
  271. package/styles/css/main.css.map +1 -1
  272. package/styles/scss/dashboard.scss +2 -1
  273. package/styles/scss/dashboardContentLoader.scss +45 -0
  274. package/styles/scss/insightEditor.scss +53 -0
  275. package/styles/scss/main.scss +1 -0
@@ -11,7 +11,6 @@ import { AUTOMATIONS_COLUMN_CONFIG, AUTOMATIONS_MAX_HEIGHT } from "../../../cons
11
11
  import { DASHBOARD_DIALOG_OVERS_Z_INDEX } from "../../../constants/zIndex.js";
12
12
  import { useAutomationsContext } from "../../contexts/AutomationsContext.js";
13
13
  import { useScheduledEmailManagementDialogContext } from "../../contexts/ScheduledEmailManagementDialogContext.js";
14
- import { computeUseHostRoute } from "../../shared/utils/automationUtils.js";
15
14
  import { SCHEDULED_EMAIL_DIALOG_ID } from "../DefaultScheduledEmailDialog/constants.js";
16
15
  import { useScheduleEmailDialogAccessibility } from "../hooks/useScheduleEmailDialogAccessibility.js";
17
16
  import { isMobileView } from "../utils/responsive.js";
@@ -21,10 +20,9 @@ export function DefaultScheduledEmailManagementDialogContent({ onAdd, onClose, o
21
20
  const isMobile = isMobileView();
22
21
  const workspace = useWorkspace();
23
22
  const backend = useBackend();
24
- const { timezone, locale, settings, isWhiteLabeled, isExecutionTimestampMode, externalRecipient: externalRecipientOverride, features: { canCreateAutomation }, } = useAutomationsContext();
23
+ const { timezone, locale, isWhiteLabeled, isExecutionTimestampMode, externalRecipient: externalRecipientOverride, features: { canCreateAutomation }, } = useAutomationsContext();
25
24
  const { dashboardId, dashboardTitle, enableAccessibilityMode, isScheduleEmailDialogOpen: isEditDialogOpen, automationsInvalidationId, isEmbedded, maxAutomations, unlimitedAutomations, automations, isLoading: isLoadingScheduleData, } = useScheduledEmailManagementDialogContext();
26
25
  const enableBulkActions = !enableAccessibilityMode;
27
- const useHostRoute = computeUseHostRoute(settings);
28
26
  const { returnFocusTo } = useScheduleEmailDialogAccessibility();
29
27
  const maxAutomationsReached = automations.length >= maxAutomations && !unlimitedAutomations;
30
28
  const isAddButtonDisabled = useMemo(() => isLoadingScheduleData || maxAutomationsReached || isExecutionTimestampMode, [isLoadingScheduleData, maxAutomationsReached, isExecutionTimestampMode]);
@@ -41,11 +39,10 @@ export function DefaultScheduledEmailManagementDialogContent({ onAdd, onClose, o
41
39
  dashboardId,
42
40
  tabId,
43
41
  isEmbedded,
44
- useHostRoute,
45
42
  queryParams: externalRecipientOverride
46
43
  ? { recipient: externalRecipientOverride }
47
44
  : undefined,
48
- }), [customDashboardUrlBuilder, isEmbedded, useHostRoute, externalRecipientOverride]);
45
+ }), [customDashboardUrlBuilder, isEmbedded, externalRecipientOverride]);
49
46
  const titleElementId = useId();
50
47
  return (_jsx(Dialog, { displayCloseButton: true, autofocusOnOpen: true, onCancel: onClose, className: cx("gd-notifications-channels-management-dialog s-scheduled-email-management-dialog", "gd-dialog--wide gd-notifications-channels-management-dialog--wide", "gd-dialog--no-padding"), accessibilityConfig: { titleElementId, isModal: true }, returnFocusAfterClose: true, returnFocusTo: returnFocusTo, refocusKey: isEditDialogOpen, children: _jsxs(OverlayControllerProvider, { overlayController: overlayController, children: [_jsx("div", { className: "gd-notifications-channels-management-dialog-title", children: _jsx(Typography, { tagName: "h3", className: "gd-dialog-header", id: titleElementId, children: intl.formatMessage({ id: "dialogs.schedule.management.title" }) }) }), _jsx(ContentDivider, { className: "gd-content-divider--no-spacing" }), _jsx("div", { className: "gd-notifications-channels-content", children: _jsx(Automations, { workspace: workspace, timezone: timezone, type: "schedule", backend: backend, scope: "workspace", maxHeight: AUTOMATIONS_MAX_HEIGHT, isMobileView: isMobile, tableVariant: "small", editAutomation: onEdit, preselectedFilters: {
51
48
  dashboard: dashboardId
@@ -39,6 +39,10 @@ export declare const getFilterByLocalIdentifier: (localIdentifier: string | unde
39
39
  */
40
40
  export declare function isAllTimeDateFilterFixed(f: IFilter): boolean;
41
41
  export declare function areFiltersEqual(filter1: IFilter, filter2: IFilter): boolean;
42
+ /**
43
+ * Values to compare date filters by. A bounded range never matches an empty date, so a missing
44
+ * `emptyValueHandling` counts as "exclude" there; on an all-time filter it means no filtering at all.
45
+ */
42
46
  export declare function dateFilterValues(filter: IDateFilter): import("@gooddata/sdk-model").IAbsoluteDateFilterValues | import("@gooddata/sdk-model").IRelativeDateFilterValues;
43
47
  export declare function isFilterIgnoredByWidget(filter: FilterContextItem, widget: ExtendedDashboardWidget): boolean;
44
48
  export declare function isFilterMatch(filter1: IFilter, filter2: IFilter): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/shared/automationFilters/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/shared/automationFilters/utils.ts"],"names":[],"mappings":"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"}
@@ -226,8 +226,8 @@ export function areFiltersEqual(filter1, filter2) {
226
226
  else if (isAbsoluteDateFilter(filter1) && isAbsoluteDateFilter(filter2)) {
227
227
  // An automation does not store a granularity that has no period literal, so the granularity counts
228
228
  // only when both filters have one.
229
- const { granularity: granularity1, ...values1 } = absoluteDateFilterValues(filter1);
230
- const { granularity: granularity2, ...values2 } = absoluteDateFilterValues(filter2);
229
+ const { granularity: granularity1, ...values1 } = dateFilterValues(filter1);
230
+ const { granularity: granularity2, ...values2 } = dateFilterValues(filter2);
231
231
  return (isEqual(values1, values2) &&
232
232
  (granularity1 === undefined || granularity2 === undefined || granularity1 === granularity2));
233
233
  }
@@ -237,11 +237,18 @@ export function areFiltersEqual(filter1, filter2) {
237
237
  // Filter types are different
238
238
  return isEqual(filter1, filter2);
239
239
  }
240
+ /**
241
+ * Values to compare date filters by. A bounded range never matches an empty date, so a missing
242
+ * `emptyValueHandling` counts as "exclude" there; on an all-time filter it means no filtering at all.
243
+ */
240
244
  export function dateFilterValues(filter) {
241
- if (isAbsoluteDateFilter(filter)) {
242
- return absoluteDateFilterValues(filter);
245
+ const values = isAbsoluteDateFilter(filter)
246
+ ? absoluteDateFilterValues(filter)
247
+ : relativeDateFilterValues(filter);
248
+ if (values.emptyValueHandling !== undefined || isAllTimeDateFilterFixed(filter)) {
249
+ return values;
243
250
  }
244
- return relativeDateFilterValues(filter);
251
+ return { ...values, emptyValueHandling: "exclude" };
245
252
  }
246
253
  export function isFilterIgnoredByWidget(filter, widget) {
247
254
  if (!isInsightWidget(widget)) {
@@ -1,4 +1,4 @@
1
- import { type FilterContextItem, type IAutomationMetadataObject, type IAutomationMetadataObjectDefinition, type IAutomationRecipient, type IExportDefinitionMetadataObject, type IExportDefinitionMetadataObjectDefinition, type IFilter, type ISettings, type IUser } from "@gooddata/sdk-model";
1
+ import { type FilterContextItem, type IAutomationMetadataObject, type IAutomationMetadataObjectDefinition, type IAutomationRecipient, type IExportDefinitionMetadataObject, type IExportDefinitionMetadataObjectDefinition, type IFilter, type IUser } from "@gooddata/sdk-model";
2
2
  export declare const isDashboardAutomation: (automation: IAutomationMetadataObject | IAutomationMetadataObjectDefinition | undefined) => boolean;
3
3
  export declare const isVisualisationAutomation: (automation: IAutomationMetadataObject | IAutomationMetadataObjectDefinition | undefined) => boolean;
4
4
  export declare const isCsvVisualizationAutomation: (automation: IAutomationMetadataObject | IAutomationMetadataObjectDefinition | undefined) => boolean;
@@ -19,5 +19,4 @@ export declare const getAutomationAlertFilters: (automation: IAutomationMetadata
19
19
  export declare const areAutomationsEqual: (originalAutomation: IAutomationMetadataObjectDefinition, updatedAutomation: IAutomationMetadataObjectDefinition) => boolean;
20
20
  export declare const convertUserToAutomationRecipient: (user: IUser) => IAutomationRecipient;
21
21
  export declare const convertExternalRecipientToAutomationRecipient: (externalRecipient: string) => IAutomationRecipient;
22
- export declare const computeUseHostRoute: (settings: ISettings | undefined) => boolean;
23
22
  //# sourceMappingURL=automationUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"automationUtils.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/shared/utils/automationUtils.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,EAC9B,KAAK,mCAAmC,EACxC,KAAK,oBAAoB,EAEzB,KAAK,+BAA+B,EACpC,KAAK,yCAAyC,EAE9C,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,KAAK,KAAK,EAKb,MAAM,qBAAqB,CAAC;AAE7B,eAAO,MAAM,qBAAqB,eAClB,yBAAyB,GAAG,mCAAmC,GAAG,SAAS,YAW1F,CAAC;AAEF,eAAO,MAAM,yBAAyB,eACtB,yBAAyB,GAAG,mCAAmC,GAAG,SAAS,YAW1F,CAAC;AAEF,eAAO,MAAM,4BAA4B,eACzB,yBAAyB,GAAG,mCAAmC,GAAG,SAAS,YAO1F,CAAC;AAEF,eAAO,MAAM,kCAAkC,qBACzB,+BAA+B,GAAG,yCAAyC,GAAG,SAAS,YAU5G,CAAC;AAEF,eAAO,MAAM,6BAA6B,eAC1B,yBAAyB,GAAG,mCAAmC,GAAG,SAAS,YAO1F,CAAC;AAEF,eAAO,MAAM,mCAAmC,qBAC1B,+BAA+B,GAAG,yCAAyC,GAAG,SAAS,YAU5G,CAAC;AAEF,eAAO,MAAM,6BAA6B,eAC1B,yBAAyB,GAAG,mCAAmC,GAAG,SAAS,KACxF,iBAAiB,EAAE,GAAG,SAUxB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kCAAkC,eAC/B,yBAAyB,GAAG,mCAAmC,GAAG,SAAS,KACxF,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,GAAG,SAUxC,CAAC;AAEF,eAAO,MAAM,iCAAiC,eAC9B,yBAAyB,GAAG,mCAAmC,GAAG,SAAS,KACxF;IAAE,gBAAgB,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC;IAAC,kBAAkB,EAAE,iBAAiB,EAAE,GAAG,SAAS,CAAA;CAqBhG,CAAC;AAEF,eAAO,MAAM,yBAAyB,eACtB,yBAAyB,GAAG,mCAAmC,GAAG,SAAS,KACxF,OAAO,EAAE,GAAG,SAMd,CAAC;AAOF,eAAO,MAAM,mBAAmB,uBACR,mCAAmC,qBACpC,mCAAmC,YAmBzD,CAAC;AAEF,eAAO,MAAM,gCAAgC,SAAU,KAAK,KAAG,oBAO9D,CAAC;AAEF,eAAO,MAAM,6CAA6C,sBACnC,MAAM,KAC1B,oBAOF,CAAC;AAEF,eAAO,MAAM,mBAAmB,aAAc,SAAS,GAAG,SAAS,KAAG,OAC+B,CAAC"}
1
+ {"version":3,"file":"automationUtils.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/shared/utils/automationUtils.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,EAC9B,KAAK,mCAAmC,EACxC,KAAK,oBAAoB,EAEzB,KAAK,+BAA+B,EACpC,KAAK,yCAAyC,EAE9C,KAAK,OAAO,EACZ,KAAK,KAAK,EAKb,MAAM,qBAAqB,CAAC;AAE7B,eAAO,MAAM,qBAAqB,eAClB,yBAAyB,GAAG,mCAAmC,GAAG,SAAS,YAW1F,CAAC;AAEF,eAAO,MAAM,yBAAyB,eACtB,yBAAyB,GAAG,mCAAmC,GAAG,SAAS,YAW1F,CAAC;AAEF,eAAO,MAAM,4BAA4B,eACzB,yBAAyB,GAAG,mCAAmC,GAAG,SAAS,YAO1F,CAAC;AAEF,eAAO,MAAM,kCAAkC,qBACzB,+BAA+B,GAAG,yCAAyC,GAAG,SAAS,YAU5G,CAAC;AAEF,eAAO,MAAM,6BAA6B,eAC1B,yBAAyB,GAAG,mCAAmC,GAAG,SAAS,YAO1F,CAAC;AAEF,eAAO,MAAM,mCAAmC,qBAC1B,+BAA+B,GAAG,yCAAyC,GAAG,SAAS,YAU5G,CAAC;AAEF,eAAO,MAAM,6BAA6B,eAC1B,yBAAyB,GAAG,mCAAmC,GAAG,SAAS,KACxF,iBAAiB,EAAE,GAAG,SAUxB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kCAAkC,eAC/B,yBAAyB,GAAG,mCAAmC,GAAG,SAAS,KACxF,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,GAAG,SAUxC,CAAC;AAEF,eAAO,MAAM,iCAAiC,eAC9B,yBAAyB,GAAG,mCAAmC,GAAG,SAAS,KACxF;IAAE,gBAAgB,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC;IAAC,kBAAkB,EAAE,iBAAiB,EAAE,GAAG,SAAS,CAAA;CAqBhG,CAAC;AAEF,eAAO,MAAM,yBAAyB,eACtB,yBAAyB,GAAG,mCAAmC,GAAG,SAAS,KACxF,OAAO,EAAE,GAAG,SAMd,CAAC;AAOF,eAAO,MAAM,mBAAmB,uBACR,mCAAmC,qBACpC,mCAAmC,YAmBzD,CAAC;AAEF,eAAO,MAAM,gCAAgC,SAAU,KAAK,KAAG,oBAO9D,CAAC;AAEF,eAAO,MAAM,6CAA6C,sBACnC,MAAM,KAC1B,oBAOF,CAAC"}
@@ -116,4 +116,3 @@ export const convertExternalRecipientToAutomationRecipient = (externalRecipient)
116
116
  type: "externalUser",
117
117
  };
118
118
  };
119
- export const computeUseHostRoute = (settings) => Boolean(settings?.enableShellApplication) && Boolean(settings?.enableShellApplication_dashboards);
@@ -1,4 +1,4 @@
1
1
  import { type ReactElement } from "react";
2
- export declare function DashboardTabsWrapper(): import("react/jsx-runtime").JSX.Element | null;
2
+ export declare function DashboardTabsWrapper(): import("react/jsx-runtime").JSX.Element;
3
3
  export declare function DashboardHeader(): ReactElement;
4
4
  //# sourceMappingURL=DashboardHeader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DashboardHeader.d.ts","sourceRoot":"","sources":["../../../../src/presentation/dashboard/DashboardHeader/DashboardHeader.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAkF1C,wBAAgB,oBAAoB,mDAOnC;AAID,wBAAgB,eAAe,IAAI,YAAY,CA6B9C"}
1
+ {"version":3,"file":"DashboardHeader.d.ts","sourceRoot":"","sources":["../../../../src/presentation/dashboard/DashboardHeader/DashboardHeader.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AA6E1C,wBAAgB,oBAAoB,4CAInC;AAID,wBAAgB,eAAe,IAAI,YAAY,CA6B9C"}
@@ -1,6 +1,4 @@
1
1
  import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useDashboardSelector } from "../../../model/react/DashboardStoreProvider.js";
3
- import { selectIsAiLoading } from "../../../model/store/config/configSelectors.js";
4
2
  import { ScheduledEmailAutomationsProvider, ScheduledEmailConnector, } from "../../automations/connectors/ScheduledEmailConnector.js";
5
3
  import { CancelEditDialog } from "../../cancelEditDialog/CancelEditDialog.js";
6
4
  import { useCancelEditDialog } from "../../cancelEditDialog/DefaultCancelEditDialog.js";
@@ -56,10 +54,6 @@ function TopBarWrapper() {
56
54
  }
57
55
  function FilterBarWrapper() {
58
56
  const filterBarProps = useFilterBarProps();
59
- const isAiLoading = useDashboardSelector(selectIsAiLoading);
60
- if (isAiLoading) {
61
- return null;
62
- }
63
57
  return _jsx(FilterBar, { ...filterBarProps });
64
58
  }
65
59
  function CancelEditDialogWrapper() {
@@ -68,10 +62,6 @@ function CancelEditDialogWrapper() {
68
62
  }
69
63
  export function DashboardTabsWrapper() {
70
64
  const dashboardTabsProps = useDashboardTabsProps();
71
- const isAiLoading = useDashboardSelector(selectIsAiLoading);
72
- if (isAiLoading) {
73
- return null;
74
- }
75
65
  return _jsx(DashboardTabs, { ...dashboardTabsProps });
76
66
  }
77
67
  // split the header parts of the dashboard so that changes to their state
@@ -1 +1 @@
1
- {"version":3,"file":"CreationPanel.d.ts","sourceRoot":"","sources":["../../../../src/presentation/dashboard/DashboardSidebar/CreationPanel.tsx"],"names":[],"mappings":"AAcA,OAAO,EACH,KAAK,2BAA2B,EAChC,KAAK,iCAAiC,EACtC,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,KAAK,uCAAuC,EAC/C,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAEH,KAAK,qCAAqC,EAC1C,KAAK,qCAAqC,EAC7C,MAAM,4BAA4B,CAAC;AAepC,UAAU,mBAAmB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oCAAoC,CAAC,EAAE,qCAAqC,CAAC;IAC7E,oCAAoC,CAAC,EAAE,qCAAqC,CAAC;IAC7E,2BAA2B,CAAC,EAAE,2BAA2B,CAAC;IAC1D,yBAAyB,CAAC,EAAE,yBAAyB,CAAC;IACtD,0BAA0B,CAAC,EAAE,0BAA0B,CAAC;IACxD,uCAAuC,CAAC,EAAE,uCAAuC,CAAC;IAClF,iCAAiC,CAAC,EAAE,iCAAiC,CAAC;CACzE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,mBAAmB,2CAiIvD"}
1
+ {"version":3,"file":"CreationPanel.d.ts","sourceRoot":"","sources":["../../../../src/presentation/dashboard/DashboardSidebar/CreationPanel.tsx"],"names":[],"mappings":"AAcA,OAAO,EACH,KAAK,2BAA2B,EAChC,KAAK,iCAAiC,EACtC,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,KAAK,uCAAuC,EAC/C,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAEH,KAAK,qCAAqC,EAC1C,KAAK,qCAAqC,EAC7C,MAAM,4BAA4B,CAAC;AAkBpC,UAAU,mBAAmB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oCAAoC,CAAC,EAAE,qCAAqC,CAAC;IAC7E,oCAAoC,CAAC,EAAE,qCAAqC,CAAC;IAC7E,2BAA2B,CAAC,EAAE,2BAA2B,CAAC;IAC1D,yBAAyB,CAAC,EAAE,yBAAyB,CAAC;IACtD,0BAA0B,CAAC,EAAE,0BAA0B,CAAC;IACxD,uCAAuC,CAAC,EAAE,uCAAuC,CAAC;IAClF,iCAAiC,CAAC,EAAE,iCAAiC,CAAC;CACzE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,mBAAmB,2CAyIvD"}
@@ -9,6 +9,9 @@ import { useDashboardSelector } from "../../../model/react/DashboardStoreProvide
9
9
  import { selectSupportsRichTextWidgets } from "../../../model/store/backendCapabilities/backendCapabilitiesSelectors.js";
10
10
  import { selectIsAiLoading } from "../../../model/store/config/configSelectors.js";
11
11
  import { selectIsNewDashboard } from "../../../model/store/meta/metaSelectors.js";
12
+ import { InsightEditorCreatePanelItem } from "../../insightEditor/InsightEditorCreatePanelItem.js";
13
+ import { InsightEditorPlaceholder } from "../../insightEditor/InsightEditorPlaceholder.js";
14
+ import { useCanCreateInsightInEditor } from "../../insightEditor/useCanCreateInsightInEditor.js";
12
15
  import { DraggableInsightList } from "./DraggableInsightList/DraggableInsightList.js";
13
16
  import { SidebarCollapseToggle } from "./SidebarCollapseToggle.js";
14
17
  import { useResizableSidebar } from "./useResizableSidebarState.js";
@@ -35,9 +38,14 @@ export function CreationPanel(props) {
35
38
  const RichTextWidgetComponentSet = props.RichTextWidgetComponentSet;
36
39
  const VisualizationSwitcherWidgetComponentSet = props.VisualizationSwitcherWidgetComponentSet;
37
40
  const DashboardLayoutWidgetComponentSet = props.DashboardLayoutWidgetComponentSet;
41
+ const canCreateInsightInEditor = useCanCreateInsightInEditor();
38
42
  const addItemPanelItems = useMemo(() => {
43
+ // A customization can wrap one of the two editor components, so either of them marks the editor.
44
+ const creating = InsightWidgetComponentSet.creating;
45
+ const isInsightEditorItem = creating?.CreatePanelListItemComponent === InsightEditorCreatePanelItem ||
46
+ creating?.CreatingPlaceholderComponent === InsightEditorPlaceholder;
39
47
  const items = compact([
40
- InsightWidgetComponentSet.creating,
48
+ (!isInsightEditorItem || canCreateInsightInEditor) && InsightWidgetComponentSet.creating,
41
49
  AttributeFilterComponentSet.creating,
42
50
  DashboardLayoutWidgetComponentSet.creating,
43
51
  VisualizationSwitcherWidgetComponentSet.creating,
@@ -61,6 +69,7 @@ export function CreationPanel(props) {
61
69
  WrapCreatePanelItemWithDragComponent,
62
70
  isAiLoading,
63
71
  isRailCollapsed,
72
+ canCreateInsightInEditor,
64
73
  ]);
65
74
  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: [canCollapse ? (_jsx(SidebarCollapseToggle, { isCollapsed: isCollapsed, onToggle: () => {
66
75
  setFocusSearch(false);
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @internal
3
+ */
4
+ export declare function DashboardContentLoader(): import("react/jsx-runtime").JSX.Element;
5
+ //# sourceMappingURL=DashboardContentLoader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DashboardContentLoader.d.ts","sourceRoot":"","sources":["../../../../src/presentation/dashboard/DefaultDashboardContent/DashboardContentLoader.tsx"],"names":[],"mappings":"AA0BA;;GAEG;AACH,wBAAgB,sBAAsB,4CAgCrC"}
@@ -0,0 +1,27 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ // (C) 2026 GoodData Corporation
3
+ import { useState } from "react";
4
+ import { FormattedMessage } from "react-intl";
5
+ import { UiSkeleton } from "@gooddata/sdk-ui-kit";
6
+ function createDashboardContentLoaderRow() {
7
+ if (Math.random() < 0.5) {
8
+ return { widths: [50, 50] };
9
+ }
10
+ const firstDivider = Math.floor(Math.random() * 41);
11
+ const secondDivider = Math.floor(Math.random() * 41);
12
+ const [lowerDivider, upperDivider] = [firstDivider, secondDivider].sort((a, b) => a - b);
13
+ return {
14
+ widths: [20 + lowerDivider, 20 + upperDivider - lowerDivider, 60 - upperDivider],
15
+ };
16
+ }
17
+ /**
18
+ * @internal
19
+ */
20
+ export function DashboardContentLoader() {
21
+ const [row] = useState(() => createDashboardContentLoaderRow());
22
+ return (_jsxs("div", { className: "gd-dashboard-content-loader", role: "status", children: [_jsx("span", { className: "gd-dashboard-content-loader__status", children: _jsx(FormattedMessage, { id: "loading" }) }), _jsx("div", { className: "gd-dashboard-content-loader__charts", "data-testid": "dashboard-content-loader-row", "aria-hidden": "true", style: {
23
+ "--dashboard-content-loader-columns": row.widths
24
+ .map((width) => `minmax(0, ${width}fr)`)
25
+ .join(" "),
26
+ }, children: Array.from({ length: row.widths.length }, (_, index) => (_jsx("div", { className: "gd-dashboard-content-loader__chart", "data-testid": "dashboard-content-loader-chart", children: _jsx(UiSkeleton, { itemHeight: 440, itemWidth: "45%" }) }, index))) })] }));
27
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultDashboardMainContent.d.ts","sourceRoot":"","sources":["../../../../src/presentation/dashboard/DefaultDashboardContent/DefaultDashboardMainContent.tsx"],"names":[],"mappings":"AAgBA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,CAAC,EAAE,eAAe,2CAuD7D"}
1
+ {"version":3,"file":"DefaultDashboardMainContent.d.ts","sourceRoot":"","sources":["../../../../src/presentation/dashboard/DefaultDashboardContent/DefaultDashboardMainContent.tsx"],"names":[],"mappings":"AAkBA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAInD;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,CAAC,EAAE,eAAe,2CA+D7D"}
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
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 { useEffect } from "react";
4
4
  import cx from "classnames";
@@ -6,12 +6,15 @@ import { changeFilterContextSelection } from "../../../model/commands/filters.js
6
6
  import { useDashboardSelector } from "../../../model/react/DashboardStoreProvider.js";
7
7
  import { useDispatchDashboardCommand } from "../../../model/react/useDispatchDashboardCommand.js";
8
8
  import { useWidgetSelection } from "../../../model/react/useWidgetSelection.js";
9
+ import { selectIsAiLoading } from "../../../model/store/config/configSelectors.js";
10
+ import { selectIsNewDashboard } from "../../../model/store/meta/metaSelectors.js";
9
11
  import { selectRenderMode } from "../../../model/store/renderMode/renderModeSelectors.js";
10
12
  import { useDashboardDrop } from "../../dragAndDrop/useDashboardDrop.js";
11
13
  import { ExportThemeProvider } from "../../export/ExportThemeProvider.js";
12
14
  import { useWidgetDragHoverHandlers as useFlexibleWidgetDragHoverHandlers } from "../../flexibleLayout/dragAndDrop/draggableWidget/useWidgetDragHoverHandlers.js";
13
15
  import { DashboardLayout } from "../../widget/dashboardLayout/DashboardLayout.js";
14
16
  import { DateFilterConfigWarnings } from "../components/DateFilterConfigWarnings.js";
17
+ import { DashboardContentLoader } from "./DashboardContentLoader.js";
15
18
  /**
16
19
  * @internal
17
20
  */
@@ -19,6 +22,8 @@ export function DefaultDashboardMainContent(_) {
19
22
  const onFiltersChange = useDispatchDashboardCommand(changeFilterContextSelection);
20
23
  const { deselectWidgets } = useWidgetSelection();
21
24
  const renderMode = useDashboardSelector(selectRenderMode);
25
+ const isAiLoading = useDashboardSelector(selectIsAiLoading);
26
+ const isNewDashboard = useDashboardSelector(selectIsNewDashboard);
22
27
  const { handleDragHoverEnd } = useFlexibleWidgetDragHoverHandlers();
23
28
  const [{ isOver }, dropRef] = useDashboardDrop([
24
29
  "insight",
@@ -40,7 +45,7 @@ export function DefaultDashboardMainContent(_) {
40
45
  }, [handleDragHoverEnd, isOver]);
41
46
  const classNames = cx("gd-flex-container", "root-flex-maincontent", "gd-grid-layout", "gd-auto-resized-dashboard-descriptions");
42
47
  const renderContent = () => {
43
- return (_jsxs("div", { className: classNames, ref: dropRef, onClick: deselectWidgets, children: [_jsx(DateFilterConfigWarnings, {}), _jsx(DashboardLayout, { onFiltersChange: onFiltersChange })] }));
48
+ return (_jsx("div", { className: classNames, ref: dropRef, onClick: deselectWidgets, children: isNewDashboard && isAiLoading ? (_jsx(DashboardContentLoader, {})) : (_jsxs(_Fragment, { children: [_jsx(DateFilterConfigWarnings, {}), _jsx(DashboardLayout, { onFiltersChange: onFiltersChange })] })) }));
44
49
  };
45
50
  if (renderMode === "export") {
46
51
  return _jsx(ExportThemeProvider, { children: renderContent() });
@@ -1 +1 @@
1
- {"version":3,"file":"DashboardInner.d.ts","sourceRoot":"","sources":["../../../../src/presentation/dashboard/components/DashboardInner.tsx"],"names":[],"mappings":"AAsCA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AASnD,wBAAgB,cAAc,CAAC,KAAK,EAAE,eAAe,2CAiHpD"}
1
+ {"version":3,"file":"DashboardInner.d.ts","sourceRoot":"","sources":["../../../../src/presentation/dashboard/components/DashboardInner.tsx"],"names":[],"mappings":"AAwCA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AASnD,wBAAgB,cAAc,CAAC,KAAK,EAAE,eAAe,2CAuHpD"}
@@ -9,7 +9,7 @@ import { selectAccessibleDashboardsLoaded } from "../../../model/store/accessibl
9
9
  import { selectCatalogIsLoaded } from "../../../model/store/catalog/catalogSelectors.js";
10
10
  import { selectLocale, selectSettings } from "../../../model/store/config/configSelectors.js";
11
11
  import { selectIsInEditMode } from "../../../model/store/renderMode/renderModeSelectors.js";
12
- import { selectDashboardDensity } from "../../../model/store/ui/uiSelectors.js";
12
+ import { selectDashboardDensity, selectInsightEditorTarget } from "../../../model/store/ui/uiSelectors.js";
13
13
  import { DASHBOARD_HEADER_OVERLAYS_Z_INDEX, DASHBOARD_TOASTS_OVERLAY_Z_INDEX, } from "../../constants/zIndex.js";
14
14
  import { DeleteDropZone } from "../../dragAndDrop/DeleteDropZone.js";
15
15
  import { FilterDeleteOverlay } from "../../dragAndDrop/FilterDeleteOverlay.js";
@@ -17,6 +17,8 @@ import { useDashboardDragScroll } from "../../dragAndDrop/useDashboardDragScroll
17
17
  import { WrapCreatePanelItemWithDrag } from "../../dragAndDrop/WrapCreatePanelItemWithDrag.js";
18
18
  import { WrapInsightListItemWithDrag } from "../../dragAndDrop/WrapInsightListItemWithDrag.js";
19
19
  import { DragLayerComponent as FlexibleDragLayerComponent } from "../../flexibleLayout/dragAndDrop/DragLayer.js";
20
+ import { InsightEditorOverlay } from "../../insightEditor/InsightEditorOverlay.js";
21
+ import { InsightEditorPermissionsProvider } from "../../insightEditor/InsightEditorPermissionsContext.js";
20
22
  import { IntlWrapper } from "../../localization/IntlWrapper.js";
21
23
  import { Toolbar } from "../../toolbar/Toolbar.js";
22
24
  import { DashboardContent } from "../DashboardContent.js";
@@ -35,6 +37,7 @@ export function DashboardInner(props) {
35
37
  const isCatalogLoaded = useDashboardSelector(selectCatalogIsLoaded);
36
38
  const accessibleDashboardsLoaded = useDashboardSelector(selectAccessibleDashboardsLoaded);
37
39
  const density = useDashboardSelector(selectDashboardDensity);
40
+ const isInsightEditorOpen = !!useDashboardSelector(selectInsightEditorTarget);
38
41
  const settings = useDashboardSelector(selectSettings);
39
42
  const enableEnhancedInsightPicker = settings?.enableEnhancedInsightPicker ?? false;
40
43
  const headerRef = useRef(null);
@@ -68,12 +71,13 @@ export function DashboardInner(props) {
68
71
  "--gd-dashboard-sidebar-width": `${resizableSidebar.width}px`,
69
72
  }
70
73
  : undefined;
71
- return (_jsx(IntlWrapper, { locale: locale, children: _jsxs(ToastsCenterContextProvider, { skipAutomaticMessageRendering: true, children: [_jsx(OverlayControllerProvider, { overlayController: toastsOverlayController, children: _jsx(ToastsCenter, {}) }), _jsx(UiResizableSidebarProvider, { value: resizableSidebar, children: _jsxs("div", { className: cx("component-root", {
72
- "sdk-edit-mode-on": isEditMode,
73
- "sdk-view-mode-on": !isEditMode,
74
- "catalog-is-loaded": isCatalogLoaded,
75
- "accessible-dashboards-loaded": accessibleDashboardsLoaded,
76
- }), children: [_jsx(DragLayerComponent, {}), _jsxs("div", { className: cx("gd-dashboards-root gd-flex-container", {
77
- "gd-dashboards-root--floating-toolbar": enableEnhancedInsightPicker,
78
- }), style: dashboardsRootStyle, children: [_jsx(DashboardSidebar, { DefaultSidebar: RenderModeAwareDashboardSidebar, DeleteDropZoneComponent: DeleteDropZone, WrapCreatePanelItemWithDragComponent: WrapCreatePanelItemWithDrag, WrapInsightListItemWithDragComponent: WrapInsightListItemWithDrag }), _jsx("main", { className: dashboardContentClassNames, ...mainContentNavigationProps, children: _jsxs(DashboardInteractionComposing, { onReplyInChat: props.onReplyInChat, children: [_jsx("div", { className: "gd-dash-header-wrapper gd-dash-header-wrapper-sdk-8-12", ref: headerRef, children: _jsx(OverlayControllerProvider, { overlayController: overlayController, children: _jsx(DashboardHeader, {}) }) }), _jsxs(DashboardInteractionLock, { children: [_jsxs("div", { className: "gd-flex-item-stretch dash-section dash-section-kpis", ref: layoutRef, children: [_jsx(DashboardScreenSizeProvider, { children: _jsx(DashboardContent, { ...props }) }), enableEnhancedInsightPicker ? _jsx(FilterDeleteOverlay, {}) : null] }), _jsx("div", { className: "gd-dash-bottom-position-pixel", ref: bottomRef })] })] }) })] }), _jsx(Toolbar, {})] }) })] }) }));
74
+ return (_jsx(IntlWrapper, { locale: locale, children: _jsxs(ToastsCenterContextProvider, { skipAutomaticMessageRendering: true, children: [_jsx(OverlayControllerProvider, { overlayController: toastsOverlayController, children: _jsx(ToastsCenter, {}) }), _jsx(InsightEditorOverlay, {}), _jsx(InsightEditorPermissionsProvider, { children: _jsx(UiResizableSidebarProvider, { value: resizableSidebar, children: _jsxs("div", { className: cx("component-root", {
75
+ "sdk-edit-mode-on": isEditMode,
76
+ "sdk-view-mode-on": !isEditMode,
77
+ "catalog-is-loaded": isCatalogLoaded,
78
+ "accessible-dashboards-loaded": accessibleDashboardsLoaded,
79
+ "is-insight-editor-open": isInsightEditorOpen,
80
+ }), children: [_jsx(DragLayerComponent, {}), _jsxs("div", { className: cx("gd-dashboards-root gd-flex-container", {
81
+ "gd-dashboards-root--floating-toolbar": enableEnhancedInsightPicker,
82
+ }), style: dashboardsRootStyle, children: [_jsx(DashboardSidebar, { DefaultSidebar: RenderModeAwareDashboardSidebar, DeleteDropZoneComponent: DeleteDropZone, WrapCreatePanelItemWithDragComponent: WrapCreatePanelItemWithDrag, WrapInsightListItemWithDragComponent: WrapInsightListItemWithDrag }), _jsx("main", { className: dashboardContentClassNames, ...mainContentNavigationProps, children: _jsxs(DashboardInteractionComposing, { onReplyInChat: props.onReplyInChat, children: [_jsx("div", { className: "gd-dash-header-wrapper gd-dash-header-wrapper-sdk-8-12", ref: headerRef, children: _jsx(OverlayControllerProvider, { overlayController: overlayController, children: _jsx(DashboardHeader, {}) }) }), _jsxs(DashboardInteractionLock, { children: [_jsxs("div", { className: "gd-flex-item-stretch dash-section dash-section-kpis", ref: layoutRef, children: [_jsx(DashboardScreenSizeProvider, { children: _jsx(DashboardContent, { ...props }) }), enableEnhancedInsightPicker ? _jsx(FilterDeleteOverlay, {}) : null] }), _jsx("div", { className: "gd-dash-bottom-position-pixel", ref: bottomRef })] })] }) })] }), _jsx(Toolbar, {})] }) }) })] }) }));
79
83
  }
@@ -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,6CAA6C,EAClD,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;AA4B1C,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,oCAAoC,EAAE,6CAA6C,CAAC;IACpF,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,mBA6QrD,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,6CAA6C,EAClD,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;AA4B1C,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,oCAAoC,EAAE,6CAA6C,CAAC;IACpF,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,mBAiRrD,CAAC"}
@@ -87,12 +87,13 @@ export const useDashboard = (props) => {
87
87
  const dashboardOrRef = useMemo(() => {
88
88
  return typeof dashboard === "string" ? idRef(dashboard) : dashboard;
89
89
  }, [dashboard]);
90
+ const enableInsightEditing = !!props.config?.enableInsightEditing;
90
91
  const insightWidgetComponentSet = useMemo(() => {
91
- const defaultComponentSet = DefaultDashboardInsightComponentSetFactory(insightProvider);
92
+ const defaultComponentSet = DefaultDashboardInsightComponentSetFactory(insightProvider, enableInsightEditing);
92
93
  return InsightComponentSetProvider
93
94
  ? InsightComponentSetProvider(defaultComponentSet)
94
95
  : defaultComponentSet;
95
- }, [InsightComponentSetProvider, insightProvider]);
96
+ }, [InsightComponentSetProvider, insightProvider, enableInsightEditing]);
96
97
  const attributeFilterComponentSet = useMemo(() => {
97
98
  return DefaultDashboardAttributeFilterComponentSetFactory(attributeFilterProvider);
98
99
  }, [attributeFilterProvider]);
@@ -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,2CAgFnG"}
@@ -0,0 +1,179 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ // (C) 2026 GoodData Corporation
3
+ import { useEffect, useMemo, useRef, useState } from "react";
4
+ import { insightIsLocked, insightRef } from "@gooddata/sdk-model";
5
+ import { useBackendStrict, useWorkspaceStrict } from "@gooddata/sdk-ui";
6
+ import { AnalyticalDesigner, } from "@gooddata/sdk-ui-analytical-designer";
7
+ import { useTheme } from "@gooddata/sdk-ui-theme-provider";
8
+ import { attributeHierarchyModified } from "../../model/commands/insight.js";
9
+ import { insightEditorCacheResetRequested } from "../../model/events/insightEditor.js";
10
+ import { useDashboardDispatch, useDashboardSelector } from "../../model/react/DashboardStoreProvider.js";
11
+ import { useDashboardEventDispatch } from "../../model/react/useDashboardEventDispatch.js";
12
+ import { selectAgGridToken, selectColorPalette, selectIsEmbedded, selectIsWhiteLabeled, selectLocale, selectMapboxToken, selectObjectAvailabilityConfig, selectSeparators, selectSettings, } from "../../model/store/config/configSelectors.js";
13
+ import { selectEntitlements } from "../../model/store/entitlements/entitlementsSelectors.js";
14
+ import { selectInsightByWidgetRef } from "../../model/store/insights/insightsSelectors.js";
15
+ import { selectDashboardId } from "../../model/store/meta/metaSelectors.js";
16
+ import { selectCanCreateVisualization, selectCanManageWorkspace, selectPermissions, } from "../../model/store/permissions/permissionsSelectors.js";
17
+ import { selectIsInEditMode } from "../../model/store/renderMode/renderModeSelectors.js";
18
+ import { selectExecutionTimestamp } from "../../model/store/ui/uiSelectors.js";
19
+ import { selectCurrentUser } from "../../model/store/user/userSelectors.js";
20
+ import { getInsightEditorRoute } from "./insightEditorRoute.js";
21
+ import { useExploreFilterTransfer } from "./useExploreFilterTransfer.js";
22
+ // The stylesheets Analytical Designer needs load with its lazy chunk, the SDK ones first, so the
23
+ // rules of Analytical Designer win.
24
+ // oxlint-disable-next-line import/no-unassigned-import
25
+ import "@gooddata/sdk-ui-kit/styles/css/main.css";
26
+ // oxlint-disable-next-line import/no-unassigned-import
27
+ import "@gooddata/sdk-ui-pivot/styles/css/main.css";
28
+ // oxlint-disable-next-line import/no-unassigned-import
29
+ import "@gooddata/sdk-ui-geo/styles/css/main.css";
30
+ // oxlint-disable-next-line import/no-unassigned-import
31
+ import "@gooddata/sdk-ui-charts/styles/css/main.css";
32
+ // oxlint-disable-next-line import/no-unassigned-import
33
+ import "@gooddata/sdk-ui-filters/styles/css/measureValueFilter.css";
34
+ // oxlint-disable-next-line import/no-unassigned-import
35
+ import "@gooddata/sdk-ui-filters/styles/css/dateFilter.css";
36
+ // oxlint-disable-next-line import/no-unassigned-import
37
+ import "@gooddata/sdk-ui-filters/styles/css/rankingFilter.css";
38
+ // oxlint-disable-next-line import/no-unassigned-import
39
+ import "@gooddata/sdk-ui-filters/styles/css/attributeFilterNext.css";
40
+ // oxlint-disable-next-line import/no-unassigned-import
41
+ import "@gooddata/sdk-ui-ext/styles/css/main.css";
42
+ // oxlint-disable-next-line import/no-unassigned-import
43
+ import "@gooddata/sdk-ui-semantic-search/styles/css/internal.css";
44
+ // oxlint-disable-next-line import/no-unassigned-import
45
+ import "@gooddata/sdk-ui-analytical-designer/styles/css/main.css";
46
+ /**
47
+ * Analytical Designer in the insight editor overlay. It lives in a lazily loaded chunk together with
48
+ * the whole Analytical Designer.
49
+ */
50
+ export function InsightEditorContent({ target, session, closeHandleRef }) {
51
+ const backend = useBackendStrict();
52
+ const workspace = useWorkspaceStrict();
53
+ const dispatch = useDashboardDispatch();
54
+ const eventDispatch = useDashboardEventDispatch();
55
+ const hostConfig = useHostConfig();
56
+ const theme = useTheme();
57
+ const permissions = useDashboardSelector(selectPermissions);
58
+ const isEditMode = useDashboardSelector(selectIsInEditMode);
59
+ const route = useRoute(target, isEditMode);
60
+ const apiRef = useRef(null);
61
+ const [isFailed, setIsFailed] = useState(false);
62
+ useEffect(() => {
63
+ closeHandleRef.current = isFailed
64
+ ? null
65
+ : { requestClose: () => apiRef.current?.requestCancellation() };
66
+ return () => {
67
+ closeHandleRef.current = null;
68
+ };
69
+ }, [closeHandleRef, isFailed]);
70
+ const isExplore = !isEditMode && (target.type === "widget" || target.type === "insight");
71
+ const filterTransfer = useExploreFilterTransfer(target, isExplore, apiRef);
72
+ const cacheReset = useMemo(() => ({
73
+ resetAll: () => eventDispatch(insightEditorCacheResetRequested("all")),
74
+ resetCatalogs: () => eventDispatch(insightEditorCacheResetRequested("catalogs")),
75
+ }), [eventDispatch]);
76
+ const config = useMemo(() => ({ ...hostConfig, ...route.config }), [hostConfig, route.config]);
77
+ return (_jsx(AnalyticalDesigner, { backend: backend, workspace: workspace, insight: route.insight, config: config, permissions: permissions, theme: theme,
78
+ // The dashboard already resolved the theme of the workspace.
79
+ disableThemeLoading: true, cacheReset: cacheReset, onEvent: (event) => {
80
+ switch (event.type) {
81
+ case "visualizationSaved":
82
+ void session.save(event.data.insight.identifier);
83
+ break;
84
+ case "insightEditingCancelled":
85
+ session.cancel();
86
+ break;
87
+ case "insightOpened":
88
+ filterTransfer.onInsightOpened();
89
+ break;
90
+ case "insightRendered":
91
+ filterTransfer.onInsightRendered();
92
+ break;
93
+ case "appCommandFailed":
94
+ filterTransfer.onCommandFailed(event.data, event.contextId);
95
+ break;
96
+ case "attributeHierarchyModified":
97
+ eventDispatch(insightEditorCacheResetRequested("catalogs"));
98
+ dispatch(attributeHierarchyModified());
99
+ break;
100
+ default:
101
+ break;
102
+ }
103
+ },
104
+ // A failed Analytical Designer never answers a command, so the overlay closes directly.
105
+ onError: () => setIsFailed(true), apiRef: apiRef }));
106
+ }
107
+ /**
108
+ * The values that Analytical Designer would otherwise load when it starts. The dashboard has them
109
+ * already.
110
+ */
111
+ function useHostConfig() {
112
+ const locale = useDashboardSelector(selectLocale);
113
+ const separators = useDashboardSelector(selectSeparators);
114
+ const settings = useDashboardSelector(selectSettings);
115
+ const mapboxToken = useDashboardSelector(selectMapboxToken);
116
+ const agGridToken = useDashboardSelector(selectAgGridToken);
117
+ const colorPalette = useDashboardSelector(selectColorPalette);
118
+ const isWhiteLabeled = useDashboardSelector(selectIsWhiteLabeled);
119
+ const user = useDashboardSelector(selectCurrentUser);
120
+ const entitlements = useDashboardSelector(selectEntitlements);
121
+ const objectAvailability = useDashboardSelector(selectObjectAvailabilityConfig);
122
+ const asOfDate = useDashboardSelector(selectExecutionTimestamp);
123
+ return useMemo(() => ({
124
+ locale,
125
+ separators,
126
+ // The dashboard keeps the settings of the user in the workspace.
127
+ settings: settings,
128
+ mapboxToken,
129
+ agGridToken,
130
+ colorPalette,
131
+ whiteLabeling: { isBranded: isWhiteLabeled },
132
+ user,
133
+ organization: { entitlements },
134
+ asOfDate,
135
+ includeObjectsWithTags: objectAvailability?.includeObjectsWithTags,
136
+ excludeObjectsWithTags: objectAvailability?.excludeObjectsWithTags,
137
+ }), [
138
+ locale,
139
+ separators,
140
+ settings,
141
+ mapboxToken,
142
+ agGridToken,
143
+ colorPalette,
144
+ isWhiteLabeled,
145
+ user,
146
+ entitlements,
147
+ objectAvailability,
148
+ asOfDate,
149
+ ]);
150
+ }
151
+ function useRoute(target, isEditMode) {
152
+ const widgetRef = target.type === "widget" ? target.ref : undefined;
153
+ const widgetInsight = useDashboardSelector(selectInsightByWidgetRef(widgetRef));
154
+ const dashboardId = useDashboardSelector(selectDashboardId);
155
+ const isEmbedded = useDashboardSelector(selectIsEmbedded);
156
+ const canManageWorkspace = useDashboardSelector(selectCanManageWorkspace);
157
+ const canCreateVisualization = useDashboardSelector(selectCanCreateVisualization);
158
+ const widgetInsightRef = useMemo(() => (widgetInsight ? insightRef(widgetInsight) : undefined), [widgetInsight]);
159
+ const isWidgetInsightLocked = widgetInsight ? insightIsLocked(widgetInsight) : false;
160
+ return useMemo(() => getInsightEditorRoute({
161
+ target,
162
+ widgetInsightRef,
163
+ isWidgetInsightLocked,
164
+ dashboardId,
165
+ isEditMode,
166
+ isEmbedded,
167
+ canManageWorkspace,
168
+ canCreateVisualization,
169
+ }), [
170
+ target,
171
+ widgetInsightRef,
172
+ isWidgetInsightLocked,
173
+ dashboardId,
174
+ isEditMode,
175
+ isEmbedded,
176
+ canManageWorkspace,
177
+ canCreateVisualization,
178
+ ]);
179
+ }
@@ -0,0 +1,7 @@
1
+ import { type ICreatePanelItemComponentProps } from "../componentDefinition/types.js";
2
+ /**
3
+ * The item of the edit mode panel that the user drags to the layout to create a new insight in the
4
+ * embedded Analytical Designer.
5
+ */
6
+ export declare function InsightEditorCreatePanelItem({ WrapCreatePanelItemWithDragComponent, disabled, }: ICreatePanelItemComponentProps): import("react/jsx-runtime").JSX.Element;
7
+ //# sourceMappingURL=InsightEditorCreatePanelItem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InsightEditorCreatePanelItem.d.ts","sourceRoot":"","sources":["../../../src/presentation/insightEditor/InsightEditorCreatePanelItem.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,8BAA8B,EAAE,MAAM,iCAAiC,CAAC;AAuBtF;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,EACzC,oCAAoC,EACpC,QAAQ,GACX,EAAE,8BAA8B,2CAYhC"}