@burdenoff/microfe-bigconsole 2026.930.1 → 2026.1001.1

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 (808) hide show
  1. package/dist/bigconsole/AdminRoot.d.ts +10 -0
  2. package/dist/bigconsole/AdminRoot.d.ts.map +1 -0
  3. package/dist/bigconsole/AdminRoutes.d.ts +7 -0
  4. package/dist/bigconsole/AdminRoutes.d.ts.map +1 -0
  5. package/dist/bigconsole/BigConsoleRoot.d.ts +29 -0
  6. package/dist/bigconsole/BigConsoleRoot.d.ts.map +1 -0
  7. package/dist/bigconsole/BigConsoleRoutes.d.ts +6 -0
  8. package/dist/bigconsole/BigConsoleRoutes.d.ts.map +1 -0
  9. package/dist/bigconsole/assistant/assistantApi.d.ts +91 -0
  10. package/dist/bigconsole/assistant/assistantApi.d.ts.map +1 -0
  11. package/dist/bigconsole/assistant/assistantProduct.d.ts +73 -0
  12. package/dist/bigconsole/assistant/assistantProduct.d.ts.map +1 -0
  13. package/dist/bigconsole/assistant/assistantPrompt.d.ts +48 -0
  14. package/dist/bigconsole/assistant/assistantPrompt.d.ts.map +1 -0
  15. package/dist/bigconsole/assistant/assistantRunPersistence.d.ts +30 -0
  16. package/dist/bigconsole/assistant/assistantRunPersistence.d.ts.map +1 -0
  17. package/dist/bigconsole/assistant/assistantRunPersistence.js +14 -11
  18. package/dist/bigconsole/assistant/assistantRunPersistence.js.map +1 -1
  19. package/dist/bigconsole/assistant/assistantRunStore.d.ts +75 -0
  20. package/dist/bigconsole/assistant/assistantRunStore.d.ts.map +1 -0
  21. package/dist/bigconsole/assistant/assistantRunStore.js +78 -47
  22. package/dist/bigconsole/assistant/assistantRunStore.js.map +1 -1
  23. package/dist/bigconsole/assistant/assistantRuntime.d.ts +52 -0
  24. package/dist/bigconsole/assistant/assistantRuntime.d.ts.map +1 -0
  25. package/dist/bigconsole/assistant/attachmentExtract.d.ts +49 -0
  26. package/dist/bigconsole/assistant/attachmentExtract.d.ts.map +1 -0
  27. package/dist/bigconsole/assistant/conversationHistoryApi.d.ts +38 -0
  28. package/dist/bigconsole/assistant/conversationHistoryApi.d.ts.map +1 -0
  29. package/dist/bigconsole/assistant/createSandboxAssistantTransport.d.ts +67 -0
  30. package/dist/bigconsole/assistant/createSandboxAssistantTransport.d.ts.map +1 -0
  31. package/dist/bigconsole/assistant/index.d.ts +33 -0
  32. package/dist/bigconsole/assistant/index.d.ts.map +1 -0
  33. package/dist/bigconsole/assistant/modes.d.ts +255 -0
  34. package/dist/bigconsole/assistant/modes.d.ts.map +1 -0
  35. package/dist/bigconsole/assistant/pageContext.d.ts +65 -0
  36. package/dist/bigconsole/assistant/pageContext.d.ts.map +1 -0
  37. package/dist/bigconsole/assistant/previewController.d.ts +33 -0
  38. package/dist/bigconsole/assistant/previewController.d.ts.map +1 -0
  39. package/dist/bigconsole/assistant/previewController.js +28 -19
  40. package/dist/bigconsole/assistant/previewController.js.map +1 -1
  41. package/dist/bigconsole/assistant/previewMutationResult.d.ts +11 -0
  42. package/dist/bigconsole/assistant/previewMutationResult.d.ts.map +1 -0
  43. package/dist/bigconsole/assistant/previewMutationResult.js +59 -0
  44. package/dist/bigconsole/assistant/previewMutationResult.js.map +1 -0
  45. package/dist/bigconsole/assistant/previewRunAction.d.ts +25 -0
  46. package/dist/bigconsole/assistant/previewRunAction.d.ts.map +1 -0
  47. package/dist/bigconsole/assistant/product.d.ts +28 -0
  48. package/dist/bigconsole/assistant/product.d.ts.map +1 -0
  49. package/dist/bigconsole/assistant/types.d.ts +57 -0
  50. package/dist/bigconsole/assistant/types.d.ts.map +1 -0
  51. package/dist/bigconsole/assistant/useAssistantRunWorkspace.d.ts +17 -0
  52. package/dist/bigconsole/assistant/useAssistantRunWorkspace.d.ts.map +1 -0
  53. package/dist/bigconsole/assistant/useAssistantRunWorkspace.js +11 -6
  54. package/dist/bigconsole/assistant/useAssistantRunWorkspace.js.map +1 -1
  55. package/dist/bigconsole/assistant/useWorkspaceWriteAccess.d.ts +36 -0
  56. package/dist/bigconsole/assistant/useWorkspaceWriteAccess.d.ts.map +1 -0
  57. package/dist/bigconsole/components/DrilldownDashboardRenderer.d.ts +13 -0
  58. package/dist/bigconsole/components/DrilldownDashboardRenderer.d.ts.map +1 -0
  59. package/dist/bigconsole/components/DrilldownDashboardRenderer.js +116 -72
  60. package/dist/bigconsole/components/DrilldownDashboardRenderer.js.map +1 -1
  61. package/dist/bigconsole/components/DrilldownModal.d.ts +11 -0
  62. package/dist/bigconsole/components/DrilldownModal.d.ts.map +1 -0
  63. package/dist/bigconsole/components/builder/BuilderCanvas.d.ts +17 -0
  64. package/dist/bigconsole/components/builder/BuilderCanvas.d.ts.map +1 -0
  65. package/dist/bigconsole/components/builder/BuilderTopbar.d.ts +17 -0
  66. package/dist/bigconsole/components/builder/BuilderTopbar.d.ts.map +1 -0
  67. package/dist/bigconsole/components/builder/DashboardEditorShell.d.ts +9 -0
  68. package/dist/bigconsole/components/builder/DashboardEditorShell.d.ts.map +1 -0
  69. package/dist/bigconsole/components/builder/WidgetInspector.d.ts +15 -0
  70. package/dist/bigconsole/components/builder/WidgetInspector.d.ts.map +1 -0
  71. package/dist/bigconsole/components/builder/index.d.ts +5 -0
  72. package/dist/bigconsole/components/builder/index.d.ts.map +1 -0
  73. package/dist/bigconsole/components/builder/inspector/AdvancedSection.d.ts +17 -0
  74. package/dist/bigconsole/components/builder/inspector/AdvancedSection.d.ts.map +1 -0
  75. package/dist/bigconsole/components/builder/inspector/AppearanceSection.d.ts +11 -0
  76. package/dist/bigconsole/components/builder/inspector/AppearanceSection.d.ts.map +1 -0
  77. package/dist/bigconsole/components/builder/inspector/DataBindingSection.d.ts +18 -0
  78. package/dist/bigconsole/components/builder/inspector/DataBindingSection.d.ts.map +1 -0
  79. package/dist/bigconsole/components/builder/inspector/GeneralSection.d.ts +18 -0
  80. package/dist/bigconsole/components/builder/inspector/GeneralSection.d.ts.map +1 -0
  81. package/dist/bigconsole/components/builder/inspector/LayoutSection.d.ts +28 -0
  82. package/dist/bigconsole/components/builder/inspector/LayoutSection.d.ts.map +1 -0
  83. package/dist/bigconsole/components/builder/inspector/index.d.ts +6 -0
  84. package/dist/bigconsole/components/builder/inspector/index.d.ts.map +1 -0
  85. package/dist/bigconsole/components/common/Section.d.ts +77 -0
  86. package/dist/bigconsole/components/common/Section.d.ts.map +1 -0
  87. package/dist/bigconsole/components/common/index.d.ts +4 -0
  88. package/dist/bigconsole/components/common/index.d.ts.map +1 -0
  89. package/dist/bigconsole/components/common/sectionStyles.d.ts +68 -0
  90. package/dist/bigconsole/components/common/sectionStyles.d.ts.map +1 -0
  91. package/dist/bigconsole/components/dashboard/CreateDashboardDialog.d.ts +28 -0
  92. package/dist/bigconsole/components/dashboard/CreateDashboardDialog.d.ts.map +1 -0
  93. package/dist/bigconsole/components/dashboard/DashboardCanvas.d.ts +45 -0
  94. package/dist/bigconsole/components/dashboard/DashboardCanvas.d.ts.map +1 -0
  95. package/dist/bigconsole/components/dashboard/DashboardGrid.d.ts +25 -0
  96. package/dist/bigconsole/components/dashboard/DashboardGrid.d.ts.map +1 -0
  97. package/dist/bigconsole/components/dashboard/DashboardStatusPill.d.ts +12 -0
  98. package/dist/bigconsole/components/dashboard/DashboardStatusPill.d.ts.map +1 -0
  99. package/dist/bigconsole/components/dashboard/DashboardToolbar.d.ts +35 -0
  100. package/dist/bigconsole/components/dashboard/DashboardToolbar.d.ts.map +1 -0
  101. package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.d.ts +26 -0
  102. package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.d.ts.map +1 -0
  103. package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.js +9 -4
  104. package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.js.map +1 -1
  105. package/dist/bigconsole/components/dashboard/ExportDashboardDialog.d.ts +17 -0
  106. package/dist/bigconsole/components/dashboard/ExportDashboardDialog.d.ts.map +1 -0
  107. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.d.ts +13 -0
  108. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.d.ts.map +1 -0
  109. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.d.ts +17 -0
  110. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.d.ts.map +1 -0
  111. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.d.ts +14 -0
  112. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.d.ts.map +1 -0
  113. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.d.ts +15 -0
  114. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.d.ts.map +1 -0
  115. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/index.d.ts +8 -0
  116. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/index.d.ts.map +1 -0
  117. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.d.ts +10 -0
  118. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.d.ts.map +1 -0
  119. package/dist/bigconsole/components/dashboard/LiveBoardBanner.d.ts +12 -0
  120. package/dist/bigconsole/components/dashboard/LiveBoardBanner.d.ts.map +1 -0
  121. package/dist/bigconsole/components/dashboard/LiveCanvasToggle.d.ts +11 -0
  122. package/dist/bigconsole/components/dashboard/LiveCanvasToggle.d.ts.map +1 -0
  123. package/dist/bigconsole/components/dashboard/PageTabsManager/PageTabsManager.d.ts +23 -0
  124. package/dist/bigconsole/components/dashboard/PageTabsManager/PageTabsManager.d.ts.map +1 -0
  125. package/dist/bigconsole/components/dashboard/PageTabsManager/index.d.ts +6 -0
  126. package/dist/bigconsole/components/dashboard/PageTabsManager/index.d.ts.map +1 -0
  127. package/dist/bigconsole/components/dashboard/PublishToStoreDialog.d.ts +14 -0
  128. package/dist/bigconsole/components/dashboard/PublishToStoreDialog.d.ts.map +1 -0
  129. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.d.ts +13 -0
  130. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.d.ts.map +1 -0
  131. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/index.d.ts +6 -0
  132. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/index.d.ts.map +1 -0
  133. package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.d.ts +35 -0
  134. package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.d.ts.map +1 -0
  135. package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.d.ts +23 -0
  136. package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.d.ts.map +1 -0
  137. package/dist/bigconsole/components/dashboard/ShareDialog/index.d.ts +6 -0
  138. package/dist/bigconsole/components/dashboard/ShareDialog/index.d.ts.map +1 -0
  139. package/dist/bigconsole/components/dashboard/StoreTemplatePicker.d.ts +13 -0
  140. package/dist/bigconsole/components/dashboard/StoreTemplatePicker.d.ts.map +1 -0
  141. package/dist/bigconsole/components/dashboard/TemplatePicker/TemplatePicker.d.ts +20 -0
  142. package/dist/bigconsole/components/dashboard/TemplatePicker/TemplatePicker.d.ts.map +1 -0
  143. package/dist/bigconsole/components/dashboard/TemplatePicker/index.d.ts +6 -0
  144. package/dist/bigconsole/components/dashboard/TemplatePicker/index.d.ts.map +1 -0
  145. package/dist/bigconsole/components/dashboard/TemplateSetupBanner.d.ts +13 -0
  146. package/dist/bigconsole/components/dashboard/TemplateSetupBanner.d.ts.map +1 -0
  147. package/dist/bigconsole/components/dashboard/WidgetPalette.d.ts +29 -0
  148. package/dist/bigconsole/components/dashboard/WidgetPalette.d.ts.map +1 -0
  149. package/dist/bigconsole/components/dashboard/index.d.ts +24 -0
  150. package/dist/bigconsole/components/dashboard/index.d.ts.map +1 -0
  151. package/dist/bigconsole/components/datasink/CacheTTLSelector.d.ts +24 -0
  152. package/dist/bigconsole/components/datasink/CacheTTLSelector.d.ts.map +1 -0
  153. package/dist/bigconsole/components/datasink/ConfigurationForm.d.ts +21 -0
  154. package/dist/bigconsole/components/datasink/ConfigurationForm.d.ts.map +1 -0
  155. package/dist/bigconsole/components/datasink/DataPreviewPanel.d.ts +20 -0
  156. package/dist/bigconsole/components/datasink/DataPreviewPanel.d.ts.map +1 -0
  157. package/dist/bigconsole/components/datasink/DataSinkCard.d.ts +29 -0
  158. package/dist/bigconsole/components/datasink/DataSinkCard.d.ts.map +1 -0
  159. package/dist/bigconsole/components/datasink/DataSinkDataViewer.d.ts +18 -0
  160. package/dist/bigconsole/components/datasink/DataSinkDataViewer.d.ts.map +1 -0
  161. package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.d.ts +17 -0
  162. package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.d.ts.map +1 -0
  163. package/dist/bigconsole/components/datasink/DataSinkRefreshConfig.d.ts +22 -0
  164. package/dist/bigconsole/components/datasink/DataSinkRefreshConfig.d.ts.map +1 -0
  165. package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.d.ts +17 -0
  166. package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.d.ts.map +1 -0
  167. package/dist/bigconsole/components/datasink/DataSinkStatusBadge.d.ts +13 -0
  168. package/dist/bigconsole/components/datasink/DataSinkStatusBadge.d.ts.map +1 -0
  169. package/dist/bigconsole/components/datasink/DataSinkTableViewer.d.ts +13 -0
  170. package/dist/bigconsole/components/datasink/DataSinkTableViewer.d.ts.map +1 -0
  171. package/dist/bigconsole/components/datasink/ExportDataSinkDialog.d.ts +17 -0
  172. package/dist/bigconsole/components/datasink/ExportDataSinkDialog.d.ts.map +1 -0
  173. package/dist/bigconsole/components/datasink/FluidGridsPanel.d.ts +31 -0
  174. package/dist/bigconsole/components/datasink/FluidGridsPanel.d.ts.map +1 -0
  175. package/dist/bigconsole/components/datasink/ImportDataGuideDialog.d.ts +23 -0
  176. package/dist/bigconsole/components/datasink/ImportDataGuideDialog.d.ts.map +1 -0
  177. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.d.ts +10 -0
  178. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.d.ts.map +1 -0
  179. package/dist/bigconsole/components/datasink/LinkedParsersPanel.d.ts +12 -0
  180. package/dist/bigconsole/components/datasink/LinkedParsersPanel.d.ts.map +1 -0
  181. package/dist/bigconsole/components/datasink/LinkedWorkflowsPanel.d.ts +11 -0
  182. package/dist/bigconsole/components/datasink/LinkedWorkflowsPanel.d.ts.map +1 -0
  183. package/dist/bigconsole/components/datasink/RefreshTypeSelector.d.ts +26 -0
  184. package/dist/bigconsole/components/datasink/RefreshTypeSelector.d.ts.map +1 -0
  185. package/dist/bigconsole/components/datasink/SetupStateBadge.d.ts +13 -0
  186. package/dist/bigconsole/components/datasink/SetupStateBadge.d.ts.map +1 -0
  187. package/dist/bigconsole/components/datasink/WorkflowStatusPanel.d.ts +30 -0
  188. package/dist/bigconsole/components/datasink/WorkflowStatusPanel.d.ts.map +1 -0
  189. package/dist/bigconsole/components/datasink/index.d.ts +24 -0
  190. package/dist/bigconsole/components/datasink/index.d.ts.map +1 -0
  191. package/dist/bigconsole/components/embed/EmbedErrorBoundary.d.ts +18 -0
  192. package/dist/bigconsole/components/embed/EmbedErrorBoundary.d.ts.map +1 -0
  193. package/dist/bigconsole/components/embed/EmbedWidgetRenderer.d.ts +6 -0
  194. package/dist/bigconsole/components/embed/EmbedWidgetRenderer.d.ts.map +1 -0
  195. package/dist/bigconsole/components/embed/ReadOnlyDashboardRenderer.d.ts +14 -0
  196. package/dist/bigconsole/components/embed/ReadOnlyDashboardRenderer.d.ts.map +1 -0
  197. package/dist/bigconsole/components/embed/ReadOnlyDashboardRenderer.js +68 -40
  198. package/dist/bigconsole/components/embed/ReadOnlyDashboardRenderer.js.map +1 -1
  199. package/dist/bigconsole/components/embed/drilldown.d.ts +5 -0
  200. package/dist/bigconsole/components/embed/drilldown.d.ts.map +1 -0
  201. package/dist/bigconsole/components/embed/drilldown.js +26 -0
  202. package/dist/bigconsole/components/embed/drilldown.js.map +1 -0
  203. package/dist/bigconsole/components/embed/index.d.ts +16 -0
  204. package/dist/bigconsole/components/embed/index.d.ts.map +1 -0
  205. package/dist/bigconsole/components/embed/index.js +4 -3
  206. package/dist/bigconsole/components/embed/renderer-manifest.d.ts +23 -0
  207. package/dist/bigconsole/components/embed/renderer-manifest.d.ts.map +1 -0
  208. package/dist/bigconsole/components/embed/types.d.ts +106 -0
  209. package/dist/bigconsole/components/embed/types.d.ts.map +1 -0
  210. package/dist/bigconsole/components/embed/types.js.map +1 -1
  211. package/dist/bigconsole/components/embed/validate.d.ts +4 -0
  212. package/dist/bigconsole/components/embed/validate.d.ts.map +1 -0
  213. package/dist/bigconsole/components/embed/widgetShim.d.ts +5 -0
  214. package/dist/bigconsole/components/embed/widgetShim.d.ts.map +1 -0
  215. package/dist/bigconsole/components/embed/widgets/CalendarEmbed.d.ts +4 -0
  216. package/dist/bigconsole/components/embed/widgets/CalendarEmbed.d.ts.map +1 -0
  217. package/dist/bigconsole/components/embed/widgets/ChartEmbed.d.ts +10 -0
  218. package/dist/bigconsole/components/embed/widgets/ChartEmbed.d.ts.map +1 -0
  219. package/dist/bigconsole/components/embed/widgets/EmbedFrame.d.ts +7 -0
  220. package/dist/bigconsole/components/embed/widgets/EmbedFrame.d.ts.map +1 -0
  221. package/dist/bigconsole/components/embed/widgets/FormEmbed.d.ts +4 -0
  222. package/dist/bigconsole/components/embed/widgets/FormEmbed.d.ts.map +1 -0
  223. package/dist/bigconsole/components/embed/widgets/GaugeEmbed.d.ts +4 -0
  224. package/dist/bigconsole/components/embed/widgets/GaugeEmbed.d.ts.map +1 -0
  225. package/dist/bigconsole/components/embed/widgets/HeatmapEmbed.d.ts +4 -0
  226. package/dist/bigconsole/components/embed/widgets/HeatmapEmbed.d.ts.map +1 -0
  227. package/dist/bigconsole/components/embed/widgets/KanbanEmbed.d.ts +4 -0
  228. package/dist/bigconsole/components/embed/widgets/KanbanEmbed.d.ts.map +1 -0
  229. package/dist/bigconsole/components/embed/widgets/KpiComparisonEmbed.d.ts +4 -0
  230. package/dist/bigconsole/components/embed/widgets/KpiComparisonEmbed.d.ts.map +1 -0
  231. package/dist/bigconsole/components/embed/widgets/ListEmbed.d.ts +4 -0
  232. package/dist/bigconsole/components/embed/widgets/ListEmbed.d.ts.map +1 -0
  233. package/dist/bigconsole/components/embed/widgets/MetricCardEmbed.d.ts +4 -0
  234. package/dist/bigconsole/components/embed/widgets/MetricCardEmbed.d.ts.map +1 -0
  235. package/dist/bigconsole/components/embed/widgets/PivotEmbed.d.ts +4 -0
  236. package/dist/bigconsole/components/embed/widgets/PivotEmbed.d.ts.map +1 -0
  237. package/dist/bigconsole/components/embed/widgets/ProgressEmbed.d.ts +4 -0
  238. package/dist/bigconsole/components/embed/widgets/ProgressEmbed.d.ts.map +1 -0
  239. package/dist/bigconsole/components/embed/widgets/RetentionEmbed.d.ts +4 -0
  240. package/dist/bigconsole/components/embed/widgets/RetentionEmbed.d.ts.map +1 -0
  241. package/dist/bigconsole/components/embed/widgets/TableEmbed.d.ts +4 -0
  242. package/dist/bigconsole/components/embed/widgets/TableEmbed.d.ts.map +1 -0
  243. package/dist/bigconsole/components/embed/widgets/TextEmbed.d.ts +4 -0
  244. package/dist/bigconsole/components/embed/widgets/TextEmbed.d.ts.map +1 -0
  245. package/dist/bigconsole/components/embed/widgets/TimelineEmbed.d.ts +4 -0
  246. package/dist/bigconsole/components/embed/widgets/TimelineEmbed.d.ts.map +1 -0
  247. package/dist/bigconsole/components/embed/widgets/shared.d.ts +37 -0
  248. package/dist/bigconsole/components/embed/widgets/shared.d.ts.map +1 -0
  249. package/dist/bigconsole/components/overview/DashboardGuide.d.ts +27 -0
  250. package/dist/bigconsole/components/overview/DashboardGuide.d.ts.map +1 -0
  251. package/dist/bigconsole/components/overview/DataHealthCard.d.ts +18 -0
  252. package/dist/bigconsole/components/overview/DataHealthCard.d.ts.map +1 -0
  253. package/dist/bigconsole/components/overview/OverviewQuickActions.d.ts +16 -0
  254. package/dist/bigconsole/components/overview/OverviewQuickActions.d.ts.map +1 -0
  255. package/dist/bigconsole/components/overview/OverviewStatCard.d.ts +18 -0
  256. package/dist/bigconsole/components/overview/OverviewStatCard.d.ts.map +1 -0
  257. package/dist/bigconsole/components/overview/RecentDashboardsPanel.d.ts +19 -0
  258. package/dist/bigconsole/components/overview/RecentDashboardsPanel.d.ts.map +1 -0
  259. package/dist/bigconsole/components/overview/dashboardGuideSteps.d.ts +79 -0
  260. package/dist/bigconsole/components/overview/dashboardGuideSteps.d.ts.map +1 -0
  261. package/dist/bigconsole/components/overview/index.d.ts +14 -0
  262. package/dist/bigconsole/components/overview/index.d.ts.map +1 -0
  263. package/dist/bigconsole/components/overview/overviewModel.d.ts +124 -0
  264. package/dist/bigconsole/components/overview/overviewModel.d.ts.map +1 -0
  265. package/dist/bigconsole/components/overview/useOverviewData.d.ts +22 -0
  266. package/dist/bigconsole/components/overview/useOverviewData.d.ts.map +1 -0
  267. package/dist/bigconsole/components/parser/DataSinkSelector.d.ts +21 -0
  268. package/dist/bigconsole/components/parser/DataSinkSelector.d.ts.map +1 -0
  269. package/dist/bigconsole/components/parser/ExportParserDialog.d.ts +17 -0
  270. package/dist/bigconsole/components/parser/ExportParserDialog.d.ts.map +1 -0
  271. package/dist/bigconsole/components/parser/ExpressionEditor.d.ts +25 -0
  272. package/dist/bigconsole/components/parser/ExpressionEditor.d.ts.map +1 -0
  273. package/dist/bigconsole/components/parser/ImportParserDialog.d.ts +12 -0
  274. package/dist/bigconsole/components/parser/ImportParserDialog.d.ts.map +1 -0
  275. package/dist/bigconsole/components/parser/ParserBuilder.d.ts +41 -0
  276. package/dist/bigconsole/components/parser/ParserBuilder.d.ts.map +1 -0
  277. package/dist/bigconsole/components/parser/ParserCard.d.ts +23 -0
  278. package/dist/bigconsole/components/parser/ParserCard.d.ts.map +1 -0
  279. package/dist/bigconsole/components/parser/ParserFormDialog.d.ts +42 -0
  280. package/dist/bigconsole/components/parser/ParserFormDialog.d.ts.map +1 -0
  281. package/dist/bigconsole/components/parser/ParserSelector.d.ts +27 -0
  282. package/dist/bigconsole/components/parser/ParserSelector.d.ts.map +1 -0
  283. package/dist/bigconsole/components/parser/ParserStatusBadge.d.ts +13 -0
  284. package/dist/bigconsole/components/parser/ParserStatusBadge.d.ts.map +1 -0
  285. package/dist/bigconsole/components/parser/ParserTypeBadge.d.ts +11 -0
  286. package/dist/bigconsole/components/parser/ParserTypeBadge.d.ts.map +1 -0
  287. package/dist/bigconsole/components/parser/TestPanel.d.ts +25 -0
  288. package/dist/bigconsole/components/parser/TestPanel.d.ts.map +1 -0
  289. package/dist/bigconsole/components/parser/index.d.ts +17 -0
  290. package/dist/bigconsole/components/parser/index.d.ts.map +1 -0
  291. package/dist/bigconsole/components/parser/parserFieldStyles.d.ts +17 -0
  292. package/dist/bigconsole/components/parser/parserFieldStyles.d.ts.map +1 -0
  293. package/dist/bigconsole/components/pipeline/PipelineCard.d.ts +12 -0
  294. package/dist/bigconsole/components/pipeline/PipelineCard.d.ts.map +1 -0
  295. package/dist/bigconsole/components/pipeline/PipelineDeleteDialog.d.ts +11 -0
  296. package/dist/bigconsole/components/pipeline/PipelineDeleteDialog.d.ts.map +1 -0
  297. package/dist/bigconsole/components/pipeline/PipelineStatusBadge.d.ts +9 -0
  298. package/dist/bigconsole/components/pipeline/PipelineStatusBadge.d.ts.map +1 -0
  299. package/dist/bigconsole/components/pipeline/index.d.ts +9 -0
  300. package/dist/bigconsole/components/pipeline/index.d.ts.map +1 -0
  301. package/dist/bigconsole/components/preview/AiPreviewContent.d.ts +30 -0
  302. package/dist/bigconsole/components/preview/AiPreviewContent.d.ts.map +1 -0
  303. package/dist/bigconsole/components/preview/AiPreviewContent.js +80 -69
  304. package/dist/bigconsole/components/preview/AiPreviewContent.js.map +1 -1
  305. package/dist/bigconsole/components/preview/AiPreviewMiniPanel.d.ts +11 -0
  306. package/dist/bigconsole/components/preview/AiPreviewMiniPanel.d.ts.map +1 -0
  307. package/dist/bigconsole/components/preview/AiPreviewPanel.d.ts +2 -0
  308. package/dist/bigconsole/components/preview/AiPreviewPanel.d.ts.map +1 -0
  309. package/dist/bigconsole/components/preview/AiPreviewPanel.js +4 -1
  310. package/dist/bigconsole/components/preview/AiPreviewPanel.js.map +1 -1
  311. package/dist/bigconsole/components/preview/previewShared.d.ts +134 -0
  312. package/dist/bigconsole/components/preview/previewShared.d.ts.map +1 -0
  313. package/dist/bigconsole/components/widgets/ActionConfigDialog.d.ts +20 -0
  314. package/dist/bigconsole/components/widgets/ActionConfigDialog.d.ts.map +1 -0
  315. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.d.ts +26 -0
  316. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.d.ts.map +1 -0
  317. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.js +307 -233
  318. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.js.map +1 -1
  319. package/dist/bigconsole/components/widgets/PropertiesPanel.d.ts +9 -0
  320. package/dist/bigconsole/components/widgets/PropertiesPanel.d.ts.map +1 -0
  321. package/dist/bigconsole/components/widgets/PropertiesPanel.js +230 -220
  322. package/dist/bigconsole/components/widgets/PropertiesPanel.js.map +1 -1
  323. package/dist/bigconsole/components/widgets/WidgetErrorBoundary.d.ts +23 -0
  324. package/dist/bigconsole/components/widgets/WidgetErrorBoundary.d.ts.map +1 -0
  325. package/dist/bigconsole/components/widgets/WidgetHeader.d.ts +43 -0
  326. package/dist/bigconsole/components/widgets/WidgetHeader.d.ts.map +1 -0
  327. package/dist/bigconsole/components/widgets/WidgetMenu.d.ts +18 -0
  328. package/dist/bigconsole/components/widgets/WidgetMenu.d.ts.map +1 -0
  329. package/dist/bigconsole/components/widgets/WidgetRegistry.d.ts +131 -0
  330. package/dist/bigconsole/components/widgets/WidgetRegistry.d.ts.map +1 -0
  331. package/dist/bigconsole/components/widgets/WidgetTypeSelector.d.ts +22 -0
  332. package/dist/bigconsole/components/widgets/WidgetTypeSelector.d.ts.map +1 -0
  333. package/dist/bigconsole/components/widgets/WidgetWrapper.d.ts +31 -0
  334. package/dist/bigconsole/components/widgets/WidgetWrapper.d.ts.map +1 -0
  335. package/dist/bigconsole/components/widgets/WidgetWrapper.js +18 -19
  336. package/dist/bigconsole/components/widgets/WidgetWrapper.js.map +1 -1
  337. package/dist/bigconsole/components/widgets/actionConfig.d.ts +36 -0
  338. package/dist/bigconsole/components/widgets/actionConfig.d.ts.map +1 -0
  339. package/dist/bigconsole/components/widgets/adaptive-card/AdaptiveCardWidget.d.ts +38 -0
  340. package/dist/bigconsole/components/widgets/adaptive-card/AdaptiveCardWidget.d.ts.map +1 -0
  341. package/dist/bigconsole/components/widgets/adaptive-card/index.d.ts +7 -0
  342. package/dist/bigconsole/components/widgets/adaptive-card/index.d.ts.map +1 -0
  343. package/dist/bigconsole/components/widgets/calendar/CalendarView.d.ts +43 -0
  344. package/dist/bigconsole/components/widgets/calendar/CalendarView.d.ts.map +1 -0
  345. package/dist/bigconsole/components/widgets/calendar/CalendarWidget.d.ts +7 -0
  346. package/dist/bigconsole/components/widgets/calendar/CalendarWidget.d.ts.map +1 -0
  347. package/dist/bigconsole/components/widgets/calendar/index.d.ts +3 -0
  348. package/dist/bigconsole/components/widgets/calendar/index.d.ts.map +1 -0
  349. package/dist/bigconsole/components/widgets/chart/ChartConfig.d.ts +12 -0
  350. package/dist/bigconsole/components/widgets/chart/ChartConfig.d.ts.map +1 -0
  351. package/dist/bigconsole/components/widgets/chart/ChartLegend.d.ts +25 -0
  352. package/dist/bigconsole/components/widgets/chart/ChartLegend.d.ts.map +1 -0
  353. package/dist/bigconsole/components/widgets/chart/ChartTooltip.d.ts +24 -0
  354. package/dist/bigconsole/components/widgets/chart/ChartTooltip.d.ts.map +1 -0
  355. package/dist/bigconsole/components/widgets/chart/ChartWidget.d.ts +17 -0
  356. package/dist/bigconsole/components/widgets/chart/ChartWidget.d.ts.map +1 -0
  357. package/dist/bigconsole/components/widgets/chart/charts/AreaChart.d.ts +16 -0
  358. package/dist/bigconsole/components/widgets/chart/charts/AreaChart.d.ts.map +1 -0
  359. package/dist/bigconsole/components/widgets/chart/charts/BarChart.d.ts +16 -0
  360. package/dist/bigconsole/components/widgets/chart/charts/BarChart.d.ts.map +1 -0
  361. package/dist/bigconsole/components/widgets/chart/charts/ComboChart.d.ts +12 -0
  362. package/dist/bigconsole/components/widgets/chart/charts/ComboChart.d.ts.map +1 -0
  363. package/dist/bigconsole/components/widgets/chart/charts/FunnelChart.d.ts +18 -0
  364. package/dist/bigconsole/components/widgets/chart/charts/FunnelChart.d.ts.map +1 -0
  365. package/dist/bigconsole/components/widgets/chart/charts/LineChart.d.ts +16 -0
  366. package/dist/bigconsole/components/widgets/chart/charts/LineChart.d.ts.map +1 -0
  367. package/dist/bigconsole/components/widgets/chart/charts/PieChart.d.ts +18 -0
  368. package/dist/bigconsole/components/widgets/chart/charts/PieChart.d.ts.map +1 -0
  369. package/dist/bigconsole/components/widgets/chart/charts/ScatterChart.d.ts +12 -0
  370. package/dist/bigconsole/components/widgets/chart/charts/ScatterChart.d.ts.map +1 -0
  371. package/dist/bigconsole/components/widgets/chart/charts/WaterfallChart.d.ts +12 -0
  372. package/dist/bigconsole/components/widgets/chart/charts/WaterfallChart.d.ts.map +1 -0
  373. package/dist/bigconsole/components/widgets/chart/charts/index.d.ts +16 -0
  374. package/dist/bigconsole/components/widgets/chart/charts/index.d.ts.map +1 -0
  375. package/dist/bigconsole/components/widgets/chart/charts/referenceElements.d.ts +19 -0
  376. package/dist/bigconsole/components/widgets/chart/charts/referenceElements.d.ts.map +1 -0
  377. package/dist/bigconsole/components/widgets/chart/charts/types.d.ts +89 -0
  378. package/dist/bigconsole/components/widgets/chart/charts/types.d.ts.map +1 -0
  379. package/dist/bigconsole/components/widgets/chart/index.d.ts +11 -0
  380. package/dist/bigconsole/components/widgets/chart/index.d.ts.map +1 -0
  381. package/dist/bigconsole/components/widgets/comments/WidgetComments.d.ts +10 -0
  382. package/dist/bigconsole/components/widgets/comments/WidgetComments.d.ts.map +1 -0
  383. package/dist/bigconsole/components/widgets/custom/CustomWidget.d.ts +13 -0
  384. package/dist/bigconsole/components/widgets/custom/CustomWidget.d.ts.map +1 -0
  385. package/dist/bigconsole/components/widgets/custom/config.d.ts +9 -0
  386. package/dist/bigconsole/components/widgets/custom/config.d.ts.map +1 -0
  387. package/dist/bigconsole/components/widgets/custom/index.d.ts +8 -0
  388. package/dist/bigconsole/components/widgets/custom/index.d.ts.map +1 -0
  389. package/dist/bigconsole/components/widgets/custom/utils.d.ts +4 -0
  390. package/dist/bigconsole/components/widgets/custom/utils.d.ts.map +1 -0
  391. package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.d.ts +16 -0
  392. package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.d.ts.map +1 -0
  393. package/dist/bigconsole/components/widgets/event-logs/index.d.ts +6 -0
  394. package/dist/bigconsole/components/widgets/event-logs/index.d.ts.map +1 -0
  395. package/dist/bigconsole/components/widgets/form/FormWidget.d.ts +46 -0
  396. package/dist/bigconsole/components/widgets/form/FormWidget.d.ts.map +1 -0
  397. package/dist/bigconsole/components/widgets/form/index.d.ts +6 -0
  398. package/dist/bigconsole/components/widgets/form/index.d.ts.map +1 -0
  399. package/dist/bigconsole/components/widgets/funnel/index.d.ts +12 -0
  400. package/dist/bigconsole/components/widgets/funnel/index.d.ts.map +1 -0
  401. package/dist/bigconsole/components/widgets/gauge/CircularGauge.d.ts +42 -0
  402. package/dist/bigconsole/components/widgets/gauge/CircularGauge.d.ts.map +1 -0
  403. package/dist/bigconsole/components/widgets/gauge/GaugeConfig.d.ts +12 -0
  404. package/dist/bigconsole/components/widgets/gauge/GaugeConfig.d.ts.map +1 -0
  405. package/dist/bigconsole/components/widgets/gauge/GaugeWidget.d.ts +22 -0
  406. package/dist/bigconsole/components/widgets/gauge/GaugeWidget.d.ts.map +1 -0
  407. package/dist/bigconsole/components/widgets/gauge/LinearGauge.d.ts +28 -0
  408. package/dist/bigconsole/components/widgets/gauge/LinearGauge.d.ts.map +1 -0
  409. package/dist/bigconsole/components/widgets/gauge/index.d.ts +10 -0
  410. package/dist/bigconsole/components/widgets/gauge/index.d.ts.map +1 -0
  411. package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.d.ts +12 -0
  412. package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.d.ts.map +1 -0
  413. package/dist/bigconsole/components/widgets/heatmap/HeatmapWidget.d.ts +38 -0
  414. package/dist/bigconsole/components/widgets/heatmap/HeatmapWidget.d.ts.map +1 -0
  415. package/dist/bigconsole/components/widgets/heatmap/index.d.ts +8 -0
  416. package/dist/bigconsole/components/widgets/heatmap/index.d.ts.map +1 -0
  417. package/dist/bigconsole/components/widgets/iframe-widget/IframeWidget.d.ts +31 -0
  418. package/dist/bigconsole/components/widgets/iframe-widget/IframeWidget.d.ts.map +1 -0
  419. package/dist/bigconsole/components/widgets/iframe-widget/index.d.ts +3 -0
  420. package/dist/bigconsole/components/widgets/iframe-widget/index.d.ts.map +1 -0
  421. package/dist/bigconsole/components/widgets/index.d.ts +35 -0
  422. package/dist/bigconsole/components/widgets/index.d.ts.map +1 -0
  423. package/dist/bigconsole/components/widgets/kanban/KanbanView.d.ts +34 -0
  424. package/dist/bigconsole/components/widgets/kanban/KanbanView.d.ts.map +1 -0
  425. package/dist/bigconsole/components/widgets/kanban/KanbanWidget.d.ts +7 -0
  426. package/dist/bigconsole/components/widgets/kanban/KanbanWidget.d.ts.map +1 -0
  427. package/dist/bigconsole/components/widgets/kanban/index.d.ts +3 -0
  428. package/dist/bigconsole/components/widgets/kanban/index.d.ts.map +1 -0
  429. package/dist/bigconsole/components/widgets/kpi/KPIWidget.d.ts +23 -0
  430. package/dist/bigconsole/components/widgets/kpi/KPIWidget.d.ts.map +1 -0
  431. package/dist/bigconsole/components/widgets/kpi/index.d.ts +7 -0
  432. package/dist/bigconsole/components/widgets/kpi/index.d.ts.map +1 -0
  433. package/dist/bigconsole/components/widgets/kpi-comparison/KPIComparisonWidget.d.ts +28 -0
  434. package/dist/bigconsole/components/widgets/kpi-comparison/KPIComparisonWidget.d.ts.map +1 -0
  435. package/dist/bigconsole/components/widgets/kpi-comparison/index.d.ts +3 -0
  436. package/dist/bigconsole/components/widgets/kpi-comparison/index.d.ts.map +1 -0
  437. package/dist/bigconsole/components/widgets/list/ListConfig.d.ts +12 -0
  438. package/dist/bigconsole/components/widgets/list/ListConfig.d.ts.map +1 -0
  439. package/dist/bigconsole/components/widgets/list/ListItem.d.ts +39 -0
  440. package/dist/bigconsole/components/widgets/list/ListItem.d.ts.map +1 -0
  441. package/dist/bigconsole/components/widgets/list/ListWidget.d.ts +17 -0
  442. package/dist/bigconsole/components/widgets/list/ListWidget.d.ts.map +1 -0
  443. package/dist/bigconsole/components/widgets/list/index.d.ts +9 -0
  444. package/dist/bigconsole/components/widgets/list/index.d.ts.map +1 -0
  445. package/dist/bigconsole/components/widgets/map-widget/MapWidget.d.ts +52 -0
  446. package/dist/bigconsole/components/widgets/map-widget/MapWidget.d.ts.map +1 -0
  447. package/dist/bigconsole/components/widgets/map-widget/index.d.ts +3 -0
  448. package/dist/bigconsole/components/widgets/map-widget/index.d.ts.map +1 -0
  449. package/dist/bigconsole/components/widgets/metric-card/ComparisonBadge.d.ts +15 -0
  450. package/dist/bigconsole/components/widgets/metric-card/ComparisonBadge.d.ts.map +1 -0
  451. package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.d.ts +12 -0
  452. package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.d.ts.map +1 -0
  453. package/dist/bigconsole/components/widgets/metric-card/MetricCardWidget.d.ts +36 -0
  454. package/dist/bigconsole/components/widgets/metric-card/MetricCardWidget.d.ts.map +1 -0
  455. package/dist/bigconsole/components/widgets/metric-card/SparklineChart.d.ts +23 -0
  456. package/dist/bigconsole/components/widgets/metric-card/SparklineChart.d.ts.map +1 -0
  457. package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.d.ts +14 -0
  458. package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.d.ts.map +1 -0
  459. package/dist/bigconsole/components/widgets/metric-card/index.d.ts +11 -0
  460. package/dist/bigconsole/components/widgets/metric-card/index.d.ts.map +1 -0
  461. package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.d.ts +26 -0
  462. package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.d.ts.map +1 -0
  463. package/dist/bigconsole/components/widgets/pivot-table/index.d.ts +6 -0
  464. package/dist/bigconsole/components/widgets/pivot-table/index.d.ts.map +1 -0
  465. package/dist/bigconsole/components/widgets/progress/ProgressBar.d.ts +29 -0
  466. package/dist/bigconsole/components/widgets/progress/ProgressBar.d.ts.map +1 -0
  467. package/dist/bigconsole/components/widgets/progress/ProgressConfig.d.ts +12 -0
  468. package/dist/bigconsole/components/widgets/progress/ProgressConfig.d.ts.map +1 -0
  469. package/dist/bigconsole/components/widgets/progress/ProgressWidget.d.ts +28 -0
  470. package/dist/bigconsole/components/widgets/progress/ProgressWidget.d.ts.map +1 -0
  471. package/dist/bigconsole/components/widgets/progress/index.d.ts +9 -0
  472. package/dist/bigconsole/components/widgets/progress/index.d.ts.map +1 -0
  473. package/dist/bigconsole/components/widgets/retention/RetentionWidget.d.ts +25 -0
  474. package/dist/bigconsole/components/widgets/retention/RetentionWidget.d.ts.map +1 -0
  475. package/dist/bigconsole/components/widgets/retention/index.d.ts +7 -0
  476. package/dist/bigconsole/components/widgets/retention/index.d.ts.map +1 -0
  477. package/dist/bigconsole/components/widgets/states/EmptyState.d.ts +20 -0
  478. package/dist/bigconsole/components/widgets/states/EmptyState.d.ts.map +1 -0
  479. package/dist/bigconsole/components/widgets/states/ErrorState.d.ts +11 -0
  480. package/dist/bigconsole/components/widgets/states/ErrorState.d.ts.map +1 -0
  481. package/dist/bigconsole/components/widgets/states/LoadingState.d.ts +9 -0
  482. package/dist/bigconsole/components/widgets/states/LoadingState.d.ts.map +1 -0
  483. package/dist/bigconsole/components/widgets/states/index.d.ts +9 -0
  484. package/dist/bigconsole/components/widgets/states/index.d.ts.map +1 -0
  485. package/dist/bigconsole/components/widgets/table/TableCell.d.ts +42 -0
  486. package/dist/bigconsole/components/widgets/table/TableCell.d.ts.map +1 -0
  487. package/dist/bigconsole/components/widgets/table/TableConfig.d.ts +12 -0
  488. package/dist/bigconsole/components/widgets/table/TableConfig.d.ts.map +1 -0
  489. package/dist/bigconsole/components/widgets/table/TableHeader.d.ts +42 -0
  490. package/dist/bigconsole/components/widgets/table/TableHeader.d.ts.map +1 -0
  491. package/dist/bigconsole/components/widgets/table/TablePagination.d.ts +23 -0
  492. package/dist/bigconsole/components/widgets/table/TablePagination.d.ts.map +1 -0
  493. package/dist/bigconsole/components/widgets/table/TableWidget.d.ts +16 -0
  494. package/dist/bigconsole/components/widgets/table/TableWidget.d.ts.map +1 -0
  495. package/dist/bigconsole/components/widgets/table/cellLink.d.ts +37 -0
  496. package/dist/bigconsole/components/widgets/table/cellLink.d.ts.map +1 -0
  497. package/dist/bigconsole/components/widgets/table/index.d.ts +11 -0
  498. package/dist/bigconsole/components/widgets/table/index.d.ts.map +1 -0
  499. package/dist/bigconsole/components/widgets/text-widget/TextWidget.d.ts +11 -0
  500. package/dist/bigconsole/components/widgets/text-widget/TextWidget.d.ts.map +1 -0
  501. package/dist/bigconsole/components/widgets/text-widget/index.d.ts +4 -0
  502. package/dist/bigconsole/components/widgets/text-widget/index.d.ts.map +1 -0
  503. package/dist/bigconsole/components/widgets/text-widget/textData.d.ts +32 -0
  504. package/dist/bigconsole/components/widgets/text-widget/textData.d.ts.map +1 -0
  505. package/dist/bigconsole/components/widgets/timeline/TimelineWidget.d.ts +42 -0
  506. package/dist/bigconsole/components/widgets/timeline/TimelineWidget.d.ts.map +1 -0
  507. package/dist/bigconsole/components/widgets/timeline/index.d.ts +3 -0
  508. package/dist/bigconsole/components/widgets/timeline/index.d.ts.map +1 -0
  509. package/dist/bigconsole/components/widgets/utils/conditionalFormat.d.ts +74 -0
  510. package/dist/bigconsole/components/widgets/utils/conditionalFormat.d.ts.map +1 -0
  511. package/dist/bigconsole/components/widgets/utils/inferFields.d.ts +45 -0
  512. package/dist/bigconsole/components/widgets/utils/inferFields.d.ts.map +1 -0
  513. package/dist/bigconsole/components/widgets/utils/targetProgress.d.ts +26 -0
  514. package/dist/bigconsole/components/widgets/utils/targetProgress.d.ts.map +1 -0
  515. package/dist/bigconsole/components/widgets/utils/translate.d.ts +14 -0
  516. package/dist/bigconsole/components/widgets/utils/translate.d.ts.map +1 -0
  517. package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.d.ts +16 -0
  518. package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.d.ts.map +1 -0
  519. package/dist/bigconsole/components/widgets/webhook-config/index.d.ts +6 -0
  520. package/dist/bigconsole/components/widgets/webhook-config/index.d.ts.map +1 -0
  521. package/dist/bigconsole/components/widgets/widget-actions/WidgetActions.d.ts +26 -0
  522. package/dist/bigconsole/components/widgets/widget-actions/WidgetActions.d.ts.map +1 -0
  523. package/dist/bigconsole/components/widgets/widget-actions/index.d.ts +8 -0
  524. package/dist/bigconsole/components/widgets/widget-actions/index.d.ts.map +1 -0
  525. package/dist/bigconsole/components/workflow/DataSinkMultiSelector.d.ts +24 -0
  526. package/dist/bigconsole/components/workflow/DataSinkMultiSelector.d.ts.map +1 -0
  527. package/dist/bigconsole/components/workflow/WorkflowCard.d.ts +18 -0
  528. package/dist/bigconsole/components/workflow/WorkflowCard.d.ts.map +1 -0
  529. package/dist/bigconsole/components/workflow/WorkflowDeleteDialog.d.ts +11 -0
  530. package/dist/bigconsole/components/workflow/WorkflowDeleteDialog.d.ts.map +1 -0
  531. package/dist/bigconsole/components/workflow/WorkflowStatusBadge.d.ts +13 -0
  532. package/dist/bigconsole/components/workflow/WorkflowStatusBadge.d.ts.map +1 -0
  533. package/dist/bigconsole/components/workflow/index.d.ts +10 -0
  534. package/dist/bigconsole/components/workflow/index.d.ts.map +1 -0
  535. package/dist/bigconsole/constants/backendErrors.d.ts +22 -0
  536. package/dist/bigconsole/constants/backendErrors.d.ts.map +1 -0
  537. package/dist/bigconsole/constants.d.ts +15 -0
  538. package/dist/bigconsole/constants.d.ts.map +1 -0
  539. package/dist/bigconsole/context/BigConsoleContext.d.ts +30 -0
  540. package/dist/bigconsole/context/BigConsoleContext.d.ts.map +1 -0
  541. package/dist/bigconsole/context/BigConsoleContext.js +4 -1
  542. package/dist/bigconsole/context/BigConsoleContext.js.map +1 -1
  543. package/dist/bigconsole/context/index.d.ts +2 -0
  544. package/dist/bigconsole/context/index.d.ts.map +1 -0
  545. package/dist/bigconsole/contexts/CrossFilterContext.d.ts +48 -0
  546. package/dist/bigconsole/contexts/CrossFilterContext.d.ts.map +1 -0
  547. package/dist/bigconsole/contexts/NavigationContext.d.ts +45 -0
  548. package/dist/bigconsole/contexts/NavigationContext.d.ts.map +1 -0
  549. package/dist/bigconsole/contexts/index.d.ts +8 -0
  550. package/dist/bigconsole/contexts/index.d.ts.map +1 -0
  551. package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.d.ts +14 -0
  552. package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.d.ts.map +1 -0
  553. package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.d.ts +25 -0
  554. package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.d.ts.map +1 -0
  555. package/dist/bigconsole/customWidget/index.d.ts +12 -0
  556. package/dist/bigconsole/customWidget/index.d.ts.map +1 -0
  557. package/dist/bigconsole/customWidget/proposalContract.d.ts +121 -0
  558. package/dist/bigconsole/customWidget/proposalContract.d.ts.map +1 -0
  559. package/dist/bigconsole/customWidget/proposalSource.d.ts +41 -0
  560. package/dist/bigconsole/customWidget/proposalSource.d.ts.map +1 -0
  561. package/dist/bigconsole/graphql/apollo-compat.d.ts +16 -0
  562. package/dist/bigconsole/graphql/apollo-compat.d.ts.map +1 -0
  563. package/dist/bigconsole/graphql/storeTemplates.d.ts +9 -0
  564. package/dist/bigconsole/graphql/storeTemplates.d.ts.map +1 -0
  565. package/dist/bigconsole/hooks/index.d.ts +41 -0
  566. package/dist/bigconsole/hooks/index.d.ts.map +1 -0
  567. package/dist/bigconsole/hooks/useActivePage.d.ts +37 -0
  568. package/dist/bigconsole/hooks/useActivePage.d.ts.map +1 -0
  569. package/dist/bigconsole/hooks/useActivePage.js +25 -0
  570. package/dist/bigconsole/hooks/useActivePage.js.map +1 -0
  571. package/dist/bigconsole/hooks/useAutoRefresh.d.ts +51 -0
  572. package/dist/bigconsole/hooks/useAutoRefresh.d.ts.map +1 -0
  573. package/dist/bigconsole/hooks/useBigConsoleAnalytics.d.ts +48 -0
  574. package/dist/bigconsole/hooks/useBigConsoleAnalytics.d.ts.map +1 -0
  575. package/dist/bigconsole/hooks/useCrossFilter.d.ts +79 -0
  576. package/dist/bigconsole/hooks/useCrossFilter.d.ts.map +1 -0
  577. package/dist/bigconsole/hooks/useDashboardEmbedPolicy.d.ts +72 -0
  578. package/dist/bigconsole/hooks/useDashboardEmbedPolicy.d.ts.map +1 -0
  579. package/dist/bigconsole/hooks/useDashboardImageExport.d.ts +18 -0
  580. package/dist/bigconsole/hooks/useDashboardImageExport.d.ts.map +1 -0
  581. package/dist/bigconsole/hooks/useDashboardOperations.d.ts +70 -0
  582. package/dist/bigconsole/hooks/useDashboardOperations.d.ts.map +1 -0
  583. package/dist/bigconsole/hooks/useDashboardSharing.d.ts +60 -0
  584. package/dist/bigconsole/hooks/useDashboardSharing.d.ts.map +1 -0
  585. package/dist/bigconsole/hooks/useDashboardTemplates.d.ts +135 -0
  586. package/dist/bigconsole/hooks/useDashboardTemplates.d.ts.map +1 -0
  587. package/dist/bigconsole/hooks/useDashboardViews.d.ts +58 -0
  588. package/dist/bigconsole/hooks/useDashboardViews.d.ts.map +1 -0
  589. package/dist/bigconsole/hooks/useDataSinkOperations.d.ts +66 -0
  590. package/dist/bigconsole/hooks/useDataSinkOperations.d.ts.map +1 -0
  591. package/dist/bigconsole/hooks/useDataSinkSubscription.d.ts +31 -0
  592. package/dist/bigconsole/hooks/useDataSinkSubscription.d.ts.map +1 -0
  593. package/dist/bigconsole/hooks/useDrilldown.d.ts +65 -0
  594. package/dist/bigconsole/hooks/useDrilldown.d.ts.map +1 -0
  595. package/dist/bigconsole/hooks/useDrilldown.js +118 -71
  596. package/dist/bigconsole/hooks/useDrilldown.js.map +1 -1
  597. package/dist/bigconsole/hooks/useDrilldownOperations.d.ts +42 -0
  598. package/dist/bigconsole/hooks/useDrilldownOperations.d.ts.map +1 -0
  599. package/dist/bigconsole/hooks/useDrilldownOperations.js +32 -26
  600. package/dist/bigconsole/hooks/useDrilldownOperations.js.map +1 -1
  601. package/dist/bigconsole/hooks/useEventLogs.d.ts +94 -0
  602. package/dist/bigconsole/hooks/useEventLogs.d.ts.map +1 -0
  603. package/dist/bigconsole/hooks/useEventWebhooks.d.ts +95 -0
  604. package/dist/bigconsole/hooks/useEventWebhooks.d.ts.map +1 -0
  605. package/dist/bigconsole/hooks/useExportDashboard.d.ts +28 -0
  606. package/dist/bigconsole/hooks/useExportDashboard.d.ts.map +1 -0
  607. package/dist/bigconsole/hooks/useExportDataSink.d.ts +27 -0
  608. package/dist/bigconsole/hooks/useExportDataSink.d.ts.map +1 -0
  609. package/dist/bigconsole/hooks/useExportParser.d.ts +25 -0
  610. package/dist/bigconsole/hooks/useExportParser.d.ts.map +1 -0
  611. package/dist/bigconsole/hooks/useFilterPresets.d.ts +47 -0
  612. package/dist/bigconsole/hooks/useFilterPresets.d.ts.map +1 -0
  613. package/dist/bigconsole/hooks/useFilterUrlSync.d.ts +46 -0
  614. package/dist/bigconsole/hooks/useFilterUrlSync.d.ts.map +1 -0
  615. package/dist/bigconsole/hooks/useFilterUrlSync.js +1 -1
  616. package/dist/bigconsole/hooks/useFilterUrlSync.js.map +1 -1
  617. package/dist/bigconsole/hooks/useGlobalFilters.d.ts +69 -0
  618. package/dist/bigconsole/hooks/useGlobalFilters.d.ts.map +1 -0
  619. package/dist/bigconsole/hooks/useImportDashboard.d.ts +88 -0
  620. package/dist/bigconsole/hooks/useImportDashboard.d.ts.map +1 -0
  621. package/dist/bigconsole/hooks/useImportDataSink.d.ts +74 -0
  622. package/dist/bigconsole/hooks/useImportDataSink.d.ts.map +1 -0
  623. package/dist/bigconsole/hooks/useImportParser.d.ts +77 -0
  624. package/dist/bigconsole/hooks/useImportParser.d.ts.map +1 -0
  625. package/dist/bigconsole/hooks/useInstalledWidgets.d.ts +15 -0
  626. package/dist/bigconsole/hooks/useInstalledWidgets.d.ts.map +1 -0
  627. package/dist/bigconsole/hooks/useModalFocusTrap.d.ts +24 -0
  628. package/dist/bigconsole/hooks/useModalFocusTrap.d.ts.map +1 -0
  629. package/dist/bigconsole/hooks/usePageOperations.d.ts +35 -0
  630. package/dist/bigconsole/hooks/usePageOperations.d.ts.map +1 -0
  631. package/dist/bigconsole/hooks/useParserOperations.d.ts +70 -0
  632. package/dist/bigconsole/hooks/useParserOperations.d.ts.map +1 -0
  633. package/dist/bigconsole/hooks/usePipelineOperations.d.ts +76 -0
  634. package/dist/bigconsole/hooks/usePipelineOperations.d.ts.map +1 -0
  635. package/dist/bigconsole/hooks/useStoreDashboardTemplates.d.ts +122 -0
  636. package/dist/bigconsole/hooks/useStoreDashboardTemplates.d.ts.map +1 -0
  637. package/dist/bigconsole/hooks/useWidgetActions.d.ts +69 -0
  638. package/dist/bigconsole/hooks/useWidgetActions.d.ts.map +1 -0
  639. package/dist/bigconsole/hooks/useWidgetCatalog.d.ts +20 -0
  640. package/dist/bigconsole/hooks/useWidgetCatalog.d.ts.map +1 -0
  641. package/dist/bigconsole/hooks/useWidgetComments.d.ts +24 -0
  642. package/dist/bigconsole/hooks/useWidgetComments.d.ts.map +1 -0
  643. package/dist/bigconsole/hooks/useWidgetConfigPersist.d.ts +14 -0
  644. package/dist/bigconsole/hooks/useWidgetConfigPersist.d.ts.map +1 -0
  645. package/dist/bigconsole/hooks/useWidgetData.d.ts +45 -0
  646. package/dist/bigconsole/hooks/useWidgetData.d.ts.map +1 -0
  647. package/dist/bigconsole/hooks/useWidgetEvents.d.ts +60 -0
  648. package/dist/bigconsole/hooks/useWidgetEvents.d.ts.map +1 -0
  649. package/dist/bigconsole/hooks/useWidgetExport.d.ts +19 -0
  650. package/dist/bigconsole/hooks/useWidgetExport.d.ts.map +1 -0
  651. package/dist/bigconsole/hooks/useWidgetOperations.d.ts +71 -0
  652. package/dist/bigconsole/hooks/useWidgetOperations.d.ts.map +1 -0
  653. package/dist/bigconsole/hooks/useWorkflowOperations.d.ts +54 -0
  654. package/dist/bigconsole/hooks/useWorkflowOperations.d.ts.map +1 -0
  655. package/dist/bigconsole/index.d.ts +32 -0
  656. package/dist/bigconsole/index.d.ts.map +1 -0
  657. package/dist/bigconsole/modules/dashboard/index.d.ts +15 -0
  658. package/dist/bigconsole/modules/dashboard/index.d.ts.map +1 -0
  659. package/dist/bigconsole/modules/index.d.ts +15 -0
  660. package/dist/bigconsole/modules/index.d.ts.map +1 -0
  661. package/dist/bigconsole/modules/renderer/index.d.ts +8 -0
  662. package/dist/bigconsole/modules/renderer/index.d.ts.map +1 -0
  663. package/dist/bigconsole/modules/widget/index.d.ts +19 -0
  664. package/dist/bigconsole/modules/widget/index.d.ts.map +1 -0
  665. package/dist/bigconsole/pages/AdminPage.d.ts +4 -0
  666. package/dist/bigconsole/pages/AdminPage.d.ts.map +1 -0
  667. package/dist/bigconsole/pages/DashboardBuilderPage.d.ts +5 -0
  668. package/dist/bigconsole/pages/DashboardBuilderPage.d.ts.map +1 -0
  669. package/dist/bigconsole/pages/DashboardBuilderPage.js +190 -185
  670. package/dist/bigconsole/pages/DashboardBuilderPage.js.map +1 -1
  671. package/dist/bigconsole/pages/DashboardViewPage.d.ts +5 -0
  672. package/dist/bigconsole/pages/DashboardViewPage.d.ts.map +1 -0
  673. package/dist/bigconsole/pages/DashboardViewPage.js +224 -217
  674. package/dist/bigconsole/pages/DashboardViewPage.js.map +1 -1
  675. package/dist/bigconsole/pages/DashboardsPage.d.ts +5 -0
  676. package/dist/bigconsole/pages/DashboardsPage.d.ts.map +1 -0
  677. package/dist/bigconsole/pages/DataParsersPage.d.ts +9 -0
  678. package/dist/bigconsole/pages/DataParsersPage.d.ts.map +1 -0
  679. package/dist/bigconsole/pages/DataSinkBuilderPage.d.ts +10 -0
  680. package/dist/bigconsole/pages/DataSinkBuilderPage.d.ts.map +1 -0
  681. package/dist/bigconsole/pages/DataSinkViewPage.d.ts +8 -0
  682. package/dist/bigconsole/pages/DataSinkViewPage.d.ts.map +1 -0
  683. package/dist/bigconsole/pages/DataSinksPage.d.ts +5 -0
  684. package/dist/bigconsole/pages/DataSinksPage.d.ts.map +1 -0
  685. package/dist/bigconsole/pages/DataSourcesPage.d.ts +10 -0
  686. package/dist/bigconsole/pages/DataSourcesPage.d.ts.map +1 -0
  687. package/dist/bigconsole/pages/InsightsPage.d.ts +5 -0
  688. package/dist/bigconsole/pages/InsightsPage.d.ts.map +1 -0
  689. package/dist/bigconsole/pages/OverviewPage.d.ts +5 -0
  690. package/dist/bigconsole/pages/OverviewPage.d.ts.map +1 -0
  691. package/dist/bigconsole/pages/ParserBuilderPage.d.ts +13 -0
  692. package/dist/bigconsole/pages/ParserBuilderPage.d.ts.map +1 -0
  693. package/dist/bigconsole/pages/ParserViewPage.d.ts +8 -0
  694. package/dist/bigconsole/pages/ParserViewPage.d.ts.map +1 -0
  695. package/dist/bigconsole/pages/PipelineBuilderPage.d.ts +21 -0
  696. package/dist/bigconsole/pages/PipelineBuilderPage.d.ts.map +1 -0
  697. package/dist/bigconsole/pages/PipelineViewPage.d.ts +20 -0
  698. package/dist/bigconsole/pages/PipelineViewPage.d.ts.map +1 -0
  699. package/dist/bigconsole/pages/PipelinesPage.d.ts +14 -0
  700. package/dist/bigconsole/pages/PipelinesPage.d.ts.map +1 -0
  701. package/dist/bigconsole/pages/SettingsPage.d.ts +5 -0
  702. package/dist/bigconsole/pages/SettingsPage.d.ts.map +1 -0
  703. package/dist/bigconsole/pages/WidgetDemoPage.d.ts +5 -0
  704. package/dist/bigconsole/pages/WidgetDemoPage.d.ts.map +1 -0
  705. package/dist/bigconsole/pages/WorkflowViewPage.d.ts +20 -0
  706. package/dist/bigconsole/pages/WorkflowViewPage.d.ts.map +1 -0
  707. package/dist/bigconsole/pages/WorkflowsPage.d.ts +16 -0
  708. package/dist/bigconsole/pages/WorkflowsPage.d.ts.map +1 -0
  709. package/dist/bigconsole/pages/index.d.ts +14 -0
  710. package/dist/bigconsole/pages/index.d.ts.map +1 -0
  711. package/dist/bigconsole/providers/BigConsoleQuotaProvider.d.ts +10 -0
  712. package/dist/bigconsole/providers/BigConsoleQuotaProvider.d.ts.map +1 -0
  713. package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.d.ts +6 -0
  714. package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.d.ts.map +1 -0
  715. package/dist/bigconsole/renderers/adapters/BigConsoleRenderer.d.ts +9 -0
  716. package/dist/bigconsole/renderers/adapters/BigConsoleRenderer.d.ts.map +1 -0
  717. package/dist/bigconsole/renderers/adapters/BlockKitRenderer.d.ts +6 -0
  718. package/dist/bigconsole/renderers/adapters/BlockKitRenderer.d.ts.map +1 -0
  719. package/dist/bigconsole/renderers/adapters/CustomRenderer.d.ts +46 -0
  720. package/dist/bigconsole/renderers/adapters/CustomRenderer.d.ts.map +1 -0
  721. package/dist/bigconsole/renderers/adapters/index.d.ts +10 -0
  722. package/dist/bigconsole/renderers/adapters/index.d.ts.map +1 -0
  723. package/dist/bigconsole/renderers/factory/WidgetRendererFactory.d.ts +46 -0
  724. package/dist/bigconsole/renderers/factory/WidgetRendererFactory.d.ts.map +1 -0
  725. package/dist/bigconsole/renderers/index.d.ts +10 -0
  726. package/dist/bigconsole/renderers/index.d.ts.map +1 -0
  727. package/dist/bigconsole/renderers/registry/RendererRegistry.d.ts +42 -0
  728. package/dist/bigconsole/renderers/registry/RendererRegistry.d.ts.map +1 -0
  729. package/dist/bigconsole/renderers/types/index.d.ts +7 -0
  730. package/dist/bigconsole/renderers/types/index.d.ts.map +1 -0
  731. package/dist/bigconsole/renderers/types/renderer.d.ts +228 -0
  732. package/dist/bigconsole/renderers/types/renderer.d.ts.map +1 -0
  733. package/dist/bigconsole/store/dashboardStore.d.ts +132 -0
  734. package/dist/bigconsole/store/dashboardStore.d.ts.map +1 -0
  735. package/dist/bigconsole/store/dataSinkStore.d.ts +94 -0
  736. package/dist/bigconsole/store/dataSinkStore.d.ts.map +1 -0
  737. package/dist/bigconsole/store/drilldownStore.d.ts +63 -0
  738. package/dist/bigconsole/store/drilldownStore.d.ts.map +1 -0
  739. package/dist/bigconsole/store/index.d.ts +13 -0
  740. package/dist/bigconsole/store/index.d.ts.map +1 -0
  741. package/dist/bigconsole/store/parserStore.d.ts +106 -0
  742. package/dist/bigconsole/store/parserStore.d.ts.map +1 -0
  743. package/dist/bigconsole/store/pipelineStore.d.ts +113 -0
  744. package/dist/bigconsole/store/pipelineStore.d.ts.map +1 -0
  745. package/dist/bigconsole/store/widgetStore.d.ts +106 -0
  746. package/dist/bigconsole/store/widgetStore.d.ts.map +1 -0
  747. package/dist/bigconsole/store/workflowStore.d.ts +120 -0
  748. package/dist/bigconsole/store/workflowStore.d.ts.map +1 -0
  749. package/dist/bigconsole/types/index.d.ts +1373 -0
  750. package/dist/bigconsole/types/index.d.ts.map +1 -0
  751. package/dist/bigconsole/utils/backendError.d.ts +4 -0
  752. package/dist/bigconsole/utils/backendError.d.ts.map +1 -0
  753. package/dist/bigconsole/utils/createDialogParam.d.ts +26 -0
  754. package/dist/bigconsole/utils/createDialogParam.d.ts.map +1 -0
  755. package/dist/bigconsole/utils/csv.d.ts +28 -0
  756. package/dist/bigconsole/utils/csv.d.ts.map +1 -0
  757. package/dist/bigconsole/utils/format.d.ts +17 -0
  758. package/dist/bigconsole/utils/format.d.ts.map +1 -0
  759. package/dist/bigconsole/utils/index.d.ts +11 -0
  760. package/dist/bigconsole/utils/index.d.ts.map +1 -0
  761. package/dist/bigconsole/utils/quota.d.ts +39 -0
  762. package/dist/bigconsole/utils/quota.d.ts.map +1 -0
  763. package/dist/bigconsole/utils/semanticTokens.d.ts +88 -0
  764. package/dist/bigconsole/utils/semanticTokens.d.ts.map +1 -0
  765. package/dist/bigconsole/utils/widgetBinding.d.ts +50 -0
  766. package/dist/bigconsole/utils/widgetBinding.d.ts.map +1 -0
  767. package/dist/bigconsole/utils/widgetPositioning.d.ts +97 -0
  768. package/dist/bigconsole/utils/widgetPositioning.d.ts.map +1 -0
  769. package/dist/bigconsole/utils/widgetTypeMapping.d.ts +34 -0
  770. package/dist/bigconsole/utils/widgetTypeMapping.d.ts.map +1 -0
  771. package/dist/constants/permissions.d.ts +118 -0
  772. package/dist/constants/permissions.d.ts.map +1 -0
  773. package/dist/generated/global-operations.d.ts +187 -0
  774. package/dist/generated/global-operations.d.ts.map +1 -0
  775. package/dist/generated/global-types.d.ts +23527 -0
  776. package/dist/generated/global-types.d.ts.map +1 -0
  777. package/dist/generated/wspace-operations.d.ts +10521 -0
  778. package/dist/generated/wspace-operations.d.ts.map +1 -0
  779. package/dist/generated/wspace-operations.js +132 -86
  780. package/dist/generated/wspace-operations.js.map +1 -1
  781. package/dist/generated/wspace-types.d.ts +58025 -0
  782. package/dist/generated/wspace-types.d.ts.map +1 -0
  783. package/dist/generated/wspace-types.js.map +1 -1
  784. package/dist/index.d.ts +6 -0
  785. package/dist/index.d.ts.map +1 -0
  786. package/dist/shared/hooks/useTr.d.ts +25 -0
  787. package/dist/shared/hooks/useTr.d.ts.map +1 -0
  788. package/dist/stories/DashboardGuide.stories.d.ts +15 -0
  789. package/dist/stories/DashboardGuide.stories.d.ts.map +1 -0
  790. package/dist/stories/DataSinkStatusBadge.stories.d.ts +12 -0
  791. package/dist/stories/DataSinkStatusBadge.stories.d.ts.map +1 -0
  792. package/dist/stories/GaugeWidget.stories.d.ts +58 -0
  793. package/dist/stories/GaugeWidget.stories.d.ts.map +1 -0
  794. package/dist/stories/KPIComparisonWidget.stories.d.ts +76 -0
  795. package/dist/stories/KPIComparisonWidget.stories.d.ts.map +1 -0
  796. package/dist/stories/LiveCanvasToggle.stories.d.ts +9 -0
  797. package/dist/stories/LiveCanvasToggle.stories.d.ts.map +1 -0
  798. package/dist/stories/MetricCardWidget.stories.d.ts +88 -0
  799. package/dist/stories/MetricCardWidget.stories.d.ts.map +1 -0
  800. package/dist/stories/ProgressWidget.stories.d.ts +48 -0
  801. package/dist/stories/ProgressWidget.stories.d.ts.map +1 -0
  802. package/dist/stories/SetupStateBadge.stories.d.ts +12 -0
  803. package/dist/stories/SetupStateBadge.stories.d.ts.map +1 -0
  804. package/dist/translations/en.d.ts +29 -0
  805. package/dist/translations/en.d.ts.map +1 -0
  806. package/dist/utils/nativeBridge.d.ts +3 -0
  807. package/dist/utils/nativeBridge.d.ts.map +1 -0
  808. package/package.json +3 -3
