@gravity-ui/querieskit 1.5.1 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +28 -0
- package/build/cjs/components/QueryGraph/QueryGraph.css +70 -0
- package/build/cjs/components/QueryGraph/QueryGraph.css.map +1 -0
- package/build/cjs/components/QueryGraph/QueryGraph.d.ts +4 -0
- package/build/cjs/components/QueryGraph/QueryGraph.js +517 -0
- package/build/cjs/components/QueryGraph/QueryGraph.js.map +1 -0
- package/build/cjs/components/QueryGraph/QueryGraph.stories.d.ts +16 -0
- package/build/cjs/components/QueryGraph/QueryGraph.stories.js +339 -0
- package/build/cjs/components/QueryGraph/QueryGraph.stories.js.map +1 -0
- package/build/cjs/components/QueryGraph/helpers/layout.d.ts +9 -0
- package/build/cjs/components/QueryGraph/helpers/layout.js +138 -0
- package/build/cjs/components/QueryGraph/helpers/layout.js.map +1 -0
- package/build/cjs/components/QueryGraph/helpers/presentation.d.ts +18 -0
- package/build/cjs/components/QueryGraph/helpers/presentation.js +44 -0
- package/build/cjs/components/QueryGraph/helpers/presentation.js.map +1 -0
- package/build/cjs/components/QueryGraph/i18n/dicts.d.ts +55 -0
- package/build/cjs/components/QueryGraph/i18n/dicts.js +14 -0
- package/build/cjs/components/QueryGraph/i18n/dicts.js.map +1 -0
- package/build/cjs/components/QueryGraph/i18n/en.json +26 -0
- package/build/cjs/components/QueryGraph/i18n/index.d.ts +6 -0
- package/build/cjs/components/QueryGraph/i18n/index.js +11 -0
- package/build/cjs/components/QueryGraph/i18n/index.js.map +1 -0
- package/build/cjs/components/QueryGraph/i18n/ru.json +26 -0
- package/build/cjs/components/QueryGraph/index.d.ts +2 -0
- package/build/cjs/components/QueryGraph/index.js +13 -0
- package/build/cjs/components/QueryGraph/index.js.map +1 -0
- package/build/cjs/components/QueryGraph/internal/QueryGraphCanvasBlock.d.ts +24 -0
- package/build/cjs/components/QueryGraph/internal/QueryGraphCanvasBlock.js +307 -0
- package/build/cjs/components/QueryGraph/internal/QueryGraphCanvasBlock.js.map +1 -0
- package/build/cjs/components/QueryGraph/internal/QueryGraphPopup.d.ts +5 -0
- package/build/cjs/components/QueryGraph/internal/QueryGraphPopup.js +242 -0
- package/build/cjs/components/QueryGraph/internal/QueryGraphPopup.js.map +1 -0
- package/build/cjs/components/QueryGraph/internal/queryGraphIcons.d.ts +12 -0
- package/build/cjs/components/QueryGraph/internal/queryGraphIcons.js +161 -0
- package/build/cjs/components/QueryGraph/internal/queryGraphIcons.js.map +1 -0
- package/build/cjs/components/QueryGraph/internal/useQueryGraphLayout.d.ts +22 -0
- package/build/cjs/components/QueryGraph/internal/useQueryGraphLayout.js +60 -0
- package/build/cjs/components/QueryGraph/internal/useQueryGraphLayout.js.map +1 -0
- package/build/cjs/components/QueryGraph/story/largeGraphData.d.ts +3 -0
- package/build/cjs/components/QueryGraph/story/largeGraphData.js +227 -0
- package/build/cjs/components/QueryGraph/story/largeGraphData.js.map +1 -0
- package/build/cjs/components/index.d.ts +2 -0
- package/build/cjs/components/index.js +9 -1
- package/build/cjs/components/index.js.map +1 -1
- package/build/cjs/helpers/buildColumnsFromKeys.d.ts +1 -1
- package/build/cjs/helpers/buildColumnsFromKeys.js.map +1 -1
- package/build/cjs/index.d.ts +1 -0
- package/build/cjs/index.js +11 -0
- package/build/cjs/index.js.map +1 -1
- package/build/cjs/modules/ClustersList/ClustersList.d.ts +1 -1
- package/build/cjs/modules/ClustersList/ClustersList.js +4 -3
- package/build/cjs/modules/ClustersList/ClustersList.js.map +1 -1
- package/build/cjs/modules/HistoryHeader/HistoryHeader.js +4 -3
- package/build/cjs/modules/HistoryHeader/HistoryHeader.js.map +1 -1
- package/build/cjs/modules/HistoryRow/HistoryRow.js +12 -7
- package/build/cjs/modules/HistoryRow/HistoryRow.js.map +1 -1
- package/build/cjs/modules/HistorySearchRow/HistorySearchRow.js +8 -5
- package/build/cjs/modules/HistorySearchRow/HistorySearchRow.js.map +1 -1
- package/build/cjs/modules/HistorySearchRow/helpers/resolveMonacoLanguage.d.ts +1 -1
- package/build/cjs/modules/HistorySearchRow/helpers/resolveMonacoLanguage.js +5 -5
- package/build/cjs/modules/HistorySearchRow/helpers/resolveMonacoLanguage.js.map +1 -1
- package/build/cjs/modules/NavigationDetail/NavigationDetail.d.ts +1 -1
- package/build/cjs/modules/NavigationDetail/NavigationDetail.js +2 -2
- package/build/cjs/modules/NavigationDetail/NavigationDetail.js.map +1 -1
- package/build/cjs/modules/NavigationHeader/NavigationHeader.d.ts +1 -1
- package/build/cjs/modules/NavigationHeader/NavigationHeader.js +2 -2
- package/build/cjs/modules/NavigationHeader/NavigationHeader.js.map +1 -1
- package/build/cjs/modules/NavigationItemsList/NavigationItemsList.d.ts +1 -1
- package/build/cjs/modules/NavigationItemsList/NavigationItemsList.js +4 -3
- package/build/cjs/modules/NavigationItemsList/NavigationItemsList.js.map +1 -1
- package/build/cjs/modules/NavigationItemsList/internal/NavigationItemsListEmptyState.d.ts +1 -1
- package/build/cjs/modules/NavigationItemsList/internal/NavigationItemsListEmptyState.js +2 -2
- package/build/cjs/modules/NavigationItemsList/internal/NavigationItemsListEmptyState.js.map +1 -1
- package/build/cjs/modules/NavigationMeta/NavigationMeta.js +4 -3
- package/build/cjs/modules/NavigationMeta/NavigationMeta.js.map +1 -1
- package/build/cjs/modules/NavigationMeta/i18n/index.d.ts +2 -2
- package/build/cjs/modules/NavigationPreview/NavigationPreview.d.ts +1 -1
- package/build/cjs/modules/NavigationPreview/NavigationPreview.js +6 -4
- package/build/cjs/modules/NavigationPreview/NavigationPreview.js.map +1 -1
- package/build/cjs/modules/NavigationPreview/helpers/buildPreviewColumns.d.ts +1 -1
- package/build/cjs/modules/NavigationPreview/helpers/buildPreviewColumns.js.map +1 -1
- package/build/cjs/modules/NavigationSchema/NavigationSchema.d.ts +1 -1
- package/build/cjs/modules/NavigationSchema/NavigationSchema.js +4 -3
- package/build/cjs/modules/NavigationSchema/NavigationSchema.js.map +1 -1
- package/build/cjs/modules/NavigationSchema/helpers/buildSchemaColumns.d.ts +1 -1
- package/build/cjs/modules/NavigationSchema/helpers/buildSchemaColumns.js.map +1 -1
- package/build/cjs/modules/NavigationView/NavigationView.d.ts +1 -1
- package/build/cjs/modules/NavigationView/NavigationView.js +4 -3
- package/build/cjs/modules/NavigationView/NavigationView.js.map +1 -1
- package/build/cjs/modules/NavigationView/helpers/buildViewColumns.d.ts +1 -1
- package/build/cjs/modules/NavigationView/helpers/buildViewColumns.js.map +1 -1
- package/build/cjs/modules/NavigationView/internal/NavigationViewSectionItem.d.ts +1 -1
- package/build/cjs/modules/NavigationView/internal/NavigationViewSectionItem.js +4 -3
- package/build/cjs/modules/NavigationView/internal/NavigationViewSectionItem.js.map +1 -1
- package/build/cjs/modules/QueriesList/QueriesList.js +2 -2
- package/build/cjs/modules/QueriesList/QueriesList.js.map +1 -1
- package/build/cjs/modules/QueryProgress/QueryProgress.css +64 -0
- package/build/cjs/modules/QueryProgress/QueryProgress.css.map +1 -0
- package/build/cjs/modules/QueryProgress/QueryProgress.d.ts +4 -0
- package/build/cjs/modules/QueryProgress/QueryProgress.js +135 -0
- package/build/cjs/modules/QueryProgress/QueryProgress.js.map +1 -0
- package/build/cjs/modules/QueryProgress/QueryProgress.stories.d.ts +7 -0
- package/build/cjs/modules/QueryProgress/QueryProgress.stories.js +38 -0
- package/build/cjs/modules/QueryProgress/QueryProgress.stories.js.map +1 -0
- package/build/cjs/modules/QueryProgress/i18n/dicts.d.ts +25 -0
- package/build/cjs/modules/QueryProgress/i18n/dicts.js +14 -0
- package/build/cjs/modules/QueryProgress/i18n/dicts.js.map +1 -0
- package/build/cjs/modules/QueryProgress/i18n/en.json +11 -0
- package/build/cjs/modules/QueryProgress/i18n/index.d.ts +6 -0
- package/build/cjs/modules/QueryProgress/i18n/index.js +11 -0
- package/build/cjs/modules/QueryProgress/i18n/index.js.map +1 -0
- package/build/cjs/modules/QueryProgress/i18n/ru.json +11 -0
- package/build/cjs/modules/QueryProgress/index.d.ts +2 -0
- package/build/cjs/modules/QueryProgress/index.js +13 -0
- package/build/cjs/modules/QueryProgress/index.js.map +1 -0
- package/build/cjs/modules/QueryStatistics/i18n/index.d.ts +2 -2
- package/build/cjs/modules/RowsList/RowsList.js +4 -3
- package/build/cjs/modules/RowsList/RowsList.js.map +1 -1
- package/build/cjs/modules/SavedQueryRow/SavedQueryRow.d.ts +2 -2
- package/build/cjs/modules/SavedQueryRow/SavedQueryRow.js +6 -4
- package/build/cjs/modules/SavedQueryRow/SavedQueryRow.js.map +1 -1
- package/build/cjs/modules/SavedQuerySearchRow/SavedQuerySearchRow.d.ts +2 -2
- package/build/cjs/modules/SavedQuerySearchRow/SavedQuerySearchRow.js +4 -3
- package/build/cjs/modules/SavedQuerySearchRow/SavedQuerySearchRow.js.map +1 -1
- package/build/cjs/modules/TutorialRow/TutorialRow.d.ts +1 -1
- package/build/cjs/modules/TutorialRow/TutorialRow.js +2 -2
- package/build/cjs/modules/TutorialRow/TutorialRow.js.map +1 -1
- package/build/cjs/modules/TutorialSearchRow/TutorialSearchRow.d.ts +1 -1
- package/build/cjs/modules/TutorialSearchRow/TutorialSearchRow.js +4 -3
- package/build/cjs/modules/TutorialSearchRow/TutorialSearchRow.js.map +1 -1
- package/build/cjs/modules/index.d.ts +2 -0
- package/build/cjs/modules/index.js +8 -0
- package/build/cjs/modules/index.js.map +1 -1
- package/build/cjs/types/queryGraph.d.ts +87 -0
- package/build/cjs/types/queryGraph.js +6 -0
- package/build/cjs/types/queryGraph.js.map +1 -0
- package/build/cjs/widgets/DashboardCharts/DashboardCharts.js +8 -6
- package/build/cjs/widgets/DashboardCharts/DashboardCharts.js.map +1 -1
- package/build/cjs/widgets/DashboardCharts/types.d.ts +3 -3
- package/build/cjs/widgets/DashboardCharts/types.js.map +1 -1
- package/build/cjs/widgets/QueriesHistory/QueriesHistory.js +2 -2
- package/build/cjs/widgets/QueriesHistory/QueriesHistory.js.map +1 -1
- package/build/cjs/widgets/QueriesHistory/internal/HistoryRowContent.js +6 -5
- package/build/cjs/widgets/QueriesHistory/internal/HistoryRowContent.js.map +1 -1
- package/build/cjs/widgets/QueriesNavigation/QueriesNavigation.d.ts +1 -1
- package/build/cjs/widgets/QueriesNavigation/QueriesNavigation.js +13 -9
- package/build/cjs/widgets/QueriesNavigation/QueriesNavigation.js.map +1 -1
- package/build/cjs/widgets/QueriesNavigation/helpers/createEmptyDetailConfig.js +2 -2
- package/build/cjs/widgets/QueriesNavigation/helpers/createEmptyDetailConfig.js.map +1 -1
- package/build/cjs/widgets/QueriesNavigation/helpers/createTableDetailConfig.js +8 -5
- package/build/cjs/widgets/QueriesNavigation/helpers/createTableDetailConfig.js.map +1 -1
- package/build/cjs/widgets/QueryResults/QueryResults.js +2 -2
- package/build/cjs/widgets/QueryResults/QueryResults.js.map +1 -1
- package/build/cjs/widgets/QueryResults/i18n/index.d.ts +2 -2
- package/build/cjs/widgets/QueryResults/internal/QueryResultsSchema.js +4 -3
- package/build/cjs/widgets/QueryResults/internal/QueryResultsSchema.js.map +1 -1
- package/build/cjs/widgets/SavedQueries/SavedQueries.d.ts +2 -2
- package/build/cjs/widgets/SavedQueries/SavedQueries.js +2 -2
- package/build/cjs/widgets/SavedQueries/SavedQueries.js.map +1 -1
- package/build/cjs/widgets/SavedQueries/SavedQueryRowContent.d.ts +2 -2
- package/build/cjs/widgets/SavedQueries/SavedQueryRowContent.js +6 -5
- package/build/cjs/widgets/SavedQueries/SavedQueryRowContent.js.map +1 -1
- package/build/cjs/widgets/TutorialsHistory/TutorialRowContent.d.ts +2 -2
- package/build/cjs/widgets/TutorialsHistory/TutorialRowContent.js +6 -5
- package/build/cjs/widgets/TutorialsHistory/TutorialRowContent.js.map +1 -1
- package/build/cjs/widgets/TutorialsHistory/TutorialsHistory.d.ts +2 -2
- package/build/cjs/widgets/TutorialsHistory/TutorialsHistory.js +6 -4
- package/build/cjs/widgets/TutorialsHistory/TutorialsHistory.js.map +1 -1
- package/build/esm/components/QueryGraph/QueryGraph.css +70 -0
- package/build/esm/components/QueryGraph/QueryGraph.css.map +1 -0
- package/build/esm/components/QueryGraph/QueryGraph.d.ts +4 -0
- package/build/esm/components/QueryGraph/QueryGraph.js +510 -0
- package/build/esm/components/QueryGraph/QueryGraph.js.map +1 -0
- package/build/esm/components/QueryGraph/QueryGraph.scss +81 -0
- package/build/esm/components/QueryGraph/QueryGraph.stories.d.ts +16 -0
- package/build/esm/components/QueryGraph/QueryGraph.stories.js +331 -0
- package/build/esm/components/QueryGraph/QueryGraph.stories.js.map +1 -0
- package/build/esm/components/QueryGraph/helpers/layout.d.ts +9 -0
- package/build/esm/components/QueryGraph/helpers/layout.js +128 -0
- package/build/esm/components/QueryGraph/helpers/layout.js.map +1 -0
- package/build/esm/components/QueryGraph/helpers/presentation.d.ts +18 -0
- package/build/esm/components/QueryGraph/helpers/presentation.js +35 -0
- package/build/esm/components/QueryGraph/helpers/presentation.js.map +1 -0
- package/build/esm/components/QueryGraph/i18n/dicts.d.ts +55 -0
- package/build/esm/components/QueryGraph/i18n/dicts.js +7 -0
- package/build/esm/components/QueryGraph/i18n/dicts.js.map +1 -0
- package/build/esm/components/QueryGraph/i18n/en.json +26 -0
- package/build/esm/components/QueryGraph/i18n/index.d.ts +6 -0
- package/build/esm/components/QueryGraph/i18n/index.js +4 -0
- package/build/esm/components/QueryGraph/i18n/index.js.map +1 -0
- package/build/esm/components/QueryGraph/i18n/ru.json +26 -0
- package/build/esm/components/QueryGraph/index.d.ts +2 -0
- package/build/esm/components/QueryGraph/index.js +2 -0
- package/build/esm/components/QueryGraph/index.js.map +1 -0
- package/build/esm/components/QueryGraph/internal/QueryGraphCanvasBlock.d.ts +24 -0
- package/build/esm/components/QueryGraph/internal/QueryGraphCanvasBlock.js +299 -0
- package/build/esm/components/QueryGraph/internal/QueryGraphCanvasBlock.js.map +1 -0
- package/build/esm/components/QueryGraph/internal/QueryGraphPopup.d.ts +5 -0
- package/build/esm/components/QueryGraph/internal/QueryGraphPopup.js +234 -0
- package/build/esm/components/QueryGraph/internal/QueryGraphPopup.js.map +1 -0
- package/build/esm/components/QueryGraph/internal/queryGraphIcons.d.ts +12 -0
- package/build/esm/components/QueryGraph/internal/queryGraphIcons.js +150 -0
- package/build/esm/components/QueryGraph/internal/queryGraphIcons.js.map +1 -0
- package/build/esm/components/QueryGraph/internal/useQueryGraphLayout.d.ts +22 -0
- package/build/esm/components/QueryGraph/internal/useQueryGraphLayout.js +53 -0
- package/build/esm/components/QueryGraph/internal/useQueryGraphLayout.js.map +1 -0
- package/build/esm/components/QueryGraph/story/largeGraphData.d.ts +3 -0
- package/build/esm/components/QueryGraph/story/largeGraphData.js +220 -0
- package/build/esm/components/QueryGraph/story/largeGraphData.js.map +1 -0
- package/build/esm/components/index.d.ts +2 -0
- package/build/esm/components/index.js +1 -0
- package/build/esm/components/index.js.map +1 -1
- package/build/esm/helpers/buildColumnsFromKeys.d.ts +1 -1
- package/build/esm/helpers/buildColumnsFromKeys.js.map +1 -1
- package/build/esm/index.d.ts +1 -0
- package/build/esm/index.js +1 -0
- package/build/esm/index.js.map +1 -1
- package/build/esm/modules/ClustersList/ClustersList.d.ts +1 -1
- package/build/esm/modules/ClustersList/ClustersList.js +2 -1
- package/build/esm/modules/ClustersList/ClustersList.js.map +1 -1
- package/build/esm/modules/HistoryHeader/HistoryHeader.js +2 -1
- package/build/esm/modules/HistoryHeader/HistoryHeader.js.map +1 -1
- package/build/esm/modules/HistoryRow/HistoryRow.js +6 -1
- package/build/esm/modules/HistoryRow/HistoryRow.js.map +1 -1
- package/build/esm/modules/HistorySearchRow/HistorySearchRow.js +4 -1
- package/build/esm/modules/HistorySearchRow/HistorySearchRow.js.map +1 -1
- package/build/esm/modules/HistorySearchRow/helpers/resolveMonacoLanguage.d.ts +1 -1
- package/build/esm/modules/HistorySearchRow/helpers/resolveMonacoLanguage.js +1 -1
- package/build/esm/modules/HistorySearchRow/helpers/resolveMonacoLanguage.js.map +1 -1
- package/build/esm/modules/NavigationDetail/NavigationDetail.d.ts +1 -1
- package/build/esm/modules/NavigationDetail/NavigationDetail.js +1 -1
- package/build/esm/modules/NavigationDetail/NavigationDetail.js.map +1 -1
- package/build/esm/modules/NavigationHeader/NavigationHeader.d.ts +1 -1
- package/build/esm/modules/NavigationHeader/NavigationHeader.js +1 -1
- package/build/esm/modules/NavigationHeader/NavigationHeader.js.map +1 -1
- package/build/esm/modules/NavigationItemsList/NavigationItemsList.d.ts +1 -1
- package/build/esm/modules/NavigationItemsList/NavigationItemsList.js +2 -1
- package/build/esm/modules/NavigationItemsList/NavigationItemsList.js.map +1 -1
- package/build/esm/modules/NavigationItemsList/internal/NavigationItemsListEmptyState.d.ts +1 -1
- package/build/esm/modules/NavigationItemsList/internal/NavigationItemsListEmptyState.js +1 -1
- package/build/esm/modules/NavigationItemsList/internal/NavigationItemsListEmptyState.js.map +1 -1
- package/build/esm/modules/NavigationMeta/NavigationMeta.js +2 -1
- package/build/esm/modules/NavigationMeta/NavigationMeta.js.map +1 -1
- package/build/esm/modules/NavigationMeta/i18n/index.d.ts +2 -2
- package/build/esm/modules/NavigationPreview/NavigationPreview.d.ts +1 -1
- package/build/esm/modules/NavigationPreview/NavigationPreview.js +3 -1
- package/build/esm/modules/NavigationPreview/NavigationPreview.js.map +1 -1
- package/build/esm/modules/NavigationPreview/helpers/buildPreviewColumns.d.ts +1 -1
- package/build/esm/modules/NavigationPreview/helpers/buildPreviewColumns.js.map +1 -1
- package/build/esm/modules/NavigationSchema/NavigationSchema.d.ts +1 -1
- package/build/esm/modules/NavigationSchema/NavigationSchema.js +2 -1
- package/build/esm/modules/NavigationSchema/NavigationSchema.js.map +1 -1
- package/build/esm/modules/NavigationSchema/helpers/buildSchemaColumns.d.ts +1 -1
- package/build/esm/modules/NavigationSchema/helpers/buildSchemaColumns.js.map +1 -1
- package/build/esm/modules/NavigationView/NavigationView.d.ts +1 -1
- package/build/esm/modules/NavigationView/NavigationView.js +2 -1
- package/build/esm/modules/NavigationView/NavigationView.js.map +1 -1
- package/build/esm/modules/NavigationView/helpers/buildViewColumns.d.ts +1 -1
- package/build/esm/modules/NavigationView/helpers/buildViewColumns.js.map +1 -1
- package/build/esm/modules/NavigationView/internal/NavigationViewSectionItem.d.ts +1 -1
- package/build/esm/modules/NavigationView/internal/NavigationViewSectionItem.js +2 -1
- package/build/esm/modules/NavigationView/internal/NavigationViewSectionItem.js.map +1 -1
- package/build/esm/modules/QueriesList/QueriesList.js +1 -1
- package/build/esm/modules/QueriesList/QueriesList.js.map +1 -1
- package/build/esm/modules/QueryProgress/QueryProgress.css +64 -0
- package/build/esm/modules/QueryProgress/QueryProgress.css.map +1 -0
- package/build/esm/modules/QueryProgress/QueryProgress.d.ts +4 -0
- package/build/esm/modules/QueryProgress/QueryProgress.js +127 -0
- package/build/esm/modules/QueryProgress/QueryProgress.js.map +1 -0
- package/build/esm/modules/QueryProgress/QueryProgress.scss +72 -0
- package/build/esm/modules/QueryProgress/QueryProgress.stories.d.ts +7 -0
- package/build/esm/modules/QueryProgress/QueryProgress.stories.js +31 -0
- package/build/esm/modules/QueryProgress/QueryProgress.stories.js.map +1 -0
- package/build/esm/modules/QueryProgress/i18n/dicts.d.ts +25 -0
- package/build/esm/modules/QueryProgress/i18n/dicts.js +7 -0
- package/build/esm/modules/QueryProgress/i18n/dicts.js.map +1 -0
- package/build/esm/modules/QueryProgress/i18n/en.json +11 -0
- package/build/esm/modules/QueryProgress/i18n/index.d.ts +6 -0
- package/build/esm/modules/QueryProgress/i18n/index.js +4 -0
- package/build/esm/modules/QueryProgress/i18n/index.js.map +1 -0
- package/build/esm/modules/QueryProgress/i18n/ru.json +11 -0
- package/build/esm/modules/QueryProgress/index.d.ts +2 -0
- package/build/esm/modules/QueryProgress/index.js +2 -0
- package/build/esm/modules/QueryProgress/index.js.map +1 -0
- package/build/esm/modules/QueryStatistics/i18n/index.d.ts +2 -2
- package/build/esm/modules/RowsList/RowsList.js +2 -1
- package/build/esm/modules/RowsList/RowsList.js.map +1 -1
- package/build/esm/modules/SavedQueryRow/SavedQueryRow.d.ts +2 -2
- package/build/esm/modules/SavedQueryRow/SavedQueryRow.js +3 -1
- package/build/esm/modules/SavedQueryRow/SavedQueryRow.js.map +1 -1
- package/build/esm/modules/SavedQuerySearchRow/SavedQuerySearchRow.d.ts +2 -2
- package/build/esm/modules/SavedQuerySearchRow/SavedQuerySearchRow.js +2 -1
- package/build/esm/modules/SavedQuerySearchRow/SavedQuerySearchRow.js.map +1 -1
- package/build/esm/modules/TutorialRow/TutorialRow.d.ts +1 -1
- package/build/esm/modules/TutorialRow/TutorialRow.js +1 -1
- package/build/esm/modules/TutorialRow/TutorialRow.js.map +1 -1
- package/build/esm/modules/TutorialSearchRow/TutorialSearchRow.d.ts +1 -1
- package/build/esm/modules/TutorialSearchRow/TutorialSearchRow.js +2 -1
- package/build/esm/modules/TutorialSearchRow/TutorialSearchRow.js.map +1 -1
- package/build/esm/modules/index.d.ts +2 -0
- package/build/esm/modules/index.js +1 -0
- package/build/esm/modules/index.js.map +1 -1
- package/build/esm/types/queryGraph.d.ts +87 -0
- package/build/esm/types/queryGraph.js +2 -0
- package/build/esm/types/queryGraph.js.map +1 -0
- package/build/esm/widgets/DashboardCharts/DashboardCharts.js +4 -2
- package/build/esm/widgets/DashboardCharts/DashboardCharts.js.map +1 -1
- package/build/esm/widgets/DashboardCharts/types.d.ts +3 -3
- package/build/esm/widgets/DashboardCharts/types.js.map +1 -1
- package/build/esm/widgets/QueriesHistory/QueriesHistory.js +1 -1
- package/build/esm/widgets/QueriesHistory/QueriesHistory.js.map +1 -1
- package/build/esm/widgets/QueriesHistory/internal/HistoryRowContent.js +3 -2
- package/build/esm/widgets/QueriesHistory/internal/HistoryRowContent.js.map +1 -1
- package/build/esm/widgets/QueriesNavigation/QueriesNavigation.d.ts +1 -1
- package/build/esm/widgets/QueriesNavigation/QueriesNavigation.js +6 -2
- package/build/esm/widgets/QueriesNavigation/QueriesNavigation.js.map +1 -1
- package/build/esm/widgets/QueriesNavigation/helpers/createEmptyDetailConfig.js +1 -1
- package/build/esm/widgets/QueriesNavigation/helpers/createEmptyDetailConfig.js.map +1 -1
- package/build/esm/widgets/QueriesNavigation/helpers/createTableDetailConfig.js +4 -1
- package/build/esm/widgets/QueriesNavigation/helpers/createTableDetailConfig.js.map +1 -1
- package/build/esm/widgets/QueryResults/QueryResults.js +1 -1
- package/build/esm/widgets/QueryResults/QueryResults.js.map +1 -1
- package/build/esm/widgets/QueryResults/i18n/index.d.ts +2 -2
- package/build/esm/widgets/QueryResults/internal/QueryResultsSchema.js +2 -1
- package/build/esm/widgets/QueryResults/internal/QueryResultsSchema.js.map +1 -1
- package/build/esm/widgets/SavedQueries/SavedQueries.d.ts +2 -2
- package/build/esm/widgets/SavedQueries/SavedQueries.js +1 -1
- package/build/esm/widgets/SavedQueries/SavedQueries.js.map +1 -1
- package/build/esm/widgets/SavedQueries/SavedQueryRowContent.d.ts +2 -2
- package/build/esm/widgets/SavedQueries/SavedQueryRowContent.js +3 -2
- package/build/esm/widgets/SavedQueries/SavedQueryRowContent.js.map +1 -1
- package/build/esm/widgets/TutorialsHistory/TutorialRowContent.d.ts +2 -2
- package/build/esm/widgets/TutorialsHistory/TutorialRowContent.js +3 -2
- package/build/esm/widgets/TutorialsHistory/TutorialRowContent.js.map +1 -1
- package/build/esm/widgets/TutorialsHistory/TutorialsHistory.d.ts +2 -2
- package/build/esm/widgets/TutorialsHistory/TutorialsHistory.js +3 -1
- package/build/esm/widgets/TutorialsHistory/TutorialsHistory.js.map +1 -1
- package/package.json +84 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useEffect","useImperativeHandle","useMemo","useRef","useState","BezierMultipointConnection","ECanDrag","GraphState","GraphCanvas","useGraph","useGraphEvent","MagnifierMinus","MagnifierPlus","SquareDashed","Button","Icon","Loader","Text","Tooltip","useThemeValue","cn","createQueryGraphConnections","getQueryGraphNodeSize","validateQueryGraph","i18n","QueryGraphCanvasBlock","QueryGraphPopup","getQueryGraphNodeIconSvgs","useQueryGraphLayout","jsx","_jsx","jsxs","_jsxs","block","FIT_PADDING","ZOOM_STEP","renderEmptyBlock","Fragment","QueryGraph","_ref","nodes","edges","loading","errorContent","className","_ref$autoCenter","autoCenter","_ref$active","active","_ref$largeGraphThresh","largeGraphThreshold","renderNodePopup","onNodeClick","onError","_useState","_useState2","_slicedToArray","showLargeGraph","setShowLargeGraph","nodesRef","edgesRef","current","structureKey","concat","map","_ref2","id","kind","join","_ref3","source","target","validationError","undefined","nextError","Error","shouldConfirm","length","State","children","size","color","message","count","view","onClick","QueryGraphWithLayout","_ref4","_useState3","_useState4","popup","setPopup","rootRef","layoutBlocks","node","_objectSpread","layoutConnections","edge","sourceBlockId","targetBlockId","_useQueryGraphLayout","blocks","connections","result","resolvedStructureKey","isInitialLoading","error","graphBlocks","flatMap","position","_getQueryGraphNodeIco","iconSvg","fallbackIconSvg","iconColorToken","fallbackIconColorToken","is","name","selected","anchors","meta","graphConnections","QueryGraphRenderer","ref","forwardRef","QueryGraphRendererComponent","_ref5","forwardedRef","attachedRef","centeredRef","previousActiveRef","previousStructureRef","_useState5","_useState6","attached","setAttached","_useState7","_useState8","hoveredNodeId","setHoveredNodeId","themeValue","_useGraph","settings","connection","canDrag","NONE","canDragCamera","canZoomCamera","canCreateNewConnections","useBezierConnections","bezierConnectionDirection","showConnectionArrows","useBlocksAnchors","blockComponents","graph","api","setEntities","start","stop","_useState9","cameraService","getCameraState","scale","_useState0","setScale","_graph$cameraService$","scaleMin","scaleMax","_ref6","nextScale","_ref7","_state$meta","state","_ref8","_state$meta2","background","getComputedStyle","getPropertyValue","trim","colors","getGraphColors","updateGraphColors","canvas","belowLayerBackground","layerBackground","border","dots","visibleConnections","Boolean","changed","becameActive","frame","requestAnimationFrame","zoomToViewPort","padding","cancelAnimationFrame","handleClick","_ref9","_state$meta3","sourceEvent","mouseEvent","rect","getBoundingClientRect","left","Math","min","max","clientX","width","top","clientY","height","nodeId","selectedNode","find","defaultContent","popupContent","click","renderBlock","onStateChanged","_ref0","ATTACHED","content","placement","pin","disabled","changeZoom","data","style","delta","camera","zoom","_ref1"],"sources":["QueryGraph.tsx"],"sourcesContent":["import React, {useEffect, useImperativeHandle, useMemo, useRef, useState} from 'react';\nimport {\n BezierMultipointConnection,\n ECanDrag,\n GraphState,\n type TMultipointConnection,\n} from '@gravity-ui/graph';\nimport {GraphCanvas, useGraph, useGraphEvent} from '@gravity-ui/graph/react';\nimport {MagnifierMinus, MagnifierPlus, SquareDashed} from '@gravity-ui/icons';\nimport {Button, Icon, Loader, Text, Tooltip, useThemeValue} from '@gravity-ui/uikit';\nimport cn from 'bem-cn-lite';\n\nimport type {QueryGraphNode, QueryGraphProps} from '../../types/queryGraph';\nimport {\n createQueryGraphConnections,\n getQueryGraphNodeSize,\n validateQueryGraph,\n} from './helpers/layout';\nimport i18n from './i18n';\nimport {type QueryGraphBlock, QueryGraphCanvasBlock} from './internal/QueryGraphCanvasBlock';\nimport {QueryGraphPopup} from './internal/QueryGraphPopup';\nimport {getQueryGraphNodeIconSvgs} from './internal/queryGraphIcons';\nimport {useQueryGraphLayout} from './internal/useQueryGraphLayout';\n\nimport './QueryGraph.scss';\n\nconst block = cn('qp-query-graph');\nconst FIT_PADDING = 120;\nconst ZOOM_STEP = 0.08;\nconst renderEmptyBlock = () => <React.Fragment />;\n\ntype PopupState = {nodeId: string; left: number; top: number};\n\nexport function QueryGraph({\n nodes,\n edges,\n loading,\n errorContent,\n className,\n autoCenter = true,\n active = true,\n largeGraphThreshold = 250,\n renderNodePopup,\n onNodeClick,\n onError,\n}: QueryGraphProps) {\n const [showLargeGraph, setShowLargeGraph] = useState(false);\n const nodesRef = useRef(nodes);\n const edgesRef = useRef(edges);\n nodesRef.current = nodes;\n edgesRef.current = edges;\n\n const structureKey = useMemo(\n () =>\n `${nodes.map(({id, kind}) => `${id}:${kind}`).join('|')}::${edges\n .map(({id, source, target}) => `${id}:${source}:${target}`)\n .join('|')}`,\n [edges, nodes],\n );\n\n const validationError = useMemo(() => {\n try {\n validateQueryGraph(nodesRef.current, edgesRef.current);\n return undefined;\n } catch (nextError) {\n return nextError instanceof Error\n ? nextError\n : new Error('Unable to build query graph');\n }\n // Only graph structure affects validation.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [structureKey]);\n useEffect(() => {\n if (validationError) onError?.(validationError);\n }, [onError, validationError]);\n\n const shouldConfirm = largeGraphThreshold !== false && nodes.length > largeGraphThreshold;\n if (loading)\n return (\n <State className={className}>\n <Loader size=\"m\" />\n </State>\n );\n if (errorContent)\n return (\n <State className={className}>\n <Text color=\"danger\">{errorContent}</Text>\n </State>\n );\n if (validationError)\n return (\n <State className={className}>\n <Text color=\"danger\">{validationError.message}</Text>\n </State>\n );\n if (!nodes.length)\n return (\n <State className={className}>\n <Text color=\"secondary\">{i18n('context_empty')}</Text>\n </State>\n );\n if (shouldConfirm && !showLargeGraph) {\n return (\n <State className={className}>\n <div className={block('large-graph')}>\n <Text>{i18n('context_large-graph', {count: nodes.length})}</Text>\n <Button view=\"action\" onClick={() => setShowLargeGraph(true)}>\n {i18n('action_show-graph')}\n </Button>\n </div>\n </State>\n );\n }\n\n return (\n <QueryGraphWithLayout\n nodes={nodes}\n edges={edges}\n structureKey={structureKey}\n autoCenter={autoCenter}\n active={active}\n renderNodePopup={renderNodePopup}\n onNodeClick={onNodeClick}\n onError={onError}\n className={className}\n />\n );\n}\n\ntype QueryGraphWithLayoutProps = Pick<\n QueryGraphProps,\n | 'nodes'\n | 'edges'\n | 'autoCenter'\n | 'active'\n | 'renderNodePopup'\n | 'onNodeClick'\n | 'onError'\n | 'className'\n> & {structureKey: string};\n\nfunction QueryGraphWithLayout({\n nodes,\n edges,\n structureKey,\n autoCenter,\n active,\n renderNodePopup,\n onNodeClick,\n onError,\n className,\n}: QueryGraphWithLayoutProps) {\n const [popup, setPopup] = useState<PopupState>();\n const rootRef = useRef<HTMLDivElement>(null);\n const nodesRef = useRef(nodes);\n const edgesRef = useRef(edges);\n nodesRef.current = nodes;\n edgesRef.current = edges;\n\n const layoutBlocks = useMemo(\n () =>\n nodesRef.current.map((node) => ({\n id: node.id,\n ...getQueryGraphNodeSize(node),\n })),\n // Node status and presentation do not affect layout.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [structureKey],\n );\n const layoutConnections = useMemo(\n () =>\n edgesRef.current.map((edge) => ({\n id: edge.id,\n sourceBlockId: edge.source,\n targetBlockId: edge.target,\n })),\n // Only graph structure affects layout.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [structureKey],\n );\n const {result, resolvedStructureKey, isInitialLoading, error} = useQueryGraphLayout({\n structureKey,\n blocks: layoutBlocks,\n connections: layoutConnections,\n onError,\n });\n\n const graphBlocks = useMemo<QueryGraphBlock[]>(\n () =>\n nodes.flatMap((node) => {\n const position = result?.blocks[node.id];\n if (!position) return [];\n const {iconSvg, fallbackIconSvg, iconColorToken, fallbackIconColorToken} =\n getQueryGraphNodeIconSvgs(node);\n return [\n {\n id: node.id,\n is: 'query-node',\n name: node.name,\n selected: false,\n anchors: [],\n meta: {\n node,\n iconSvg,\n fallbackIconSvg,\n iconColorToken,\n fallbackIconColorToken,\n },\n ...getQueryGraphNodeSize(node),\n ...position,\n },\n ];\n }),\n [nodes, result],\n );\n const graphConnections = useMemo<TMultipointConnection[]>(\n () => createQueryGraphConnections(edges, result?.edges),\n [edges, result],\n );\n\n if (error)\n return (\n <State className={className}>\n <Text color=\"danger\">{error.message}</Text>\n </State>\n );\n if (isInitialLoading || !result || !resolvedStructureKey)\n return (\n <State className={className}>\n <Loader size=\"m\" />\n </State>\n );\n\n return (\n // The renderer is declared below to keep the public component and its states together.\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n <QueryGraphRenderer\n ref={rootRef}\n blocks={graphBlocks}\n connections={graphConnections}\n nodes={nodes}\n structureKey={resolvedStructureKey}\n autoCenter={autoCenter}\n active={active}\n popup={popup}\n setPopup={setPopup}\n renderNodePopup={renderNodePopup}\n onNodeClick={onNodeClick}\n className={className}\n />\n );\n}\n\ntype RendererProps = Pick<\n QueryGraphProps,\n 'autoCenter' | 'active' | 'renderNodePopup' | 'onNodeClick' | 'className'\n> & {\n blocks: QueryGraphBlock[];\n connections: TMultipointConnection[];\n nodes: QueryGraphNode[];\n structureKey: string;\n popup?: PopupState;\n setPopup: React.Dispatch<React.SetStateAction<PopupState | undefined>>;\n};\n\nconst QueryGraphRenderer = React.forwardRef<HTMLDivElement, RendererProps>(\n function QueryGraphRendererComponent(\n {\n blocks,\n connections,\n nodes,\n structureKey,\n autoCenter,\n active,\n popup,\n setPopup,\n renderNodePopup,\n onNodeClick,\n className,\n },\n forwardedRef,\n ) {\n const rootRef = useRef<HTMLDivElement | null>(null);\n useImperativeHandle(forwardedRef, () => rootRef.current as HTMLDivElement);\n const attachedRef = useRef(false);\n const centeredRef = useRef(false);\n const previousActiveRef = useRef(false);\n const previousStructureRef = useRef(structureKey);\n const [attached, setAttached] = useState(false);\n const [hoveredNodeId, setHoveredNodeId] = useState<string>();\n const themeValue = useThemeValue();\n const {graph, api, setEntities, start, stop} = useGraph({\n name: 'query-graph',\n settings: {\n connection: BezierMultipointConnection,\n canDrag: ECanDrag.NONE,\n canDragCamera: true,\n canZoomCamera: true,\n canCreateNewConnections: false,\n useBezierConnections: true,\n bezierConnectionDirection: 'horizontal',\n showConnectionArrows: true,\n useBlocksAnchors: false,\n blockComponents: {'query-node': QueryGraphCanvasBlock},\n },\n });\n const [scale, setScale] = useState(graph.cameraService.getCameraState().scale);\n const {scaleMin, scaleMax} = graph.cameraService.getCameraState();\n useGraphEvent(graph, 'camera-change', ({scale: nextScale}) => setScale(nextScale));\n useGraphEvent(graph, 'mouseenter', ({target}) => {\n const state = (target as {state?: QueryGraphBlock} | undefined)?.state;\n if (state?.meta?.node) setHoveredNodeId(state.meta.node.id);\n });\n useGraphEvent(graph, 'mouseleave', ({target}) => {\n const state = (target as {state?: QueryGraphBlock} | undefined)?.state;\n if (state?.meta?.node) setHoveredNodeId(undefined);\n });\n\n useEffect(() => {\n if (!rootRef.current) return;\n\n const background = getComputedStyle(rootRef.current)\n .getPropertyValue('--g-color-base-background')\n .trim();\n const connection = getComputedStyle(rootRef.current)\n .getPropertyValue('--g-color-line-generic-accent')\n .trim();\n if (!background || !connection) return;\n\n const colors = api.getGraphColors();\n api.updateGraphColors({\n ...colors,\n canvas: {\n ...colors.canvas,\n belowLayerBackground: background,\n layerBackground: background,\n border: background,\n dots: background,\n },\n connection: {\n ...colors.connection,\n background: connection,\n },\n });\n }, [api, themeValue]);\n\n const visibleConnections = useMemo(\n () =>\n connections.map((connection) => ({\n ...connection,\n selected: Boolean(\n hoveredNodeId &&\n (connection.sourceBlockId === hoveredNodeId ||\n connection.targetBlockId === hoveredNodeId),\n ),\n })),\n [connections, hoveredNodeId],\n );\n useEffect(\n () => setEntities({blocks, connections: visibleConnections}),\n [blocks, setEntities, visibleConnections],\n );\n useEffect(() => {\n if (!attachedRef.current) return;\n if (active) start();\n else stop();\n }, [active, start, stop]);\n useEffect(() => {\n const changed = previousStructureRef.current !== structureKey;\n const becameActive = active && !previousActiveRef.current;\n let frame: number | undefined;\n if (\n attached &&\n active &&\n (!centeredRef.current || becameActive || (autoCenter && changed))\n ) {\n frame = requestAnimationFrame(() => {\n api.zoomToViewPort({padding: FIT_PADDING});\n centeredRef.current = true;\n });\n }\n previousActiveRef.current = Boolean(active);\n previousStructureRef.current = structureKey;\n setPopup(undefined);\n return () => {\n if (frame !== undefined) cancelAnimationFrame(frame);\n };\n }, [active, api, attached, autoCenter, setPopup, structureKey]);\n\n const handleClick: NonNullable<React.ComponentProps<typeof GraphCanvas>['click']> = ({\n target,\n sourceEvent,\n }) => {\n const state = (target as {state?: QueryGraphBlock; isBlock?: boolean} | undefined)\n ?.state;\n if (!state?.meta?.node || !rootRef.current) {\n setPopup(undefined);\n return;\n }\n const mouseEvent = sourceEvent as MouseEvent;\n const rect = rootRef.current.getBoundingClientRect();\n const left = Math.min(\n Math.max(16, mouseEvent.clientX - rect.left + 12),\n rect.width - 456,\n );\n const top = Math.min(\n Math.max(16, mouseEvent.clientY - rect.top + 12),\n rect.height - 240,\n );\n setPopup({\n nodeId: state.meta.node.id,\n left: Math.max(16, left),\n top: Math.max(16, top),\n });\n onNodeClick?.(state.meta.node, mouseEvent);\n };\n\n const selectedNode = popup ? nodes.find((node) => node.id === popup.nodeId) : undefined;\n const defaultContent = selectedNode ? <QueryGraphPopup node={selectedNode} /> : null;\n let popupContent: React.ReactNode = null;\n if (selectedNode) {\n popupContent = renderNodePopup\n ? renderNodePopup({node: selectedNode, defaultContent})\n : defaultContent;\n }\n\n return (\n <div ref={rootRef} className={block(null, className)}>\n <GraphCanvas\n graph={graph}\n className={block('canvas')}\n click={handleClick}\n renderBlock={renderEmptyBlock}\n onStateChanged={({state}) => {\n if (state === GraphState.ATTACHED) {\n if (active) start();\n attachedRef.current = true;\n setAttached(true);\n }\n }}\n />\n <div className={block('toolbox')}>\n <Tooltip content={i18n('action_zoom-in')} placement=\"right\">\n <Button\n view=\"raised\"\n pin=\"round-brick\"\n aria-label={i18n('action_zoom-in')}\n disabled={scale >= scaleMax}\n onClick={() => changeZoom(graph, ZOOM_STEP)}\n >\n <Icon data={MagnifierPlus} />\n </Button>\n </Tooltip>\n <Tooltip content={i18n('action_fit')} placement=\"right\">\n <Button\n view=\"raised\"\n pin=\"brick-brick\"\n aria-label={i18n('action_fit')}\n onClick={() => api.zoomToViewPort({padding: FIT_PADDING})}\n >\n <Icon data={SquareDashed} />\n </Button>\n </Tooltip>\n <Tooltip content={i18n('action_zoom-out')} placement=\"right\">\n <Button\n view=\"raised\"\n pin=\"brick-round\"\n aria-label={i18n('action_zoom-out')}\n disabled={scale <= scaleMin}\n onClick={() => changeZoom(graph, -ZOOM_STEP)}\n >\n <Icon data={MagnifierMinus} />\n </Button>\n </Tooltip>\n </div>\n {popup && popupContent !== null && (\n <div className={block('popup')} style={{left: popup.left, top: popup.top}}>\n {popupContent}\n </div>\n )}\n </div>\n );\n },\n);\n\nfunction changeZoom(graph: ReturnType<typeof useGraph>['graph'], delta: number) {\n const camera = graph.cameraService;\n const state = camera.getCameraState();\n const nextScale = Math.min(state.scaleMax, Math.max(state.scaleMin, state.scale + delta));\n camera.zoom(state.width / 2, state.height / 2, nextScale);\n}\n\nfunction State({className, children}: {className?: string; children: React.ReactNode}) {\n return (\n <div className={block(null, className)}>\n <div className={block('state')}>{children}</div>\n </div>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
.qp-query-graph {
|
|
2
|
+
position: relative;
|
|
3
|
+
min-height: 360px;
|
|
4
|
+
height: 100%;
|
|
5
|
+
overflow: hidden;
|
|
6
|
+
background: var(--g-color-base-background);
|
|
7
|
+
|
|
8
|
+
&__canvas {
|
|
9
|
+
width: 100%;
|
|
10
|
+
height: 100%;
|
|
11
|
+
min-height: 360px;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
&__toolbox {
|
|
15
|
+
position: absolute;
|
|
16
|
+
z-index: 4;
|
|
17
|
+
top: var(--g-spacing-4);
|
|
18
|
+
left: var(--g-spacing-4);
|
|
19
|
+
display: flex;
|
|
20
|
+
width: 28px;
|
|
21
|
+
flex-direction: column;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
&__popup {
|
|
25
|
+
position: absolute;
|
|
26
|
+
z-index: 5;
|
|
27
|
+
width: min(440px, calc(100% - var(--g-spacing-8)));
|
|
28
|
+
max-height: calc(100% - var(--g-spacing-8));
|
|
29
|
+
overflow: auto;
|
|
30
|
+
padding: var(--g-spacing-4);
|
|
31
|
+
border: 1px solid var(--g-color-line-generic);
|
|
32
|
+
border-radius: var(--g-border-radius-l);
|
|
33
|
+
box-shadow: 0 4px 24px var(--g-color-sfx-shadow);
|
|
34
|
+
background: var(--g-color-base-float);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
&__popup-content,
|
|
38
|
+
&__jobs,
|
|
39
|
+
&__schemas,
|
|
40
|
+
&__details {
|
|
41
|
+
display: flex;
|
|
42
|
+
flex-direction: column;
|
|
43
|
+
gap: var(--g-spacing-3);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
&__popup-title {
|
|
47
|
+
display: flex;
|
|
48
|
+
align-items: center;
|
|
49
|
+
gap: var(--g-spacing-2);
|
|
50
|
+
|
|
51
|
+
> div {
|
|
52
|
+
display: flex;
|
|
53
|
+
min-width: 0;
|
|
54
|
+
flex-direction: column;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
&__detail-row {
|
|
59
|
+
display: flex;
|
|
60
|
+
justify-content: space-between;
|
|
61
|
+
gap: var(--g-spacing-3);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
&__state {
|
|
65
|
+
height: 100%;
|
|
66
|
+
min-height: 360px;
|
|
67
|
+
display: flex;
|
|
68
|
+
align-items: center;
|
|
69
|
+
justify-content: center;
|
|
70
|
+
padding: var(--g-spacing-6);
|
|
71
|
+
text-align: center;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
&__large-graph {
|
|
75
|
+
display: flex;
|
|
76
|
+
max-width: 480px;
|
|
77
|
+
flex-direction: column;
|
|
78
|
+
align-items: center;
|
|
79
|
+
gap: var(--g-spacing-4);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
|
+
import type { QueryGraphEdge, QueryGraphNode } from '../../types/queryGraph';
|
|
3
|
+
import { QueryGraph } from './QueryGraph';
|
|
4
|
+
export declare const demoNodes: QueryGraphNode[];
|
|
5
|
+
export declare const demoEdges: QueryGraphEdge[];
|
|
6
|
+
declare const meta: Meta<typeof QueryGraph>;
|
|
7
|
+
export default meta;
|
|
8
|
+
type Story = StoryObj<typeof QueryGraph>;
|
|
9
|
+
export declare const Default: Story;
|
|
10
|
+
export declare const Statuses: Story;
|
|
11
|
+
export declare const OperationTypes: Story;
|
|
12
|
+
export declare const CustomIcon: Story;
|
|
13
|
+
export declare const UpdatingProgress: Story;
|
|
14
|
+
export declare const LargeGraph: Story;
|
|
15
|
+
export declare const LargeGraphThreshold: Story;
|
|
16
|
+
export declare const InvalidGraph: Story;
|
|
@@ -0,0 +1,331 @@
|
|
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
|
+
import _objectSpread from "@babel/runtime/helpers/objectSpread2";
|
|
3
|
+
import "core-js/modules/es.array.from.js";
|
|
4
|
+
import "core-js/modules/es.array.map.js";
|
|
5
|
+
import "core-js/modules/es.iterator.constructor.js";
|
|
6
|
+
import "core-js/modules/es.iterator.map.js";
|
|
7
|
+
import "core-js/modules/es.object.to-string.js";
|
|
8
|
+
import "core-js/modules/es.string.iterator.js";
|
|
9
|
+
import "core-js/modules/web.timers.js";
|
|
10
|
+
import React, { useEffect, useState } from 'react';
|
|
11
|
+
import { QueryGraph } from "./QueryGraph";
|
|
12
|
+
import { largeGraphEdges, largeGraphNodes } from "./story/largeGraphData";
|
|
13
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
14
|
+
export var demoNodes = [{
|
|
15
|
+
id: 'source',
|
|
16
|
+
kind: 'input',
|
|
17
|
+
name: 'orders',
|
|
18
|
+
label: 'warehouse.orders'
|
|
19
|
+
}, {
|
|
20
|
+
id: 'read',
|
|
21
|
+
kind: 'operation',
|
|
22
|
+
name: 'Read',
|
|
23
|
+
operationType: 'read',
|
|
24
|
+
status: 'completed',
|
|
25
|
+
progress: {
|
|
26
|
+
total: 12,
|
|
27
|
+
completed: 12
|
|
28
|
+
}
|
|
29
|
+
}, {
|
|
30
|
+
id: 'map',
|
|
31
|
+
kind: 'operation',
|
|
32
|
+
name: 'Map',
|
|
33
|
+
operationType: 'map',
|
|
34
|
+
status: 'running',
|
|
35
|
+
progress: {
|
|
36
|
+
total: 100,
|
|
37
|
+
completed: 68,
|
|
38
|
+
running: 8,
|
|
39
|
+
pending: 24
|
|
40
|
+
},
|
|
41
|
+
popup: {
|
|
42
|
+
stages: [{
|
|
43
|
+
name: 'Preparing',
|
|
44
|
+
duration: 1300
|
|
45
|
+
}, {
|
|
46
|
+
name: 'Executing',
|
|
47
|
+
duration: 8400
|
|
48
|
+
}],
|
|
49
|
+
details: [{
|
|
50
|
+
name: 'Columns',
|
|
51
|
+
value: ['id', 'price', 'created_at']
|
|
52
|
+
}, {
|
|
53
|
+
name: 'Settings',
|
|
54
|
+
children: [{
|
|
55
|
+
name: 'Workers',
|
|
56
|
+
value: 8
|
|
57
|
+
}]
|
|
58
|
+
}],
|
|
59
|
+
jobs: {
|
|
60
|
+
total: 100,
|
|
61
|
+
completed: 68,
|
|
62
|
+
running: 8,
|
|
63
|
+
pending: 24
|
|
64
|
+
},
|
|
65
|
+
inputs: [{
|
|
66
|
+
name: 'orders',
|
|
67
|
+
columns: [{
|
|
68
|
+
name: 'id',
|
|
69
|
+
type: 'Uint64'
|
|
70
|
+
}, {
|
|
71
|
+
name: 'price',
|
|
72
|
+
type: 'Double'
|
|
73
|
+
}]
|
|
74
|
+
}],
|
|
75
|
+
outputs: [{
|
|
76
|
+
name: 'mapped',
|
|
77
|
+
columns: [{
|
|
78
|
+
name: 'total',
|
|
79
|
+
type: 'Double'
|
|
80
|
+
}]
|
|
81
|
+
}]
|
|
82
|
+
}
|
|
83
|
+
}, {
|
|
84
|
+
id: 'reduce',
|
|
85
|
+
kind: 'operation',
|
|
86
|
+
name: 'Reduce',
|
|
87
|
+
operationType: 'reduce',
|
|
88
|
+
status: 'waiting',
|
|
89
|
+
progress: {
|
|
90
|
+
total: 20
|
|
91
|
+
}
|
|
92
|
+
}, {
|
|
93
|
+
id: 'sink',
|
|
94
|
+
kind: 'output',
|
|
95
|
+
name: 'result',
|
|
96
|
+
label: 'warehouse.result'
|
|
97
|
+
}];
|
|
98
|
+
export var demoEdges = [{
|
|
99
|
+
id: 'source-read',
|
|
100
|
+
source: 'source',
|
|
101
|
+
target: 'read'
|
|
102
|
+
}, {
|
|
103
|
+
id: 'read-map',
|
|
104
|
+
source: 'read',
|
|
105
|
+
target: 'map'
|
|
106
|
+
}, {
|
|
107
|
+
id: 'map-reduce',
|
|
108
|
+
source: 'map',
|
|
109
|
+
target: 'reduce'
|
|
110
|
+
}, {
|
|
111
|
+
id: 'reduce-sink',
|
|
112
|
+
source: 'reduce',
|
|
113
|
+
target: 'sink'
|
|
114
|
+
}];
|
|
115
|
+
var meta = {
|
|
116
|
+
title: 'Components/QueryGraph',
|
|
117
|
+
component: QueryGraph,
|
|
118
|
+
tags: ['autodocs'],
|
|
119
|
+
args: {
|
|
120
|
+
nodes: demoNodes,
|
|
121
|
+
edges: demoEdges
|
|
122
|
+
},
|
|
123
|
+
render: function render(args) {
|
|
124
|
+
return /*#__PURE__*/_jsx(QueryGraph, _objectSpread(_objectSpread({}, args), {}, {
|
|
125
|
+
className: "query-graph-story"
|
|
126
|
+
}));
|
|
127
|
+
},
|
|
128
|
+
decorators: [function (Story) {
|
|
129
|
+
return /*#__PURE__*/_jsx("div", {
|
|
130
|
+
style: {
|
|
131
|
+
height: 600
|
|
132
|
+
},
|
|
133
|
+
children: /*#__PURE__*/_jsx(Story, {})
|
|
134
|
+
});
|
|
135
|
+
}]
|
|
136
|
+
};
|
|
137
|
+
export default meta;
|
|
138
|
+
export var Default = {};
|
|
139
|
+
export var Statuses = {
|
|
140
|
+
args: {
|
|
141
|
+
nodes: [{
|
|
142
|
+
id: 'not-started',
|
|
143
|
+
kind: 'operation',
|
|
144
|
+
name: 'Map',
|
|
145
|
+
status: 'not-started'
|
|
146
|
+
}, {
|
|
147
|
+
id: 'waiting',
|
|
148
|
+
kind: 'operation',
|
|
149
|
+
name: 'Map',
|
|
150
|
+
status: 'waiting'
|
|
151
|
+
}, {
|
|
152
|
+
id: 'running',
|
|
153
|
+
kind: 'operation',
|
|
154
|
+
name: 'Map',
|
|
155
|
+
status: 'running'
|
|
156
|
+
}, {
|
|
157
|
+
id: 'completed',
|
|
158
|
+
kind: 'operation',
|
|
159
|
+
name: 'Map',
|
|
160
|
+
status: 'completed'
|
|
161
|
+
}, {
|
|
162
|
+
id: 'failed',
|
|
163
|
+
kind: 'operation',
|
|
164
|
+
name: 'Map',
|
|
165
|
+
status: 'failed'
|
|
166
|
+
}, {
|
|
167
|
+
id: 'aborted',
|
|
168
|
+
kind: 'operation',
|
|
169
|
+
name: 'Map',
|
|
170
|
+
status: 'aborted'
|
|
171
|
+
}].map(function (node, index) {
|
|
172
|
+
return _objectSpread(_objectSpread({}, node), {}, {
|
|
173
|
+
progress: {
|
|
174
|
+
total: index === 5 ? 23 : 2684677
|
|
175
|
+
}
|
|
176
|
+
});
|
|
177
|
+
}),
|
|
178
|
+
edges: [],
|
|
179
|
+
largeGraphThreshold: false
|
|
180
|
+
}
|
|
181
|
+
};
|
|
182
|
+
export var OperationTypes = {
|
|
183
|
+
args: {
|
|
184
|
+
nodes: ['read', 'map', 'reduce', 'map-reduce', 'merge', 'sort', 'erase', 'commit', 'operation'].map(function (operationType) {
|
|
185
|
+
return {
|
|
186
|
+
id: operationType,
|
|
187
|
+
kind: 'operation',
|
|
188
|
+
name: operationType,
|
|
189
|
+
label: operationType === 'map-reduce' ? 'A very long reusable MapReduce operation label' : operationType,
|
|
190
|
+
operationType: operationType,
|
|
191
|
+
status: 'not-started'
|
|
192
|
+
};
|
|
193
|
+
}),
|
|
194
|
+
edges: [{
|
|
195
|
+
id: 'read-map',
|
|
196
|
+
source: 'read',
|
|
197
|
+
target: 'map'
|
|
198
|
+
}, {
|
|
199
|
+
id: 'map-reduce',
|
|
200
|
+
source: 'map',
|
|
201
|
+
target: 'reduce'
|
|
202
|
+
}, {
|
|
203
|
+
id: 'map-reduce-merge',
|
|
204
|
+
source: 'map-reduce',
|
|
205
|
+
target: 'merge'
|
|
206
|
+
}, {
|
|
207
|
+
id: 'merge-sort',
|
|
208
|
+
source: 'merge',
|
|
209
|
+
target: 'sort'
|
|
210
|
+
}, {
|
|
211
|
+
id: 'erase-commit',
|
|
212
|
+
source: 'erase',
|
|
213
|
+
target: 'commit'
|
|
214
|
+
}, {
|
|
215
|
+
id: 'commit-operation',
|
|
216
|
+
source: 'commit',
|
|
217
|
+
target: 'operation'
|
|
218
|
+
}],
|
|
219
|
+
largeGraphThreshold: false
|
|
220
|
+
}
|
|
221
|
+
};
|
|
222
|
+
export var CustomIcon = {
|
|
223
|
+
args: {
|
|
224
|
+
nodes: [{
|
|
225
|
+
id: 'custom',
|
|
226
|
+
kind: 'operation',
|
|
227
|
+
name: 'Custom operation',
|
|
228
|
+
status: 'not-started',
|
|
229
|
+
icon: /*#__PURE__*/_jsx("svg", {
|
|
230
|
+
width: "16",
|
|
231
|
+
height: "16",
|
|
232
|
+
viewBox: "0 0 16 16",
|
|
233
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
234
|
+
children: /*#__PURE__*/_jsx("path", {
|
|
235
|
+
fill: "currentColor",
|
|
236
|
+
d: "M8 1 15 8 8 15 1 8z"
|
|
237
|
+
})
|
|
238
|
+
})
|
|
239
|
+
}],
|
|
240
|
+
edges: [],
|
|
241
|
+
largeGraphThreshold: false
|
|
242
|
+
}
|
|
243
|
+
};
|
|
244
|
+
function UpdatingProgressStory(props) {
|
|
245
|
+
var _useState = useState(0),
|
|
246
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
247
|
+
completed = _useState2[0],
|
|
248
|
+
setCompleted = _useState2[1];
|
|
249
|
+
useEffect(function () {
|
|
250
|
+
var timer = window.setInterval(function () {
|
|
251
|
+
return setCompleted(function (value) {
|
|
252
|
+
return (value + 5) % 105;
|
|
253
|
+
});
|
|
254
|
+
}, 500);
|
|
255
|
+
return function () {
|
|
256
|
+
return window.clearInterval(timer);
|
|
257
|
+
};
|
|
258
|
+
}, []);
|
|
259
|
+
return /*#__PURE__*/_jsx(QueryGraph, _objectSpread(_objectSpread({}, props), {}, {
|
|
260
|
+
nodes: props.nodes.map(function (node) {
|
|
261
|
+
return node.id === 'progress' ? _objectSpread(_objectSpread({}, node), {}, {
|
|
262
|
+
progress: {
|
|
263
|
+
total: 100,
|
|
264
|
+
completed: completed,
|
|
265
|
+
fraction: completed / 100
|
|
266
|
+
}
|
|
267
|
+
}) : node;
|
|
268
|
+
})
|
|
269
|
+
}));
|
|
270
|
+
}
|
|
271
|
+
export var UpdatingProgress = {
|
|
272
|
+
args: {
|
|
273
|
+
nodes: [{
|
|
274
|
+
id: 'progress',
|
|
275
|
+
kind: 'operation',
|
|
276
|
+
name: 'Map',
|
|
277
|
+
operationType: 'map',
|
|
278
|
+
status: 'running',
|
|
279
|
+
progress: {
|
|
280
|
+
total: 100,
|
|
281
|
+
completed: 0
|
|
282
|
+
}
|
|
283
|
+
}],
|
|
284
|
+
edges: [],
|
|
285
|
+
largeGraphThreshold: false
|
|
286
|
+
},
|
|
287
|
+
render: function render(args) {
|
|
288
|
+
return /*#__PURE__*/_jsx(UpdatingProgressStory, _objectSpread({}, args));
|
|
289
|
+
}
|
|
290
|
+
};
|
|
291
|
+
export var LargeGraph = {
|
|
292
|
+
args: {
|
|
293
|
+
nodes: largeGraphNodes,
|
|
294
|
+
edges: largeGraphEdges,
|
|
295
|
+
largeGraphThreshold: false
|
|
296
|
+
}
|
|
297
|
+
};
|
|
298
|
+
export var LargeGraphThreshold = {
|
|
299
|
+
args: {
|
|
300
|
+
nodes: Array.from({
|
|
301
|
+
length: 701
|
|
302
|
+
}, function (_, index) {
|
|
303
|
+
return {
|
|
304
|
+
id: "node-".concat(index),
|
|
305
|
+
kind: 'operation',
|
|
306
|
+
name: "Operation ".concat(index),
|
|
307
|
+
status: index % 3 ? 'completed' : 'running'
|
|
308
|
+
};
|
|
309
|
+
}),
|
|
310
|
+
edges: Array.from({
|
|
311
|
+
length: 700
|
|
312
|
+
}, function (_, index) {
|
|
313
|
+
return {
|
|
314
|
+
id: "edge-".concat(index),
|
|
315
|
+
source: "node-".concat(index),
|
|
316
|
+
target: "node-".concat(index + 1)
|
|
317
|
+
};
|
|
318
|
+
})
|
|
319
|
+
}
|
|
320
|
+
};
|
|
321
|
+
export var InvalidGraph = {
|
|
322
|
+
args: {
|
|
323
|
+
nodes: demoNodes,
|
|
324
|
+
edges: [{
|
|
325
|
+
id: 'bad',
|
|
326
|
+
source: 'source',
|
|
327
|
+
target: 'missing'
|
|
328
|
+
}]
|
|
329
|
+
}
|
|
330
|
+
};
|
|
331
|
+
// #sourceMappingURL=QueryGraph.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useEffect","useState","QueryGraph","largeGraphEdges","largeGraphNodes","jsx","_jsx","demoNodes","id","kind","name","label","operationType","status","progress","total","completed","running","pending","popup","stages","duration","details","value","children","jobs","inputs","columns","type","outputs","demoEdges","source","target","meta","title","component","tags","args","nodes","edges","render","_objectSpread","className","decorators","Story","style","height","Default","Statuses","map","node","index","largeGraphThreshold","OperationTypes","CustomIcon","icon","width","viewBox","xmlns","fill","d","UpdatingProgressStory","props","_useState","_useState2","_slicedToArray","setCompleted","timer","window","setInterval","clearInterval","fraction","UpdatingProgress","LargeGraph","LargeGraphThreshold","Array","from","length","_","concat","InvalidGraph"],"sources":["QueryGraph.stories.tsx"],"sourcesContent":["import React, {useEffect, useState} from 'react';\nimport type {Meta, StoryObj} from '@storybook/react';\n\nimport type {QueryGraphEdge, QueryGraphNode} from '../../types/queryGraph';\nimport {QueryGraph} from './QueryGraph';\nimport {largeGraphEdges, largeGraphNodes} from './story/largeGraphData';\n\nexport const demoNodes: QueryGraphNode[] = [\n {id: 'source', kind: 'input', name: 'orders', label: 'warehouse.orders'},\n {\n id: 'read',\n kind: 'operation',\n name: 'Read',\n operationType: 'read',\n status: 'completed',\n progress: {total: 12, completed: 12},\n },\n {\n id: 'map',\n kind: 'operation',\n name: 'Map',\n operationType: 'map',\n status: 'running',\n progress: {total: 100, completed: 68, running: 8, pending: 24},\n popup: {\n stages: [\n {name: 'Preparing', duration: 1300},\n {name: 'Executing', duration: 8400},\n ],\n details: [\n {name: 'Columns', value: ['id', 'price', 'created_at']},\n {name: 'Settings', children: [{name: 'Workers', value: 8}]},\n ],\n jobs: {total: 100, completed: 68, running: 8, pending: 24},\n inputs: [\n {\n name: 'orders',\n columns: [\n {name: 'id', type: 'Uint64'},\n {name: 'price', type: 'Double'},\n ],\n },\n ],\n outputs: [{name: 'mapped', columns: [{name: 'total', type: 'Double'}]}],\n },\n },\n {\n id: 'reduce',\n kind: 'operation',\n name: 'Reduce',\n operationType: 'reduce',\n status: 'waiting',\n progress: {total: 20},\n },\n {id: 'sink', kind: 'output', name: 'result', label: 'warehouse.result'},\n];\n\nexport const demoEdges: QueryGraphEdge[] = [\n {id: 'source-read', source: 'source', target: 'read'},\n {id: 'read-map', source: 'read', target: 'map'},\n {id: 'map-reduce', source: 'map', target: 'reduce'},\n {id: 'reduce-sink', source: 'reduce', target: 'sink'},\n];\n\nconst meta: Meta<typeof QueryGraph> = {\n title: 'Components/QueryGraph',\n component: QueryGraph,\n tags: ['autodocs'],\n args: {nodes: demoNodes, edges: demoEdges},\n render: (args) => <QueryGraph {...args} className=\"query-graph-story\" />,\n decorators: [\n (Story) => (\n <div style={{height: 600}}>\n <Story />\n </div>\n ),\n ],\n};\n\nexport default meta;\ntype Story = StoryObj<typeof QueryGraph>;\n\nexport const Default: Story = {};\n\nexport const Statuses: Story = {\n args: {\n nodes: [\n {id: 'not-started', kind: 'operation', name: 'Map', status: 'not-started'},\n {id: 'waiting', kind: 'operation', name: 'Map', status: 'waiting'},\n {id: 'running', kind: 'operation', name: 'Map', status: 'running'},\n {id: 'completed', kind: 'operation', name: 'Map', status: 'completed'},\n {id: 'failed', kind: 'operation', name: 'Map', status: 'failed'},\n {id: 'aborted', kind: 'operation', name: 'Map', status: 'aborted'},\n ].map((node, index) => ({\n ...node,\n progress: {total: index === 5 ? 23 : 2_684_677},\n })) as QueryGraphNode[],\n edges: [],\n largeGraphThreshold: false,\n },\n};\n\nexport const OperationTypes: Story = {\n args: {\n nodes: (\n [\n 'read',\n 'map',\n 'reduce',\n 'map-reduce',\n 'merge',\n 'sort',\n 'erase',\n 'commit',\n 'operation',\n ] as const\n ).map((operationType) => ({\n id: operationType,\n kind: 'operation' as const,\n name: operationType,\n label:\n operationType === 'map-reduce'\n ? 'A very long reusable MapReduce operation label'\n : operationType,\n operationType,\n status: 'not-started' as const,\n })),\n edges: [\n {id: 'read-map', source: 'read', target: 'map'},\n {id: 'map-reduce', source: 'map', target: 'reduce'},\n {id: 'map-reduce-merge', source: 'map-reduce', target: 'merge'},\n {id: 'merge-sort', source: 'merge', target: 'sort'},\n {id: 'erase-commit', source: 'erase', target: 'commit'},\n {id: 'commit-operation', source: 'commit', target: 'operation'},\n ],\n largeGraphThreshold: false,\n },\n};\n\nexport const CustomIcon: Story = {\n args: {\n nodes: [\n {\n id: 'custom',\n kind: 'operation',\n name: 'Custom operation',\n status: 'not-started',\n icon: (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path fill=\"currentColor\" d=\"M8 1 15 8 8 15 1 8z\" />\n </svg>\n ),\n },\n ],\n edges: [],\n largeGraphThreshold: false,\n },\n};\n\nfunction UpdatingProgressStory(props: React.ComponentProps<typeof QueryGraph>) {\n const [completed, setCompleted] = useState(0);\n useEffect(() => {\n const timer = window.setInterval(() => setCompleted((value) => (value + 5) % 105), 500);\n return () => window.clearInterval(timer);\n }, []);\n return (\n <QueryGraph\n {...props}\n nodes={props.nodes.map((node) =>\n node.id === 'progress'\n ? {...node, progress: {total: 100, completed, fraction: completed / 100}}\n : node,\n )}\n />\n );\n}\n\nexport const UpdatingProgress: Story = {\n args: {\n nodes: [\n {\n id: 'progress',\n kind: 'operation',\n name: 'Map',\n operationType: 'map',\n status: 'running',\n progress: {total: 100, completed: 0},\n },\n ],\n edges: [],\n largeGraphThreshold: false,\n },\n render: (args) => <UpdatingProgressStory {...args} />,\n};\n\nexport const LargeGraph: Story = {\n args: {\n nodes: largeGraphNodes,\n edges: largeGraphEdges,\n largeGraphThreshold: false,\n },\n};\n\nexport const LargeGraphThreshold: Story = {\n args: {\n nodes: Array.from({length: 701}, (_, index) => ({\n id: `node-${index}`,\n kind: 'operation' as const,\n name: `Operation ${index}`,\n status: index % 3 ? ('completed' as const) : ('running' as const),\n })),\n edges: Array.from({length: 700}, (_, index) => ({\n id: `edge-${index}`,\n source: `node-${index}`,\n target: `node-${index + 1}`,\n })),\n },\n};\n\nexport const InvalidGraph: Story = {\n args: {nodes: demoNodes, edges: [{id: 'bad', source: 'source', target: 'missing'}]},\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { TMultipointConnection } from '@gravity-ui/graph';
|
|
2
|
+
import type { QueryGraphEdge, QueryGraphNode } from '../../../types/queryGraph';
|
|
3
|
+
export declare function getQueryGraphNodeSize(node: QueryGraphNode): {
|
|
4
|
+
width: number;
|
|
5
|
+
height: number;
|
|
6
|
+
};
|
|
7
|
+
export declare function validateQueryGraph(nodes: QueryGraphNode[], edges: QueryGraphEdge[]): void;
|
|
8
|
+
export declare function createQueryGraphConnections(edges: QueryGraphEdge[], routes?: Record<string | number | symbol, Pick<TMultipointConnection, 'points' | 'labels'>>): TMultipointConnection[];
|
|
9
|
+
export declare function getQueryGraphProgress(node: QueryGraphNode): number;
|