@flanksource/clicky-ui 0.3.54 → 0.3.56
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.
- package/NOTICE.md +6 -0
- package/dist/ai.cjs +6 -0
- package/dist/ai.js +3 -1
- package/dist/chat.cjs +2 -0
- package/dist/chat.d.ts +1 -0
- package/dist/chat.d.ts.map +1 -1
- package/dist/chat.js +2 -1
- package/dist/comments/CommentCard.cjs +37 -7
- package/dist/comments/CommentCard.cjs.map +1 -1
- package/dist/comments/CommentCard.d.ts +11 -1
- package/dist/comments/CommentCard.d.ts.map +1 -1
- package/dist/comments/CommentCard.js +37 -7
- package/dist/comments/CommentCard.js.map +1 -1
- package/dist/comments/CommentCardParts.cjs +9 -4
- package/dist/comments/CommentCardParts.cjs.map +1 -1
- package/dist/comments/CommentCardParts.d.ts.map +1 -1
- package/dist/comments/CommentCardParts.js +9 -4
- package/dist/comments/CommentCardParts.js.map +1 -1
- package/dist/comments/CommentComposer.cjs +8 -8
- package/dist/comments/CommentComposer.cjs.map +1 -1
- package/dist/comments/CommentComposer.d.ts.map +1 -1
- package/dist/comments/CommentComposer.js +8 -8
- package/dist/comments/CommentComposer.js.map +1 -1
- package/dist/comments/CommentProvider.cjs +5 -1
- package/dist/comments/CommentProvider.cjs.map +1 -1
- package/dist/comments/CommentProvider.d.ts +1 -1
- package/dist/comments/CommentProvider.d.ts.map +1 -1
- package/dist/comments/CommentProvider.js +5 -1
- package/dist/comments/CommentProvider.js.map +1 -1
- package/dist/comments/CommentSidePanel.cjs +17 -11
- package/dist/comments/CommentSidePanel.cjs.map +1 -1
- package/dist/comments/CommentSidePanel.d.ts +6 -0
- package/dist/comments/CommentSidePanel.d.ts.map +1 -1
- package/dist/comments/CommentSidePanel.js +17 -11
- package/dist/comments/CommentSidePanel.js.map +1 -1
- package/dist/comments/CommentThread.cjs +4 -1
- package/dist/comments/CommentThread.cjs.map +1 -1
- package/dist/comments/CommentThread.d.ts +4 -1
- package/dist/comments/CommentThread.d.ts.map +1 -1
- package/dist/comments/CommentThread.js +4 -1
- package/dist/comments/CommentThread.js.map +1 -1
- package/dist/comments/CommentThreadList.cjs +6 -3
- package/dist/comments/CommentThreadList.cjs.map +1 -1
- package/dist/comments/CommentThreadList.d.ts +7 -2
- package/dist/comments/CommentThreadList.d.ts.map +1 -1
- package/dist/comments/CommentThreadList.js +6 -3
- package/dist/comments/CommentThreadList.js.map +1 -1
- package/dist/comments/MentionTextarea.cjs +1 -1
- package/dist/comments/MentionTextarea.cjs.map +1 -1
- package/dist/comments/MentionTextarea.d.ts.map +1 -1
- package/dist/comments/MentionTextarea.js +1 -1
- package/dist/comments/MentionTextarea.js.map +1 -1
- package/dist/comments/comment-assign.cjs +68 -0
- package/dist/comments/comment-assign.cjs.map +1 -0
- package/dist/comments/comment-assign.d.ts +31 -0
- package/dist/comments/comment-assign.d.ts.map +1 -0
- package/dist/comments/comment-assign.js +67 -0
- package/dist/comments/comment-assign.js.map +1 -0
- package/dist/comments/comment-types.cjs.map +1 -1
- package/dist/comments/comment-types.d.ts +39 -0
- package/dist/comments/comment-types.d.ts.map +1 -1
- package/dist/comments/comment-types.js.map +1 -1
- package/dist/comments/comment-utils.cjs +2 -0
- package/dist/comments/comment-utils.cjs.map +1 -1
- package/dist/comments/comment-utils.d.ts +2 -0
- package/dist/comments/comment-utils.d.ts.map +1 -1
- package/dist/comments/comment-utils.js +2 -0
- package/dist/comments/comment-utils.js.map +1 -1
- package/dist/comments.cjs +3 -0
- package/dist/comments.d.ts +1 -0
- package/dist/comments.d.ts.map +1 -1
- package/dist/comments.js +2 -1
- package/dist/components/ComboboxMenu.cjs +23 -13
- package/dist/components/ComboboxMenu.cjs.map +1 -1
- package/dist/components/ComboboxMenu.d.ts.map +1 -1
- package/dist/components/ComboboxMenu.js +23 -13
- package/dist/components/ComboboxMenu.js.map +1 -1
- package/dist/components/FilterBar.cjs +29 -6
- package/dist/components/FilterBar.cjs.map +1 -1
- package/dist/components/FilterBar.d.ts +3 -1
- package/dist/components/FilterBar.d.ts.map +1 -1
- package/dist/components/FilterBar.js +29 -6
- package/dist/components/FilterBar.js.map +1 -1
- package/dist/components/ItemActions.cjs +1 -1
- package/dist/components/ItemActions.cjs.map +1 -1
- package/dist/components/ItemActions.js +1 -1
- package/dist/components/ItemActions.js.map +1 -1
- package/dist/components/ListMenu.cjs +33 -3
- package/dist/components/ListMenu.cjs.map +1 -1
- package/dist/components/ListMenu.d.ts +4 -1
- package/dist/components/ListMenu.d.ts.map +1 -1
- package/dist/components/ListMenu.js +33 -3
- package/dist/components/ListMenu.js.map +1 -1
- package/dist/components/ListMenuItems.cjs +80 -0
- package/dist/components/ListMenuItems.cjs.map +1 -0
- package/dist/components/ListMenuItems.d.ts +8 -0
- package/dist/components/ListMenuItems.d.ts.map +1 -0
- package/dist/components/ListMenuItems.js +80 -0
- package/dist/components/ListMenuItems.js.map +1 -0
- package/dist/components/LocalPathPicker.cjs +182 -0
- package/dist/components/LocalPathPicker.cjs.map +1 -0
- package/dist/components/LocalPathPicker.d.ts +11 -0
- package/dist/components/LocalPathPicker.d.ts.map +1 -0
- package/dist/components/LocalPathPicker.js +182 -0
- package/dist/components/LocalPathPicker.js.map +1 -0
- package/dist/components/LocalPathTree.cjs +89 -0
- package/dist/components/LocalPathTree.cjs.map +1 -0
- package/dist/components/LocalPathTree.d.ts +9 -0
- package/dist/components/LocalPathTree.d.ts.map +1 -0
- package/dist/components/LocalPathTree.js +89 -0
- package/dist/components/LocalPathTree.js.map +1 -0
- package/dist/components/RangeSlider.cjs +10 -30
- package/dist/components/RangeSlider.cjs.map +1 -1
- package/dist/components/RangeSlider.d.ts.map +1 -1
- package/dist/components/RangeSlider.js +4 -24
- package/dist/components/RangeSlider.js.map +1 -1
- package/dist/components/Slider.cjs +79 -0
- package/dist/components/Slider.cjs.map +1 -0
- package/dist/components/Slider.d.ts +23 -0
- package/dist/components/Slider.d.ts.map +1 -0
- package/dist/components/Slider.js +79 -0
- package/dist/components/Slider.js.map +1 -0
- package/dist/components/combobox-types.d.ts +4 -1
- package/dist/components/combobox-types.d.ts.map +1 -1
- package/dist/components/filter-bar-field-utils.cjs +3 -5
- package/dist/components/filter-bar-field-utils.cjs.map +1 -1
- package/dist/components/filter-bar-field-utils.d.ts.map +1 -1
- package/dist/components/filter-bar-field-utils.js +3 -5
- package/dist/components/filter-bar-field-utils.js.map +1 -1
- package/dist/components/filter-bar-tree-model.cjs +22 -0
- package/dist/components/filter-bar-tree-model.cjs.map +1 -0
- package/dist/components/filter-bar-tree-model.d.ts +33 -0
- package/dist/components/filter-bar-tree-model.d.ts.map +1 -0
- package/dist/components/filter-bar-tree-model.js +21 -0
- package/dist/components/filter-bar-tree-model.js.map +1 -0
- package/dist/components/filter-bar-tree.cjs +84 -0
- package/dist/components/filter-bar-tree.cjs.map +1 -0
- package/dist/components/filter-bar-tree.d.ts +7 -0
- package/dist/components/filter-bar-tree.d.ts.map +1 -0
- package/dist/components/filter-bar-tree.js +84 -0
- package/dist/components/filter-bar-tree.js.map +1 -0
- package/dist/components/json-schema-form-debug-glyph-map.cjs +2 -0
- package/dist/components/json-schema-form-debug-glyph-map.cjs.map +1 -1
- package/dist/components/json-schema-form-debug-glyph-map.d.ts.map +1 -1
- package/dist/components/json-schema-form-debug-glyph-map.js +2 -0
- package/dist/components/json-schema-form-debug-glyph-map.js.map +1 -1
- package/dist/components/json-schema-form-help-links.cjs +18 -0
- package/dist/components/json-schema-form-help-links.cjs.map +1 -0
- package/dist/components/json-schema-form-help-links.d.ts +5 -0
- package/dist/components/json-schema-form-help-links.d.ts.map +1 -0
- package/dist/components/json-schema-form-help-links.js +18 -0
- package/dist/components/json-schema-form-help-links.js.map +1 -0
- package/dist/components/json-schema-form-help-model.cjs +7 -0
- package/dist/components/json-schema-form-help-model.cjs.map +1 -0
- package/dist/components/json-schema-form-help-model.d.ts +3 -0
- package/dist/components/json-schema-form-help-model.d.ts.map +1 -0
- package/dist/components/json-schema-form-help-model.js +7 -0
- package/dist/components/json-schema-form-help-model.js.map +1 -0
- package/dist/components/json-schema-form-json.cjs +48 -0
- package/dist/components/json-schema-form-json.cjs.map +1 -0
- package/dist/components/json-schema-form-json.d.ts +7 -0
- package/dist/components/json-schema-form-json.d.ts.map +1 -0
- package/dist/components/json-schema-form-json.js +48 -0
- package/dist/components/json-schema-form-json.js.map +1 -0
- package/dist/components/json-schema-form-layout.cjs +7 -5
- package/dist/components/json-schema-form-layout.cjs.map +1 -1
- package/dist/components/json-schema-form-layout.d.ts +2 -2
- package/dist/components/json-schema-form-layout.d.ts.map +1 -1
- package/dist/components/json-schema-form-layout.js +7 -5
- package/dist/components/json-schema-form-layout.js.map +1 -1
- package/dist/components/json-schema-form-object.cjs +2 -13
- package/dist/components/json-schema-form-object.cjs.map +1 -1
- package/dist/components/json-schema-form-object.d.ts.map +1 -1
- package/dist/components/json-schema-form-object.js +2 -13
- package/dist/components/json-schema-form-object.js.map +1 -1
- package/dist/components/json-schema-form-refs.cjs +1 -1
- package/dist/components/json-schema-form-refs.cjs.map +1 -1
- package/dist/components/json-schema-form-refs.d.ts.map +1 -1
- package/dist/components/json-schema-form-refs.js +1 -1
- package/dist/components/json-schema-form-refs.js.map +1 -1
- package/dist/components/json-schema-form-render.cjs +20 -6
- package/dist/components/json-schema-form-render.cjs.map +1 -1
- package/dist/components/json-schema-form-render.d.ts.map +1 -1
- package/dist/components/json-schema-form-render.js +20 -6
- package/dist/components/json-schema-form-render.js.map +1 -1
- package/dist/components/json-schema-form-resolve.cjs +22 -2
- package/dist/components/json-schema-form-resolve.cjs.map +1 -1
- package/dist/components/json-schema-form-resolve.d.ts.map +1 -1
- package/dist/components/json-schema-form-resolve.js +22 -2
- package/dist/components/json-schema-form-resolve.js.map +1 -1
- package/dist/components/json-schema-form-types.d.ts +5 -1
- package/dist/components/json-schema-form-types.d.ts.map +1 -1
- package/dist/components/json-schema-form-union-model.cjs +46 -0
- package/dist/components/json-schema-form-union-model.cjs.map +1 -0
- package/dist/components/json-schema-form-union-model.d.ts +6 -0
- package/dist/components/json-schema-form-union-model.d.ts.map +1 -0
- package/dist/components/json-schema-form-union-model.js +43 -0
- package/dist/components/json-schema-form-union-model.js.map +1 -0
- package/dist/components/json-schema-form-union.cjs +52 -0
- package/dist/components/json-schema-form-union.cjs.map +1 -0
- package/dist/components/json-schema-form-union.d.ts +7 -0
- package/dist/components/json-schema-form-union.d.ts.map +1 -0
- package/dist/components/json-schema-form-union.js +52 -0
- package/dist/components/json-schema-form-union.js.map +1 -0
- package/dist/components/list-menu-virtual.cjs +5 -0
- package/dist/components/list-menu-virtual.cjs.map +1 -0
- package/dist/components/list-menu-virtual.d.ts +12 -0
- package/dist/components/list-menu-virtual.d.ts.map +1 -0
- package/dist/components/list-menu-virtual.js +6 -0
- package/dist/components/list-menu-virtual.js.map +1 -0
- package/dist/components/local-path.cjs +12 -0
- package/dist/components/local-path.cjs.map +1 -0
- package/dist/components/local-path.d.ts +14 -0
- package/dist/components/local-path.d.ts.map +1 -0
- package/dist/components/local-path.js +12 -0
- package/dist/components/local-path.js.map +1 -0
- package/dist/components/slider-shared.cjs +32 -0
- package/dist/components/slider-shared.cjs.map +1 -0
- package/dist/components/slider-shared.d.ts +18 -0
- package/dist/components/slider-shared.d.ts.map +1 -0
- package/dist/components/slider-shared.js +27 -0
- package/dist/components/slider-shared.js.map +1 -0
- package/dist/components.cjs +8 -0
- package/dist/components.d.ts +6 -1
- package/dist/components.d.ts.map +1 -1
- package/dist/components.js +5 -1
- package/dist/connections/ConnectionsPage.cjs +51 -19
- package/dist/connections/ConnectionsPage.cjs.map +1 -1
- package/dist/connections/ConnectionsPage.d.ts +9 -1
- package/dist/connections/ConnectionsPage.d.ts.map +1 -1
- package/dist/connections/ConnectionsPage.js +52 -20
- package/dist/connections/ConnectionsPage.js.map +1 -1
- package/dist/connections/connectionDashboard.cjs +13 -8
- package/dist/connections/connectionDashboard.cjs.map +1 -1
- package/dist/connections/connectionDashboard.d.ts +8 -3
- package/dist/connections/connectionDashboard.d.ts.map +1 -1
- package/dist/connections/connectionDashboard.js +14 -9
- package/dist/connections/connectionDashboard.js.map +1 -1
- package/dist/connections/connectionDashboardModel.cjs.map +1 -1
- package/dist/connections/connectionDashboardModel.d.ts +4 -0
- package/dist/connections/connectionDashboardModel.d.ts.map +1 -1
- package/dist/connections/connectionDashboardModel.js.map +1 -1
- package/dist/connections/connectionDashboardRow.cjs +75 -55
- package/dist/connections/connectionDashboardRow.cjs.map +1 -1
- package/dist/connections/connectionDashboardRow.d.ts +3 -2
- package/dist/connections/connectionDashboardRow.d.ts.map +1 -1
- package/dist/connections/connectionDashboardRow.js +75 -55
- package/dist/connections/connectionDashboardRow.js.map +1 -1
- package/dist/connections/connectionNamespaceField.cjs +17 -0
- package/dist/connections/connectionNamespaceField.cjs.map +1 -0
- package/dist/connections/connectionNamespaceField.d.ts +10 -0
- package/dist/connections/connectionNamespaceField.d.ts.map +1 -0
- package/dist/connections/connectionNamespaceField.js +17 -0
- package/dist/connections/connectionNamespaceField.js.map +1 -0
- package/dist/connections/connectionSchemaFormExtensions.cjs +98 -0
- package/dist/connections/connectionSchemaFormExtensions.cjs.map +1 -0
- package/dist/connections/connectionSchemaFormExtensions.d.ts +41 -0
- package/dist/connections/connectionSchemaFormExtensions.d.ts.map +1 -0
- package/dist/connections/connectionSchemaFormExtensions.js +96 -0
- package/dist/connections/connectionSchemaFormExtensions.js.map +1 -0
- package/dist/connections/connectionsPageModel.cjs +11 -0
- package/dist/connections/connectionsPageModel.cjs.map +1 -1
- package/dist/connections/connectionsPageModel.d.ts +5 -0
- package/dist/connections/connectionsPageModel.d.ts.map +1 -1
- package/dist/connections/connectionsPageModel.js +11 -1
- package/dist/connections/connectionsPageModel.js.map +1 -1
- package/dist/connections.cjs +5 -0
- package/dist/connections.d.ts +2 -1
- package/dist/connections.d.ts.map +1 -1
- package/dist/connections.js +3 -2
- package/dist/data/AvatarBadge.cjs +3 -3
- package/dist/data/AvatarBadge.cjs.map +1 -1
- package/dist/data/AvatarBadge.js +3 -3
- package/dist/data/AvatarBadge.js.map +1 -1
- package/dist/data/CodeDiff.cjs +2 -0
- package/dist/data/CodeDiff.cjs.map +1 -1
- package/dist/data/CodeDiff.js +2 -0
- package/dist/data/CodeDiff.js.map +1 -1
- package/dist/data/DataTable.cjs +3 -2
- package/dist/data/DataTable.cjs.map +1 -1
- package/dist/data/DataTable.d.ts.map +1 -1
- package/dist/data/DataTable.js +3 -2
- package/dist/data/DataTable.js.map +1 -1
- package/dist/data/Gauge.cjs +1 -1
- package/dist/data/Gauge.cjs.map +1 -1
- package/dist/data/Gauge.js +1 -1
- package/dist/data/Gauge.js.map +1 -1
- package/dist/data/HighlightedTokens.cjs +2 -10
- package/dist/data/HighlightedTokens.cjs.map +1 -1
- package/dist/data/HighlightedTokens.d.ts.map +1 -1
- package/dist/data/HighlightedTokens.js +1 -9
- package/dist/data/HighlightedTokens.js.map +1 -1
- package/dist/data/Markdown.cjs +38 -11
- package/dist/data/Markdown.cjs.map +1 -1
- package/dist/data/Markdown.d.ts +9 -1
- package/dist/data/Markdown.d.ts.map +1 -1
- package/dist/data/Markdown.js +39 -12
- package/dist/data/Markdown.js.map +1 -1
- package/dist/data/MultiGaugeBar.cjs +157 -0
- package/dist/data/MultiGaugeBar.cjs.map +1 -0
- package/dist/data/MultiGaugeBar.d.ts +29 -0
- package/dist/data/MultiGaugeBar.d.ts.map +1 -0
- package/dist/data/MultiGaugeBar.js +157 -0
- package/dist/data/MultiGaugeBar.js.map +1 -0
- package/dist/data/OpenInFilesLink.cjs +27 -0
- package/dist/data/OpenInFilesLink.cjs.map +1 -0
- package/dist/data/OpenInFilesLink.d.ts +15 -0
- package/dist/data/OpenInFilesLink.d.ts.map +1 -0
- package/dist/data/OpenInFilesLink.js +27 -0
- package/dist/data/OpenInFilesLink.js.map +1 -0
- package/dist/data/ProgressBar.cjs +5 -3
- package/dist/data/ProgressBar.cjs.map +1 -1
- package/dist/data/ProgressBar.d.ts +5 -1
- package/dist/data/ProgressBar.d.ts.map +1 -1
- package/dist/data/ProgressBar.js +5 -3
- package/dist/data/ProgressBar.js.map +1 -1
- package/dist/data/ProgressBars.cjs +13 -5
- package/dist/data/ProgressBars.cjs.map +1 -1
- package/dist/data/ProgressBars.d.ts +6 -1
- package/dist/data/ProgressBars.d.ts.map +1 -1
- package/dist/data/ProgressBars.js +13 -5
- package/dist/data/ProgressBars.js.map +1 -1
- package/dist/data/Properties.cjs +3 -3
- package/dist/data/Properties.cjs.map +1 -1
- package/dist/data/Properties.js +3 -3
- package/dist/data/Properties.js.map +1 -1
- package/dist/data/TaskProgress.cjs +14 -6
- package/dist/data/TaskProgress.cjs.map +1 -1
- package/dist/data/TaskProgress.d.ts +3 -1
- package/dist/data/TaskProgress.d.ts.map +1 -1
- package/dist/data/TaskProgress.js +14 -6
- package/dist/data/TaskProgress.js.map +1 -1
- package/dist/data/TaskPrompts.cjs +96 -0
- package/dist/data/TaskPrompts.cjs.map +1 -0
- package/dist/data/TaskPrompts.d.ts +6 -0
- package/dist/data/TaskPrompts.d.ts.map +1 -0
- package/dist/data/TaskPrompts.js +96 -0
- package/dist/data/TaskPrompts.js.map +1 -0
- package/dist/data/TaskSnapshot.cjs.map +1 -1
- package/dist/data/TaskSnapshot.d.ts +3 -0
- package/dist/data/TaskSnapshot.d.ts.map +1 -1
- package/dist/data/TaskSnapshot.js.map +1 -1
- package/dist/data/TimeseriesCoreBars.cjs +7 -3
- package/dist/data/TimeseriesCoreBars.cjs.map +1 -1
- package/dist/data/TimeseriesCoreBars.d.ts.map +1 -1
- package/dist/data/TimeseriesCoreBars.js +8 -4
- package/dist/data/TimeseriesCoreBars.js.map +1 -1
- package/dist/data/TimeseriesGauge.cjs +12 -5
- package/dist/data/TimeseriesGauge.cjs.map +1 -1
- package/dist/data/TimeseriesGauge.d.ts.map +1 -1
- package/dist/data/TimeseriesGauge.js +13 -6
- package/dist/data/TimeseriesGauge.js.map +1 -1
- package/dist/data/TimeseriesPanel.cjs +10 -9
- package/dist/data/TimeseriesPanel.cjs.map +1 -1
- package/dist/data/TimeseriesPanel.d.ts +1 -1
- package/dist/data/TimeseriesPanel.d.ts.map +1 -1
- package/dist/data/TimeseriesPanel.js +11 -10
- package/dist/data/TimeseriesPanel.js.map +1 -1
- package/dist/data/TimeseriesPanel.model.cjs +62 -10
- package/dist/data/TimeseriesPanel.model.cjs.map +1 -1
- package/dist/data/TimeseriesPanel.model.d.ts +40 -1
- package/dist/data/TimeseriesPanel.model.d.ts.map +1 -1
- package/dist/data/TimeseriesPanel.model.js +62 -11
- package/dist/data/TimeseriesPanel.model.js.map +1 -1
- package/dist/data/WorkloadCard.cjs +7 -3
- package/dist/data/WorkloadCard.cjs.map +1 -1
- package/dist/data/WorkloadCard.d.ts +3 -1
- package/dist/data/WorkloadCard.d.ts.map +1 -1
- package/dist/data/WorkloadCard.js +7 -3
- package/dist/data/WorkloadCard.js.map +1 -1
- package/dist/data/WorkloadCard.model.cjs.map +1 -1
- package/dist/data/WorkloadCard.model.d.ts +2 -0
- package/dist/data/WorkloadCard.model.d.ts.map +1 -1
- package/dist/data/WorkloadCard.model.js.map +1 -1
- package/dist/data/ai/ChatWindow.placement.cjs +2 -1
- package/dist/data/ai/ChatWindow.placement.cjs.map +1 -1
- package/dist/data/ai/ChatWindow.placement.d.ts +1 -1
- package/dist/data/ai/ChatWindow.placement.d.ts.map +1 -1
- package/dist/data/ai/ChatWindow.placement.js +2 -1
- package/dist/data/ai/ChatWindow.placement.js.map +1 -1
- package/dist/data/ai/SpecRuntimeBar.cjs +2 -2
- package/dist/data/ai/SpecRuntimeBar.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeBar.d.ts +4 -1
- package/dist/data/ai/SpecRuntimeBar.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeBar.js +2 -2
- package/dist/data/ai/SpecRuntimeBar.js.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/PromptSection.cjs +1 -1
- package/dist/data/ai/SpecRuntimeEditor/PromptSection.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/PromptSection.js +1 -1
- package/dist/data/ai/SpecRuntimeEditor/PromptSection.js.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor.model.cjs +2 -2
- package/dist/data/ai/SpecRuntimeEditor.model.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor.model.d.ts +2 -2
- package/dist/data/ai/SpecRuntimeEditor.model.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor.model.js +2 -2
- package/dist/data/ai/SpecRuntimeEditor.model.js.map +1 -1
- package/dist/data/ai/ThreadPicker.cjs +2 -2
- package/dist/data/ai/ThreadPicker.cjs.map +1 -1
- package/dist/data/ai/ThreadPicker.js +2 -2
- package/dist/data/ai/ThreadPicker.js.map +1 -1
- package/dist/data/ai/index.d.ts +2 -0
- package/dist/data/ai/index.d.ts.map +1 -1
- package/dist/data/ai/use-prompt-run-stream.cjs +126 -0
- package/dist/data/ai/use-prompt-run-stream.cjs.map +1 -0
- package/dist/data/ai/use-prompt-run-stream.d.ts +52 -0
- package/dist/data/ai/use-prompt-run-stream.d.ts.map +1 -0
- package/dist/data/ai/use-prompt-run-stream.js +126 -0
- package/dist/data/ai/use-prompt-run-stream.js.map +1 -0
- package/dist/data/cache-browser/CacheBrowser.cjs +1 -0
- package/dist/data/cache-browser/CacheBrowser.cjs.map +1 -1
- package/dist/data/cache-browser/CacheBrowser.d.ts.map +1 -1
- package/dist/data/cache-browser/CacheBrowser.js +1 -0
- package/dist/data/cache-browser/CacheBrowser.js.map +1 -1
- package/dist/data/charts/BarChart.cjs +194 -0
- package/dist/data/charts/BarChart.cjs.map +1 -0
- package/dist/data/charts/BarChart.d.ts +19 -0
- package/dist/data/charts/BarChart.d.ts.map +1 -0
- package/dist/data/charts/BarChart.js +194 -0
- package/dist/data/charts/BarChart.js.map +1 -0
- package/dist/data/charts/ChartLegend.cjs +54 -0
- package/dist/data/charts/ChartLegend.cjs.map +1 -0
- package/dist/data/charts/ChartLegend.d.ts +17 -0
- package/dist/data/charts/ChartLegend.d.ts.map +1 -0
- package/dist/data/charts/ChartLegend.js +54 -0
- package/dist/data/charts/ChartLegend.js.map +1 -0
- package/dist/data/charts/Sparkline.cjs +56 -0
- package/dist/data/charts/Sparkline.cjs.map +1 -0
- package/dist/data/charts/Sparkline.d.ts +15 -0
- package/dist/data/charts/Sparkline.d.ts.map +1 -0
- package/dist/data/charts/Sparkline.js +56 -0
- package/dist/data/charts/Sparkline.js.map +1 -0
- package/dist/data/charts/StackedBarChart.cjs +241 -0
- package/dist/data/charts/StackedBarChart.cjs.map +1 -0
- package/dist/data/charts/StackedBarChart.d.ts +20 -0
- package/dist/data/charts/StackedBarChart.d.ts.map +1 -0
- package/dist/data/charts/StackedBarChart.js +241 -0
- package/dist/data/charts/StackedBarChart.js.map +1 -0
- package/dist/data/charts/TrendChart.cjs +157 -0
- package/dist/data/charts/TrendChart.cjs.map +1 -0
- package/dist/data/charts/TrendChart.d.ts +20 -0
- package/dist/data/charts/TrendChart.d.ts.map +1 -0
- package/dist/data/charts/TrendChart.js +157 -0
- package/dist/data/charts/TrendChart.js.map +1 -0
- package/dist/data/charts/chart-marks.cjs +115 -0
- package/dist/data/charts/chart-marks.cjs.map +1 -0
- package/dist/data/charts/chart-marks.d.ts +39 -0
- package/dist/data/charts/chart-marks.d.ts.map +1 -0
- package/dist/data/charts/chart-marks.js +112 -0
- package/dist/data/charts/chart-marks.js.map +1 -0
- package/dist/data/charts/chart-palette.cjs +74 -0
- package/dist/data/charts/chart-palette.cjs.map +1 -0
- package/dist/data/charts/chart-palette.d.ts +58 -0
- package/dist/data/charts/chart-palette.d.ts.map +1 -0
- package/dist/data/charts/chart-palette.js +72 -0
- package/dist/data/charts/chart-palette.js.map +1 -0
- package/dist/data/charts/chart-scale.cjs +115 -0
- package/dist/data/charts/chart-scale.cjs.map +1 -0
- package/dist/data/charts/chart-scale.d.ts +41 -0
- package/dist/data/charts/chart-scale.d.ts.map +1 -0
- package/dist/data/charts/chart-scale.js +104 -0
- package/dist/data/charts/chart-scale.js.map +1 -0
- package/dist/data/charts/chart.test-utils.d.ts +7 -0
- package/dist/data/charts/chart.test-utils.d.ts.map +1 -0
- package/dist/data/charts/index.d.ts +7 -0
- package/dist/data/charts/index.d.ts.map +1 -0
- package/dist/data/chat/MessageActions.cjs +1 -1
- package/dist/data/chat/MessageActions.cjs.map +1 -1
- package/dist/data/chat/MessageActions.js +1 -1
- package/dist/data/chat/MessageActions.js.map +1 -1
- package/dist/data/diagnostics/DiagnosticsDetailPanel.cjs +1 -1
- package/dist/data/diagnostics/DiagnosticsDetailPanel.js +1 -1
- package/dist/data/diagnostics/DiagnosticsTree.cjs +1 -1
- package/dist/data/diagnostics/DiagnosticsTree.cjs.map +1 -1
- package/dist/data/diagnostics/DiagnosticsTree.js +1 -1
- package/dist/data/diagnostics/DiagnosticsTree.js.map +1 -1
- package/dist/data/diagnostics/FrameSourceWindow.cjs +9 -2
- package/dist/data/diagnostics/FrameSourceWindow.cjs.map +1 -1
- package/dist/data/diagnostics/FrameSourceWindow.d.ts +1 -1
- package/dist/data/diagnostics/FrameSourceWindow.d.ts.map +1 -1
- package/dist/data/diagnostics/FrameSourceWindow.js +9 -2
- package/dist/data/diagnostics/FrameSourceWindow.js.map +1 -1
- package/dist/data/diagnostics/ProblemActions.cjs +37 -0
- package/dist/data/diagnostics/ProblemActions.cjs.map +1 -0
- package/dist/data/diagnostics/ProblemActions.d.ts +6 -0
- package/dist/data/diagnostics/ProblemActions.d.ts.map +1 -0
- package/dist/data/diagnostics/ProblemActions.js +37 -0
- package/dist/data/diagnostics/ProblemActions.js.map +1 -0
- package/dist/data/diagnostics/ProblemFacet.cjs +33 -0
- package/dist/data/diagnostics/ProblemFacet.cjs.map +1 -0
- package/dist/data/diagnostics/ProblemFacet.d.ts +9 -0
- package/dist/data/diagnostics/ProblemFacet.d.ts.map +1 -0
- package/dist/data/diagnostics/ProblemFacet.js +33 -0
- package/dist/data/diagnostics/ProblemFacet.js.map +1 -0
- package/dist/data/diagnostics/ProblemRow.cjs +62 -0
- package/dist/data/diagnostics/ProblemRow.cjs.map +1 -0
- package/dist/data/diagnostics/ProblemRow.d.ts +14 -0
- package/dist/data/diagnostics/ProblemRow.d.ts.map +1 -0
- package/dist/data/diagnostics/ProblemRow.js +62 -0
- package/dist/data/diagnostics/ProblemRow.js.map +1 -0
- package/dist/data/diagnostics/ProblemViewOptions.cjs +18 -0
- package/dist/data/diagnostics/ProblemViewOptions.cjs.map +1 -0
- package/dist/data/diagnostics/ProblemViewOptions.d.ts +6 -0
- package/dist/data/diagnostics/ProblemViewOptions.d.ts.map +1 -0
- package/dist/data/diagnostics/ProblemViewOptions.js +18 -0
- package/dist/data/diagnostics/ProblemViewOptions.js.map +1 -0
- package/dist/data/diagnostics/StackFrameRow.cjs +1 -1
- package/dist/data/diagnostics/StackFrameRow.cjs.map +1 -1
- package/dist/data/diagnostics/StackFrameRow.js +1 -1
- package/dist/data/diagnostics/StackFrameRow.js.map +1 -1
- package/dist/data/diagnostics/diagnostic-identity.cjs +14 -0
- package/dist/data/diagnostics/diagnostic-identity.cjs.map +1 -0
- package/dist/data/diagnostics/diagnostic-identity.d.ts +3 -0
- package/dist/data/diagnostics/diagnostic-identity.d.ts.map +1 -0
- package/dist/data/diagnostics/diagnostic-identity.js +14 -0
- package/dist/data/diagnostics/diagnostic-identity.js.map +1 -0
- package/dist/data/diagnostics/use-problem-expansion.cjs +16 -0
- package/dist/data/diagnostics/use-problem-expansion.cjs.map +1 -0
- package/dist/data/diagnostics/use-problem-expansion.d.ts +3 -0
- package/dist/data/diagnostics/use-problem-expansion.d.ts.map +1 -0
- package/dist/data/diagnostics/use-problem-expansion.js +16 -0
- package/dist/data/diagnostics/use-problem-expansion.js.map +1 -0
- package/dist/data/git/GitChangeList.cjs +9 -6
- package/dist/data/git/GitChangeList.cjs.map +1 -1
- package/dist/data/git/GitChangeList.d.ts +6 -0
- package/dist/data/git/GitChangeList.d.ts.map +1 -1
- package/dist/data/git/GitChangeList.js +9 -6
- package/dist/data/git/GitChangeList.js.map +1 -1
- package/dist/data/git/pickers/GitPickersDemo.d.ts.map +1 -1
- package/dist/data/git/pickers/ReferencePicker.cjs +1 -0
- package/dist/data/git/pickers/ReferencePicker.cjs.map +1 -1
- package/dist/data/git/pickers/ReferencePicker.js +1 -0
- package/dist/data/git/pickers/ReferencePicker.js.map +1 -1
- package/dist/data/lint/LintDetail.cjs +230 -189
- package/dist/data/lint/LintDetail.cjs.map +1 -1
- package/dist/data/lint/LintDetail.d.ts +25 -3
- package/dist/data/lint/LintDetail.d.ts.map +1 -1
- package/dist/data/lint/LintDetail.js +231 -192
- package/dist/data/lint/LintDetail.js.map +1 -1
- package/dist/data/lint/LintFilterBar.cjs +78 -83
- package/dist/data/lint/LintFilterBar.cjs.map +1 -1
- package/dist/data/lint/LintFilterBar.d.ts +23 -6
- package/dist/data/lint/LintFilterBar.d.ts.map +1 -1
- package/dist/data/lint/LintFilterBar.js +78 -85
- package/dist/data/lint/LintFilterBar.js.map +1 -1
- package/dist/data/lint/LintIgnoreMenu.cjs +59 -0
- package/dist/data/lint/LintIgnoreMenu.cjs.map +1 -0
- package/dist/data/lint/LintIgnoreMenu.d.ts +20 -0
- package/dist/data/lint/LintIgnoreMenu.d.ts.map +1 -0
- package/dist/data/lint/LintIgnoreMenu.js +58 -0
- package/dist/data/lint/LintIgnoreMenu.js.map +1 -0
- package/dist/data/lint/LintResults.cjs +59 -14
- package/dist/data/lint/LintResults.cjs.map +1 -1
- package/dist/data/lint/LintResults.d.ts +25 -1
- package/dist/data/lint/LintResults.d.ts.map +1 -1
- package/dist/data/lint/LintResults.fixtures.d.ts +19 -0
- package/dist/data/lint/LintResults.fixtures.d.ts.map +1 -1
- package/dist/data/lint/LintResults.js +60 -15
- package/dist/data/lint/LintResults.js.map +1 -1
- package/dist/data/lint/LintTable.cjs +156 -0
- package/dist/data/lint/LintTable.cjs.map +1 -0
- package/dist/data/lint/LintTable.d.ts +13 -0
- package/dist/data/lint/LintTable.d.ts.map +1 -0
- package/dist/data/lint/LintTable.js +156 -0
- package/dist/data/lint/LintTable.js.map +1 -0
- package/dist/data/lint/LintTreeNode.cjs +42 -19
- package/dist/data/lint/LintTreeNode.cjs.map +1 -1
- package/dist/data/lint/LintTreeNode.d.ts +7 -2
- package/dist/data/lint/LintTreeNode.d.ts.map +1 -1
- package/dist/data/lint/LintTreeNode.js +44 -21
- package/dist/data/lint/LintTreeNode.js.map +1 -1
- package/dist/data/lint/ViolationSnippet.cjs +113 -0
- package/dist/data/lint/ViolationSnippet.cjs.map +1 -0
- package/dist/data/lint/ViolationSnippet.d.ts +20 -0
- package/dist/data/lint/ViolationSnippet.d.ts.map +1 -0
- package/dist/data/lint/ViolationSnippet.js +112 -0
- package/dist/data/lint/ViolationSnippet.js.map +1 -0
- package/dist/data/lint/actions.cjs +44 -16
- package/dist/data/lint/actions.cjs.map +1 -1
- package/dist/data/lint/actions.d.ts +7 -3
- package/dist/data/lint/actions.d.ts.map +1 -1
- package/dist/data/lint/actions.js +44 -16
- package/dist/data/lint/actions.js.map +1 -1
- package/dist/data/lint/grouping.cjs +105 -8
- package/dist/data/lint/grouping.cjs.map +1 -1
- package/dist/data/lint/grouping.d.ts +21 -1
- package/dist/data/lint/grouping.d.ts.map +1 -1
- package/dist/data/lint/grouping.js +105 -10
- package/dist/data/lint/grouping.js.map +1 -1
- package/dist/data/lint/ignore-menu-items.cjs +18 -0
- package/dist/data/lint/ignore-menu-items.cjs.map +1 -0
- package/dist/data/lint/ignore-menu-items.d.ts +6 -0
- package/dist/data/lint/ignore-menu-items.d.ts.map +1 -0
- package/dist/data/lint/ignore-menu-items.js +17 -0
- package/dist/data/lint/ignore-menu-items.js.map +1 -0
- package/dist/data/lint/index.d.ts +7 -5
- package/dist/data/lint/index.d.ts.map +1 -1
- package/dist/data/lint/stats.cjs +19 -4
- package/dist/data/lint/stats.cjs.map +1 -1
- package/dist/data/lint/stats.d.ts +13 -3
- package/dist/data/lint/stats.d.ts.map +1 -1
- package/dist/data/lint/stats.js +17 -5
- package/dist/data/lint/stats.js.map +1 -1
- package/dist/data/lint/types.cjs +8 -0
- package/dist/data/lint/types.cjs.map +1 -1
- package/dist/data/lint/types.d.ts +47 -0
- package/dist/data/lint/types.d.ts.map +1 -1
- package/dist/data/lint/types.js +8 -1
- package/dist/data/lint/types.js.map +1 -1
- package/dist/data/lint/violation-menu-items.cjs +31 -0
- package/dist/data/lint/violation-menu-items.cjs.map +1 -0
- package/dist/data/lint/violation-menu-items.d.ts +12 -0
- package/dist/data/lint/violation-menu-items.d.ts.map +1 -0
- package/dist/data/lint/violation-menu-items.js +31 -0
- package/dist/data/lint/violation-menu-items.js.map +1 -0
- package/dist/data/markdown-source-blocks.cjs +38 -0
- package/dist/data/markdown-source-blocks.cjs.map +1 -0
- package/dist/data/markdown-source-blocks.d.ts +32 -0
- package/dist/data/markdown-source-blocks.d.ts.map +1 -0
- package/dist/data/markdown-source-blocks.js +35 -0
- package/dist/data/markdown-source-blocks.js.map +1 -0
- package/dist/data/test-runner/FilterFacet.cjs +52 -0
- package/dist/data/test-runner/FilterFacet.cjs.map +1 -0
- package/dist/data/test-runner/FilterFacet.d.ts +13 -0
- package/dist/data/test-runner/FilterFacet.d.ts.map +1 -0
- package/dist/data/test-runner/FilterFacet.js +52 -0
- package/dist/data/test-runner/FilterFacet.js.map +1 -0
- package/dist/data/test-runner/MatrixMarks.cjs +42 -40
- package/dist/data/test-runner/MatrixMarks.cjs.map +1 -1
- package/dist/data/test-runner/MatrixMarks.d.ts +20 -4
- package/dist/data/test-runner/MatrixMarks.d.ts.map +1 -1
- package/dist/data/test-runner/MatrixMarks.js +43 -42
- package/dist/data/test-runner/MatrixMarks.js.map +1 -1
- package/dist/data/test-runner/TestAttemptDetail.cjs +1 -1
- package/dist/data/test-runner/TestAttemptDetail.js +1 -1
- package/dist/data/test-runner/TestDetailPanel.cjs +11 -0
- package/dist/data/test-runner/TestDetailPanel.cjs.map +1 -1
- package/dist/data/test-runner/TestDetailPanel.d.ts.map +1 -1
- package/dist/data/test-runner/TestDetailPanel.js +11 -0
- package/dist/data/test-runner/TestDetailPanel.js.map +1 -1
- package/dist/data/test-runner/TestFilterBar.cjs +3 -44
- package/dist/data/test-runner/TestFilterBar.cjs.map +1 -1
- package/dist/data/test-runner/TestFilterBar.d.ts.map +1 -1
- package/dist/data/test-runner/TestFilterBar.js +3 -44
- package/dist/data/test-runner/TestFilterBar.js.map +1 -1
- package/dist/data/test-runner/TestRunner.cjs +3 -1
- package/dist/data/test-runner/TestRunner.cjs.map +1 -1
- package/dist/data/test-runner/TestRunner.d.ts +7 -1
- package/dist/data/test-runner/TestRunner.d.ts.map +1 -1
- package/dist/data/test-runner/TestRunner.js +3 -1
- package/dist/data/test-runner/TestRunner.js.map +1 -1
- package/dist/data/test-runner/context.cjs.map +1 -1
- package/dist/data/test-runner/context.d.ts +3 -0
- package/dist/data/test-runner/context.d.ts.map +1 -1
- package/dist/data/test-runner/context.js.map +1 -1
- package/dist/data/test-runner/index.d.ts +2 -2
- package/dist/data/test-runner/index.d.ts.map +1 -1
- package/dist/data/test-runner/matrix-marks.cjs +2 -11
- package/dist/data/test-runner/matrix-marks.cjs.map +1 -1
- package/dist/data/test-runner/matrix-marks.d.ts +2 -4
- package/dist/data/test-runner/matrix-marks.d.ts.map +1 -1
- package/dist/data/test-runner/matrix-marks.js +3 -11
- package/dist/data/test-runner/matrix-marks.js.map +1 -1
- package/dist/data/test-runner/types.d.ts +2 -0
- package/dist/data/test-runner/types.d.ts.map +1 -1
- package/dist/data/timeseries-query.cjs +98 -2
- package/dist/data/timeseries-query.cjs.map +1 -1
- package/dist/data/timeseries-query.d.ts +31 -5
- package/dist/data/timeseries-query.d.ts.map +1 -1
- package/dist/data/timeseries-query.js +98 -3
- package/dist/data/timeseries-query.js.map +1 -1
- package/dist/data/timeseries-stream-provider.cjs +38 -0
- package/dist/data/timeseries-stream-provider.cjs.map +1 -0
- package/dist/data/timeseries-stream-provider.d.ts +26 -0
- package/dist/data/timeseries-stream-provider.d.ts.map +1 -0
- package/dist/data/timeseries-stream-provider.js +38 -0
- package/dist/data/timeseries-stream-provider.js.map +1 -0
- package/dist/data/timeseries-stream.cjs +304 -0
- package/dist/data/timeseries-stream.cjs.map +1 -0
- package/dist/data/timeseries-stream.d.ts +81 -0
- package/dist/data/timeseries-stream.d.ts.map +1 -0
- package/dist/data/timeseries-stream.fixtures.d.ts +36 -0
- package/dist/data/timeseries-stream.fixtures.d.ts.map +1 -0
- package/dist/data/timeseries-stream.js +296 -0
- package/dist/data/timeseries-stream.js.map +1 -0
- package/dist/data/token-style.cjs +13 -0
- package/dist/data/token-style.cjs.map +1 -0
- package/dist/data/token-style.d.ts +4 -0
- package/dist/data/token-style.d.ts.map +1 -0
- package/dist/data/token-style.js +13 -0
- package/dist/data/token-style.js.map +1 -0
- package/dist/data/traces/ProcessTraceDetail.cjs +1 -1
- package/dist/data/traces/ProcessTraceDetail.js +1 -1
- package/dist/data/traces/index.d.ts +1 -1
- package/dist/data/traces/index.d.ts.map +1 -1
- package/dist/data/use-data-table-virtual.d.ts +1 -1
- package/dist/data/version-info.cjs +3 -3
- package/dist/data/version-info.js +3 -3
- package/dist/data/workload-panel/MemoryStack.cjs +49 -0
- package/dist/data/workload-panel/MemoryStack.cjs.map +1 -0
- package/dist/data/workload-panel/MemoryStack.d.ts +11 -0
- package/dist/data/workload-panel/MemoryStack.d.ts.map +1 -0
- package/dist/data/workload-panel/MemoryStack.js +48 -0
- package/dist/data/workload-panel/MemoryStack.js.map +1 -0
- package/dist/data/workload-panel/Metrics.cjs +197 -0
- package/dist/data/workload-panel/Metrics.cjs.map +1 -0
- package/dist/data/workload-panel/Metrics.d.ts +11 -0
- package/dist/data/workload-panel/Metrics.d.ts.map +1 -0
- package/dist/data/workload-panel/Metrics.js +196 -0
- package/dist/data/workload-panel/Metrics.js.map +1 -0
- package/dist/data/workload-panel/WorkloadPanel.cjs +66 -0
- package/dist/data/workload-panel/WorkloadPanel.cjs.map +1 -0
- package/dist/data/workload-panel/WorkloadPanel.d.ts +3 -0
- package/dist/data/workload-panel/WorkloadPanel.d.ts.map +1 -0
- package/dist/data/workload-panel/WorkloadPanel.js +66 -0
- package/dist/data/workload-panel/WorkloadPanel.js.map +1 -0
- package/dist/data/workload-panel/fixtures.d.ts +60 -0
- package/dist/data/workload-panel/fixtures.d.ts.map +1 -0
- package/dist/data/workload-panel/model.cjs +137 -0
- package/dist/data/workload-panel/model.cjs.map +1 -0
- package/dist/data/workload-panel/model.d.ts +53 -0
- package/dist/data/workload-panel/model.d.ts.map +1 -0
- package/dist/data/workload-panel/model.js +133 -0
- package/dist/data/workload-panel/model.js.map +1 -0
- package/dist/data/workload-panel/types.d.ts +56 -0
- package/dist/data/workload-panel/types.d.ts.map +1 -0
- package/dist/data.cjs +58 -7
- package/dist/data.d.ts +9 -1
- package/dist/data.d.ts.map +1 -1
- package/dist/data.js +29 -12
- package/dist/file-findings/AnnotatedCode.cjs +243 -0
- package/dist/file-findings/AnnotatedCode.cjs.map +1 -0
- package/dist/file-findings/AnnotatedCode.d.ts +30 -0
- package/dist/file-findings/AnnotatedCode.d.ts.map +1 -0
- package/dist/file-findings/AnnotatedCode.js +243 -0
- package/dist/file-findings/AnnotatedCode.js.map +1 -0
- package/dist/file-findings/FileFindingsView.cjs +213 -0
- package/dist/file-findings/FileFindingsView.cjs.map +1 -0
- package/dist/file-findings/FileFindingsView.d.ts +35 -0
- package/dist/file-findings/FileFindingsView.d.ts.map +1 -0
- package/dist/file-findings/FileFindingsView.js +213 -0
- package/dist/file-findings/FileFindingsView.js.map +1 -0
- package/dist/file-findings/LazyAnnotatedCode.cjs +22 -0
- package/dist/file-findings/LazyAnnotatedCode.cjs.map +1 -0
- package/dist/file-findings/LazyAnnotatedCode.d.ts +5 -0
- package/dist/file-findings/LazyAnnotatedCode.d.ts.map +1 -0
- package/dist/file-findings/LazyAnnotatedCode.js +22 -0
- package/dist/file-findings/LazyAnnotatedCode.js.map +1 -0
- package/dist/file-findings/adapters.cjs +155 -0
- package/dist/file-findings/adapters.cjs.map +1 -0
- package/dist/file-findings/adapters.d.ts +24 -0
- package/dist/file-findings/adapters.d.ts.map +1 -0
- package/dist/file-findings/adapters.js +153 -0
- package/dist/file-findings/adapters.js.map +1 -0
- package/dist/file-findings/file-review/CommentDraft.cjs +97 -0
- package/dist/file-findings/file-review/CommentDraft.cjs.map +1 -0
- package/dist/file-findings/file-review/CommentDraft.d.ts +25 -0
- package/dist/file-findings/file-review/CommentDraft.d.ts.map +1 -0
- package/dist/file-findings/file-review/CommentDraft.js +97 -0
- package/dist/file-findings/file-review/CommentDraft.js.map +1 -0
- package/dist/file-findings/file-review/FileReview.cjs +863 -0
- package/dist/file-findings/file-review/FileReview.cjs.map +1 -0
- package/dist/file-findings/file-review/FileReview.d.ts +79 -0
- package/dist/file-findings/file-review/FileReview.d.ts.map +1 -0
- package/dist/file-findings/file-review/FileReview.fixtures.d.ts +25 -0
- package/dist/file-findings/file-review/FileReview.fixtures.d.ts.map +1 -0
- package/dist/file-findings/file-review/FileReview.js +863 -0
- package/dist/file-findings/file-review/FileReview.js.map +1 -0
- package/dist/file-findings/file-review/InlineAuthors.cjs +77 -0
- package/dist/file-findings/file-review/InlineAuthors.cjs.map +1 -0
- package/dist/file-findings/file-review/InlineAuthors.d.ts +9 -0
- package/dist/file-findings/file-review/InlineAuthors.d.ts.map +1 -0
- package/dist/file-findings/file-review/InlineAuthors.js +77 -0
- package/dist/file-findings/file-review/InlineAuthors.js.map +1 -0
- package/dist/file-findings/file-review/InlineThread.cjs +77 -0
- package/dist/file-findings/file-review/InlineThread.cjs.map +1 -0
- package/dist/file-findings/file-review/InlineThread.d.ts +27 -0
- package/dist/file-findings/file-review/InlineThread.d.ts.map +1 -0
- package/dist/file-findings/file-review/InlineThread.js +77 -0
- package/dist/file-findings/file-review/InlineThread.js.map +1 -0
- package/dist/file-findings/file-review/ProblemsList.cjs +164 -0
- package/dist/file-findings/file-review/ProblemsList.cjs.map +1 -0
- package/dist/file-findings/file-review/ProblemsList.d.ts +15 -0
- package/dist/file-findings/file-review/ProblemsList.d.ts.map +1 -0
- package/dist/file-findings/file-review/ProblemsList.js +164 -0
- package/dist/file-findings/file-review/ProblemsList.js.map +1 -0
- package/dist/file-findings/file-review/SourceView.cjs +179 -0
- package/dist/file-findings/file-review/SourceView.cjs.map +1 -0
- package/dist/file-findings/file-review/SourceView.d.ts +29 -0
- package/dist/file-findings/file-review/SourceView.d.ts.map +1 -0
- package/dist/file-findings/file-review/SourceView.js +179 -0
- package/dist/file-findings/file-review/SourceView.js.map +1 -0
- package/dist/file-findings/file-review/blame.cjs +35 -0
- package/dist/file-findings/file-review/blame.cjs.map +1 -0
- package/dist/file-findings/file-review/blame.d.ts +28 -0
- package/dist/file-findings/file-review/blame.d.ts.map +1 -0
- package/dist/file-findings/file-review/blame.js +33 -0
- package/dist/file-findings/file-review/blame.js.map +1 -0
- package/dist/file-findings/file-review/geometry.cjs +101 -0
- package/dist/file-findings/file-review/geometry.cjs.map +1 -0
- package/dist/file-findings/file-review/geometry.d.ts +45 -0
- package/dist/file-findings/file-review/geometry.d.ts.map +1 -0
- package/dist/file-findings/file-review/geometry.js +98 -0
- package/dist/file-findings/file-review/geometry.js.map +1 -0
- package/dist/file-findings/file-review/hooks.cjs +101 -0
- package/dist/file-findings/file-review/hooks.cjs.map +1 -0
- package/dist/file-findings/file-review/hooks.d.ts +22 -0
- package/dist/file-findings/file-review/hooks.d.ts.map +1 -0
- package/dist/file-findings/file-review/hooks.js +99 -0
- package/dist/file-findings/file-review/hooks.js.map +1 -0
- package/dist/file-findings/file-review/marks.cjs +52 -0
- package/dist/file-findings/file-review/marks.cjs.map +1 -0
- package/dist/file-findings/file-review/marks.d.ts +23 -0
- package/dist/file-findings/file-review/marks.d.ts.map +1 -0
- package/dist/file-findings/file-review/marks.js +47 -0
- package/dist/file-findings/file-review/marks.js.map +1 -0
- package/dist/file-findings/file-review/problem-filters.cjs +14 -0
- package/dist/file-findings/file-review/problem-filters.cjs.map +1 -0
- package/dist/file-findings/file-review/problem-filters.d.ts +10 -0
- package/dist/file-findings/file-review/problem-filters.d.ts.map +1 -0
- package/dist/file-findings/file-review/problem-filters.js +13 -0
- package/dist/file-findings/file-review/problem-filters.js.map +1 -0
- package/dist/file-findings/file-review/quote-anchor.cjs +234 -0
- package/dist/file-findings/file-review/quote-anchor.cjs.map +1 -0
- package/dist/file-findings/file-review/quote-anchor.d.ts +54 -0
- package/dist/file-findings/file-review/quote-anchor.d.ts.map +1 -0
- package/dist/file-findings/file-review/quote-anchor.js +226 -0
- package/dist/file-findings/file-review/quote-anchor.js.map +1 -0
- package/dist/file-findings/file-review/source-anchor.cjs +104 -0
- package/dist/file-findings/file-review/source-anchor.cjs.map +1 -0
- package/dist/file-findings/file-review/source-anchor.d.ts +27 -0
- package/dist/file-findings/file-review/source-anchor.d.ts.map +1 -0
- package/dist/file-findings/file-review/source-anchor.js +99 -0
- package/dist/file-findings/file-review/source-anchor.js.map +1 -0
- package/dist/file-findings/file-review/source-marks.cjs +71 -0
- package/dist/file-findings/file-review/source-marks.cjs.map +1 -0
- package/dist/file-findings/file-review/source-marks.d.ts +27 -0
- package/dist/file-findings/file-review/source-marks.d.ts.map +1 -0
- package/dist/file-findings/file-review/source-marks.js +68 -0
- package/dist/file-findings/file-review/source-marks.js.map +1 -0
- package/dist/file-findings/findings-comments.cjs +136 -0
- package/dist/file-findings/findings-comments.cjs.map +1 -0
- package/dist/file-findings/findings-comments.d.ts +28 -0
- package/dist/file-findings/findings-comments.d.ts.map +1 -0
- package/dist/file-findings/findings-comments.js +131 -0
- package/dist/file-findings/findings-comments.js.map +1 -0
- package/dist/file-findings/findings-languages.cjs +53 -0
- package/dist/file-findings/findings-languages.cjs.map +1 -0
- package/dist/file-findings/findings-languages.d.ts +11 -0
- package/dist/file-findings/findings-languages.d.ts.map +1 -0
- package/dist/file-findings/findings-languages.js +53 -0
- package/dist/file-findings/findings-languages.js.map +1 -0
- package/dist/file-findings/mdx-source.cjs +48 -0
- package/dist/file-findings/mdx-source.cjs.map +1 -0
- package/dist/file-findings/mdx-source.d.ts +7 -0
- package/dist/file-findings/mdx-source.d.ts.map +1 -0
- package/dist/file-findings/mdx-source.js +48 -0
- package/dist/file-findings/mdx-source.js.map +1 -0
- package/dist/file-findings/monaco-language.cjs +73 -0
- package/dist/file-findings/monaco-language.cjs.map +1 -0
- package/dist/file-findings/monaco-language.d.ts +11 -0
- package/dist/file-findings/monaco-language.d.ts.map +1 -0
- package/dist/file-findings/monaco-language.js +72 -0
- package/dist/file-findings/monaco-language.js.map +1 -0
- package/dist/file-findings/severity-counts.cjs +20 -0
- package/dist/file-findings/severity-counts.cjs.map +1 -0
- package/dist/file-findings/severity-counts.d.ts +5 -0
- package/dist/file-findings/severity-counts.d.ts.map +1 -0
- package/dist/file-findings/severity-counts.js +19 -0
- package/dist/file-findings/severity-counts.js.map +1 -0
- package/dist/file-findings/types.cjs +12 -0
- package/dist/file-findings/types.cjs.map +1 -0
- package/dist/file-findings/types.d.ts +43 -0
- package/dist/file-findings/types.d.ts.map +1 -0
- package/dist/file-findings/types.js +11 -0
- package/dist/file-findings/types.js.map +1 -0
- package/dist/file-findings.cjs +47 -0
- package/dist/file-findings.d.ts +15 -0
- package/dist/file-findings.d.ts.map +1 -0
- package/dist/file-findings.js +15 -0
- package/dist/hooks/event-hub.cjs +22 -8
- package/dist/hooks/event-hub.cjs.map +1 -1
- package/dist/hooks/event-hub.d.ts.map +1 -1
- package/dist/hooks/event-hub.js +22 -8
- package/dist/hooks/event-hub.js.map +1 -1
- package/dist/icons/components/UiBrowser.cjs +51 -0
- package/dist/icons/components/UiBrowser.cjs.map +1 -0
- package/dist/icons/components/UiBrowser.d.ts +15 -0
- package/dist/icons/components/UiBrowser.d.ts.map +1 -0
- package/dist/icons/components/UiBrowser.js +48 -0
- package/dist/icons/components/UiBrowser.js.map +1 -0
- package/dist/icons/components/UiCreditCard.cjs +51 -0
- package/dist/icons/components/UiCreditCard.cjs.map +1 -0
- package/dist/icons/components/UiCreditCard.d.ts +15 -0
- package/dist/icons/components/UiCreditCard.d.ts.map +1 -0
- package/dist/icons/components/UiCreditCard.js +48 -0
- package/dist/icons/components/UiCreditCard.js.map +1 -0
- package/dist/icons/components/UiShoppingCart.cjs +51 -0
- package/dist/icons/components/UiShoppingCart.cjs.map +1 -0
- package/dist/icons/components/UiShoppingCart.d.ts +15 -0
- package/dist/icons/components/UiShoppingCart.d.ts.map +1 -0
- package/dist/icons/components/UiShoppingCart.js +48 -0
- package/dist/icons/components/UiShoppingCart.js.map +1 -0
- package/dist/icons/index.d.ts +6 -0
- package/dist/icons/index.d.ts.map +1 -1
- package/dist/icons/registry.cjs +6 -0
- package/dist/icons/registry.cjs.map +1 -1
- package/dist/icons/registry.d.ts.map +1 -1
- package/dist/icons/registry.js +6 -0
- package/dist/icons/registry.js.map +1 -1
- package/dist/icons.cjs +9 -0
- package/dist/icons.js +4 -1
- package/dist/index.cjs +76 -8
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +37 -14
- package/dist/layout/AppShell.cjs +37 -21
- package/dist/layout/AppShell.cjs.map +1 -1
- package/dist/layout/AppShell.d.ts +13 -2
- package/dist/layout/AppShell.d.ts.map +1 -1
- package/dist/layout/AppShell.js +37 -21
- package/dist/layout/AppShell.js.map +1 -1
- package/dist/layout/AppShell.nav.cjs +7 -6
- package/dist/layout/AppShell.nav.cjs.map +1 -1
- package/dist/layout/AppShell.nav.d.ts.map +1 -1
- package/dist/layout/AppShell.nav.js +7 -6
- package/dist/layout/AppShell.nav.js.map +1 -1
- package/dist/layout/SplitPane.cjs +16 -6
- package/dist/layout/SplitPane.cjs.map +1 -1
- package/dist/layout/SplitPane.d.ts +12 -2
- package/dist/layout/SplitPane.d.ts.map +1 -1
- package/dist/layout/SplitPane.js +16 -6
- package/dist/layout/SplitPane.js.map +1 -1
- package/dist/layout/Workspace.cjs +37 -33
- package/dist/layout/Workspace.cjs.map +1 -1
- package/dist/layout/Workspace.d.ts.map +1 -1
- package/dist/layout/Workspace.js +37 -33
- package/dist/layout/Workspace.js.map +1 -1
- package/dist/layout/Workspace.regions.cjs +3 -3
- package/dist/layout/Workspace.regions.cjs.map +1 -1
- package/dist/layout/Workspace.regions.js +3 -3
- package/dist/layout/Workspace.regions.js.map +1 -1
- package/dist/lib/breakpoints.cjs +102 -0
- package/dist/lib/breakpoints.cjs.map +1 -0
- package/dist/lib/breakpoints.d.ts +36 -0
- package/dist/lib/breakpoints.d.ts.map +1 -0
- package/dist/lib/breakpoints.js +99 -0
- package/dist/lib/breakpoints.js.map +1 -0
- package/dist/lib/combobox.cjs +2 -1
- package/dist/lib/combobox.cjs.map +1 -1
- package/dist/lib/combobox.d.ts +1 -1
- package/dist/lib/combobox.d.ts.map +1 -1
- package/dist/lib/combobox.js +2 -1
- package/dist/lib/combobox.js.map +1 -1
- package/dist/lib/path-tree.cjs +21 -0
- package/dist/lib/path-tree.cjs.map +1 -1
- package/dist/lib/path-tree.d.ts +15 -0
- package/dist/lib/path-tree.d.ts.map +1 -1
- package/dist/lib/path-tree.js +21 -1
- package/dist/lib/path-tree.js.map +1 -1
- package/dist/overlay/Modal.cjs +2 -1
- package/dist/overlay/Modal.cjs.map +1 -1
- package/dist/overlay/Modal.d.ts.map +1 -1
- package/dist/overlay/Modal.js +2 -1
- package/dist/overlay/Modal.js.map +1 -1
- package/dist/overlay/dropdownMenuContext.d.ts +1 -1
- package/dist/profiles/editor/profileEditor.cjs +1 -1
- package/dist/profiles/editor/profileEditor.cjs.map +1 -1
- package/dist/profiles/editor/profileEditor.js +1 -1
- package/dist/profiles/editor/profileEditor.js.map +1 -1
- package/dist/profiles/editor/profileEditorSections.cjs +2 -2
- package/dist/profiles/editor/profileEditorSections.cjs.map +1 -1
- package/dist/profiles/editor/profileEditorSections.js +2 -2
- package/dist/profiles/editor/profileEditorSections.js.map +1 -1
- package/dist/profiles/query/prometheusResults.cjs +24 -36
- package/dist/profiles/query/prometheusResults.cjs.map +1 -1
- package/dist/profiles/query/prometheusResults.d.ts.map +1 -1
- package/dist/profiles/query/prometheusResults.js +24 -36
- package/dist/profiles/query/prometheusResults.js.map +1 -1
- package/dist/rpc/CommandForm.cjs +1 -1
- package/dist/rpc/CommandForm.cjs.map +1 -1
- package/dist/rpc/CommandForm.js +1 -1
- package/dist/rpc/CommandForm.js.map +1 -1
- package/dist/rpc/classify.cjs +1 -1
- package/dist/rpc/classify.cjs.map +1 -1
- package/dist/rpc/classify.d.ts.map +1 -1
- package/dist/rpc/classify.js +1 -1
- package/dist/rpc/classify.js.map +1 -1
- package/dist/rpc/useOperations.d.ts +24 -24
- package/dist/rpc.cjs +0 -2
- package/dist/rpc.d.ts +0 -1
- package/dist/rpc.d.ts.map +1 -1
- package/dist/rpc.js +1 -2
- package/dist/styles.css +1 -1
- package/dist/utils.cjs +6 -0
- package/dist/utils.d.ts +2 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +3 -2
- package/package.json +9 -3
- package/schemas/json-schema-form.schema.json +9 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/data/test-runner/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/data/test-runner/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
const require_timeseries_stream = require("./timeseries-stream.cjs");
|
|
2
|
+
let react = require("react");
|
|
1
3
|
let _tanstack_react_query = require("@tanstack/react-query");
|
|
2
4
|
// src/data/timeseries-query.ts
|
|
3
5
|
var defaultTimeseriesFetcher = async (url) => {
|
|
@@ -44,9 +46,102 @@ function timeseriesQueryOptions(source, { baseUrl = "", range, refreshMs, fetche
|
|
|
44
46
|
queryFn: () => fetcher(requestUrl)
|
|
45
47
|
};
|
|
46
48
|
}
|
|
47
|
-
|
|
49
|
+
var noStream = () => () => {};
|
|
50
|
+
function queryResult(id, query) {
|
|
51
|
+
const { data } = query;
|
|
52
|
+
return {
|
|
53
|
+
series: data ? [{
|
|
54
|
+
id,
|
|
55
|
+
source: id,
|
|
56
|
+
points: data.points
|
|
57
|
+
}] : void 0,
|
|
58
|
+
isLoading: query.isLoading,
|
|
59
|
+
error: query.error
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* A streamed source's result, reported under the id the widget requested
|
|
64
|
+
* (which differs from the streamed id for a single-`url` panel).
|
|
65
|
+
*/
|
|
66
|
+
function streamResult(requestedId, registration, groups) {
|
|
67
|
+
const group = groups.get(require_timeseries_stream.timeseriesStreamGroupKey(registration)) ?? require_timeseries_stream.EMPTY_TIMESERIES_STREAM_GROUP;
|
|
68
|
+
const streamedId = registration.id;
|
|
69
|
+
const answered = group.answered.has(streamedId);
|
|
70
|
+
const held = group.bySource.get(streamedId) ?? [];
|
|
71
|
+
const series = requestedId === streamedId ? held : held.map((s) => ({
|
|
72
|
+
...s,
|
|
73
|
+
source: requestedId,
|
|
74
|
+
...s.id === streamedId ? { id: requestedId } : {}
|
|
75
|
+
}));
|
|
76
|
+
return {
|
|
77
|
+
series: answered ? series : void 0,
|
|
78
|
+
isLoading: !answered && group.error === null,
|
|
79
|
+
error: group.error
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
var NO_GROUPS = /* @__PURE__ */ new Map();
|
|
83
|
+
/**
|
|
84
|
+
* Reads every source; results are index-aligned with `sources`. Under a
|
|
85
|
+
* {@link TimeseriesStreamProvider} the URL-backed sources of a live widget
|
|
86
|
+
* (`refreshMs > 0`) come from their stream group (see
|
|
87
|
+
* {@link timeseriesStreamAddress}); sources with a `load`, and every source
|
|
88
|
+
* outside a provider, are fetched per source and re-polled every `refreshMs`.
|
|
89
|
+
*/
|
|
48
90
|
function useTimeseriesQueries(sources, options) {
|
|
49
|
-
|
|
91
|
+
const stream = require_timeseries_stream.useTimeseriesStream();
|
|
92
|
+
const { range } = options;
|
|
93
|
+
const interval = require_timeseries_stream.timeseriesStreamInterval(options.refreshMs);
|
|
94
|
+
const registrations = sources.map((source) => {
|
|
95
|
+
if (!stream || interval === null || source.load) return null;
|
|
96
|
+
const address = require_timeseries_stream.timeseriesStreamAddress(options.baseUrl ?? "", source.id);
|
|
97
|
+
return address ? {
|
|
98
|
+
...address,
|
|
99
|
+
range,
|
|
100
|
+
interval
|
|
101
|
+
} : null;
|
|
102
|
+
});
|
|
103
|
+
const queries = (0, _tanstack_react_query.useQueries)({ queries: sources.map((source, i) => ({
|
|
104
|
+
...timeseriesQueryOptions(source, options),
|
|
105
|
+
enabled: registrations[i] === null
|
|
106
|
+
})) });
|
|
107
|
+
const registrationsKey = JSON.stringify(registrations.filter((r) => r !== null));
|
|
108
|
+
(0, react.useEffect)(() => {
|
|
109
|
+
const active = JSON.parse(registrationsKey);
|
|
110
|
+
if (!stream || active.length === 0) return;
|
|
111
|
+
const unregister = active.map((registration) => stream.register(registration));
|
|
112
|
+
return () => unregister.forEach((off) => off());
|
|
113
|
+
}, [stream, registrationsKey]);
|
|
114
|
+
const groups = (0, react.useSyncExternalStore)(stream ? stream.subscribe : noStream, () => stream ? stream.getSnapshot() : NO_GROUPS);
|
|
115
|
+
return sources.map((source, i) => {
|
|
116
|
+
const registration = registrations[i];
|
|
117
|
+
return registration ? streamResult(source.id, registration, groups) : queryResult(source.id, queries[i]);
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* The one series a single-value widget (gauge, core bars) reads from a
|
|
122
|
+
* result: the series whose id is the requested id, else the only series. An
|
|
123
|
+
* id that expanded into several series has no single reading, so it is an
|
|
124
|
+
* error rather than an arbitrary pick.
|
|
125
|
+
*/
|
|
126
|
+
function soleSeries(id, result) {
|
|
127
|
+
if (!result) return {
|
|
128
|
+
data: void 0,
|
|
129
|
+
error: null
|
|
130
|
+
};
|
|
131
|
+
if (result.error) return {
|
|
132
|
+
data: void 0,
|
|
133
|
+
error: result.error
|
|
134
|
+
};
|
|
135
|
+
const list = result.series ?? [];
|
|
136
|
+
const data = list.find((s) => s.id === id) ?? (list.length === 1 ? list[0] : void 0);
|
|
137
|
+
if (!data && list.length > 1) return {
|
|
138
|
+
data: void 0,
|
|
139
|
+
error: /* @__PURE__ */ new Error(`metric ${id} expanded into ${list.length} series; this widget shows one`)
|
|
140
|
+
};
|
|
141
|
+
return {
|
|
142
|
+
data,
|
|
143
|
+
error: null
|
|
144
|
+
};
|
|
50
145
|
}
|
|
51
146
|
/** The value of the last point, or undefined when the series is empty. */
|
|
52
147
|
function latestValue(resp) {
|
|
@@ -56,6 +151,7 @@ function latestValue(resp) {
|
|
|
56
151
|
}
|
|
57
152
|
exports.defaultTimeseriesFetcher = defaultTimeseriesFetcher;
|
|
58
153
|
exports.latestValue = latestValue;
|
|
154
|
+
exports.soleSeries = soleSeries;
|
|
59
155
|
exports.timeseriesQueryOptions = timeseriesQueryOptions;
|
|
60
156
|
exports.timeseriesRequestUrl = timeseriesRequestUrl;
|
|
61
157
|
exports.useTimeseriesQueries = useTimeseriesQueries;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeseries-query.cjs","names":["useQueries"],"sources":["../../src/data/timeseries-query.ts"],"sourcesContent":["import { useQueries, type UseQueryOptions, type UseQueryResult } from \"@tanstack/react-query\";\nimport type { SeriesLoader, TimeseriesResponse } from \"./TimeseriesPanel.model\";\n\n/** Loads a metric by URL; the legacy data path of the timeseries widgets. */\nexport type TimeseriesFetcher = (url: string) => Promise<TimeseriesResponse>;\n\n/** One series the widgets poll: a metric id, optionally backed by a loader. */\nexport interface TimeseriesSource {\n id: string;\n load?: SeriesLoader | undefined;\n}\n\nexport interface TimeseriesQueryOptions {\n /** Prefix for URL-backed sources; ignored by sources with a `load`. */\n baseUrl?: string;\n range: string;\n refreshMs: number;\n fetcher: TimeseriesFetcher;\n}\n\nexport const defaultTimeseriesFetcher: TimeseriesFetcher = async (url) => {\n const res = await fetch(url);\n if (!res.ok) throw new Error(`metrics request failed: ${res.status}`);\n return res.json();\n};\n\n/** `baseUrl + id` resolved to a same-origin path with `?since=<range>`. */\nexport function timeseriesRequestUrl(url: string, range: string): string {\n const u = new URL(url, window.location.origin);\n if (range) u.searchParams.set(\"since\", range);\n return u.pathname + u.search;\n}\n\n/**\n * The react-query options for one series. URL-backed sources key on the\n * request URL (unchanged from before loaders existed); loader-backed sources\n * key on `[\"timeseries\", \"load\", id, range]`, so the id is the cache identity\n * and callers must keep it unique per data source.\n */\nexport function timeseriesQueryOptions(\n source: TimeseriesSource,\n { baseUrl = \"\", range, refreshMs, fetcher }: TimeseriesQueryOptions,\n): UseQueryOptions<TimeseriesResponse, Error, TimeseriesResponse, readonly unknown[]> {\n const shared = {\n refetchInterval: refreshMs > 0 ? refreshMs : (false as const),\n staleTime: 0,\n retry: 0,\n };\n const { load } = source;\n if (load) {\n return {\n ...shared,\n queryKey: [\"timeseries\", \"load\", source.id, range],\n queryFn: ({ signal }: { signal: AbortSignal }) => load({ range, signal }),\n };\n }\n const requestUrl = timeseriesRequestUrl(baseUrl + source.id, range);\n return {\n ...shared,\n queryKey: [\"timeseries\", requestUrl],\n queryFn: () => fetcher(requestUrl),\n };\n}\n\n/** Polls every source in parallel; results are index-aligned with `sources`. */\nexport function useTimeseriesQueries(\n sources: readonly TimeseriesSource[],\n options: TimeseriesQueryOptions,\n): UseQueryResult<TimeseriesResponse>[] {\n return useQueries({\n queries: sources.map((source) => timeseriesQueryOptions(source, options)),\n });\n}\n\n/** The value of the last point, or undefined when the series is empty. */\nexport function latestValue(resp: TimeseriesResponse | undefined): number | undefined {\n const points = resp?.points;\n if (!points || points.length === 0) return undefined;\n return points[points.length - 1]?.value;\n}\n"],"mappings":";;AAoBA,IAAa,2BAA8C,OAAO,QAAQ;CACxE,MAAM,MAAM,MAAM,MAAM,GAAG;CAC3B,IAAI,CAAC,IAAI,IAAI,MAAM,IAAI,MAAM,2BAA2B,IAAI,QAAQ;CACpE,OAAO,IAAI,KAAK;AAClB;;AAGA,SAAgB,qBAAqB,KAAa,OAAuB;CACvE,MAAM,IAAI,IAAI,IAAI,KAAK,OAAO,SAAS,MAAM;CAC7C,IAAI,OAAO,EAAE,aAAa,IAAI,SAAS,KAAK;CAC5C,OAAO,EAAE,WAAW,EAAE;AACxB;;;;;;;AAQA,SAAgB,uBACd,QACA,EAAE,UAAU,IAAI,OAAO,WAAW,WACkD;CACpF,MAAM,SAAS;EACb,iBAAiB,YAAY,IAAI,YAAa;EAC9C,WAAW;EACX,OAAO;CACT;CACA,MAAM,EAAE,SAAS;CACjB,IAAI,MACF,OAAO;EACL,GAAG;EACH,UAAU;GAAC;GAAc;GAAQ,OAAO;GAAI;EAAK;EACjD,UAAU,EAAE,aAAsC,KAAK;GAAE;GAAO;EAAO,CAAC;CAC1E;CAEF,MAAM,aAAa,qBAAqB,UAAU,OAAO,IAAI,KAAK;CAClE,OAAO;EACL,GAAG;EACH,UAAU,CAAC,cAAc,UAAU;EACnC,eAAe,QAAQ,UAAU;CACnC;AACF;;AAGA,SAAgB,qBACd,SACA,SACsC;CACtC,QAAA,GAAOA,sBAAAA,WAAAA,CAAW,EAChB,SAAS,QAAQ,KAAK,WAAW,uBAAuB,QAAQ,OAAO,CAAC,EAC1E,CAAC;AACH;;AAGA,SAAgB,YAAY,MAA0D;CACpF,MAAM,SAAS,MAAM;CACrB,IAAI,CAAC,UAAU,OAAO,WAAW,GAAG,OAAO,KAAA;CAC3C,OAAO,OAAO,OAAO,SAAS,EAAE,EAAE;AACpC"}
|
|
1
|
+
{"version":3,"file":"timeseries-query.cjs","names":["timeseriesStreamGroupKey","EMPTY_TIMESERIES_STREAM_GROUP","useTimeseriesStream","timeseriesStreamInterval","timeseriesStreamAddress","useQueries","useSyncExternalStore"],"sources":["../../src/data/timeseries-query.ts"],"sourcesContent":["import { useQueries, type UseQueryOptions, type UseQueryResult } from \"@tanstack/react-query\";\nimport { useEffect, useSyncExternalStore } from \"react\";\nimport type { SeriesLoader, TimeseriesResponse, TimeseriesServerSeries } from \"./TimeseriesPanel.model\";\nimport {\n EMPTY_TIMESERIES_STREAM_GROUP,\n timeseriesStreamAddress,\n timeseriesStreamGroupKey,\n timeseriesStreamInterval,\n useTimeseriesStream,\n type TimeseriesStreamGroupState,\n type TimeseriesStreamRegistration,\n} from \"./timeseries-stream\";\n\n/** Loads a metric by URL; the legacy data path of the timeseries widgets. */\nexport type TimeseriesFetcher = (url: string) => Promise<TimeseriesResponse>;\n\n/** One series the widgets poll: a metric id, optionally backed by a loader. */\nexport interface TimeseriesSource {\n id: string;\n load?: SeriesLoader | undefined;\n}\n\nexport interface TimeseriesQueryOptions {\n /** Prefix for URL-backed sources; ignored by sources with a `load`. */\n baseUrl?: string;\n range: string;\n refreshMs: number;\n fetcher: TimeseriesFetcher;\n}\n\nexport const defaultTimeseriesFetcher: TimeseriesFetcher = async (url) => {\n const res = await fetch(url);\n if (!res.ok) throw new Error(`metrics request failed: ${res.status}`);\n return res.json();\n};\n\n/** `baseUrl + id` resolved to a same-origin path with `?since=<range>`. */\nexport function timeseriesRequestUrl(url: string, range: string): string {\n const u = new URL(url, window.location.origin);\n if (range) u.searchParams.set(\"since\", range);\n return u.pathname + u.search;\n}\n\n/**\n * The react-query options for one series. URL-backed sources key on the\n * request URL (unchanged from before loaders existed); loader-backed sources\n * key on `[\"timeseries\", \"load\", id, range]`, so the id is the cache identity\n * and callers must keep it unique per data source.\n */\nexport function timeseriesQueryOptions(\n source: TimeseriesSource,\n { baseUrl = \"\", range, refreshMs, fetcher }: TimeseriesQueryOptions,\n): UseQueryOptions<TimeseriesResponse, Error, TimeseriesResponse, readonly unknown[]> {\n const shared = {\n refetchInterval: refreshMs > 0 ? refreshMs : (false as const),\n staleTime: 0,\n retry: 0,\n };\n const { load } = source;\n if (load) {\n return {\n ...shared,\n queryKey: [\"timeseries\", \"load\", source.id, range],\n queryFn: ({ signal }: { signal: AbortSignal }) => load({ range, signal }),\n };\n }\n const requestUrl = timeseriesRequestUrl(baseUrl + source.id, range);\n return {\n ...shared,\n queryKey: [\"timeseries\", requestUrl],\n queryFn: () => fetcher(requestUrl),\n };\n}\n\n/** What one requested source resolved to. */\nexport interface TimeseriesSourceResult {\n /**\n * Every series the source answered with: one for a polled or loaded id,\n * each expansion for a streamed id (possibly none). Undefined until answered.\n */\n series: readonly TimeseriesServerSeries[] | undefined;\n isLoading: boolean;\n error: Error | null;\n}\n\nconst noStream = () => () => {};\n\nfunction queryResult(id: string, query: UseQueryResult<TimeseriesResponse>): TimeseriesSourceResult {\n const { data } = query;\n return {\n series: data ? [{ id, source: id, points: data.points }] : undefined,\n isLoading: query.isLoading,\n error: query.error,\n };\n}\n\n/**\n * A streamed source's result, reported under the id the widget requested\n * (which differs from the streamed id for a single-`url` panel).\n */\nfunction streamResult(\n requestedId: string,\n registration: TimeseriesStreamRegistration,\n groups: ReadonlyMap<string, TimeseriesStreamGroupState>,\n): TimeseriesSourceResult {\n const group = groups.get(timeseriesStreamGroupKey(registration)) ?? EMPTY_TIMESERIES_STREAM_GROUP;\n const streamedId = registration.id;\n const answered = group.answered.has(streamedId);\n const held = group.bySource.get(streamedId) ?? [];\n const series =\n requestedId === streamedId\n ? held\n : held.map((s) => ({ ...s, source: requestedId, ...(s.id === streamedId ? { id: requestedId } : {}) }));\n return {\n series: answered ? series : undefined,\n isLoading: !answered && group.error === null,\n error: group.error,\n };\n}\n\nconst NO_GROUPS: ReadonlyMap<string, TimeseriesStreamGroupState> = new Map();\n\n/**\n * Reads every source; results are index-aligned with `sources`. Under a\n * {@link TimeseriesStreamProvider} the URL-backed sources of a live widget\n * (`refreshMs > 0`) come from their stream group (see\n * {@link timeseriesStreamAddress}); sources with a `load`, and every source\n * outside a provider, are fetched per source and re-polled every `refreshMs`.\n */\nexport function useTimeseriesQueries(\n sources: readonly TimeseriesSource[],\n options: TimeseriesQueryOptions,\n): TimeseriesSourceResult[] {\n const stream = useTimeseriesStream();\n const { range } = options;\n const interval = timeseriesStreamInterval(options.refreshMs);\n const registrations = sources.map((source): TimeseriesStreamRegistration | null => {\n if (!stream || interval === null || source.load) return null;\n const address = timeseriesStreamAddress(options.baseUrl ?? \"\", source.id);\n return address ? { ...address, range, interval } : null;\n });\n const queries = useQueries({\n queries: sources.map((source, i) => ({\n ...timeseriesQueryOptions(source, options),\n enabled: registrations[i] === null,\n })),\n });\n\n const registrationsKey = JSON.stringify(registrations.filter((r) => r !== null));\n useEffect(() => {\n const active = JSON.parse(registrationsKey) as TimeseriesStreamRegistration[];\n if (!stream || active.length === 0) return;\n const unregister = active.map((registration) => stream.register(registration));\n return () => unregister.forEach((off) => off());\n }, [stream, registrationsKey]);\n\n const groups = useSyncExternalStore(\n stream ? stream.subscribe : noStream,\n () => (stream ? stream.getSnapshot() : NO_GROUPS),\n );\n\n return sources.map((source, i) => {\n const registration = registrations[i];\n return registration\n ? streamResult(source.id, registration, groups)\n : queryResult(source.id, queries[i] as UseQueryResult<TimeseriesResponse>);\n });\n}\n\n/**\n * The one series a single-value widget (gauge, core bars) reads from a\n * result: the series whose id is the requested id, else the only series. An\n * id that expanded into several series has no single reading, so it is an\n * error rather than an arbitrary pick.\n */\nexport function soleSeries(\n id: string,\n result: TimeseriesSourceResult | undefined,\n): { data: TimeseriesServerSeries | undefined; error: Error | null } {\n if (!result) return { data: undefined, error: null };\n if (result.error) return { data: undefined, error: result.error };\n const list = result.series ?? [];\n const data = list.find((s) => s.id === id) ?? (list.length === 1 ? list[0] : undefined);\n if (!data && list.length > 1) {\n return { data: undefined, error: new Error(`metric ${id} expanded into ${list.length} series; this widget shows one`) };\n }\n return { data, error: null };\n}\n\n/** The value of the last point, or undefined when the series is empty. */\nexport function latestValue(resp: Pick<TimeseriesResponse, \"points\"> | undefined): number | undefined {\n const points = resp?.points;\n if (!points || points.length === 0) return undefined;\n return points[points.length - 1]?.value;\n}\n"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { UseQueryOptions
|
|
2
|
-
import { SeriesLoader, TimeseriesResponse } from './TimeseriesPanel.model.js';
|
|
1
|
+
import { UseQueryOptions } from '@tanstack/react-query';
|
|
2
|
+
import { SeriesLoader, TimeseriesResponse, TimeseriesServerSeries } from './TimeseriesPanel.model.js';
|
|
3
3
|
/** Loads a metric by URL; the legacy data path of the timeseries widgets. */
|
|
4
4
|
export type TimeseriesFetcher = (url: string) => Promise<TimeseriesResponse>;
|
|
5
5
|
/** One series the widgets poll: a metric id, optionally backed by a loader. */
|
|
@@ -24,8 +24,34 @@ export declare function timeseriesRequestUrl(url: string, range: string): string
|
|
|
24
24
|
* and callers must keep it unique per data source.
|
|
25
25
|
*/
|
|
26
26
|
export declare function timeseriesQueryOptions(source: TimeseriesSource, { baseUrl, range, refreshMs, fetcher }: TimeseriesQueryOptions): UseQueryOptions<TimeseriesResponse, Error, TimeseriesResponse, readonly unknown[]>;
|
|
27
|
-
/**
|
|
28
|
-
export
|
|
27
|
+
/** What one requested source resolved to. */
|
|
28
|
+
export interface TimeseriesSourceResult {
|
|
29
|
+
/**
|
|
30
|
+
* Every series the source answered with: one for a polled or loaded id,
|
|
31
|
+
* each expansion for a streamed id (possibly none). Undefined until answered.
|
|
32
|
+
*/
|
|
33
|
+
series: readonly TimeseriesServerSeries[] | undefined;
|
|
34
|
+
isLoading: boolean;
|
|
35
|
+
error: Error | null;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Reads every source; results are index-aligned with `sources`. Under a
|
|
39
|
+
* {@link TimeseriesStreamProvider} the URL-backed sources of a live widget
|
|
40
|
+
* (`refreshMs > 0`) come from their stream group (see
|
|
41
|
+
* {@link timeseriesStreamAddress}); sources with a `load`, and every source
|
|
42
|
+
* outside a provider, are fetched per source and re-polled every `refreshMs`.
|
|
43
|
+
*/
|
|
44
|
+
export declare function useTimeseriesQueries(sources: readonly TimeseriesSource[], options: TimeseriesQueryOptions): TimeseriesSourceResult[];
|
|
45
|
+
/**
|
|
46
|
+
* The one series a single-value widget (gauge, core bars) reads from a
|
|
47
|
+
* result: the series whose id is the requested id, else the only series. An
|
|
48
|
+
* id that expanded into several series has no single reading, so it is an
|
|
49
|
+
* error rather than an arbitrary pick.
|
|
50
|
+
*/
|
|
51
|
+
export declare function soleSeries(id: string, result: TimeseriesSourceResult | undefined): {
|
|
52
|
+
data: TimeseriesServerSeries | undefined;
|
|
53
|
+
error: Error | null;
|
|
54
|
+
};
|
|
29
55
|
/** The value of the last point, or undefined when the series is empty. */
|
|
30
|
-
export declare function latestValue(resp: TimeseriesResponse | undefined): number | undefined;
|
|
56
|
+
export declare function latestValue(resp: Pick<TimeseriesResponse, "points"> | undefined): number | undefined;
|
|
31
57
|
//# sourceMappingURL=timeseries-query.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeseries-query.d.ts","sourceRoot":"","sources":["../../src/data/timeseries-query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,eAAe,
|
|
1
|
+
{"version":3,"file":"timeseries-query.d.ts","sourceRoot":"","sources":["../../src/data/timeseries-query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,eAAe,EAAuB,MAAM,uBAAuB,CAAC;AAE9F,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAWxG,6EAA6E;AAC7E,MAAM,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAE7E,+EAA+E;AAC/E,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;CACjC;AAED,MAAM,WAAW,sBAAsB;IACrC,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,iBAAiB,CAAC;CAC5B;AAED,eAAO,MAAM,wBAAwB,EAAE,iBAItC,CAAC;AAEF,2EAA2E;AAC3E,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAIvE;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,gBAAgB,EACxB,EAAE,OAAY,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,sBAAsB,GAClE,eAAe,CAAC,kBAAkB,EAAE,KAAK,EAAE,kBAAkB,EAAE,SAAS,OAAO,EAAE,CAAC,CAoBpF;AAED,6CAA6C;AAC7C,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,MAAM,EAAE,SAAS,sBAAsB,EAAE,GAAG,SAAS,CAAC;IACtD,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAuCD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,SAAS,gBAAgB,EAAE,EACpC,OAAO,EAAE,sBAAsB,GAC9B,sBAAsB,EAAE,CAmC1B;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,sBAAsB,GAAG,SAAS,GACzC;IAAE,IAAI,EAAE,sBAAsB,GAAG,SAAS,CAAC;IAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;CAAE,CASnE;AAED,0EAA0E;AAC1E,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAIpG"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { EMPTY_TIMESERIES_STREAM_GROUP, timeseriesStreamAddress, timeseriesStreamGroupKey, timeseriesStreamInterval, useTimeseriesStream } from "./timeseries-stream.js";
|
|
2
|
+
import { useEffect, useSyncExternalStore } from "react";
|
|
1
3
|
import { useQueries } from "@tanstack/react-query";
|
|
2
4
|
// src/data/timeseries-query.ts
|
|
3
5
|
var defaultTimeseriesFetcher = async (url) => {
|
|
@@ -44,9 +46,102 @@ function timeseriesQueryOptions(source, { baseUrl = "", range, refreshMs, fetche
|
|
|
44
46
|
queryFn: () => fetcher(requestUrl)
|
|
45
47
|
};
|
|
46
48
|
}
|
|
47
|
-
|
|
49
|
+
var noStream = () => () => {};
|
|
50
|
+
function queryResult(id, query) {
|
|
51
|
+
const { data } = query;
|
|
52
|
+
return {
|
|
53
|
+
series: data ? [{
|
|
54
|
+
id,
|
|
55
|
+
source: id,
|
|
56
|
+
points: data.points
|
|
57
|
+
}] : void 0,
|
|
58
|
+
isLoading: query.isLoading,
|
|
59
|
+
error: query.error
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* A streamed source's result, reported under the id the widget requested
|
|
64
|
+
* (which differs from the streamed id for a single-`url` panel).
|
|
65
|
+
*/
|
|
66
|
+
function streamResult(requestedId, registration, groups) {
|
|
67
|
+
const group = groups.get(timeseriesStreamGroupKey(registration)) ?? EMPTY_TIMESERIES_STREAM_GROUP;
|
|
68
|
+
const streamedId = registration.id;
|
|
69
|
+
const answered = group.answered.has(streamedId);
|
|
70
|
+
const held = group.bySource.get(streamedId) ?? [];
|
|
71
|
+
const series = requestedId === streamedId ? held : held.map((s) => ({
|
|
72
|
+
...s,
|
|
73
|
+
source: requestedId,
|
|
74
|
+
...s.id === streamedId ? { id: requestedId } : {}
|
|
75
|
+
}));
|
|
76
|
+
return {
|
|
77
|
+
series: answered ? series : void 0,
|
|
78
|
+
isLoading: !answered && group.error === null,
|
|
79
|
+
error: group.error
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
var NO_GROUPS = /* @__PURE__ */ new Map();
|
|
83
|
+
/**
|
|
84
|
+
* Reads every source; results are index-aligned with `sources`. Under a
|
|
85
|
+
* {@link TimeseriesStreamProvider} the URL-backed sources of a live widget
|
|
86
|
+
* (`refreshMs > 0`) come from their stream group (see
|
|
87
|
+
* {@link timeseriesStreamAddress}); sources with a `load`, and every source
|
|
88
|
+
* outside a provider, are fetched per source and re-polled every `refreshMs`.
|
|
89
|
+
*/
|
|
48
90
|
function useTimeseriesQueries(sources, options) {
|
|
49
|
-
|
|
91
|
+
const stream = useTimeseriesStream();
|
|
92
|
+
const { range } = options;
|
|
93
|
+
const interval = timeseriesStreamInterval(options.refreshMs);
|
|
94
|
+
const registrations = sources.map((source) => {
|
|
95
|
+
if (!stream || interval === null || source.load) return null;
|
|
96
|
+
const address = timeseriesStreamAddress(options.baseUrl ?? "", source.id);
|
|
97
|
+
return address ? {
|
|
98
|
+
...address,
|
|
99
|
+
range,
|
|
100
|
+
interval
|
|
101
|
+
} : null;
|
|
102
|
+
});
|
|
103
|
+
const queries = useQueries({ queries: sources.map((source, i) => ({
|
|
104
|
+
...timeseriesQueryOptions(source, options),
|
|
105
|
+
enabled: registrations[i] === null
|
|
106
|
+
})) });
|
|
107
|
+
const registrationsKey = JSON.stringify(registrations.filter((r) => r !== null));
|
|
108
|
+
useEffect(() => {
|
|
109
|
+
const active = JSON.parse(registrationsKey);
|
|
110
|
+
if (!stream || active.length === 0) return;
|
|
111
|
+
const unregister = active.map((registration) => stream.register(registration));
|
|
112
|
+
return () => unregister.forEach((off) => off());
|
|
113
|
+
}, [stream, registrationsKey]);
|
|
114
|
+
const groups = useSyncExternalStore(stream ? stream.subscribe : noStream, () => stream ? stream.getSnapshot() : NO_GROUPS);
|
|
115
|
+
return sources.map((source, i) => {
|
|
116
|
+
const registration = registrations[i];
|
|
117
|
+
return registration ? streamResult(source.id, registration, groups) : queryResult(source.id, queries[i]);
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* The one series a single-value widget (gauge, core bars) reads from a
|
|
122
|
+
* result: the series whose id is the requested id, else the only series. An
|
|
123
|
+
* id that expanded into several series has no single reading, so it is an
|
|
124
|
+
* error rather than an arbitrary pick.
|
|
125
|
+
*/
|
|
126
|
+
function soleSeries(id, result) {
|
|
127
|
+
if (!result) return {
|
|
128
|
+
data: void 0,
|
|
129
|
+
error: null
|
|
130
|
+
};
|
|
131
|
+
if (result.error) return {
|
|
132
|
+
data: void 0,
|
|
133
|
+
error: result.error
|
|
134
|
+
};
|
|
135
|
+
const list = result.series ?? [];
|
|
136
|
+
const data = list.find((s) => s.id === id) ?? (list.length === 1 ? list[0] : void 0);
|
|
137
|
+
if (!data && list.length > 1) return {
|
|
138
|
+
data: void 0,
|
|
139
|
+
error: /* @__PURE__ */ new Error(`metric ${id} expanded into ${list.length} series; this widget shows one`)
|
|
140
|
+
};
|
|
141
|
+
return {
|
|
142
|
+
data,
|
|
143
|
+
error: null
|
|
144
|
+
};
|
|
50
145
|
}
|
|
51
146
|
/** The value of the last point, or undefined when the series is empty. */
|
|
52
147
|
function latestValue(resp) {
|
|
@@ -54,6 +149,6 @@ function latestValue(resp) {
|
|
|
54
149
|
if (!points || points.length === 0) return void 0;
|
|
55
150
|
return points[points.length - 1]?.value;
|
|
56
151
|
}
|
|
57
|
-
export { defaultTimeseriesFetcher, latestValue, timeseriesQueryOptions, timeseriesRequestUrl, useTimeseriesQueries };
|
|
152
|
+
export { defaultTimeseriesFetcher, latestValue, soleSeries, timeseriesQueryOptions, timeseriesRequestUrl, useTimeseriesQueries };
|
|
58
153
|
|
|
59
154
|
//# sourceMappingURL=timeseries-query.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeseries-query.js","names":[],"sources":["../../src/data/timeseries-query.ts"],"sourcesContent":["import { useQueries, type UseQueryOptions, type UseQueryResult } from \"@tanstack/react-query\";\nimport type { SeriesLoader, TimeseriesResponse } from \"./TimeseriesPanel.model\";\n\n/** Loads a metric by URL; the legacy data path of the timeseries widgets. */\nexport type TimeseriesFetcher = (url: string) => Promise<TimeseriesResponse>;\n\n/** One series the widgets poll: a metric id, optionally backed by a loader. */\nexport interface TimeseriesSource {\n id: string;\n load?: SeriesLoader | undefined;\n}\n\nexport interface TimeseriesQueryOptions {\n /** Prefix for URL-backed sources; ignored by sources with a `load`. */\n baseUrl?: string;\n range: string;\n refreshMs: number;\n fetcher: TimeseriesFetcher;\n}\n\nexport const defaultTimeseriesFetcher: TimeseriesFetcher = async (url) => {\n const res = await fetch(url);\n if (!res.ok) throw new Error(`metrics request failed: ${res.status}`);\n return res.json();\n};\n\n/** `baseUrl + id` resolved to a same-origin path with `?since=<range>`. */\nexport function timeseriesRequestUrl(url: string, range: string): string {\n const u = new URL(url, window.location.origin);\n if (range) u.searchParams.set(\"since\", range);\n return u.pathname + u.search;\n}\n\n/**\n * The react-query options for one series. URL-backed sources key on the\n * request URL (unchanged from before loaders existed); loader-backed sources\n * key on `[\"timeseries\", \"load\", id, range]`, so the id is the cache identity\n * and callers must keep it unique per data source.\n */\nexport function timeseriesQueryOptions(\n source: TimeseriesSource,\n { baseUrl = \"\", range, refreshMs, fetcher }: TimeseriesQueryOptions,\n): UseQueryOptions<TimeseriesResponse, Error, TimeseriesResponse, readonly unknown[]> {\n const shared = {\n refetchInterval: refreshMs > 0 ? refreshMs : (false as const),\n staleTime: 0,\n retry: 0,\n };\n const { load } = source;\n if (load) {\n return {\n ...shared,\n queryKey: [\"timeseries\", \"load\", source.id, range],\n queryFn: ({ signal }: { signal: AbortSignal }) => load({ range, signal }),\n };\n }\n const requestUrl = timeseriesRequestUrl(baseUrl + source.id, range);\n return {\n ...shared,\n queryKey: [\"timeseries\", requestUrl],\n queryFn: () => fetcher(requestUrl),\n };\n}\n\n/** Polls every source in parallel; results are index-aligned with `sources`. */\nexport function useTimeseriesQueries(\n sources: readonly TimeseriesSource[],\n options: TimeseriesQueryOptions,\n): UseQueryResult<TimeseriesResponse>[] {\n return useQueries({\n queries: sources.map((source) => timeseriesQueryOptions(source, options)),\n });\n}\n\n/** The value of the last point, or undefined when the series is empty. */\nexport function latestValue(resp: TimeseriesResponse | undefined): number | undefined {\n const points = resp?.points;\n if (!points || points.length === 0) return undefined;\n return points[points.length - 1]?.value;\n}\n"],"mappings":";;AAoBA,IAAa,2BAA8C,OAAO,QAAQ;CACxE,MAAM,MAAM,MAAM,MAAM,GAAG;CAC3B,IAAI,CAAC,IAAI,IAAI,MAAM,IAAI,MAAM,2BAA2B,IAAI,QAAQ;CACpE,OAAO,IAAI,KAAK;AAClB;;AAGA,SAAgB,qBAAqB,KAAa,OAAuB;CACvE,MAAM,IAAI,IAAI,IAAI,KAAK,OAAO,SAAS,MAAM;CAC7C,IAAI,OAAO,EAAE,aAAa,IAAI,SAAS,KAAK;CAC5C,OAAO,EAAE,WAAW,EAAE;AACxB;;;;;;;AAQA,SAAgB,uBACd,QACA,EAAE,UAAU,IAAI,OAAO,WAAW,WACkD;CACpF,MAAM,SAAS;EACb,iBAAiB,YAAY,IAAI,YAAa;EAC9C,WAAW;EACX,OAAO;CACT;CACA,MAAM,EAAE,SAAS;CACjB,IAAI,MACF,OAAO;EACL,GAAG;EACH,UAAU;GAAC;GAAc;GAAQ,OAAO;GAAI;EAAK;EACjD,UAAU,EAAE,aAAsC,KAAK;GAAE;GAAO;EAAO,CAAC;CAC1E;CAEF,MAAM,aAAa,qBAAqB,UAAU,OAAO,IAAI,KAAK;CAClE,OAAO;EACL,GAAG;EACH,UAAU,CAAC,cAAc,UAAU;EACnC,eAAe,QAAQ,UAAU;CACnC;AACF;;AAGA,SAAgB,qBACd,SACA,SACsC;CACtC,OAAO,WAAW,EAChB,SAAS,QAAQ,KAAK,WAAW,uBAAuB,QAAQ,OAAO,CAAC,EAC1E,CAAC;AACH;;AAGA,SAAgB,YAAY,MAA0D;CACpF,MAAM,SAAS,MAAM;CACrB,IAAI,CAAC,UAAU,OAAO,WAAW,GAAG,OAAO,KAAA;CAC3C,OAAO,OAAO,OAAO,SAAS,EAAE,EAAE;AACpC"}
|
|
1
|
+
{"version":3,"file":"timeseries-query.js","names":[],"sources":["../../src/data/timeseries-query.ts"],"sourcesContent":["import { useQueries, type UseQueryOptions, type UseQueryResult } from \"@tanstack/react-query\";\nimport { useEffect, useSyncExternalStore } from \"react\";\nimport type { SeriesLoader, TimeseriesResponse, TimeseriesServerSeries } from \"./TimeseriesPanel.model\";\nimport {\n EMPTY_TIMESERIES_STREAM_GROUP,\n timeseriesStreamAddress,\n timeseriesStreamGroupKey,\n timeseriesStreamInterval,\n useTimeseriesStream,\n type TimeseriesStreamGroupState,\n type TimeseriesStreamRegistration,\n} from \"./timeseries-stream\";\n\n/** Loads a metric by URL; the legacy data path of the timeseries widgets. */\nexport type TimeseriesFetcher = (url: string) => Promise<TimeseriesResponse>;\n\n/** One series the widgets poll: a metric id, optionally backed by a loader. */\nexport interface TimeseriesSource {\n id: string;\n load?: SeriesLoader | undefined;\n}\n\nexport interface TimeseriesQueryOptions {\n /** Prefix for URL-backed sources; ignored by sources with a `load`. */\n baseUrl?: string;\n range: string;\n refreshMs: number;\n fetcher: TimeseriesFetcher;\n}\n\nexport const defaultTimeseriesFetcher: TimeseriesFetcher = async (url) => {\n const res = await fetch(url);\n if (!res.ok) throw new Error(`metrics request failed: ${res.status}`);\n return res.json();\n};\n\n/** `baseUrl + id` resolved to a same-origin path with `?since=<range>`. */\nexport function timeseriesRequestUrl(url: string, range: string): string {\n const u = new URL(url, window.location.origin);\n if (range) u.searchParams.set(\"since\", range);\n return u.pathname + u.search;\n}\n\n/**\n * The react-query options for one series. URL-backed sources key on the\n * request URL (unchanged from before loaders existed); loader-backed sources\n * key on `[\"timeseries\", \"load\", id, range]`, so the id is the cache identity\n * and callers must keep it unique per data source.\n */\nexport function timeseriesQueryOptions(\n source: TimeseriesSource,\n { baseUrl = \"\", range, refreshMs, fetcher }: TimeseriesQueryOptions,\n): UseQueryOptions<TimeseriesResponse, Error, TimeseriesResponse, readonly unknown[]> {\n const shared = {\n refetchInterval: refreshMs > 0 ? refreshMs : (false as const),\n staleTime: 0,\n retry: 0,\n };\n const { load } = source;\n if (load) {\n return {\n ...shared,\n queryKey: [\"timeseries\", \"load\", source.id, range],\n queryFn: ({ signal }: { signal: AbortSignal }) => load({ range, signal }),\n };\n }\n const requestUrl = timeseriesRequestUrl(baseUrl + source.id, range);\n return {\n ...shared,\n queryKey: [\"timeseries\", requestUrl],\n queryFn: () => fetcher(requestUrl),\n };\n}\n\n/** What one requested source resolved to. */\nexport interface TimeseriesSourceResult {\n /**\n * Every series the source answered with: one for a polled or loaded id,\n * each expansion for a streamed id (possibly none). Undefined until answered.\n */\n series: readonly TimeseriesServerSeries[] | undefined;\n isLoading: boolean;\n error: Error | null;\n}\n\nconst noStream = () => () => {};\n\nfunction queryResult(id: string, query: UseQueryResult<TimeseriesResponse>): TimeseriesSourceResult {\n const { data } = query;\n return {\n series: data ? [{ id, source: id, points: data.points }] : undefined,\n isLoading: query.isLoading,\n error: query.error,\n };\n}\n\n/**\n * A streamed source's result, reported under the id the widget requested\n * (which differs from the streamed id for a single-`url` panel).\n */\nfunction streamResult(\n requestedId: string,\n registration: TimeseriesStreamRegistration,\n groups: ReadonlyMap<string, TimeseriesStreamGroupState>,\n): TimeseriesSourceResult {\n const group = groups.get(timeseriesStreamGroupKey(registration)) ?? EMPTY_TIMESERIES_STREAM_GROUP;\n const streamedId = registration.id;\n const answered = group.answered.has(streamedId);\n const held = group.bySource.get(streamedId) ?? [];\n const series =\n requestedId === streamedId\n ? held\n : held.map((s) => ({ ...s, source: requestedId, ...(s.id === streamedId ? { id: requestedId } : {}) }));\n return {\n series: answered ? series : undefined,\n isLoading: !answered && group.error === null,\n error: group.error,\n };\n}\n\nconst NO_GROUPS: ReadonlyMap<string, TimeseriesStreamGroupState> = new Map();\n\n/**\n * Reads every source; results are index-aligned with `sources`. Under a\n * {@link TimeseriesStreamProvider} the URL-backed sources of a live widget\n * (`refreshMs > 0`) come from their stream group (see\n * {@link timeseriesStreamAddress}); sources with a `load`, and every source\n * outside a provider, are fetched per source and re-polled every `refreshMs`.\n */\nexport function useTimeseriesQueries(\n sources: readonly TimeseriesSource[],\n options: TimeseriesQueryOptions,\n): TimeseriesSourceResult[] {\n const stream = useTimeseriesStream();\n const { range } = options;\n const interval = timeseriesStreamInterval(options.refreshMs);\n const registrations = sources.map((source): TimeseriesStreamRegistration | null => {\n if (!stream || interval === null || source.load) return null;\n const address = timeseriesStreamAddress(options.baseUrl ?? \"\", source.id);\n return address ? { ...address, range, interval } : null;\n });\n const queries = useQueries({\n queries: sources.map((source, i) => ({\n ...timeseriesQueryOptions(source, options),\n enabled: registrations[i] === null,\n })),\n });\n\n const registrationsKey = JSON.stringify(registrations.filter((r) => r !== null));\n useEffect(() => {\n const active = JSON.parse(registrationsKey) as TimeseriesStreamRegistration[];\n if (!stream || active.length === 0) return;\n const unregister = active.map((registration) => stream.register(registration));\n return () => unregister.forEach((off) => off());\n }, [stream, registrationsKey]);\n\n const groups = useSyncExternalStore(\n stream ? stream.subscribe : noStream,\n () => (stream ? stream.getSnapshot() : NO_GROUPS),\n );\n\n return sources.map((source, i) => {\n const registration = registrations[i];\n return registration\n ? streamResult(source.id, registration, groups)\n : queryResult(source.id, queries[i] as UseQueryResult<TimeseriesResponse>);\n });\n}\n\n/**\n * The one series a single-value widget (gauge, core bars) reads from a\n * result: the series whose id is the requested id, else the only series. An\n * id that expanded into several series has no single reading, so it is an\n * error rather than an arbitrary pick.\n */\nexport function soleSeries(\n id: string,\n result: TimeseriesSourceResult | undefined,\n): { data: TimeseriesServerSeries | undefined; error: Error | null } {\n if (!result) return { data: undefined, error: null };\n if (result.error) return { data: undefined, error: result.error };\n const list = result.series ?? [];\n const data = list.find((s) => s.id === id) ?? (list.length === 1 ? list[0] : undefined);\n if (!data && list.length > 1) {\n return { data: undefined, error: new Error(`metric ${id} expanded into ${list.length} series; this widget shows one`) };\n }\n return { data, error: null };\n}\n\n/** The value of the last point, or undefined when the series is empty. */\nexport function latestValue(resp: Pick<TimeseriesResponse, \"points\"> | undefined): number | undefined {\n const points = resp?.points;\n if (!points || points.length === 0) return undefined;\n return points[points.length - 1]?.value;\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
const require_event_source = require("../hooks/event-source.cjs");
|
|
2
|
+
const require_timeseries_stream = require("./timeseries-stream.cjs");
|
|
3
|
+
let react = require("react");
|
|
4
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
5
|
+
// src/data/timeseries-stream-provider.tsx
|
|
6
|
+
/**
|
|
7
|
+
* Streams every URL-backed TimeseriesPanel, TimeseriesGauge and
|
|
8
|
+
* TimeseriesCoreBars below it over one subscription per (baseUrl, range,
|
|
9
|
+
* interval) group — `GET {baseUrl}stream?id=…&since=…&interval=…` (clicky
|
|
10
|
+
* `metrics.RegisterStreamRoutes`) — instead of each series polling
|
|
11
|
+
* `{baseUrl}{id}`. Subscriptions open through `useEventSourceFactory()`, so
|
|
12
|
+
* place it inside an `EventSourceProvider` built with `createEventHub()` to
|
|
13
|
+
* share the tab's single hub connection. A single-`url` panel streams from
|
|
14
|
+
* its url's path prefix (see `timeseriesStreamAddress`). Series with a
|
|
15
|
+
* `load`, and widgets with `refreshMs <= 0`, keep fetching on their own.
|
|
16
|
+
*
|
|
17
|
+
* ```tsx
|
|
18
|
+
* const hub = createEventHub({ buildId });
|
|
19
|
+
* <EventSourceProvider value={hub}>
|
|
20
|
+
* <TimeseriesStreamProvider>{app}</TimeseriesStreamProvider>
|
|
21
|
+
* </EventSourceProvider>
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
function TimeseriesStreamProvider({ debounceMs, children }) {
|
|
25
|
+
const factory = require_event_source.useEventSourceFactory();
|
|
26
|
+
const stream = (0, react.useMemo)(() => require_timeseries_stream.createTimeseriesStream({
|
|
27
|
+
factory,
|
|
28
|
+
...debounceMs !== void 0 ? { debounceMs } : {}
|
|
29
|
+
}), [factory, debounceMs]);
|
|
30
|
+
(0, react.useEffect)(() => () => stream.close(), [stream]);
|
|
31
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_timeseries_stream.TimeseriesStreamContext.Provider, {
|
|
32
|
+
value: stream,
|
|
33
|
+
children
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
exports.TimeseriesStreamProvider = TimeseriesStreamProvider;
|
|
37
|
+
|
|
38
|
+
//# sourceMappingURL=timeseries-stream-provider.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timeseries-stream-provider.cjs","names":["useEventSourceFactory","useMemo","createTimeseriesStream","TimeseriesStreamContext"],"sources":["../../src/data/timeseries-stream-provider.tsx"],"sourcesContent":["import { useEffect, useMemo, type ReactNode } from \"react\";\nimport { useEventSourceFactory } from \"../hooks/event-source\";\nimport { createTimeseriesStream, TimeseriesStreamContext } from \"./timeseries-stream\";\n\nexport interface TimeseriesStreamProviderProps {\n /** How long widget (un)registrations coalesce before a group re-subscribes. Defaults to 50ms. */\n debounceMs?: number;\n children?: ReactNode;\n}\n\n/**\n * Streams every URL-backed TimeseriesPanel, TimeseriesGauge and\n * TimeseriesCoreBars below it over one subscription per (baseUrl, range,\n * interval) group — `GET {baseUrl}stream?id=…&since=…&interval=…` (clicky\n * `metrics.RegisterStreamRoutes`) — instead of each series polling\n * `{baseUrl}{id}`. Subscriptions open through `useEventSourceFactory()`, so\n * place it inside an `EventSourceProvider` built with `createEventHub()` to\n * share the tab's single hub connection. A single-`url` panel streams from\n * its url's path prefix (see `timeseriesStreamAddress`). Series with a\n * `load`, and widgets with `refreshMs <= 0`, keep fetching on their own.\n *\n * ```tsx\n * const hub = createEventHub({ buildId });\n * <EventSourceProvider value={hub}>\n * <TimeseriesStreamProvider>{app}</TimeseriesStreamProvider>\n * </EventSourceProvider>\n * ```\n */\nexport function TimeseriesStreamProvider({ debounceMs, children }: TimeseriesStreamProviderProps) {\n const factory = useEventSourceFactory();\n const stream = useMemo(\n () => createTimeseriesStream({ factory, ...(debounceMs !== undefined ? { debounceMs } : {}) }),\n [factory, debounceMs],\n );\n useEffect(() => () => stream.close(), [stream]);\n return <TimeseriesStreamContext.Provider value={stream}>{children}</TimeseriesStreamContext.Provider>;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AA4BA,SAAgB,yBAAyB,EAAE,YAAY,YAA2C;CAChG,MAAM,UAAUA,qBAAAA,sBAAsB;CACtC,MAAM,UAAA,GAASC,MAAAA,QAAAA,OACPC,0BAAAA,uBAAuB;EAAE;EAAS,GAAI,eAAe,KAAA,IAAY,EAAE,WAAW,IAAI,CAAC;CAAG,CAAC,GAC7F,CAAC,SAAS,UAAU,CACtB;CACA,CAAA,GAAA,MAAA,UAAA,aAAsB,OAAO,MAAM,GAAG,CAAC,MAAM,CAAC;CAC9C,OAAO,iBAAA,GAAA,kBAAA,IAAA,CAACC,0BAAAA,wBAAwB,UAAzB;EAAkC,OAAO;EAAS;CAA2C,CAAA;AACtG"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export interface TimeseriesStreamProviderProps {
|
|
3
|
+
/** How long widget (un)registrations coalesce before a group re-subscribes. Defaults to 50ms. */
|
|
4
|
+
debounceMs?: number;
|
|
5
|
+
children?: ReactNode;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Streams every URL-backed TimeseriesPanel, TimeseriesGauge and
|
|
9
|
+
* TimeseriesCoreBars below it over one subscription per (baseUrl, range,
|
|
10
|
+
* interval) group — `GET {baseUrl}stream?id=…&since=…&interval=…` (clicky
|
|
11
|
+
* `metrics.RegisterStreamRoutes`) — instead of each series polling
|
|
12
|
+
* `{baseUrl}{id}`. Subscriptions open through `useEventSourceFactory()`, so
|
|
13
|
+
* place it inside an `EventSourceProvider` built with `createEventHub()` to
|
|
14
|
+
* share the tab's single hub connection. A single-`url` panel streams from
|
|
15
|
+
* its url's path prefix (see `timeseriesStreamAddress`). Series with a
|
|
16
|
+
* `load`, and widgets with `refreshMs <= 0`, keep fetching on their own.
|
|
17
|
+
*
|
|
18
|
+
* ```tsx
|
|
19
|
+
* const hub = createEventHub({ buildId });
|
|
20
|
+
* <EventSourceProvider value={hub}>
|
|
21
|
+
* <TimeseriesStreamProvider>{app}</TimeseriesStreamProvider>
|
|
22
|
+
* </EventSourceProvider>
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export declare function TimeseriesStreamProvider({ debounceMs, children }: TimeseriesStreamProviderProps): import("react").JSX.Element;
|
|
26
|
+
//# sourceMappingURL=timeseries-stream-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timeseries-stream-provider.d.ts","sourceRoot":"","sources":["../../src/data/timeseries-stream-provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAI3D,MAAM,WAAW,6BAA6B;IAC5C,iGAAiG;IACjG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,6BAA6B,+BAQ/F"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { useEventSourceFactory } from "../hooks/event-source.js";
|
|
2
|
+
import { TimeseriesStreamContext, createTimeseriesStream } from "./timeseries-stream.js";
|
|
3
|
+
import { useEffect, useMemo } from "react";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
// src/data/timeseries-stream-provider.tsx
|
|
6
|
+
/**
|
|
7
|
+
* Streams every URL-backed TimeseriesPanel, TimeseriesGauge and
|
|
8
|
+
* TimeseriesCoreBars below it over one subscription per (baseUrl, range,
|
|
9
|
+
* interval) group — `GET {baseUrl}stream?id=…&since=…&interval=…` (clicky
|
|
10
|
+
* `metrics.RegisterStreamRoutes`) — instead of each series polling
|
|
11
|
+
* `{baseUrl}{id}`. Subscriptions open through `useEventSourceFactory()`, so
|
|
12
|
+
* place it inside an `EventSourceProvider` built with `createEventHub()` to
|
|
13
|
+
* share the tab's single hub connection. A single-`url` panel streams from
|
|
14
|
+
* its url's path prefix (see `timeseriesStreamAddress`). Series with a
|
|
15
|
+
* `load`, and widgets with `refreshMs <= 0`, keep fetching on their own.
|
|
16
|
+
*
|
|
17
|
+
* ```tsx
|
|
18
|
+
* const hub = createEventHub({ buildId });
|
|
19
|
+
* <EventSourceProvider value={hub}>
|
|
20
|
+
* <TimeseriesStreamProvider>{app}</TimeseriesStreamProvider>
|
|
21
|
+
* </EventSourceProvider>
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
function TimeseriesStreamProvider({ debounceMs, children }) {
|
|
25
|
+
const factory = useEventSourceFactory();
|
|
26
|
+
const stream = useMemo(() => createTimeseriesStream({
|
|
27
|
+
factory,
|
|
28
|
+
...debounceMs !== void 0 ? { debounceMs } : {}
|
|
29
|
+
}), [factory, debounceMs]);
|
|
30
|
+
useEffect(() => () => stream.close(), [stream]);
|
|
31
|
+
return /* @__PURE__ */ jsx(TimeseriesStreamContext.Provider, {
|
|
32
|
+
value: stream,
|
|
33
|
+
children
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
export { TimeseriesStreamProvider };
|
|
37
|
+
|
|
38
|
+
//# sourceMappingURL=timeseries-stream-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timeseries-stream-provider.js","names":[],"sources":["../../src/data/timeseries-stream-provider.tsx"],"sourcesContent":["import { useEffect, useMemo, type ReactNode } from \"react\";\nimport { useEventSourceFactory } from \"../hooks/event-source\";\nimport { createTimeseriesStream, TimeseriesStreamContext } from \"./timeseries-stream\";\n\nexport interface TimeseriesStreamProviderProps {\n /** How long widget (un)registrations coalesce before a group re-subscribes. Defaults to 50ms. */\n debounceMs?: number;\n children?: ReactNode;\n}\n\n/**\n * Streams every URL-backed TimeseriesPanel, TimeseriesGauge and\n * TimeseriesCoreBars below it over one subscription per (baseUrl, range,\n * interval) group — `GET {baseUrl}stream?id=…&since=…&interval=…` (clicky\n * `metrics.RegisterStreamRoutes`) — instead of each series polling\n * `{baseUrl}{id}`. Subscriptions open through `useEventSourceFactory()`, so\n * place it inside an `EventSourceProvider` built with `createEventHub()` to\n * share the tab's single hub connection. A single-`url` panel streams from\n * its url's path prefix (see `timeseriesStreamAddress`). Series with a\n * `load`, and widgets with `refreshMs <= 0`, keep fetching on their own.\n *\n * ```tsx\n * const hub = createEventHub({ buildId });\n * <EventSourceProvider value={hub}>\n * <TimeseriesStreamProvider>{app}</TimeseriesStreamProvider>\n * </EventSourceProvider>\n * ```\n */\nexport function TimeseriesStreamProvider({ debounceMs, children }: TimeseriesStreamProviderProps) {\n const factory = useEventSourceFactory();\n const stream = useMemo(\n () => createTimeseriesStream({ factory, ...(debounceMs !== undefined ? { debounceMs } : {}) }),\n [factory, debounceMs],\n );\n useEffect(() => () => stream.close(), [stream]);\n return <TimeseriesStreamContext.Provider value={stream}>{children}</TimeseriesStreamContext.Provider>;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AA4BA,SAAgB,yBAAyB,EAAE,YAAY,YAA2C;CAChG,MAAM,UAAU,sBAAsB;CACtC,MAAM,SAAS,cACP,uBAAuB;EAAE;EAAS,GAAI,eAAe,KAAA,IAAY,EAAE,WAAW,IAAI,CAAC;CAAG,CAAC,GAC7F,CAAC,SAAS,UAAU,CACtB;CACA,sBAAsB,OAAO,MAAM,GAAG,CAAC,MAAM,CAAC;CAC9C,OAAO,oBAAC,wBAAwB,UAAzB;EAAkC,OAAO;EAAS;CAA2C,CAAA;AACtG"}
|