@@ -0,0 +1,65 @@
1
+ import { Widget, WidgetDrilldown, NavigationMode } from '../types';
2
+
3
+ /** Prefix for context parameters (clicked item data) */
4
+ export declare const CONTEXT_PARAM_PREFIX = "ctx_";
5
+ /** Prefix for filter parameters (global filters) */
6
+ export declare const FILTER_PARAM_PREFIX = "filter_";
7
+ /** Prefix for drilldown metadata */
8
+ export declare const DRILLDOWN_PARAM_PREFIX = "drilldown_";
9
+ /** Default maximum drilldown depth */
10
+ export declare const DEFAULT_MAX_DEPTH = 3;
11
+ /** Modal param carrying the target page into DrilldownDashboardRenderer (BOFF-7625) */
12
+ export declare const MODAL_TARGET_PAGE_PARAM = "__targetPageId";
13
+ export interface DrilldownContext {
14
+ /** Data from the clicked element (row, point, cell, etc.) */
15
+ selectedData?: Record<string, unknown>;
16
+ /** Current global filters from the dashboard */
17
+ globalFilters?: Record<string, unknown>;
18
+ /** Full widget data */
19
+ widgetData?: Record<string, unknown>;
20
+ /** Widget metadata */
21
+ metadata?: Record<string, unknown>;
22
+ /** Current drilldown depth (0 = root dashboard) */
23
+ currentDepth?: number;
24
+ /** Current drilldown path (array of dashboard IDs) */
25
+ currentPath?: string[];
26
+ /** Source dashboard ID */
27
+ sourceDashboardId?: string;
28
+ }
29
+ export interface DrilldownMetadata {
30
+ /** Current drilldown depth */
31
+ depth: number;
32
+ /** Parent dashboard ID */
33
+ parent: string | null;
34
+ /** Array of dashboard IDs in the drilldown path */
35
+ path: string[];
36
+ }
37
+ export interface UseDrilldownOptions {
38
+ /** Base URL for dashboards (default: /dashboards) */
39
+ basePath?: string;
40
+ /** Callback when drilldown is triggered */
41
+ onDrilldown?: (params: Record<string, unknown>, mode: NavigationMode) => void;
42
+ /** Callback when drilldown modal opens */
43
+ onModalOpen?: (dashboardId: string, params: Record<string, unknown>) => void;
44
+ /** Callback when max depth is reached */
45
+ onMaxDepthReached?: (currentDepth: number, maxDepth: number) => void;
46
+ }
47
+ export interface UseDrilldownResult {
48
+ /** Execute drilldown navigation (resolves once navigation was started or refused) */
49
+ executeDrilldown: (drilldown: WidgetDrilldown, context: DrilldownContext) => Promise<void>;
50
+ /** Check if drilldown is enabled and configured */
51
+ canDrilldown: (widget: Widget) => boolean;
52
+ /** Check if drilldown depth allows navigation */
53
+ canNavigate: (drilldown: WidgetDrilldown, currentDepth: number) => boolean;
54
+ /** Build drilldown URL with parameters (optionally opening a specific page) */
55
+ buildDrilldownUrl: (dashboardId: string, contextParams: Record<string, unknown>, filterParams: Record<string, unknown>, metadata: DrilldownMetadata, pageId?: string | null) => string;
56
+ /** Extract parameters using JSONPath mapping */
57
+ extractParameters: (mapping: Record<string, unknown>, context: DrilldownContext) => Record<string, unknown>;
58
+ /** Parse drilldown metadata from URL */
59
+ parseUrlMetadata: () => DrilldownMetadata;
60
+ /** Parse context params from URL */
61
+ parseUrlContext: () => Record<string, unknown>;
62
+ }
63
+ export declare function useDrilldown(options?: UseDrilldownOptions): UseDrilldownResult;
64
+ export default useDrilldown;
65
+ //# sourceMappingURL=useDrilldown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDrilldown.d.ts","sourceRoot":"","sources":["../../../src/bigconsole/hooks/useDrilldown.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,20 @@
1
- import e from "../store/drilldownStore.js";
2
- import { useBigConsoleNavigate as t } from "../context/BigConsoleContext.js";
1
+ import { useDashboardStore as e } from "../store/dashboardStore.js";
2
+ import t from "../store/drilldownStore.js";
3
+ import "../store/index.js";
4
+ import { GetDrilldownTargetDashboardDocument as n } from "../../generated/wspace-operations.js";
5
+ import { useBigConsoleBasePath as r, useBigConsoleNavigate as i } from "../context/BigConsoleContext.js";
3
6
  import "../context/index.js";
4
- import { useCallback as n } from "react";
7
+ import { PAGE_PARAM as a } from "./useActivePage.js";
8
+ import { useCallback as o } from "react";
9
+ import { useApolloClient as s } from "@apollo/client/react";
10
+ import { useI18n as c } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
11
+ import { toast as l } from "sonner";
5
12
  //#region src/bigconsole/hooks/useDrilldown.ts
6
- var r = "ctx_", i = "filter_", a = "drilldown_", o = new Set([
13
+ var u = "ctx_", d = "filter_", f = "drilldown_", p = "__targetPageId", m = [
14
+ "org",
15
+ "workspace",
16
+ "project"
17
+ ], h = new Set([
7
18
  "selectedData",
8
19
  "selectedRow",
9
20
  "selectedPoint",
@@ -13,12 +24,12 @@ var r = "ctx_", i = "filter_", a = "drilldown_", o = new Set([
13
24
  "widgetData",
14
25
  "metadata"
15
26
  ]);
16
- function s(e, t) {
27
+ function g(e, t) {
17
28
  if (t.startsWith("$.")) {
18
29
  let n = t.slice(2).split(".");
19
30
  if (n.length >= 1 && e && typeof e == "object" && "selectedData" in e) {
20
31
  let t = e.selectedData, r = n[0];
21
- if (!o.has(r) && t && typeof t == "object" && r in t) {
32
+ if (!h.has(r) && t && typeof t == "object" && r in t) {
22
33
  let e = t;
23
34
  for (let t of n) {
24
35
  if (e == null) return;
@@ -66,10 +77,10 @@ function s(e, t) {
66
77
  }
67
78
  return t;
68
79
  }
69
- function c(e) {
80
+ function _(e) {
70
81
  return e == null ? "" : encodeURIComponent(typeof e == "object" ? JSON.stringify(e) : String(e));
71
82
  }
72
- function l(e) {
83
+ function v(e) {
73
84
  if (!e) return;
74
85
  let t = decodeURIComponent(e);
75
86
  try {
@@ -78,23 +89,23 @@ function l(e) {
78
89
  return t;
79
90
  }
80
91
  }
81
- function u(o = {}) {
82
- let { basePath: u = "/dashboards", onDrilldown: d, onModalOpen: f, onMaxDepthReached: p } = o, m = t(), h = e((e) => e.openModal), g = e((e) => e.pushDrilldown), _ = e((e) => e.isOpen), v = n(() => {
83
- let e = new URLSearchParams(window.location.search), t = e.get(`${a}depth`), n = e.get(`${a}parent`), r = e.get(`${a}path`);
92
+ function y(h = {}) {
93
+ let { basePath: y = "/dashboards", onDrilldown: b, onModalOpen: x, onMaxDepthReached: S } = h, C = i(), w = r(), T = s(), { t: E } = c(), D = t((e) => e.openModal), O = t((e) => e.pushDrilldown), k = t((e) => e.isOpen), A = t((e) => e.dashboardId), j = o(() => {
94
+ let e = new URLSearchParams(window.location.search), t = e.get(`${f}depth`), n = e.get(`${f}parent`), r = e.get(`${f}path`);
84
95
  return {
85
96
  depth: t ? parseInt(t, 10) : 0,
86
97
  parent: n || null,
87
98
  path: r ? JSON.parse(decodeURIComponent(r)) : []
88
99
  };
89
- }, []), y = n(() => {
100
+ }, []), M = o(() => {
90
101
  let e = new URLSearchParams(window.location.search), t = {};
91
102
  return e.forEach((e, n) => {
92
103
  if (n.startsWith("ctx_")) {
93
104
  let r = n.slice(4);
94
- t[r] = l(e);
105
+ t[r] = v(e);
95
106
  }
96
107
  }), t;
97
- }, []), b = n((e, t) => {
108
+ }, []), N = o((e, t) => {
98
109
  let n = {}, r = {
99
110
  selectedData: t.selectedData || {},
100
111
  selectedRow: t.selectedData || {},
@@ -113,80 +124,116 @@ function u(o = {}) {
113
124
  for (let [t, a] of Object.entries(e)) if (typeof a == "string") {
114
125
  let e = a.startsWith("$."), o = /^\{\{.+\}\}$/.test(a);
115
126
  if (e || o) {
116
- let e = s(r, a);
127
+ let e = g(r, a);
117
128
  e === void 0 ? i.push(`${t}="${a}"`) : n[t] = e;
118
129
  } else n[t] = a;
119
130
  } else n[t] = a;
120
131
  if (i.length > 0 && console.warn("[useDrilldown] Drilldown parameterMapping path(s) failed to resolve from the clicked context:", i.join(", "), "— available selectedData keys:", t.selectedData ? Object.keys(t.selectedData).join(", ") : "(none)"), Object.keys(n).length === 0 && t.selectedData && Object.keys(t.selectedData).length > 0) for (let [e, r] of Object.entries(t.selectedData)) e.startsWith("_") || e.startsWith("__") || r != null && (typeof r == "string" || typeof r == "number" || typeof r == "boolean" || Array.isArray(r) && r.every((e) => typeof e != "object")) && (n[e] = r);
121
132
  return n;
122
- }, []), x = n((e, t, n, o) => {
123
- let s = new URL(`${u}/${e}`, window.location.origin);
124
- for (let [e, n] of Object.entries(t)) n != null && s.searchParams.set(`${r}${e}`, c(n));
125
- for (let [e, t] of Object.entries(n)) t != null && s.searchParams.set(`${i}${e}`, c(t));
126
- return s.searchParams.set(`${a}depth`, String(o.depth)), o.parent && s.searchParams.set(`${a}parent`, o.parent), o.path.length > 0 && s.searchParams.set(`${a}path`, encodeURIComponent(JSON.stringify(o.path))), s.pathname + s.search;
127
- }, [u]), S = n((e) => !!(e.drilldown?.enabled && e.drilldown?.targetDashboardId), []), C = n((e, t) => t < (e.maxDepth ?? 3), []);
133
+ }, []), P = o((e, t, n, r, i) => {
134
+ let o = new URL(`${y}/${e}`, window.location.origin), s = new URLSearchParams(window.location.search);
135
+ for (let e of m) {
136
+ let t = s.get(e);
137
+ t && o.searchParams.set(e, t);
138
+ }
139
+ i && o.searchParams.set(a, i);
140
+ for (let [e, n] of Object.entries(t)) n != null && o.searchParams.set(`${u}${e}`, _(n));
141
+ for (let [e, t] of Object.entries(n)) t != null && o.searchParams.set(`${d}${e}`, _(t));
142
+ return o.searchParams.set(`${f}depth`, String(r.depth)), r.parent && o.searchParams.set(`${f}parent`, r.parent), r.path.length > 0 && o.searchParams.set(`${f}path`, encodeURIComponent(JSON.stringify(r.path))), o.pathname + o.search;
143
+ }, [y]), F = o((e) => !!(e.drilldown?.enabled && e.drilldown?.targetDashboardId), []), I = o((e, t) => t < (e.maxDepth ?? 3), []), L = o(() => {
144
+ l.warning(E("bigconsole.widget.drilldown.targetUnavailableToast", "This drilldown target is no longer available"), { description: E("bigconsole.widget.drilldown.targetUnavailableToastHelp", "It may have been deleted, archived, or unshared. Ask the dashboard owner to update the drilldown.") });
145
+ }, [E]), R = o(async (e) => {
146
+ try {
147
+ let t = (await T.query({
148
+ query: n,
149
+ variables: { id: e },
150
+ fetchPolicy: "network-only"
151
+ })).data?.getDashboard;
152
+ return !!t && !t.isArchived;
153
+ } catch {
154
+ return !1;
155
+ }
156
+ }, [T]), z = o((e) => new URL(`${w}${e}`, window.location.origin).toString(), [w]);
128
157
  return {
129
- executeDrilldown: n((e, t) => {
130
- if (!e.enabled || !e.targetDashboardId) return;
131
- let n = t.currentDepth ?? v().depth, i = t.currentPath ?? v().path, a = e.maxDepth ?? 3;
132
- if (n >= a) {
133
- p && p(n, a), console.warn(`[useDrilldown] Max drilldown depth (${a}) reached. Navigation blocked.`);
158
+ executeDrilldown: o(async (t, n) => {
159
+ if (!t.enabled || !t.targetDashboardId) return;
160
+ let r = n.currentDepth ?? j().depth, i = n.currentPath ?? j().path, a = t.maxDepth ?? 3;
161
+ if (r >= a) {
162
+ S && S(r, a), console.warn(`[useDrilldown] Max drilldown depth (${a}) reached. Navigation blocked.`);
163
+ return;
164
+ }
165
+ let o = t.targetDashboardId, s = t.targetPageId ?? null, c = n.sourceDashboardId || "", l = o === c, d = k && !!c && c === A;
166
+ if (l && !d) {
167
+ let t = e.getState().currentDashboard?.pages ?? [];
168
+ if (!s || !t.some((e) => e.id === s)) {
169
+ L();
170
+ return;
171
+ }
172
+ } else if (!l && !await R(o)) {
173
+ L();
134
174
  return;
135
175
  }
136
- let o = b(e.parameterMapping || {}, t), s = {};
137
- for (let [e, t] of Object.entries(o)) t != null && (s[`${r}${e}`] = t);
138
- e.passGlobalFilters && t.globalFilters && Object.assign(s, t.globalFilters);
139
- let c = t.sourceDashboardId || "", l = {
140
- depth: n + 1,
176
+ let f = N(t.parameterMapping || {}, n), m = {};
177
+ for (let [e, t] of Object.entries(f)) t != null && (m[`${u}${e}`] = t);
178
+ t.passGlobalFilters && n.globalFilters && Object.assign(m, n.globalFilters);
179
+ let h = {
180
+ depth: r + 1,
141
181
  parent: c,
142
182
  path: c ? [...i, c] : i
143
- }, u = x(e.targetDashboardId, o, s, l);
144
- d && d({
145
- ...o,
146
- ...s
147
- }, e.navigationMode);
148
- let y = e.openIn || "same";
149
- switch (e.navigationMode) {
150
- case "NEW_TAB":
151
- window.open(u, "_blank", "noopener,noreferrer");
152
- break;
153
- case "MODAL": {
154
- let t = {
155
- ...o,
156
- ...s,
157
- __drilldown: l
158
- };
159
- _ ? g(e.targetDashboardId, t) : h(e.targetDashboardId, t), f && f(e.targetDashboardId, {
160
- ...o,
161
- ...s
162
- });
163
- break;
164
- }
165
- default:
166
- y === "new" ? window.open(u, "_blank", "noopener,noreferrer") : m(u);
167
- break;
183
+ }, g = P(o, f, m, h, s);
184
+ b && b({
185
+ ...f,
186
+ ...m
187
+ }, t.navigationMode);
188
+ let _ = t.navigationMode;
189
+ if (_ === "NEW_TAB") {
190
+ window.open(z(g), "_blank", "noopener,noreferrer");
191
+ return;
192
+ }
193
+ if (_ === "MODAL" || d) {
194
+ let e = {
195
+ ...f,
196
+ ...m,
197
+ __drilldown: h,
198
+ [p]: s
199
+ };
200
+ k ? O(o, e) : D(o, e), x && x(o, {
201
+ ...f,
202
+ ...m
203
+ });
204
+ return;
205
+ }
206
+ if (l) {
207
+ let e = g.slice(g.indexOf("?"));
208
+ C(`${window.location.pathname}${e}`);
209
+ return;
168
210
  }
211
+ C(g);
169
212
  }, [
213
+ N,
214
+ P,
215
+ C,
216
+ D,
217
+ O,
218
+ k,
219
+ A,
170
220
  b,
171
221
  x,
172
- m,
173
- h,
174
- g,
175
- _,
176
- d,
177
- f,
178
- p,
179
- v
222
+ S,
223
+ j,
224
+ L,
225
+ R,
226
+ z
180
227
  ]),
181
- canDrilldown: S,
182
- canNavigate: C,
183
- buildDrilldownUrl: x,
184
- extractParameters: b,
185
- parseUrlMetadata: v,
186
- parseUrlContext: y
228
+ canDrilldown: F,
229
+ canNavigate: I,
230
+ buildDrilldownUrl: P,
231
+ extractParameters: N,
232
+ parseUrlMetadata: j,
233
+ parseUrlContext: M
187
234
  };
188
235
  }
189
236
  //#endregion
190
- export { r as CONTEXT_PARAM_PREFIX, a as DRILLDOWN_PARAM_PREFIX, i as FILTER_PARAM_PREFIX, u as default };
237
+ export { u as CONTEXT_PARAM_PREFIX, f as DRILLDOWN_PARAM_PREFIX, d as FILTER_PARAM_PREFIX, p as MODAL_TARGET_PAGE_PARAM, y as default };
191
238
 
192
239
  //# sourceMappingURL=useDrilldown.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDrilldown.js","names":[],"sources":["../../../src/bigconsole/hooks/useDrilldown.ts"],"sourcesContent":["/**\n * useDrilldown Hook\n *\n * Handles widget drilldown navigation with context propagation.\n * Supports three navigation modes: NEW_TAB, MODAL, IN_PLACE\n *\n * Context Propagation Features:\n * - Passes clicked item data (ctx_* params)\n * - Passes global filters when passGlobalFilters=true (filter_* params)\n * - Tracks drilldown metadata (drilldown_depth, drilldown_parent, drilldown_path)\n * - Validates max depth before navigation\n */\n\nimport { useCallback } from 'react';\nimport { useBigConsoleNavigate } from '../context';\nimport type { Widget, WidgetDrilldown, NavigationMode } from '../types';\nimport { useDrilldownStore } from '../store/drilldownStore';\n\n// ============================================================================\n// Constants\n// ============================================================================\n\n/** Prefix for context parameters (clicked item data) */\nexport const CONTEXT_PARAM_PREFIX = 'ctx_';\n/** Prefix for filter parameters (global filters) */\nexport const FILTER_PARAM_PREFIX = 'filter_';\n/** Prefix for drilldown metadata */\nexport const DRILLDOWN_PARAM_PREFIX = 'drilldown_';\n/** Default maximum drilldown depth */\nexport const DEFAULT_MAX_DEPTH = 3;\n\n/**\n * Top-level keys of the context object built by `extractParameters` — must\n * stay in sync with that builder. `extractByPath` uses this set to decide\n * whether `$.foo` is a shortcut for `selectedData.foo` or an explicit\n * root-level key (in which case the traversal skips the shortcut path).\n */\nconst CONTEXT_TOP_LEVEL_KEYS = new Set([\n 'selectedData',\n 'selectedRow',\n 'selectedPoint',\n 'selectedRegion',\n 'selectedCell',\n 'globalFilters',\n 'widgetData',\n 'metadata',\n]);\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface DrilldownContext {\n /** Data from the clicked element (row, point, cell, etc.) */\n selectedData?: Record<string, unknown>;\n /** Current global filters from the dashboard */\n globalFilters?: Record<string, unknown>;\n /** Full widget data */\n widgetData?: Record<string, unknown>;\n /** Widget metadata */\n metadata?: Record<string, unknown>;\n /** Current drilldown depth (0 = root dashboard) */\n currentDepth?: number;\n /** Current drilldown path (array of dashboard IDs) */\n currentPath?: string[];\n /** Source dashboard ID */\n sourceDashboardId?: string;\n}\n\nexport interface DrilldownMetadata {\n /** Current drilldown depth */\n depth: number;\n /** Parent dashboard ID */\n parent: string | null;\n /** Array of dashboard IDs in the drilldown path */\n path: string[];\n}\n\nexport interface UseDrilldownOptions {\n /** Base URL for dashboards (default: /dashboards) */\n basePath?: string;\n /** Callback when drilldown is triggered */\n onDrilldown?: (params: Record<string, unknown>, mode: NavigationMode) => void;\n /** Callback when drilldown modal opens */\n onModalOpen?: (dashboardId: string, params: Record<string, unknown>) => void;\n /** Callback when max depth is reached */\n onMaxDepthReached?: (currentDepth: number, maxDepth: number) => void;\n}\n\nexport interface UseDrilldownResult {\n /** Execute drilldown navigation */\n executeDrilldown: (drilldown: WidgetDrilldown, context: DrilldownContext) => void;\n /** Check if drilldown is enabled and configured */\n canDrilldown: (widget: Widget) => boolean;\n /** Check if drilldown depth allows navigation */\n canNavigate: (drilldown: WidgetDrilldown, currentDepth: number) => boolean;\n /** Build drilldown URL with parameters */\n buildDrilldownUrl: (\n dashboardId: string,\n contextParams: Record<string, unknown>,\n filterParams: Record<string, unknown>,\n metadata: DrilldownMetadata\n ) => string;\n /** Extract parameters using JSONPath mapping */\n extractParameters: (mapping: Record<string, unknown>, context: DrilldownContext) => Record<string, unknown>;\n /** Parse drilldown metadata from URL */\n parseUrlMetadata: () => DrilldownMetadata;\n /** Parse context params from URL */\n parseUrlContext: () => Record<string, unknown>;\n}\n\n// ============================================================================\n// Path Extraction Helper\n// ============================================================================\n\n/**\n * Extract value from context using path expression\n * Supports multiple syntaxes:\n * - JSONPath: $.selectedData.field, $.globalFilters.dateRange\n * - Mustache: {{row.field}}, {{widget.field}}, {{selectedData.field}}\n * - Item shorthand: {{item.field}} for clicked item data\n * - Globals shorthand: {{globals.vars.field}} for global variables\n */\nfunction extractByPath(obj: unknown, path: string): unknown {\n // Handle JSONPath syntax: $.field (shortcut for selectedData.field) or\n // $.selectedData.field / $.globalFilters.x / $.widgetData.y (full paths).\n if (path.startsWith('$.')) {\n const parts = path.slice(2).split('.');\n\n // Shortcut: `$.foo` first tries `selectedData.foo` so users don't have to\n // write `$.selectedData.foo` for the common case of \"a field on the\n // clicked row\". Falls through to root traversal if not found.\n if (parts.length >= 1 && obj && typeof obj === 'object' && 'selectedData' in (obj as Record<string, unknown>)) {\n const selected = (obj as Record<string, unknown>).selectedData;\n const first = parts[0];\n // Only shortcut if the first segment is NOT one of the known top-level\n // context keys (otherwise `$.selectedData.x` would resolve here too,\n // which would break — the user asked for root traversal).\n if (\n !CONTEXT_TOP_LEVEL_KEYS.has(first) &&\n selected &&\n typeof selected === 'object' &&\n first in (selected as Record<string, unknown>)\n ) {\n let current: unknown = selected;\n for (const part of parts) {\n if (current === null || current === undefined) return undefined;\n if (typeof current === 'object' && part in (current as Record<string, unknown>)) {\n current = (current as Record<string, unknown>)[part];\n } else {\n return undefined;\n }\n }\n return current;\n }\n }\n\n // Root traversal (original behavior).\n let current: unknown = obj;\n for (const part of parts) {\n if (current === null || current === undefined) {\n return undefined;\n }\n if (typeof current === 'object' && part in (current as Record<string, unknown>)) {\n current = (current as Record<string, unknown>)[part];\n } else {\n return undefined;\n }\n }\n return current;\n }\n\n // Handle Mustache syntax: {{row.field}} or {{widget.field}}\n const mustacheMatch = path.match(/^\\{\\{(.+)\\}\\}$/);\n if (mustacheMatch) {\n const innerPath = mustacheMatch[1].trim();\n const parts = innerPath.split('.');\n\n // Map common mustache prefixes to context keys\n const contextMap: Record<string, string> = {\n // Item shortcuts (per spec)\n item: 'selectedData',\n 'item.metadata': 'selectedData',\n // Row/table\n row: 'selectedData',\n selectedRow: 'selectedData',\n // Chart point\n point: 'selectedData',\n selectedPoint: 'selectedData',\n // Map region\n region: 'selectedData',\n selectedRegion: 'selectedData',\n // Widget data\n widget: 'widgetData',\n widgetData: 'widgetData',\n // Generic data\n data: 'selectedData',\n selectedData: 'selectedData',\n // Filters\n filters: 'globalFilters',\n globalFilters: 'globalFilters',\n // Globals (per spec)\n globals: 'globalFilters',\n 'globals.vars': 'globalFilters',\n };\n\n let current: unknown = obj;\n\n for (let i = 0; i < parts.length; i++) {\n if (current === null || current === undefined) {\n return undefined;\n }\n\n let part = parts[i];\n\n // Map first part to context key if needed\n if (i === 0 && contextMap[part]) {\n part = contextMap[part];\n }\n // Handle \"globals.vars\" as two-part prefix\n if (i === 0 && part === 'globals' && parts[1] === 'vars') {\n continue; // Skip, will be handled on next iteration\n }\n if (i === 1 && parts[0] === 'globals' && part === 'vars') {\n part = 'globalFilters';\n }\n\n if (typeof current === 'object' && part in (current as Record<string, unknown>)) {\n current = (current as Record<string, unknown>)[part];\n } else {\n return undefined;\n }\n }\n return current;\n }\n\n // Not a path expression, return as static value\n return path;\n}\n\n/**\n * Encode a value for URL parameter\n */\nfunction encodeParamValue(value: unknown): string {\n if (value === null || value === undefined) {\n return '';\n }\n if (typeof value === 'object') {\n return encodeURIComponent(JSON.stringify(value));\n }\n return encodeURIComponent(String(value));\n}\n\n/**\n * Decode a value from URL parameter\n */\nfunction decodeParamValue(encoded: string): unknown {\n if (!encoded) {\n return undefined;\n }\n const decoded = decodeURIComponent(encoded);\n // Try to parse as JSON\n try {\n return JSON.parse(decoded);\n } catch {\n // Return as string\n return decoded;\n }\n}\n\n// ============================================================================\n// Hook\n// ============================================================================\n\nexport function useDrilldown(options: UseDrilldownOptions = {}): UseDrilldownResult {\n const { basePath = '/dashboards', onDrilldown, onModalOpen, onMaxDepthReached } = options;\n const navigate = useBigConsoleNavigate();\n const openModal = useDrilldownStore((state) => state.openModal);\n const pushDrilldown = useDrilldownStore((state) => state.pushDrilldown);\n const isModalOpen = useDrilldownStore((state) => state.isOpen);\n\n /**\n * Parse drilldown metadata from current URL\n */\n const parseUrlMetadata = useCallback((): DrilldownMetadata => {\n const params = new URLSearchParams(window.location.search);\n const depthStr = params.get(`${DRILLDOWN_PARAM_PREFIX}depth`);\n const parent = params.get(`${DRILLDOWN_PARAM_PREFIX}parent`);\n const pathStr = params.get(`${DRILLDOWN_PARAM_PREFIX}path`);\n\n return {\n depth: depthStr ? parseInt(depthStr, 10) : 0,\n parent: parent || null,\n path: pathStr ? JSON.parse(decodeURIComponent(pathStr)) : [],\n };\n }, []);\n\n /**\n * Parse context params from current URL\n */\n const parseUrlContext = useCallback((): Record<string, unknown> => {\n const params = new URLSearchParams(window.location.search);\n const context: Record<string, unknown> = {};\n\n params.forEach((value, key) => {\n if (key.startsWith(CONTEXT_PARAM_PREFIX)) {\n const contextKey = key.slice(CONTEXT_PARAM_PREFIX.length);\n context[contextKey] = decodeParamValue(value);\n }\n });\n\n return context;\n }, []);\n\n /**\n * Extract parameters from context using JSONPath mapping\n * If no mapping is provided, automatically pass all selectedData fields\n */\n const extractParameters = useCallback(\n (mapping: Record<string, unknown>, context: DrilldownContext): Record<string, unknown> => {\n const params: Record<string, unknown> = {};\n\n // Build context object for JSONPath extraction\n const contextObj = {\n selectedData: context.selectedData || {},\n selectedRow: context.selectedData || {}, // Alias for table widgets\n selectedPoint: context.selectedData || {}, // Alias for chart widgets\n selectedRegion: context.selectedData || {}, // Alias for map widgets\n selectedCell: context.selectedData || {}, // Alias for heatmap widgets\n globalFilters: context.globalFilters || {},\n widgetData: context.widgetData || {},\n metadata: context.metadata || {},\n };\n\n // If no mapping provided, automatically pass all selectedData fields\n // This is the default behavior for drilldown - pass clicked item data\n const hasMapping = mapping && Object.keys(mapping).length > 0;\n\n if (!hasMapping && context.selectedData) {\n // Auto-map all fields from clicked item\n for (const [key, value] of Object.entries(context.selectedData)) {\n // Skip internal/metadata fields and complex objects\n if (key.startsWith('_') || key.startsWith('__')) continue;\n if (value === null || value === undefined) continue;\n\n // Only pass primitive values and simple arrays\n if (\n typeof value === 'string' ||\n typeof value === 'number' ||\n typeof value === 'boolean' ||\n (Array.isArray(value) && value.every((v) => typeof v !== 'object'))\n ) {\n params[key] = value;\n }\n }\n return params;\n }\n\n // Use explicit mapping if provided.\n //\n // IMPORTANT: keys are used verbatim. The `ctx_` prefix is added\n // automatically by buildDrilldownUrl — mappings like\n // `{ name: \"$.product\" }` produce URL param `ctx_name=…`. Keys that\n // themselves start with `ctx_` (e.g. a target-side filter that is\n // literally named `ctx_status`) round-trip via double prefix:\n // `ctx_status` → URL `ctx_ctx_status` → parsed back to `ctx_status`.\n // Don't pre-strip here — that would regress the literal-`ctx_` case.\n const unresolvedPaths: string[] = [];\n for (const [key, value] of Object.entries(mapping)) {\n if (typeof value === 'string') {\n // Check if it's a path expression (JSONPath or Mustache)\n const isJsonPath = value.startsWith('$.');\n const isMustache = /^\\{\\{.+\\}\\}$/.test(value);\n\n if (isJsonPath || isMustache) {\n // Extract value from context\n const extracted = extractByPath(contextObj, value);\n if (extracted !== undefined) {\n params[key] = extracted;\n } else {\n // Path expression failed to resolve — track it so we can warn.\n unresolvedPaths.push(`${key}=\"${value}\"`);\n }\n } else {\n // Static string value\n params[key] = value;\n }\n } else {\n // Non-string static value (number, boolean, etc.)\n params[key] = value;\n }\n }\n\n // Intentional production warning: this fires in all environments (not\n // gated behind import.meta.env.DEV like the auto-map log below)\n // because a silently-ignored parameterMapping is a user-visible bug,\n // not a dev-only concern. If you're tempted to gate it, don't —\n // leave it visible in browser devtools for whoever configured the\n // drilldown (BOFF-2250).\n if (unresolvedPaths.length > 0) {\n console.warn(\n '[useDrilldown] Drilldown parameterMapping path(s) failed to resolve from the clicked context:',\n unresolvedPaths.join(', '),\n '— available selectedData keys:',\n context.selectedData ? Object.keys(context.selectedData).join(', ') : '(none)'\n );\n }\n\n // FALLBACK: If explicit mapping yielded no results but we have selectedData,\n // fall back to auto-mapping all selectedData fields.\n // This handles cases like case-sensitivity mismatches in templates.\n if (Object.keys(params).length === 0 && context.selectedData && Object.keys(context.selectedData).length > 0) {\n if (import.meta.env.DEV) {\n console.log(\n '[extractParameters] Explicit mapping yielded no results, falling back to auto-mapping selectedData'\n );\n }\n for (const [key, value] of Object.entries(context.selectedData)) {\n // Skip internal/metadata fields and complex objects\n if (key.startsWith('_') || key.startsWith('__')) continue;\n if (value === null || value === undefined) continue;\n\n // Only pass primitive values and simple arrays\n if (\n typeof value === 'string' ||\n typeof value === 'number' ||\n typeof value === 'boolean' ||\n (Array.isArray(value) && value.every((v) => typeof v !== 'object'))\n ) {\n params[key] = value;\n }\n }\n }\n\n return params;\n },\n []\n );\n\n /**\n * Build URL with context params, filter params, and drilldown metadata\n */\n const buildDrilldownUrl = useCallback(\n (\n dashboardId: string,\n contextParams: Record<string, unknown>,\n filterParams: Record<string, unknown>,\n metadata: DrilldownMetadata\n ): string => {\n const url = new URL(`${basePath}/${dashboardId}`, window.location.origin);\n\n // Add context parameters (ctx_*). Caller-supplied keys have already\n // had any redundant `ctx_` prefix stripped in extractParameters, so a\n // single conventional prefix is applied uniformly here.\n for (const [key, value] of Object.entries(contextParams)) {\n if (value !== undefined && value !== null) {\n url.searchParams.set(`${CONTEXT_PARAM_PREFIX}${key}`, encodeParamValue(value));\n }\n }\n\n // Add filter parameters (filter_*). Keys include the `ctx_` prefix from\n // executeDrilldown's filterParams construction, so this just adds\n // `filter_` on top (producing `filter_ctx_*`).\n for (const [key, value] of Object.entries(filterParams)) {\n if (value !== undefined && value !== null) {\n url.searchParams.set(`${FILTER_PARAM_PREFIX}${key}`, encodeParamValue(value));\n }\n }\n\n // Add drilldown metadata\n url.searchParams.set(`${DRILLDOWN_PARAM_PREFIX}depth`, String(metadata.depth));\n if (metadata.parent) {\n url.searchParams.set(`${DRILLDOWN_PARAM_PREFIX}parent`, metadata.parent);\n }\n if (metadata.path.length > 0) {\n url.searchParams.set(`${DRILLDOWN_PARAM_PREFIX}path`, encodeURIComponent(JSON.stringify(metadata.path)));\n }\n\n return url.pathname + url.search;\n },\n [basePath]\n );\n\n /**\n * Check if widget has valid drilldown configuration\n */\n const canDrilldown = useCallback((widget: Widget): boolean => {\n return Boolean(widget.drilldown?.enabled && widget.drilldown?.targetDashboardId);\n }, []);\n\n /**\n * Check if drilldown depth allows navigation\n */\n const canNavigate = useCallback((drilldown: WidgetDrilldown, currentDepth: number): boolean => {\n const maxDepth = drilldown.maxDepth ?? DEFAULT_MAX_DEPTH;\n return currentDepth < maxDepth;\n }, []);\n\n /**\n * Execute drilldown navigation with full context propagation\n */\n const executeDrilldown = useCallback(\n (drilldown: WidgetDrilldown, context: DrilldownContext) => {\n if (!drilldown.enabled || !drilldown.targetDashboardId) {\n return;\n }\n\n // Get current depth from context or URL\n const currentDepth = context.currentDepth ?? parseUrlMetadata().depth;\n const currentPath = context.currentPath ?? parseUrlMetadata().path;\n const maxDepth = drilldown.maxDepth ?? DEFAULT_MAX_DEPTH;\n\n // Validate depth\n if (currentDepth >= maxDepth) {\n if (onMaxDepthReached) {\n onMaxDepthReached(currentDepth, maxDepth);\n }\n console.warn(`[useDrilldown] Max drilldown depth (${maxDepth}) reached. Navigation blocked.`);\n return;\n }\n\n // Extract context parameters from clicked item using parameter mapping\n const contextParams = extractParameters(drilldown.parameterMapping || {}, context);\n\n // Prepare filter parameters for target dashboard filtering\n // Start with context params prefixed with ctx_ so they become filter_ctx_* params\n // This allows the target dashboard to filter its data based on the clicked item\n const filterParams: Record<string, unknown> = {};\n\n // Add context params as filter params (with ctx_ prefix to match filter_ctx_* format).\n // Keys have already been normalized in extractParameters — user-supplied\n // `ctx_*` keys were stripped there so nothing doubles up here.\n for (const [key, value] of Object.entries(contextParams)) {\n if (value !== undefined && value !== null) {\n filterParams[`${CONTEXT_PARAM_PREFIX}${key}`] = value;\n }\n }\n\n // Also pass existing global filters (if passGlobalFilters is true)\n if (drilldown.passGlobalFilters && context.globalFilters) {\n Object.assign(filterParams, context.globalFilters);\n }\n\n // Build drilldown metadata\n const sourceDashboardId = context.sourceDashboardId || '';\n const metadata: DrilldownMetadata = {\n depth: currentDepth + 1,\n parent: sourceDashboardId,\n path: sourceDashboardId ? [...currentPath, sourceDashboardId] : currentPath,\n };\n\n // Build target URL\n const targetUrl = buildDrilldownUrl(drilldown.targetDashboardId, contextParams, filterParams, metadata);\n\n // Notify callback\n if (onDrilldown) {\n onDrilldown({ ...contextParams, ...filterParams }, drilldown.navigationMode);\n }\n\n // Execute navigation based on mode\n const openIn = drilldown.openIn || 'same';\n const mode = drilldown.navigationMode;\n\n switch (mode) {\n case 'NEW_TAB':\n window.open(targetUrl, '_blank', 'noopener,noreferrer');\n break;\n\n case 'MODAL': {\n // If modal is already open, push to history stack (nested drilldown)\n // Otherwise, open fresh modal\n const modalParams = {\n ...contextParams,\n ...filterParams,\n __drilldown: metadata,\n };\n if (isModalOpen) {\n pushDrilldown(drilldown.targetDashboardId, modalParams);\n } else {\n openModal(drilldown.targetDashboardId, modalParams);\n }\n if (onModalOpen) {\n onModalOpen(drilldown.targetDashboardId, { ...contextParams, ...filterParams });\n }\n break;\n }\n\n case 'IN_PLACE':\n default:\n // Check openIn setting for NEW_TAB override\n if (openIn === 'new') {\n window.open(targetUrl, '_blank', 'noopener,noreferrer');\n } else {\n // Navigate in current window\n navigate(targetUrl);\n }\n break;\n }\n },\n [\n extractParameters,\n buildDrilldownUrl,\n navigate,\n openModal,\n pushDrilldown,\n isModalOpen,\n onDrilldown,\n onModalOpen,\n onMaxDepthReached,\n parseUrlMetadata,\n ]\n );\n\n return {\n executeDrilldown,\n canDrilldown,\n canNavigate,\n buildDrilldownUrl,\n extractParameters,\n parseUrlMetadata,\n parseUrlContext,\n };\n}\n\nexport default useDrilldown;\n"],"mappings":"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"}
1
+ {"version":3,"file":"useDrilldown.js","names":[],"sources":["../../../src/bigconsole/hooks/useDrilldown.ts"],"sourcesContent":["/**\n * useDrilldown Hook\n *\n * Handles widget drilldown navigation with context propagation.\n * Supports three navigation modes: NEW_TAB, MODAL, SAME_WINDOW (IN_PLACE)\n *\n * Targets (BOFF-7625):\n * - Another page of the SAME dashboard: switches page in place on the current\n * route (viewer or builder preview), as a history entry, so Back returns to\n * the originating page.\n * - Another dashboard, optionally a specific page of it (`?page=`). The target\n * is looked up first; a dashboard that was deleted, archived or unshared\n * shows a notice instead of navigating to a broken page.\n *\n * Context Propagation Features:\n * - Passes clicked item data (ctx_* params)\n * - Passes global filters when passGlobalFilters=true (filter_* params)\n * - Tracks drilldown metadata (drilldown_depth, drilldown_parent, drilldown_path)\n * - Validates max depth before navigation\n */\n\nimport { useCallback } from 'react';\nimport { useApolloClient } from '@apollo/client/react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { toast } from 'sonner';\nimport { useBigConsoleBasePath, useBigConsoleNavigate } from '../context';\nimport type { Widget, WidgetDrilldown, NavigationMode } from '../types';\nimport { useDrilldownStore } from '../store/drilldownStore';\nimport { useDashboardStore } from '../store';\nimport {\n GetDrilldownTargetDashboardDocument,\n type GetDrilldownTargetDashboardQuery,\n type GetDrilldownTargetDashboardQueryVariables,\n} from '../../generated/wspace-operations';\nimport { PAGE_PARAM } from './useActivePage';\n\n// ============================================================================\n// Constants\n// ============================================================================\n\n/** Prefix for context parameters (clicked item data) */\nexport const CONTEXT_PARAM_PREFIX = 'ctx_';\n/** Prefix for filter parameters (global filters) */\nexport const FILTER_PARAM_PREFIX = 'filter_';\n/** Prefix for drilldown metadata */\nexport const DRILLDOWN_PARAM_PREFIX = 'drilldown_';\n/** Default maximum drilldown depth */\nexport const DEFAULT_MAX_DEPTH = 3;\n/** Modal param carrying the target page into DrilldownDashboardRenderer (BOFF-7625) */\nexport const MODAL_TARGET_PAGE_PARAM = '__targetPageId';\n/** Host context params kept on new-tab links so they open in the same org/workspace. */\nconst HOST_CONTEXT_PARAMS = ['org', 'workspace', 'project'] as const;\n\n/**\n * Top-level keys of the context object built by `extractParameters` — must\n * stay in sync with that builder. `extractByPath` uses this set to decide\n * whether `$.foo` is a shortcut for `selectedData.foo` or an explicit\n * root-level key (in which case the traversal skips the shortcut path).\n */\nconst CONTEXT_TOP_LEVEL_KEYS = new Set([\n 'selectedData',\n 'selectedRow',\n 'selectedPoint',\n 'selectedRegion',\n 'selectedCell',\n 'globalFilters',\n 'widgetData',\n 'metadata',\n]);\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface DrilldownContext {\n /** Data from the clicked element (row, point, cell, etc.) */\n selectedData?: Record<string, unknown>;\n /** Current global filters from the dashboard */\n globalFilters?: Record<string, unknown>;\n /** Full widget data */\n widgetData?: Record<string, unknown>;\n /** Widget metadata */\n metadata?: Record<string, unknown>;\n /** Current drilldown depth (0 = root dashboard) */\n currentDepth?: number;\n /** Current drilldown path (array of dashboard IDs) */\n currentPath?: string[];\n /** Source dashboard ID */\n sourceDashboardId?: string;\n}\n\nexport interface DrilldownMetadata {\n /** Current drilldown depth */\n depth: number;\n /** Parent dashboard ID */\n parent: string | null;\n /** Array of dashboard IDs in the drilldown path */\n path: string[];\n}\n\nexport interface UseDrilldownOptions {\n /** Base URL for dashboards (default: /dashboards) */\n basePath?: string;\n /** Callback when drilldown is triggered */\n onDrilldown?: (params: Record<string, unknown>, mode: NavigationMode) => void;\n /** Callback when drilldown modal opens */\n onModalOpen?: (dashboardId: string, params: Record<string, unknown>) => void;\n /** Callback when max depth is reached */\n onMaxDepthReached?: (currentDepth: number, maxDepth: number) => void;\n}\n\nexport interface UseDrilldownResult {\n /** Execute drilldown navigation (resolves once navigation was started or refused) */\n executeDrilldown: (drilldown: WidgetDrilldown, context: DrilldownContext) => Promise<void>;\n /** Check if drilldown is enabled and configured */\n canDrilldown: (widget: Widget) => boolean;\n /** Check if drilldown depth allows navigation */\n canNavigate: (drilldown: WidgetDrilldown, currentDepth: number) => boolean;\n /** Build drilldown URL with parameters (optionally opening a specific page) */\n buildDrilldownUrl: (\n dashboardId: string,\n contextParams: Record<string, unknown>,\n filterParams: Record<string, unknown>,\n metadata: DrilldownMetadata,\n pageId?: string | null\n ) => string;\n /** Extract parameters using JSONPath mapping */\n extractParameters: (mapping: Record<string, unknown>, context: DrilldownContext) => Record<string, unknown>;\n /** Parse drilldown metadata from URL */\n parseUrlMetadata: () => DrilldownMetadata;\n /** Parse context params from URL */\n parseUrlContext: () => Record<string, unknown>;\n}\n\n// ============================================================================\n// Path Extraction Helper\n// ============================================================================\n\n/**\n * Extract value from context using path expression\n * Supports multiple syntaxes:\n * - JSONPath: $.selectedData.field, $.globalFilters.dateRange\n * - Mustache: {{row.field}}, {{widget.field}}, {{selectedData.field}}\n * - Item shorthand: {{item.field}} for clicked item data\n * - Globals shorthand: {{globals.vars.field}} for global variables\n */\nfunction extractByPath(obj: unknown, path: string): unknown {\n // Handle JSONPath syntax: $.field (shortcut for selectedData.field) or\n // $.selectedData.field / $.globalFilters.x / $.widgetData.y (full paths).\n if (path.startsWith('$.')) {\n const parts = path.slice(2).split('.');\n\n // Shortcut: `$.foo` first tries `selectedData.foo` so users don't have to\n // write `$.selectedData.foo` for the common case of \"a field on the\n // clicked row\". Falls through to root traversal if not found.\n if (parts.length >= 1 && obj && typeof obj === 'object' && 'selectedData' in (obj as Record<string, unknown>)) {\n const selected = (obj as Record<string, unknown>).selectedData;\n const first = parts[0];\n // Only shortcut if the first segment is NOT one of the known top-level\n // context keys (otherwise `$.selectedData.x` would resolve here too,\n // which would break — the user asked for root traversal).\n if (\n !CONTEXT_TOP_LEVEL_KEYS.has(first) &&\n selected &&\n typeof selected === 'object' &&\n first in (selected as Record<string, unknown>)\n ) {\n let current: unknown = selected;\n for (const part of parts) {\n if (current === null || current === undefined) return undefined;\n if (typeof current === 'object' && part in (current as Record<string, unknown>)) {\n current = (current as Record<string, unknown>)[part];\n } else {\n return undefined;\n }\n }\n return current;\n }\n }\n\n // Root traversal (original behavior).\n let current: unknown = obj;\n for (const part of parts) {\n if (current === null || current === undefined) {\n return undefined;\n }\n if (typeof current === 'object' && part in (current as Record<string, unknown>)) {\n current = (current as Record<string, unknown>)[part];\n } else {\n return undefined;\n }\n }\n return current;\n }\n\n // Handle Mustache syntax: {{row.field}} or {{widget.field}}\n const mustacheMatch = path.match(/^\\{\\{(.+)\\}\\}$/);\n if (mustacheMatch) {\n const innerPath = mustacheMatch[1].trim();\n const parts = innerPath.split('.');\n\n // Map common mustache prefixes to context keys\n const contextMap: Record<string, string> = {\n // Item shortcuts (per spec)\n item: 'selectedData',\n 'item.metadata': 'selectedData',\n // Row/table\n row: 'selectedData',\n selectedRow: 'selectedData',\n // Chart point\n point: 'selectedData',\n selectedPoint: 'selectedData',\n // Map region\n region: 'selectedData',\n selectedRegion: 'selectedData',\n // Widget data\n widget: 'widgetData',\n widgetData: 'widgetData',\n // Generic data\n data: 'selectedData',\n selectedData: 'selectedData',\n // Filters\n filters: 'globalFilters',\n globalFilters: 'globalFilters',\n // Globals (per spec)\n globals: 'globalFilters',\n 'globals.vars': 'globalFilters',\n };\n\n let current: unknown = obj;\n\n for (let i = 0; i < parts.length; i++) {\n if (current === null || current === undefined) {\n return undefined;\n }\n\n let part = parts[i];\n\n // Map first part to context key if needed\n if (i === 0 && contextMap[part]) {\n part = contextMap[part];\n }\n // Handle \"globals.vars\" as two-part prefix\n if (i === 0 && part === 'globals' && parts[1] === 'vars') {\n continue; // Skip, will be handled on next iteration\n }\n if (i === 1 && parts[0] === 'globals' && part === 'vars') {\n part = 'globalFilters';\n }\n\n if (typeof current === 'object' && part in (current as Record<string, unknown>)) {\n current = (current as Record<string, unknown>)[part];\n } else {\n return undefined;\n }\n }\n return current;\n }\n\n // Not a path expression, return as static value\n return path;\n}\n\n/**\n * Encode a value for URL parameter\n */\nfunction encodeParamValue(value: unknown): string {\n if (value === null || value === undefined) {\n return '';\n }\n if (typeof value === 'object') {\n return encodeURIComponent(JSON.stringify(value));\n }\n return encodeURIComponent(String(value));\n}\n\n/**\n * Decode a value from URL parameter\n */\nfunction decodeParamValue(encoded: string): unknown {\n if (!encoded) {\n return undefined;\n }\n const decoded = decodeURIComponent(encoded);\n // Try to parse as JSON\n try {\n return JSON.parse(decoded);\n } catch {\n // Return as string\n return decoded;\n }\n}\n\n// ============================================================================\n// Hook\n// ============================================================================\n\nexport function useDrilldown(options: UseDrilldownOptions = {}): UseDrilldownResult {\n const { basePath = '/dashboards', onDrilldown, onModalOpen, onMaxDepthReached } = options;\n const navigate = useBigConsoleNavigate();\n const appBasePath = useBigConsoleBasePath();\n const apolloClient = useApolloClient();\n const { t } = useI18n();\n const openModal = useDrilldownStore((state) => state.openModal);\n const pushDrilldown = useDrilldownStore((state) => state.pushDrilldown);\n const isModalOpen = useDrilldownStore((state) => state.isOpen);\n const modalDashboardId = useDrilldownStore((state) => state.dashboardId);\n\n /**\n * Parse drilldown metadata from current URL\n */\n const parseUrlMetadata = useCallback((): DrilldownMetadata => {\n const params = new URLSearchParams(window.location.search);\n const depthStr = params.get(`${DRILLDOWN_PARAM_PREFIX}depth`);\n const parent = params.get(`${DRILLDOWN_PARAM_PREFIX}parent`);\n const pathStr = params.get(`${DRILLDOWN_PARAM_PREFIX}path`);\n\n return {\n depth: depthStr ? parseInt(depthStr, 10) : 0,\n parent: parent || null,\n path: pathStr ? JSON.parse(decodeURIComponent(pathStr)) : [],\n };\n }, []);\n\n /**\n * Parse context params from current URL\n */\n const parseUrlContext = useCallback((): Record<string, unknown> => {\n const params = new URLSearchParams(window.location.search);\n const context: Record<string, unknown> = {};\n\n params.forEach((value, key) => {\n if (key.startsWith(CONTEXT_PARAM_PREFIX)) {\n const contextKey = key.slice(CONTEXT_PARAM_PREFIX.length);\n context[contextKey] = decodeParamValue(value);\n }\n });\n\n return context;\n }, []);\n\n /**\n * Extract parameters from context using JSONPath mapping\n * If no mapping is provided, automatically pass all selectedData fields\n */\n const extractParameters = useCallback(\n (mapping: Record<string, unknown>, context: DrilldownContext): Record<string, unknown> => {\n const params: Record<string, unknown> = {};\n\n // Build context object for JSONPath extraction\n const contextObj = {\n selectedData: context.selectedData || {},\n selectedRow: context.selectedData || {}, // Alias for table widgets\n selectedPoint: context.selectedData || {}, // Alias for chart widgets\n selectedRegion: context.selectedData || {}, // Alias for map widgets\n selectedCell: context.selectedData || {}, // Alias for heatmap widgets\n globalFilters: context.globalFilters || {},\n widgetData: context.widgetData || {},\n metadata: context.metadata || {},\n };\n\n // If no mapping provided, automatically pass all selectedData fields\n // This is the default behavior for drilldown - pass clicked item data\n const hasMapping = mapping && Object.keys(mapping).length > 0;\n\n if (!hasMapping && context.selectedData) {\n // Auto-map all fields from clicked item\n for (const [key, value] of Object.entries(context.selectedData)) {\n // Skip internal/metadata fields and complex objects\n if (key.startsWith('_') || key.startsWith('__')) continue;\n if (value === null || value === undefined) continue;\n\n // Only pass primitive values and simple arrays\n if (\n typeof value === 'string' ||\n typeof value === 'number' ||\n typeof value === 'boolean' ||\n (Array.isArray(value) && value.every((v) => typeof v !== 'object'))\n ) {\n params[key] = value;\n }\n }\n return params;\n }\n\n // Use explicit mapping if provided.\n //\n // IMPORTANT: keys are used verbatim. The `ctx_` prefix is added\n // automatically by buildDrilldownUrl — mappings like\n // `{ name: \"$.product\" }` produce URL param `ctx_name=…`. Keys that\n // themselves start with `ctx_` (e.g. a target-side filter that is\n // literally named `ctx_status`) round-trip via double prefix:\n // `ctx_status` → URL `ctx_ctx_status` → parsed back to `ctx_status`.\n // Don't pre-strip here — that would regress the literal-`ctx_` case.\n const unresolvedPaths: string[] = [];\n for (const [key, value] of Object.entries(mapping)) {\n if (typeof value === 'string') {\n // Check if it's a path expression (JSONPath or Mustache)\n const isJsonPath = value.startsWith('$.');\n const isMustache = /^\\{\\{.+\\}\\}$/.test(value);\n\n if (isJsonPath || isMustache) {\n // Extract value from context\n const extracted = extractByPath(contextObj, value);\n if (extracted !== undefined) {\n params[key] = extracted;\n } else {\n // Path expression failed to resolve — track it so we can warn.\n unresolvedPaths.push(`${key}=\"${value}\"`);\n }\n } else {\n // Static string value\n params[key] = value;\n }\n } else {\n // Non-string static value (number, boolean, etc.)\n params[key] = value;\n }\n }\n\n // Intentional production warning: this fires in all environments (not\n // gated behind import.meta.env.DEV like the auto-map log below)\n // because a silently-ignored parameterMapping is a user-visible bug,\n // not a dev-only concern. If you're tempted to gate it, don't —\n // leave it visible in browser devtools for whoever configured the\n // drilldown (BOFF-2250).\n if (unresolvedPaths.length > 0) {\n console.warn(\n '[useDrilldown] Drilldown parameterMapping path(s) failed to resolve from the clicked context:',\n unresolvedPaths.join(', '),\n '— available selectedData keys:',\n context.selectedData ? Object.keys(context.selectedData).join(', ') : '(none)'\n );\n }\n\n // FALLBACK: If explicit mapping yielded no results but we have selectedData,\n // fall back to auto-mapping all selectedData fields.\n // This handles cases like case-sensitivity mismatches in templates.\n if (Object.keys(params).length === 0 && context.selectedData && Object.keys(context.selectedData).length > 0) {\n if (import.meta.env.DEV) {\n console.log(\n '[extractParameters] Explicit mapping yielded no results, falling back to auto-mapping selectedData'\n );\n }\n for (const [key, value] of Object.entries(context.selectedData)) {\n // Skip internal/metadata fields and complex objects\n if (key.startsWith('_') || key.startsWith('__')) continue;\n if (value === null || value === undefined) continue;\n\n // Only pass primitive values and simple arrays\n if (\n typeof value === 'string' ||\n typeof value === 'number' ||\n typeof value === 'boolean' ||\n (Array.isArray(value) && value.every((v) => typeof v !== 'object'))\n ) {\n params[key] = value;\n }\n }\n }\n\n return params;\n },\n []\n );\n\n /**\n * Build URL with context params, filter params, and drilldown metadata\n */\n const buildDrilldownUrl = useCallback(\n (\n dashboardId: string,\n contextParams: Record<string, unknown>,\n filterParams: Record<string, unknown>,\n metadata: DrilldownMetadata,\n pageId?: string | null\n ): string => {\n const url = new URL(`${basePath}/${dashboardId}`, window.location.origin);\n\n // Keep the host's org/workspace/project context on every drilldown URL.\n const current = new URLSearchParams(window.location.search);\n for (const key of HOST_CONTEXT_PARAMS) {\n const value = current.get(key);\n if (value) url.searchParams.set(key, value);\n }\n\n if (pageId) {\n url.searchParams.set(PAGE_PARAM, pageId);\n }\n\n // Add context parameters (ctx_*). Caller-supplied keys have already\n // had any redundant `ctx_` prefix stripped in extractParameters, so a\n // single conventional prefix is applied uniformly here.\n for (const [key, value] of Object.entries(contextParams)) {\n if (value !== undefined && value !== null) {\n url.searchParams.set(`${CONTEXT_PARAM_PREFIX}${key}`, encodeParamValue(value));\n }\n }\n\n // Add filter parameters (filter_*). Keys include the `ctx_` prefix from\n // executeDrilldown's filterParams construction, so this just adds\n // `filter_` on top (producing `filter_ctx_*`).\n for (const [key, value] of Object.entries(filterParams)) {\n if (value !== undefined && value !== null) {\n url.searchParams.set(`${FILTER_PARAM_PREFIX}${key}`, encodeParamValue(value));\n }\n }\n\n // Add drilldown metadata\n url.searchParams.set(`${DRILLDOWN_PARAM_PREFIX}depth`, String(metadata.depth));\n if (metadata.parent) {\n url.searchParams.set(`${DRILLDOWN_PARAM_PREFIX}parent`, metadata.parent);\n }\n if (metadata.path.length > 0) {\n url.searchParams.set(`${DRILLDOWN_PARAM_PREFIX}path`, encodeURIComponent(JSON.stringify(metadata.path)));\n }\n\n return url.pathname + url.search;\n },\n [basePath]\n );\n\n /**\n * Check if widget has valid drilldown configuration\n */\n const canDrilldown = useCallback((widget: Widget): boolean => {\n return Boolean(widget.drilldown?.enabled && widget.drilldown?.targetDashboardId);\n }, []);\n\n /**\n * Check if drilldown depth allows navigation\n */\n const canNavigate = useCallback((drilldown: WidgetDrilldown, currentDepth: number): boolean => {\n const maxDepth = drilldown.maxDepth ?? DEFAULT_MAX_DEPTH;\n return currentDepth < maxDepth;\n }, []);\n\n /**\n * Tell the viewer a drilldown target cannot be opened (deleted, archived,\n * unshared, or a page that no longer exists) instead of navigating to it.\n */\n const notifyUnavailable = useCallback(() => {\n toast.warning(\n t('bigconsole.widget.drilldown.targetUnavailableToast', 'This drilldown target is no longer available'),\n {\n description: t(\n 'bigconsole.widget.drilldown.targetUnavailableToastHelp',\n 'It may have been deleted, archived, or unshared. Ask the dashboard owner to update the drilldown.'\n ),\n }\n );\n }, [t]);\n\n /**\n * Whether another dashboard can still be opened by this viewer. getDashboard\n * returns null for anything the caller cannot read.\n */\n const isDashboardAvailable = useCallback(\n async (dashboardId: string): Promise<boolean> => {\n try {\n const result = await apolloClient.query<\n GetDrilldownTargetDashboardQuery,\n GetDrilldownTargetDashboardQueryVariables\n >({\n query: GetDrilldownTargetDashboardDocument,\n variables: { id: dashboardId },\n fetchPolicy: 'network-only',\n });\n const target = result.data?.getDashboard;\n return !!target && !target.isArchived;\n } catch {\n return false;\n }\n },\n [apolloClient]\n );\n\n /** Absolute URL for a new tab: the route URL under the app's base path. */\n const toNewTabUrl = useCallback(\n (routeUrl: string): string => {\n // buildDrilldownUrl already carries the org/workspace context params.\n return new URL(`${appBasePath}${routeUrl}`, window.location.origin).toString();\n },\n [appBasePath]\n );\n\n /**\n * Execute drilldown navigation with full context propagation\n */\n const executeDrilldown = useCallback(\n async (drilldown: WidgetDrilldown, context: DrilldownContext) => {\n if (!drilldown.enabled || !drilldown.targetDashboardId) {\n return;\n }\n\n // Get current depth from context or URL\n const currentDepth = context.currentDepth ?? parseUrlMetadata().depth;\n const currentPath = context.currentPath ?? parseUrlMetadata().path;\n const maxDepth = drilldown.maxDepth ?? DEFAULT_MAX_DEPTH;\n\n // Validate depth\n if (currentDepth >= maxDepth) {\n if (onMaxDepthReached) {\n onMaxDepthReached(currentDepth, maxDepth);\n }\n console.warn(`[useDrilldown] Max drilldown depth (${maxDepth}) reached. Navigation blocked.`);\n return;\n }\n\n const targetDashboardId = drilldown.targetDashboardId;\n const targetPageId = drilldown.targetPageId ?? null;\n const sourceDashboardId = context.sourceDashboardId || '';\n const sameDashboard = targetDashboardId === sourceDashboardId;\n const inModal = isModalOpen && !!sourceDashboardId && sourceDashboardId === modalDashboardId;\n\n // Availability. Same dashboard: the page must still exist (the modal\n // renderer checks its own dashboard's pages). Other dashboard: ask the\n // server, which hides anything the viewer cannot read.\n if (sameDashboard && !inModal) {\n const pages = useDashboardStore.getState().currentDashboard?.pages ?? [];\n if (!targetPageId || !pages.some((page) => page.id === targetPageId)) {\n notifyUnavailable();\n return;\n }\n } else if (!sameDashboard && !(await isDashboardAvailable(targetDashboardId))) {\n notifyUnavailable();\n return;\n }\n\n // Extract context parameters from clicked item using parameter mapping\n const contextParams = extractParameters(drilldown.parameterMapping || {}, context);\n\n // Prepare filter parameters for target dashboard filtering\n // Start with context params prefixed with ctx_ so they become filter_ctx_* params\n // This allows the target dashboard to filter its data based on the clicked item\n const filterParams: Record<string, unknown> = {};\n\n // Add context params as filter params (with ctx_ prefix to match filter_ctx_* format).\n // Keys have already been normalized in extractParameters — user-supplied\n // `ctx_*` keys were stripped there so nothing doubles up here.\n for (const [key, value] of Object.entries(contextParams)) {\n if (value !== undefined && value !== null) {\n filterParams[`${CONTEXT_PARAM_PREFIX}${key}`] = value;\n }\n }\n\n // Also pass existing global filters (if passGlobalFilters is true)\n if (drilldown.passGlobalFilters && context.globalFilters) {\n Object.assign(filterParams, context.globalFilters);\n }\n\n // Build drilldown metadata\n const metadata: DrilldownMetadata = {\n depth: currentDepth + 1,\n parent: sourceDashboardId,\n path: sourceDashboardId ? [...currentPath, sourceDashboardId] : currentPath,\n };\n\n // Build target URL\n const targetUrl = buildDrilldownUrl(targetDashboardId, contextParams, filterParams, metadata, targetPageId);\n\n // Notify callback\n if (onDrilldown) {\n onDrilldown({ ...contextParams, ...filterParams }, drilldown.navigationMode);\n }\n\n const mode = drilldown.navigationMode;\n\n if (mode === 'NEW_TAB') {\n window.open(toNewTabUrl(targetUrl), '_blank', 'noopener,noreferrer');\n return;\n }\n\n // Inside the modal, MODAL and same-dashboard drilldowns stay in the modal\n // (its own Back stack); otherwise MODAL opens a fresh one.\n if (mode === 'MODAL' || inModal) {\n const modalParams = {\n ...contextParams,\n ...filterParams,\n __drilldown: metadata,\n [MODAL_TARGET_PAGE_PARAM]: targetPageId,\n };\n if (isModalOpen) {\n pushDrilldown(targetDashboardId, modalParams);\n } else {\n openModal(targetDashboardId, modalParams);\n }\n if (onModalOpen) {\n onModalOpen(targetDashboardId, { ...contextParams, ...filterParams });\n }\n return;\n }\n\n if (sameDashboard) {\n // Stay on the current route (viewer, or the builder's preview) and only\n // change the query: a pushed history entry, so Back returns here.\n const search = targetUrl.slice(targetUrl.indexOf('?'));\n navigate(`${window.location.pathname}${search}`);\n return;\n }\n\n navigate(targetUrl);\n },\n [\n extractParameters,\n buildDrilldownUrl,\n navigate,\n openModal,\n pushDrilldown,\n isModalOpen,\n modalDashboardId,\n onDrilldown,\n onModalOpen,\n onMaxDepthReached,\n parseUrlMetadata,\n notifyUnavailable,\n isDashboardAvailable,\n toNewTabUrl,\n ]\n );\n\n return {\n executeDrilldown,\n canDrilldown,\n canNavigate,\n buildDrilldownUrl,\n extractParameters,\n parseUrlMetadata,\n parseUrlContext,\n };\n}\n\nexport default useDrilldown;\n"],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import { WidgetDrilldown, NavigationMode } from '../types';
2
+
3
+ export interface CreateDrilldownInput {
4
+ sourceWidgetId: string;
5
+ targetDashboardId: string;
6
+ /** Page of the target dashboard; omit/null for its first page (BOFF-7625) */
7
+ targetPageId?: string | null;
8
+ parameterMapping: Record<string, string>;
9
+ navigationMode?: NavigationMode;
10
+ /** Whether to pass global filters to target dashboard */
11
+ passGlobalFilters?: boolean;
12
+ /** Maximum drilldown depth allowed (default: 3) */
13
+ maxDepth?: number;
14
+ }
15
+ export interface UpdateDrilldownInput {
16
+ id: string;
17
+ targetDashboardId?: string;
18
+ /** Page of the target dashboard; `null` clears it (first page) (BOFF-7625) */
19
+ targetPageId?: string | null;
20
+ parameterMapping?: Record<string, string>;
21
+ navigationMode?: NavigationMode;
22
+ enabled?: boolean;
23
+ /** Whether to pass global filters to target dashboard */
24
+ passGlobalFilters?: boolean;
25
+ /** Maximum drilldown depth allowed (default: 3) */
26
+ maxDepth?: number;
27
+ }
28
+ export interface UseDrilldownOperationsResult {
29
+ /** Create a new drilldown configuration. Throws when the server rejects it. */
30
+ createDrilldown: (input: CreateDrilldownInput) => Promise<WidgetDrilldown | null>;
31
+ /** Update an existing drilldown configuration. Throws when the server rejects it. */
32
+ updateDrilldown: (input: UpdateDrilldownInput) => Promise<WidgetDrilldown | null>;
33
+ /** Delete a drilldown configuration. Throws when the server rejects it. */
34
+ deleteDrilldown: (id: string) => Promise<boolean>;
35
+ /** Loading state */
36
+ loading: boolean;
37
+ /** Last error, if the most recent operation failed */
38
+ error: Error | null;
39
+ }
40
+ export declare function useDrilldownOperations(): UseDrilldownOperationsResult;
41
+ export default useDrilldownOperations;
42
+ //# sourceMappingURL=useDrilldownOperations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDrilldownOperations.d.ts","sourceRoot":"","sources":["../../../src/bigconsole/hooks/useDrilldownOperations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AASH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAsBhE,MAAM,WAAW,oBAAoB;IACnC,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,6EAA6E;IAC7E,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,yDAAyD;IACzD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,8EAA8E;IAC9E,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yDAAyD;IACzD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,4BAA4B;IAC3C,+EAA+E;IAC/E,eAAe,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;IAClF,qFAAqF;IACrF,eAAe,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;IAClF,2EAA2E;IAC3E,eAAe,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAClD,oBAAoB;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,sDAAsD;IACtD,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAUD,wBAAgB,sBAAsB,IAAI,4BAA4B,CA0GrE;AAED,eAAe,sBAAsB,CAAC"}
@@ -2,61 +2,67 @@ import { CreateWidgetDrilldownDocument as e, DeleteWidgetDrilldownDocument as t,
2
2
  import { useCallback as r, useState as i } from "react";
3
3
  import { useMutation as a } from "@apollo/client/react";
4
4
  //#region src/bigconsole/hooks/useDrilldownOperations.ts
5
- function o() {
6
- let [o, s] = i(!1), [c, l] = i(null), [u] = a(e), [d] = a(n), [f] = a(t);
5
+ function o(e) {
6
+ return e instanceof Error ? e : Error(String(e));
7
+ }
8
+ function s() {
9
+ let [s, c] = i(!1), [l, u] = i(null), [d] = a(e), [f] = a(n), [p] = a(t);
7
10
  return {
8
11
  createDrilldown: r(async (e) => {
9
- s(!0), l(null);
12
+ c(!0), u(null);
10
13
  try {
11
- return (await u({ variables: {
14
+ return (await d({ variables: {
12
15
  sourceWidgetId: e.sourceWidgetId,
13
16
  targetDashboardId: e.targetDashboardId,
17
+ targetPageId: e.targetPageId ?? null,
14
18
  parameterMapping: e.parameterMapping,
15
19
  navigationMode: e.navigationMode || "MODAL",
16
20
  passGlobalFilters: e.passGlobalFilters ?? !0,
17
- maxDepth: e.maxDepth ?? 3,
18
- openIn: e.openIn ?? "same"
19
- } })).data?.createWidgetDrilldown || null;
21
+ maxDepth: e.maxDepth ?? 3
22
+ } })).data?.createWidgetDrilldown ?? null;
20
23
  } catch (e) {
21
- return l(e), null;
24
+ let t = o(e);
25
+ throw u(t), t;
22
26
  } finally {
23
- s(!1);
27
+ c(!1);
24
28
  }
25
- }, [u]),
29
+ }, [d]),
26
30
  updateDrilldown: r(async (e) => {
27
- s(!0), l(null);
31
+ c(!0), u(null);
28
32
  try {
29
- return (await d({ variables: {
33
+ let t = {
30
34
  id: e.id,
31
35
  targetDashboardId: e.targetDashboardId,
32
36
  parameterMapping: e.parameterMapping,
33
37
  navigationMode: e.navigationMode,
34
38
  enabled: e.enabled,
35
39
  passGlobalFilters: e.passGlobalFilters,
36
- maxDepth: e.maxDepth,
37
- openIn: e.openIn
38
- } })).data?.updateWidgetDrilldown || null;
40
+ maxDepth: e.maxDepth
41
+ };
42
+ return e.targetPageId !== void 0 && (t.targetPageId = e.targetPageId), (await f({ variables: t })).data?.updateWidgetDrilldown ?? null;
39
43
  } catch (e) {
40
- return l(e), null;
44
+ let t = o(e);
45
+ throw u(t), t;
41
46
  } finally {
42
- s(!1);
47
+ c(!1);
43
48
  }
44
- }, [d]),
49
+ }, [f]),
45
50
  deleteDrilldown: r(async (e) => {
46
- s(!0), l(null);
51
+ c(!0), u(null);
47
52
  try {
48
- return !!(await f({ variables: { id: e } })).data?.deleteWidgetDrilldown;
53
+ return !!(await p({ variables: { id: e } })).data?.deleteWidgetDrilldown;
49
54
  } catch (e) {
50
- return l(e), !1;
55
+ let t = o(e);
56
+ throw u(t), t;
51
57
  } finally {
52
- s(!1);
58
+ c(!1);
53
59
  }
54
- }, [f]),
55
- loading: o,
56
- error: c
60
+ }, [p]),
61
+ loading: s,
62
+ error: l
57
63
  };
58
64
  }
59
65
  //#endregion
60
- export { o as default };
66
+ export { s as default };
61
67
 
62
68
  //# sourceMappingURL=useDrilldownOperations.js.map