@gravity-ui/querieskit 1.5.0 → 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.
Files changed (357) hide show
  1. package/README.md +28 -0
  2. package/build/cjs/components/AttachmentList/AttachmentList.js +1 -0
  3. package/build/cjs/components/AttachmentList/AttachmentList.js.map +1 -1
  4. package/build/cjs/components/QueryGraph/QueryGraph.css +70 -0
  5. package/build/cjs/components/QueryGraph/QueryGraph.css.map +1 -0
  6. package/build/cjs/components/QueryGraph/QueryGraph.d.ts +4 -0
  7. package/build/cjs/components/QueryGraph/QueryGraph.js +517 -0
  8. package/build/cjs/components/QueryGraph/QueryGraph.js.map +1 -0
  9. package/build/cjs/components/QueryGraph/QueryGraph.stories.d.ts +16 -0
  10. package/build/cjs/components/QueryGraph/QueryGraph.stories.js +339 -0
  11. package/build/cjs/components/QueryGraph/QueryGraph.stories.js.map +1 -0
  12. package/build/cjs/components/QueryGraph/helpers/layout.d.ts +9 -0
  13. package/build/cjs/components/QueryGraph/helpers/layout.js +138 -0
  14. package/build/cjs/components/QueryGraph/helpers/layout.js.map +1 -0
  15. package/build/cjs/components/QueryGraph/helpers/presentation.d.ts +18 -0
  16. package/build/cjs/components/QueryGraph/helpers/presentation.js +44 -0
  17. package/build/cjs/components/QueryGraph/helpers/presentation.js.map +1 -0
  18. package/build/cjs/components/QueryGraph/i18n/dicts.d.ts +55 -0
  19. package/build/cjs/components/QueryGraph/i18n/dicts.js +14 -0
  20. package/build/cjs/components/QueryGraph/i18n/dicts.js.map +1 -0
  21. package/build/cjs/components/QueryGraph/i18n/en.json +26 -0
  22. package/build/cjs/components/QueryGraph/i18n/index.d.ts +6 -0
  23. package/build/cjs/components/QueryGraph/i18n/index.js +11 -0
  24. package/build/cjs/components/QueryGraph/i18n/index.js.map +1 -0
  25. package/build/cjs/components/QueryGraph/i18n/ru.json +26 -0
  26. package/build/cjs/components/QueryGraph/index.d.ts +2 -0
  27. package/build/cjs/components/QueryGraph/index.js +13 -0
  28. package/build/cjs/components/QueryGraph/index.js.map +1 -0
  29. package/build/cjs/components/QueryGraph/internal/QueryGraphCanvasBlock.d.ts +24 -0
  30. package/build/cjs/components/QueryGraph/internal/QueryGraphCanvasBlock.js +307 -0
  31. package/build/cjs/components/QueryGraph/internal/QueryGraphCanvasBlock.js.map +1 -0
  32. package/build/cjs/components/QueryGraph/internal/QueryGraphPopup.d.ts +5 -0
  33. package/build/cjs/components/QueryGraph/internal/QueryGraphPopup.js +242 -0
  34. package/build/cjs/components/QueryGraph/internal/QueryGraphPopup.js.map +1 -0
  35. package/build/cjs/components/QueryGraph/internal/queryGraphIcons.d.ts +12 -0
  36. package/build/cjs/components/QueryGraph/internal/queryGraphIcons.js +161 -0
  37. package/build/cjs/components/QueryGraph/internal/queryGraphIcons.js.map +1 -0
  38. package/build/cjs/components/QueryGraph/internal/useQueryGraphLayout.d.ts +22 -0
  39. package/build/cjs/components/QueryGraph/internal/useQueryGraphLayout.js +60 -0
  40. package/build/cjs/components/QueryGraph/internal/useQueryGraphLayout.js.map +1 -0
  41. package/build/cjs/components/QueryGraph/story/largeGraphData.d.ts +3 -0
  42. package/build/cjs/components/QueryGraph/story/largeGraphData.js +227 -0
  43. package/build/cjs/components/QueryGraph/story/largeGraphData.js.map +1 -0
  44. package/build/cjs/components/index.d.ts +2 -0
  45. package/build/cjs/components/index.js +9 -1
  46. package/build/cjs/components/index.js.map +1 -1
  47. package/build/cjs/helpers/buildColumnsFromKeys.d.ts +1 -1
  48. package/build/cjs/helpers/buildColumnsFromKeys.js.map +1 -1
  49. package/build/cjs/index.d.ts +1 -0
  50. package/build/cjs/index.js +11 -0
  51. package/build/cjs/index.js.map +1 -1
  52. package/build/cjs/modules/Attachments/Attachments.css +13 -1
  53. package/build/cjs/modules/Attachments/Attachments.css.map +1 -1
  54. package/build/cjs/modules/Attachments/Attachments.js +4 -4
  55. package/build/cjs/modules/Attachments/Attachments.js.map +1 -1
  56. package/build/cjs/modules/Attachments/Attachments.stories.d.ts +1 -0
  57. package/build/cjs/modules/Attachments/Attachments.stories.js +92 -2
  58. package/build/cjs/modules/Attachments/Attachments.stories.js.map +1 -1
  59. package/build/cjs/modules/ClustersList/ClustersList.d.ts +1 -1
  60. package/build/cjs/modules/ClustersList/ClustersList.js +4 -3
  61. package/build/cjs/modules/ClustersList/ClustersList.js.map +1 -1
  62. package/build/cjs/modules/HistoryHeader/HistoryHeader.js +4 -3
  63. package/build/cjs/modules/HistoryHeader/HistoryHeader.js.map +1 -1
  64. package/build/cjs/modules/HistoryRow/HistoryRow.js +12 -7
  65. package/build/cjs/modules/HistoryRow/HistoryRow.js.map +1 -1
  66. package/build/cjs/modules/HistorySearchRow/HistorySearchRow.js +8 -5
  67. package/build/cjs/modules/HistorySearchRow/HistorySearchRow.js.map +1 -1
  68. package/build/cjs/modules/HistorySearchRow/helpers/resolveMonacoLanguage.d.ts +1 -1
  69. package/build/cjs/modules/HistorySearchRow/helpers/resolveMonacoLanguage.js +5 -5
  70. package/build/cjs/modules/HistorySearchRow/helpers/resolveMonacoLanguage.js.map +1 -1
  71. package/build/cjs/modules/NavigationDetail/NavigationDetail.d.ts +1 -1
  72. package/build/cjs/modules/NavigationDetail/NavigationDetail.js +2 -2
  73. package/build/cjs/modules/NavigationDetail/NavigationDetail.js.map +1 -1
  74. package/build/cjs/modules/NavigationHeader/NavigationHeader.d.ts +1 -1
  75. package/build/cjs/modules/NavigationHeader/NavigationHeader.js +2 -2
  76. package/build/cjs/modules/NavigationHeader/NavigationHeader.js.map +1 -1
  77. package/build/cjs/modules/NavigationItemsList/NavigationItemsList.d.ts +1 -1
  78. package/build/cjs/modules/NavigationItemsList/NavigationItemsList.js +4 -3
  79. package/build/cjs/modules/NavigationItemsList/NavigationItemsList.js.map +1 -1
  80. package/build/cjs/modules/NavigationItemsList/internal/NavigationItemsListEmptyState.d.ts +1 -1
  81. package/build/cjs/modules/NavigationItemsList/internal/NavigationItemsListEmptyState.js +2 -2
  82. package/build/cjs/modules/NavigationItemsList/internal/NavigationItemsListEmptyState.js.map +1 -1
  83. package/build/cjs/modules/NavigationMeta/NavigationMeta.js +4 -3
  84. package/build/cjs/modules/NavigationMeta/NavigationMeta.js.map +1 -1
  85. package/build/cjs/modules/NavigationMeta/i18n/index.d.ts +2 -2
  86. package/build/cjs/modules/NavigationPreview/NavigationPreview.d.ts +1 -1
  87. package/build/cjs/modules/NavigationPreview/NavigationPreview.js +6 -4
  88. package/build/cjs/modules/NavigationPreview/NavigationPreview.js.map +1 -1
  89. package/build/cjs/modules/NavigationPreview/helpers/buildPreviewColumns.d.ts +1 -1
  90. package/build/cjs/modules/NavigationPreview/helpers/buildPreviewColumns.js.map +1 -1
  91. package/build/cjs/modules/NavigationSchema/NavigationSchema.d.ts +1 -1
  92. package/build/cjs/modules/NavigationSchema/NavigationSchema.js +4 -3
  93. package/build/cjs/modules/NavigationSchema/NavigationSchema.js.map +1 -1
  94. package/build/cjs/modules/NavigationSchema/helpers/buildSchemaColumns.d.ts +1 -1
  95. package/build/cjs/modules/NavigationSchema/helpers/buildSchemaColumns.js.map +1 -1
  96. package/build/cjs/modules/NavigationView/NavigationView.d.ts +1 -1
  97. package/build/cjs/modules/NavigationView/NavigationView.js +4 -3
  98. package/build/cjs/modules/NavigationView/NavigationView.js.map +1 -1
  99. package/build/cjs/modules/NavigationView/helpers/buildViewColumns.d.ts +1 -1
  100. package/build/cjs/modules/NavigationView/helpers/buildViewColumns.js.map +1 -1
  101. package/build/cjs/modules/NavigationView/internal/NavigationViewSectionItem.d.ts +1 -1
  102. package/build/cjs/modules/NavigationView/internal/NavigationViewSectionItem.js +4 -3
  103. package/build/cjs/modules/NavigationView/internal/NavigationViewSectionItem.js.map +1 -1
  104. package/build/cjs/modules/QueriesList/QueriesList.js +2 -2
  105. package/build/cjs/modules/QueriesList/QueriesList.js.map +1 -1
  106. package/build/cjs/modules/QueryProgress/QueryProgress.css +64 -0
  107. package/build/cjs/modules/QueryProgress/QueryProgress.css.map +1 -0
  108. package/build/cjs/modules/QueryProgress/QueryProgress.d.ts +4 -0
  109. package/build/cjs/modules/QueryProgress/QueryProgress.js +135 -0
  110. package/build/cjs/modules/QueryProgress/QueryProgress.js.map +1 -0
  111. package/build/cjs/modules/QueryProgress/QueryProgress.stories.d.ts +7 -0
  112. package/build/cjs/modules/QueryProgress/QueryProgress.stories.js +38 -0
  113. package/build/cjs/modules/QueryProgress/QueryProgress.stories.js.map +1 -0
  114. package/build/cjs/modules/QueryProgress/i18n/dicts.d.ts +25 -0
  115. package/build/cjs/modules/QueryProgress/i18n/dicts.js +14 -0
  116. package/build/cjs/modules/QueryProgress/i18n/dicts.js.map +1 -0
  117. package/build/cjs/modules/QueryProgress/i18n/en.json +11 -0
  118. package/build/cjs/modules/QueryProgress/i18n/index.d.ts +6 -0
  119. package/build/cjs/modules/QueryProgress/i18n/index.js +11 -0
  120. package/build/cjs/modules/QueryProgress/i18n/index.js.map +1 -0
  121. package/build/cjs/modules/QueryProgress/i18n/ru.json +11 -0
  122. package/build/cjs/modules/QueryProgress/index.d.ts +2 -0
  123. package/build/cjs/modules/QueryProgress/index.js +13 -0
  124. package/build/cjs/modules/QueryProgress/index.js.map +1 -0
  125. package/build/cjs/modules/QueryStatistics/i18n/index.d.ts +2 -2
  126. package/build/cjs/modules/RowsList/RowsList.js +4 -3
  127. package/build/cjs/modules/RowsList/RowsList.js.map +1 -1
  128. package/build/cjs/modules/SavedQueryRow/SavedQueryRow.d.ts +2 -2
  129. package/build/cjs/modules/SavedQueryRow/SavedQueryRow.js +6 -4
  130. package/build/cjs/modules/SavedQueryRow/SavedQueryRow.js.map +1 -1
  131. package/build/cjs/modules/SavedQuerySearchRow/SavedQuerySearchRow.d.ts +2 -2
  132. package/build/cjs/modules/SavedQuerySearchRow/SavedQuerySearchRow.js +4 -3
  133. package/build/cjs/modules/SavedQuerySearchRow/SavedQuerySearchRow.js.map +1 -1
  134. package/build/cjs/modules/TutorialRow/TutorialRow.d.ts +1 -1
  135. package/build/cjs/modules/TutorialRow/TutorialRow.js +2 -2
  136. package/build/cjs/modules/TutorialRow/TutorialRow.js.map +1 -1
  137. package/build/cjs/modules/TutorialSearchRow/TutorialSearchRow.d.ts +1 -1
  138. package/build/cjs/modules/TutorialSearchRow/TutorialSearchRow.js +4 -3
  139. package/build/cjs/modules/TutorialSearchRow/TutorialSearchRow.js.map +1 -1
  140. package/build/cjs/modules/index.d.ts +2 -0
  141. package/build/cjs/modules/index.js +8 -0
  142. package/build/cjs/modules/index.js.map +1 -1
  143. package/build/cjs/types/queryGraph.d.ts +87 -0
  144. package/build/cjs/types/queryGraph.js +6 -0
  145. package/build/cjs/types/queryGraph.js.map +1 -0
  146. package/build/cjs/widgets/DashboardCharts/DashboardCharts.js +8 -6
  147. package/build/cjs/widgets/DashboardCharts/DashboardCharts.js.map +1 -1
  148. package/build/cjs/widgets/DashboardCharts/types.d.ts +3 -3
  149. package/build/cjs/widgets/DashboardCharts/types.js.map +1 -1
  150. package/build/cjs/widgets/QueriesHistory/QueriesHistory.js +2 -2
  151. package/build/cjs/widgets/QueriesHistory/QueriesHistory.js.map +1 -1
  152. package/build/cjs/widgets/QueriesHistory/internal/HistoryRowContent.js +6 -5
  153. package/build/cjs/widgets/QueriesHistory/internal/HistoryRowContent.js.map +1 -1
  154. package/build/cjs/widgets/QueriesNavigation/QueriesNavigation.d.ts +1 -1
  155. package/build/cjs/widgets/QueriesNavigation/QueriesNavigation.js +13 -9
  156. package/build/cjs/widgets/QueriesNavigation/QueriesNavigation.js.map +1 -1
  157. package/build/cjs/widgets/QueriesNavigation/helpers/createEmptyDetailConfig.js +2 -2
  158. package/build/cjs/widgets/QueriesNavigation/helpers/createEmptyDetailConfig.js.map +1 -1
  159. package/build/cjs/widgets/QueriesNavigation/helpers/createTableDetailConfig.js +8 -5
  160. package/build/cjs/widgets/QueriesNavigation/helpers/createTableDetailConfig.js.map +1 -1
  161. package/build/cjs/widgets/QueryResults/QueryResults.js +2 -2
  162. package/build/cjs/widgets/QueryResults/QueryResults.js.map +1 -1
  163. package/build/cjs/widgets/QueryResults/i18n/index.d.ts +2 -2
  164. package/build/cjs/widgets/QueryResults/internal/QueryResultsSchema.js +4 -3
  165. package/build/cjs/widgets/QueryResults/internal/QueryResultsSchema.js.map +1 -1
  166. package/build/cjs/widgets/SavedQueries/SavedQueries.d.ts +2 -2
  167. package/build/cjs/widgets/SavedQueries/SavedQueries.js +2 -2
  168. package/build/cjs/widgets/SavedQueries/SavedQueries.js.map +1 -1
  169. package/build/cjs/widgets/SavedQueries/SavedQueryRowContent.d.ts +2 -2
  170. package/build/cjs/widgets/SavedQueries/SavedQueryRowContent.js +6 -5
  171. package/build/cjs/widgets/SavedQueries/SavedQueryRowContent.js.map +1 -1
  172. package/build/cjs/widgets/TutorialsHistory/TutorialRowContent.d.ts +2 -2
  173. package/build/cjs/widgets/TutorialsHistory/TutorialRowContent.js +6 -5
  174. package/build/cjs/widgets/TutorialsHistory/TutorialRowContent.js.map +1 -1
  175. package/build/cjs/widgets/TutorialsHistory/TutorialsHistory.d.ts +2 -2
  176. package/build/cjs/widgets/TutorialsHistory/TutorialsHistory.js +6 -4
  177. package/build/cjs/widgets/TutorialsHistory/TutorialsHistory.js.map +1 -1
  178. package/build/esm/components/AttachmentList/AttachmentList.js +1 -0
  179. package/build/esm/components/AttachmentList/AttachmentList.js.map +1 -1
  180. package/build/esm/components/QueryGraph/QueryGraph.css +70 -0
  181. package/build/esm/components/QueryGraph/QueryGraph.css.map +1 -0
  182. package/build/esm/components/QueryGraph/QueryGraph.d.ts +4 -0
  183. package/build/esm/components/QueryGraph/QueryGraph.js +510 -0
  184. package/build/esm/components/QueryGraph/QueryGraph.js.map +1 -0
  185. package/build/esm/components/QueryGraph/QueryGraph.scss +81 -0
  186. package/build/esm/components/QueryGraph/QueryGraph.stories.d.ts +16 -0
  187. package/build/esm/components/QueryGraph/QueryGraph.stories.js +331 -0
  188. package/build/esm/components/QueryGraph/QueryGraph.stories.js.map +1 -0
  189. package/build/esm/components/QueryGraph/helpers/layout.d.ts +9 -0
  190. package/build/esm/components/QueryGraph/helpers/layout.js +128 -0
  191. package/build/esm/components/QueryGraph/helpers/layout.js.map +1 -0
  192. package/build/esm/components/QueryGraph/helpers/presentation.d.ts +18 -0
  193. package/build/esm/components/QueryGraph/helpers/presentation.js +35 -0
  194. package/build/esm/components/QueryGraph/helpers/presentation.js.map +1 -0
  195. package/build/esm/components/QueryGraph/i18n/dicts.d.ts +55 -0
  196. package/build/esm/components/QueryGraph/i18n/dicts.js +7 -0
  197. package/build/esm/components/QueryGraph/i18n/dicts.js.map +1 -0
  198. package/build/esm/components/QueryGraph/i18n/en.json +26 -0
  199. package/build/esm/components/QueryGraph/i18n/index.d.ts +6 -0
  200. package/build/esm/components/QueryGraph/i18n/index.js +4 -0
  201. package/build/esm/components/QueryGraph/i18n/index.js.map +1 -0
  202. package/build/esm/components/QueryGraph/i18n/ru.json +26 -0
  203. package/build/esm/components/QueryGraph/index.d.ts +2 -0
  204. package/build/esm/components/QueryGraph/index.js +2 -0
  205. package/build/esm/components/QueryGraph/index.js.map +1 -0
  206. package/build/esm/components/QueryGraph/internal/QueryGraphCanvasBlock.d.ts +24 -0
  207. package/build/esm/components/QueryGraph/internal/QueryGraphCanvasBlock.js +299 -0
  208. package/build/esm/components/QueryGraph/internal/QueryGraphCanvasBlock.js.map +1 -0
  209. package/build/esm/components/QueryGraph/internal/QueryGraphPopup.d.ts +5 -0
  210. package/build/esm/components/QueryGraph/internal/QueryGraphPopup.js +234 -0
  211. package/build/esm/components/QueryGraph/internal/QueryGraphPopup.js.map +1 -0
  212. package/build/esm/components/QueryGraph/internal/queryGraphIcons.d.ts +12 -0
  213. package/build/esm/components/QueryGraph/internal/queryGraphIcons.js +150 -0
  214. package/build/esm/components/QueryGraph/internal/queryGraphIcons.js.map +1 -0
  215. package/build/esm/components/QueryGraph/internal/useQueryGraphLayout.d.ts +22 -0
  216. package/build/esm/components/QueryGraph/internal/useQueryGraphLayout.js +53 -0
  217. package/build/esm/components/QueryGraph/internal/useQueryGraphLayout.js.map +1 -0
  218. package/build/esm/components/QueryGraph/story/largeGraphData.d.ts +3 -0
  219. package/build/esm/components/QueryGraph/story/largeGraphData.js +220 -0
  220. package/build/esm/components/QueryGraph/story/largeGraphData.js.map +1 -0
  221. package/build/esm/components/index.d.ts +2 -0
  222. package/build/esm/components/index.js +1 -0
  223. package/build/esm/components/index.js.map +1 -1
  224. package/build/esm/helpers/buildColumnsFromKeys.d.ts +1 -1
  225. package/build/esm/helpers/buildColumnsFromKeys.js.map +1 -1
  226. package/build/esm/index.d.ts +1 -0
  227. package/build/esm/index.js +1 -0
  228. package/build/esm/index.js.map +1 -1
  229. package/build/esm/modules/Attachments/Attachments.css +13 -1
  230. package/build/esm/modules/Attachments/Attachments.css.map +1 -1
  231. package/build/esm/modules/Attachments/Attachments.js +5 -5
  232. package/build/esm/modules/Attachments/Attachments.js.map +1 -1
  233. package/build/esm/modules/Attachments/Attachments.scss +13 -1
  234. package/build/esm/modules/Attachments/Attachments.stories.d.ts +1 -0
  235. package/build/esm/modules/Attachments/Attachments.stories.js +91 -1
  236. package/build/esm/modules/Attachments/Attachments.stories.js.map +1 -1
  237. package/build/esm/modules/ClustersList/ClustersList.d.ts +1 -1
  238. package/build/esm/modules/ClustersList/ClustersList.js +2 -1
  239. package/build/esm/modules/ClustersList/ClustersList.js.map +1 -1
  240. package/build/esm/modules/HistoryHeader/HistoryHeader.js +2 -1
  241. package/build/esm/modules/HistoryHeader/HistoryHeader.js.map +1 -1
  242. package/build/esm/modules/HistoryRow/HistoryRow.js +6 -1
  243. package/build/esm/modules/HistoryRow/HistoryRow.js.map +1 -1
  244. package/build/esm/modules/HistorySearchRow/HistorySearchRow.js +4 -1
  245. package/build/esm/modules/HistorySearchRow/HistorySearchRow.js.map +1 -1
  246. package/build/esm/modules/HistorySearchRow/helpers/resolveMonacoLanguage.d.ts +1 -1
  247. package/build/esm/modules/HistorySearchRow/helpers/resolveMonacoLanguage.js +1 -1
  248. package/build/esm/modules/HistorySearchRow/helpers/resolveMonacoLanguage.js.map +1 -1
  249. package/build/esm/modules/NavigationDetail/NavigationDetail.d.ts +1 -1
  250. package/build/esm/modules/NavigationDetail/NavigationDetail.js +1 -1
  251. package/build/esm/modules/NavigationDetail/NavigationDetail.js.map +1 -1
  252. package/build/esm/modules/NavigationHeader/NavigationHeader.d.ts +1 -1
  253. package/build/esm/modules/NavigationHeader/NavigationHeader.js +1 -1
  254. package/build/esm/modules/NavigationHeader/NavigationHeader.js.map +1 -1
  255. package/build/esm/modules/NavigationItemsList/NavigationItemsList.d.ts +1 -1
  256. package/build/esm/modules/NavigationItemsList/NavigationItemsList.js +2 -1
  257. package/build/esm/modules/NavigationItemsList/NavigationItemsList.js.map +1 -1
  258. package/build/esm/modules/NavigationItemsList/internal/NavigationItemsListEmptyState.d.ts +1 -1
  259. package/build/esm/modules/NavigationItemsList/internal/NavigationItemsListEmptyState.js +1 -1
  260. package/build/esm/modules/NavigationItemsList/internal/NavigationItemsListEmptyState.js.map +1 -1
  261. package/build/esm/modules/NavigationMeta/NavigationMeta.js +2 -1
  262. package/build/esm/modules/NavigationMeta/NavigationMeta.js.map +1 -1
  263. package/build/esm/modules/NavigationMeta/i18n/index.d.ts +2 -2
  264. package/build/esm/modules/NavigationPreview/NavigationPreview.d.ts +1 -1
  265. package/build/esm/modules/NavigationPreview/NavigationPreview.js +3 -1
  266. package/build/esm/modules/NavigationPreview/NavigationPreview.js.map +1 -1
  267. package/build/esm/modules/NavigationPreview/helpers/buildPreviewColumns.d.ts +1 -1
  268. package/build/esm/modules/NavigationPreview/helpers/buildPreviewColumns.js.map +1 -1
  269. package/build/esm/modules/NavigationSchema/NavigationSchema.d.ts +1 -1
  270. package/build/esm/modules/NavigationSchema/NavigationSchema.js +2 -1
  271. package/build/esm/modules/NavigationSchema/NavigationSchema.js.map +1 -1
  272. package/build/esm/modules/NavigationSchema/helpers/buildSchemaColumns.d.ts +1 -1
  273. package/build/esm/modules/NavigationSchema/helpers/buildSchemaColumns.js.map +1 -1
  274. package/build/esm/modules/NavigationView/NavigationView.d.ts +1 -1
  275. package/build/esm/modules/NavigationView/NavigationView.js +2 -1
  276. package/build/esm/modules/NavigationView/NavigationView.js.map +1 -1
  277. package/build/esm/modules/NavigationView/helpers/buildViewColumns.d.ts +1 -1
  278. package/build/esm/modules/NavigationView/helpers/buildViewColumns.js.map +1 -1
  279. package/build/esm/modules/NavigationView/internal/NavigationViewSectionItem.d.ts +1 -1
  280. package/build/esm/modules/NavigationView/internal/NavigationViewSectionItem.js +2 -1
  281. package/build/esm/modules/NavigationView/internal/NavigationViewSectionItem.js.map +1 -1
  282. package/build/esm/modules/QueriesList/QueriesList.js +1 -1
  283. package/build/esm/modules/QueriesList/QueriesList.js.map +1 -1
  284. package/build/esm/modules/QueryProgress/QueryProgress.css +64 -0
  285. package/build/esm/modules/QueryProgress/QueryProgress.css.map +1 -0
  286. package/build/esm/modules/QueryProgress/QueryProgress.d.ts +4 -0
  287. package/build/esm/modules/QueryProgress/QueryProgress.js +127 -0
  288. package/build/esm/modules/QueryProgress/QueryProgress.js.map +1 -0
  289. package/build/esm/modules/QueryProgress/QueryProgress.scss +72 -0
  290. package/build/esm/modules/QueryProgress/QueryProgress.stories.d.ts +7 -0
  291. package/build/esm/modules/QueryProgress/QueryProgress.stories.js +31 -0
  292. package/build/esm/modules/QueryProgress/QueryProgress.stories.js.map +1 -0
  293. package/build/esm/modules/QueryProgress/i18n/dicts.d.ts +25 -0
  294. package/build/esm/modules/QueryProgress/i18n/dicts.js +7 -0
  295. package/build/esm/modules/QueryProgress/i18n/dicts.js.map +1 -0
  296. package/build/esm/modules/QueryProgress/i18n/en.json +11 -0
  297. package/build/esm/modules/QueryProgress/i18n/index.d.ts +6 -0
  298. package/build/esm/modules/QueryProgress/i18n/index.js +4 -0
  299. package/build/esm/modules/QueryProgress/i18n/index.js.map +1 -0
  300. package/build/esm/modules/QueryProgress/i18n/ru.json +11 -0
  301. package/build/esm/modules/QueryProgress/index.d.ts +2 -0
  302. package/build/esm/modules/QueryProgress/index.js +2 -0
  303. package/build/esm/modules/QueryProgress/index.js.map +1 -0
  304. package/build/esm/modules/QueryStatistics/i18n/index.d.ts +2 -2
  305. package/build/esm/modules/RowsList/RowsList.js +2 -1
  306. package/build/esm/modules/RowsList/RowsList.js.map +1 -1
  307. package/build/esm/modules/SavedQueryRow/SavedQueryRow.d.ts +2 -2
  308. package/build/esm/modules/SavedQueryRow/SavedQueryRow.js +3 -1
  309. package/build/esm/modules/SavedQueryRow/SavedQueryRow.js.map +1 -1
  310. package/build/esm/modules/SavedQuerySearchRow/SavedQuerySearchRow.d.ts +2 -2
  311. package/build/esm/modules/SavedQuerySearchRow/SavedQuerySearchRow.js +2 -1
  312. package/build/esm/modules/SavedQuerySearchRow/SavedQuerySearchRow.js.map +1 -1
  313. package/build/esm/modules/TutorialRow/TutorialRow.d.ts +1 -1
  314. package/build/esm/modules/TutorialRow/TutorialRow.js +1 -1
  315. package/build/esm/modules/TutorialRow/TutorialRow.js.map +1 -1
  316. package/build/esm/modules/TutorialSearchRow/TutorialSearchRow.d.ts +1 -1
  317. package/build/esm/modules/TutorialSearchRow/TutorialSearchRow.js +2 -1
  318. package/build/esm/modules/TutorialSearchRow/TutorialSearchRow.js.map +1 -1
  319. package/build/esm/modules/index.d.ts +2 -0
  320. package/build/esm/modules/index.js +1 -0
  321. package/build/esm/modules/index.js.map +1 -1
  322. package/build/esm/types/queryGraph.d.ts +87 -0
  323. package/build/esm/types/queryGraph.js +2 -0
  324. package/build/esm/types/queryGraph.js.map +1 -0
  325. package/build/esm/widgets/DashboardCharts/DashboardCharts.js +4 -2
  326. package/build/esm/widgets/DashboardCharts/DashboardCharts.js.map +1 -1
  327. package/build/esm/widgets/DashboardCharts/types.d.ts +3 -3
  328. package/build/esm/widgets/DashboardCharts/types.js.map +1 -1
  329. package/build/esm/widgets/QueriesHistory/QueriesHistory.js +1 -1
  330. package/build/esm/widgets/QueriesHistory/QueriesHistory.js.map +1 -1
  331. package/build/esm/widgets/QueriesHistory/internal/HistoryRowContent.js +3 -2
  332. package/build/esm/widgets/QueriesHistory/internal/HistoryRowContent.js.map +1 -1
  333. package/build/esm/widgets/QueriesNavigation/QueriesNavigation.d.ts +1 -1
  334. package/build/esm/widgets/QueriesNavigation/QueriesNavigation.js +6 -2
  335. package/build/esm/widgets/QueriesNavigation/QueriesNavigation.js.map +1 -1
  336. package/build/esm/widgets/QueriesNavigation/helpers/createEmptyDetailConfig.js +1 -1
  337. package/build/esm/widgets/QueriesNavigation/helpers/createEmptyDetailConfig.js.map +1 -1
  338. package/build/esm/widgets/QueriesNavigation/helpers/createTableDetailConfig.js +4 -1
  339. package/build/esm/widgets/QueriesNavigation/helpers/createTableDetailConfig.js.map +1 -1
  340. package/build/esm/widgets/QueryResults/QueryResults.js +1 -1
  341. package/build/esm/widgets/QueryResults/QueryResults.js.map +1 -1
  342. package/build/esm/widgets/QueryResults/i18n/index.d.ts +2 -2
  343. package/build/esm/widgets/QueryResults/internal/QueryResultsSchema.js +2 -1
  344. package/build/esm/widgets/QueryResults/internal/QueryResultsSchema.js.map +1 -1
  345. package/build/esm/widgets/SavedQueries/SavedQueries.d.ts +2 -2
  346. package/build/esm/widgets/SavedQueries/SavedQueries.js +1 -1
  347. package/build/esm/widgets/SavedQueries/SavedQueries.js.map +1 -1
  348. package/build/esm/widgets/SavedQueries/SavedQueryRowContent.d.ts +2 -2
  349. package/build/esm/widgets/SavedQueries/SavedQueryRowContent.js +3 -2
  350. package/build/esm/widgets/SavedQueries/SavedQueryRowContent.js.map +1 -1
  351. package/build/esm/widgets/TutorialsHistory/TutorialRowContent.d.ts +2 -2
  352. package/build/esm/widgets/TutorialsHistory/TutorialRowContent.js +3 -2
  353. package/build/esm/widgets/TutorialsHistory/TutorialRowContent.js.map +1 -1
  354. package/build/esm/widgets/TutorialsHistory/TutorialsHistory.d.ts +2 -2
  355. package/build/esm/widgets/TutorialsHistory/TutorialsHistory.js +3 -1
  356. package/build/esm/widgets/TutorialsHistory/TutorialsHistory.js.map +1 -1
  357. package/package.json +84 -5
@@ -0,0 +1,234 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
+ import "core-js/modules/es.array.concat.js";
4
+ import "core-js/modules/es.array.includes.js";
5
+ import "core-js/modules/es.array.is-array.js";
6
+ import "core-js/modules/es.array.join.js";
7
+ import "core-js/modules/es.array.map.js";
8
+ import "core-js/modules/es.array.push.js";
9
+ import "core-js/modules/es.function.name.js";
10
+ import "core-js/modules/es.iterator.constructor.js";
11
+ import "core-js/modules/es.iterator.map.js";
12
+ import "core-js/modules/es.number.to-fixed.js";
13
+ import "core-js/modules/es.object.to-string.js";
14
+ import "core-js/modules/es.string.includes.js";
15
+ import React, { useEffect, useMemo, useState } from 'react';
16
+ import { Progress, SegmentedRadioGroup, Table, Text } from '@gravity-ui/uikit';
17
+ import i18n from "../i18n";
18
+ import { getQueryGraphNodeIcon } from "./queryGraphIcons";
19
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
20
+ var jobStatuses = ['pending', 'running', 'completed', 'failed', 'aborted'];
21
+ var jobStatusLabels = {
22
+ pending: 'status_pending',
23
+ running: 'status_running',
24
+ completed: 'status_completed',
25
+ failed: 'status_failed',
26
+ aborted: 'status_aborted'
27
+ };
28
+ export function QueryGraphPopup(_ref) {
29
+ var _node$popup$details, _node$popup6, _ref2, _node$popup$jobs, _node$popup7;
30
+ var node = _ref.node;
31
+ var sections = useMemo(function () {
32
+ var _node$popup, _node$popup2, _node$popup3, _node$popup4, _node$popup5;
33
+ var items = [];
34
+ if ((_node$popup = node.popup) !== null && _node$popup !== void 0 && (_node$popup = _node$popup.stages) !== null && _node$popup !== void 0 && _node$popup.length) items.push('stages');
35
+ if ((_node$popup2 = node.popup) !== null && _node$popup2 !== void 0 && (_node$popup2 = _node$popup2.details) !== null && _node$popup2 !== void 0 && _node$popup2.length) items.push('details');
36
+ if ((_node$popup3 = node.popup) !== null && _node$popup3 !== void 0 && _node$popup3.jobs || node.progress) items.push('jobs');
37
+ if ((_node$popup4 = node.popup) !== null && _node$popup4 !== void 0 && (_node$popup4 = _node$popup4.inputs) !== null && _node$popup4 !== void 0 && _node$popup4.length || (_node$popup5 = node.popup) !== null && _node$popup5 !== void 0 && (_node$popup5 = _node$popup5.outputs) !== null && _node$popup5 !== void 0 && _node$popup5.length) items.push('schemas');
38
+ return items;
39
+ }, [node.popup, node.progress]);
40
+ var _useState = useState(sections[0]),
41
+ _useState2 = _slicedToArray(_useState, 2),
42
+ section = _useState2[0],
43
+ setSection = _useState2[1];
44
+ useEffect(function () {
45
+ if (!section || !sections.includes(section)) setSection(sections[0]);
46
+ }, [section, sections]);
47
+ var labels = {
48
+ stages: i18n('value_stages'),
49
+ details: i18n('value_details'),
50
+ jobs: i18n('value_jobs'),
51
+ schemas: i18n('value_schemas')
52
+ };
53
+ return /*#__PURE__*/_jsxs("div", {
54
+ className: "qp-query-graph__popup-content",
55
+ children: [/*#__PURE__*/_jsxs("div", {
56
+ className: "qp-query-graph__popup-title",
57
+ children: [getQueryGraphNodeIcon(node), /*#__PURE__*/_jsxs("div", {
58
+ children: [/*#__PURE__*/_jsx(Text, {
59
+ variant: "subheader-1",
60
+ children: node.name
61
+ }), node.label && /*#__PURE__*/_jsx(Text, {
62
+ color: "secondary",
63
+ children: node.label
64
+ })]
65
+ })]
66
+ }), sections.length > 1 && /*#__PURE__*/_jsx(SegmentedRadioGroup, {
67
+ size: "s",
68
+ width: "max",
69
+ value: section,
70
+ onUpdate: function onUpdate(value) {
71
+ return setSection(value);
72
+ },
73
+ children: sections.map(function (item) {
74
+ return /*#__PURE__*/_jsx(SegmentedRadioGroup.Option, {
75
+ value: item,
76
+ children: labels[item]
77
+ }, item);
78
+ })
79
+ }), section === 'stages' && /*#__PURE__*/_jsx(Stages, {
80
+ node: node
81
+ }), section === 'details' && /*#__PURE__*/_jsx(Details, {
82
+ items: (_node$popup$details = (_node$popup6 = node.popup) === null || _node$popup6 === void 0 ? void 0 : _node$popup6.details) !== null && _node$popup$details !== void 0 ? _node$popup$details : []
83
+ }), section === 'jobs' && /*#__PURE__*/_jsx(Jobs, {
84
+ jobs: (_ref2 = (_node$popup$jobs = (_node$popup7 = node.popup) === null || _node$popup7 === void 0 ? void 0 : _node$popup7.jobs) !== null && _node$popup$jobs !== void 0 ? _node$popup$jobs : node.progress) !== null && _ref2 !== void 0 ? _ref2 : {}
85
+ }), section === 'schemas' && /*#__PURE__*/_jsx(Schemas, {
86
+ node: node
87
+ }), !sections.length && node.label && /*#__PURE__*/_jsx(Text, {
88
+ color: "secondary",
89
+ children: node.label
90
+ })]
91
+ });
92
+ }
93
+ function Stages(_ref3) {
94
+ var _node$popup$stages, _node$popup8;
95
+ var node = _ref3.node;
96
+ var data = (_node$popup$stages = (_node$popup8 = node.popup) === null || _node$popup8 === void 0 ? void 0 : _node$popup8.stages) !== null && _node$popup$stages !== void 0 ? _node$popup$stages : [];
97
+ return /*#__PURE__*/_jsx(Table, {
98
+ data: data,
99
+ columns: [{
100
+ id: 'name',
101
+ name: i18n('field_stage')
102
+ }, {
103
+ id: 'duration',
104
+ name: i18n('field_duration'),
105
+ align: 'end',
106
+ template: function template(item) {
107
+ return formatDuration(item.duration);
108
+ }
109
+ }]
110
+ });
111
+ }
112
+ function Details(_ref4) {
113
+ var items = _ref4.items;
114
+ return /*#__PURE__*/_jsx("div", {
115
+ className: "qp-query-graph__details",
116
+ children: items.map(function (item, index) {
117
+ return /*#__PURE__*/_jsx(Detail, {
118
+ item: item
119
+ }, "".concat(item.name, "-").concat(index));
120
+ })
121
+ });
122
+ }
123
+ function Detail(_ref5) {
124
+ var _item$children;
125
+ var item = _ref5.item;
126
+ var content = item.value === undefined ? null : formatValue(item.value);
127
+ if ((_item$children = item.children) !== null && _item$children !== void 0 && _item$children.length) {
128
+ return /*#__PURE__*/_jsxs("details", {
129
+ open: true,
130
+ children: [/*#__PURE__*/_jsx("summary", {
131
+ children: item.name
132
+ }), content && /*#__PURE__*/_jsx(Text, {
133
+ color: "secondary",
134
+ children: content
135
+ }), /*#__PURE__*/_jsx(Details, {
136
+ items: item.children
137
+ })]
138
+ });
139
+ }
140
+ return /*#__PURE__*/_jsxs("div", {
141
+ className: "qp-query-graph__detail-row",
142
+ children: [/*#__PURE__*/_jsx(Text, {
143
+ color: "secondary",
144
+ children: item.name
145
+ }), /*#__PURE__*/_jsx(Text, {
146
+ children: content
147
+ })]
148
+ });
149
+ }
150
+ function Jobs(_ref6) {
151
+ var _jobs$total, _jobs$completed;
152
+ var jobs = _ref6.jobs;
153
+ var rows = jobStatuses.map(function (status) {
154
+ var _jobs$status;
155
+ return {
156
+ status: i18n(jobStatusLabels[status]),
157
+ count: (_jobs$status = jobs[status]) !== null && _jobs$status !== void 0 ? _jobs$status : 0
158
+ };
159
+ });
160
+ var total = (_jobs$total = jobs.total) !== null && _jobs$total !== void 0 ? _jobs$total : 0;
161
+ var completed = (_jobs$completed = jobs.completed) !== null && _jobs$completed !== void 0 ? _jobs$completed : 0;
162
+ return /*#__PURE__*/_jsxs("div", {
163
+ className: "qp-query-graph__jobs",
164
+ children: [/*#__PURE__*/_jsx(Progress, {
165
+ size: "xs",
166
+ value: total > 0 ? completed / total * 100 : 0
167
+ }), /*#__PURE__*/_jsx(Table, {
168
+ data: [].concat(_toConsumableArray(rows), [{
169
+ status: i18n('value_total'),
170
+ count: total
171
+ }]),
172
+ columns: [{
173
+ id: 'status',
174
+ name: i18n('field_status')
175
+ }, {
176
+ id: 'count',
177
+ name: i18n('field_count'),
178
+ align: 'end'
179
+ }]
180
+ })]
181
+ });
182
+ }
183
+ function Schemas(_ref7) {
184
+ var _node$popup$inputs, _node$popup9, _node$popup$outputs, _node$popup0;
185
+ var node = _ref7.node;
186
+ return /*#__PURE__*/_jsxs("div", {
187
+ className: "qp-query-graph__schemas",
188
+ children: [/*#__PURE__*/_jsx(SchemaGroup, {
189
+ title: i18n('value_inputs'),
190
+ schemas: (_node$popup$inputs = (_node$popup9 = node.popup) === null || _node$popup9 === void 0 ? void 0 : _node$popup9.inputs) !== null && _node$popup$inputs !== void 0 ? _node$popup$inputs : []
191
+ }), /*#__PURE__*/_jsx(SchemaGroup, {
192
+ title: i18n('value_outputs'),
193
+ schemas: (_node$popup$outputs = (_node$popup0 = node.popup) === null || _node$popup0 === void 0 ? void 0 : _node$popup0.outputs) !== null && _node$popup$outputs !== void 0 ? _node$popup$outputs : []
194
+ })]
195
+ });
196
+ }
197
+ function SchemaGroup(_ref8) {
198
+ var title = _ref8.title,
199
+ schemas = _ref8.schemas;
200
+ if (!schemas.length) return null;
201
+ return /*#__PURE__*/_jsxs("details", {
202
+ open: true,
203
+ children: [/*#__PURE__*/_jsx("summary", {
204
+ children: title
205
+ }), schemas.map(function (schema) {
206
+ return /*#__PURE__*/_jsxs("details", {
207
+ open: schemas.length === 1,
208
+ children: [/*#__PURE__*/_jsx("summary", {
209
+ children: schema.name
210
+ }), /*#__PURE__*/_jsx(Table, {
211
+ data: schema.columns,
212
+ columns: [{
213
+ id: 'name',
214
+ name: i18n('field_name')
215
+ }, {
216
+ id: 'type',
217
+ name: i18n('field_type'),
218
+ align: 'end'
219
+ }]
220
+ })]
221
+ }, schema.name);
222
+ })]
223
+ });
224
+ }
225
+ function formatDuration(value) {
226
+ if (value < 1000) return "".concat(value, " ms");
227
+ return "".concat((value / 1000).toFixed(value < 10000 ? 1 : 0), " s");
228
+ }
229
+ function formatValue(value) {
230
+ if (Array.isArray(value)) return value.map(formatValue).join(', ');
231
+ if (value === null) return 'null';
232
+ return String(value);
233
+ }
234
+ // #sourceMappingURL=QueryGraphPopup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useEffect","useMemo","useState","Progress","SegmentedRadioGroup","Table","Text","i18n","getQueryGraphNodeIcon","jsx","_jsx","jsxs","_jsxs","jobStatuses","jobStatusLabels","pending","running","completed","failed","aborted","QueryGraphPopup","_ref","_node$popup$details","_node$popup6","_ref2","_node$popup$jobs","_node$popup7","node","sections","_node$popup","_node$popup2","_node$popup3","_node$popup4","_node$popup5","items","popup","stages","length","push","details","jobs","progress","inputs","outputs","_useState","_useState2","_slicedToArray","section","setSection","includes","labels","schemas","className","children","variant","name","label","color","size","width","value","onUpdate","map","item","Option","Stages","Details","Jobs","Schemas","_ref3","_node$popup$stages","_node$popup8","data","columns","id","align","template","formatDuration","duration","_ref4","index","Detail","concat","_ref5","_item$children","content","undefined","formatValue","open","_ref6","_jobs$total","_jobs$completed","rows","status","_jobs$status","count","total","_toConsumableArray","_ref7","_node$popup$inputs","_node$popup9","_node$popup$outputs","_node$popup0","SchemaGroup","title","_ref8","schema","toFixed","Array","isArray","join","String"],"sources":["QueryGraphPopup.tsx"],"sourcesContent":["import React, {useEffect, useMemo, useState} from 'react';\nimport {Progress, SegmentedRadioGroup, Table, Text} from '@gravity-ui/uikit';\n\nimport type {\n QueryGraphDetail,\n QueryGraphJobCounts,\n QueryGraphNode,\n QueryGraphSchema,\n} from '../../../types/queryGraph';\nimport i18n from '../i18n';\nimport {getQueryGraphNodeIcon} from './queryGraphIcons';\n\ntype Section = 'stages' | 'details' | 'jobs' | 'schemas';\nconst jobStatuses = ['pending', 'running', 'completed', 'failed', 'aborted'] as const;\nconst jobStatusLabels = {\n pending: 'status_pending',\n running: 'status_running',\n completed: 'status_completed',\n failed: 'status_failed',\n aborted: 'status_aborted',\n} as const;\n\nexport function QueryGraphPopup({node}: {node: QueryGraphNode}) {\n const sections = useMemo(() => {\n const items: Section[] = [];\n if (node.popup?.stages?.length) items.push('stages');\n if (node.popup?.details?.length) items.push('details');\n if (node.popup?.jobs || node.progress) items.push('jobs');\n if (node.popup?.inputs?.length || node.popup?.outputs?.length) items.push('schemas');\n return items;\n }, [node.popup, node.progress]);\n const [section, setSection] = useState<Section | undefined>(sections[0]);\n\n useEffect(() => {\n if (!section || !sections.includes(section)) setSection(sections[0]);\n }, [section, sections]);\n\n const labels: Record<Section, string> = {\n stages: i18n('value_stages'),\n details: i18n('value_details'),\n jobs: i18n('value_jobs'),\n schemas: i18n('value_schemas'),\n };\n\n return (\n <div className=\"qp-query-graph__popup-content\">\n <div className=\"qp-query-graph__popup-title\">\n {getQueryGraphNodeIcon(node)}\n <div>\n <Text variant=\"subheader-1\">{node.name}</Text>\n {node.label && <Text color=\"secondary\">{node.label}</Text>}\n </div>\n </div>\n {sections.length > 1 && (\n <SegmentedRadioGroup\n size=\"s\"\n width=\"max\"\n value={section}\n onUpdate={(value) => setSection(value as Section)}\n >\n {sections.map((item) => (\n <SegmentedRadioGroup.Option key={item} value={item}>\n {labels[item]}\n </SegmentedRadioGroup.Option>\n ))}\n </SegmentedRadioGroup>\n )}\n {section === 'stages' && <Stages node={node} />}\n {section === 'details' && <Details items={node.popup?.details ?? []} />}\n {section === 'jobs' && <Jobs jobs={node.popup?.jobs ?? node.progress ?? {}} />}\n {section === 'schemas' && <Schemas node={node} />}\n {!sections.length && node.label && <Text color=\"secondary\">{node.label}</Text>}\n </div>\n );\n}\n\nfunction Stages({node}: {node: QueryGraphNode}) {\n const data = node.popup?.stages ?? [];\n return (\n <Table\n data={data}\n columns={[\n {id: 'name', name: i18n('field_stage')},\n {\n id: 'duration',\n name: i18n('field_duration'),\n align: 'end',\n template: (item) => formatDuration(item.duration),\n },\n ]}\n />\n );\n}\n\nfunction Details({items}: {items: QueryGraphDetail[]}) {\n return (\n <div className=\"qp-query-graph__details\">\n {items.map((item, index) => (\n <Detail key={`${item.name}-${index}`} item={item} />\n ))}\n </div>\n );\n}\n\nfunction Detail({item}: {item: QueryGraphDetail}) {\n const content = item.value === undefined ? null : formatValue(item.value);\n if (item.children?.length) {\n return (\n <details open>\n <summary>{item.name}</summary>\n {content && <Text color=\"secondary\">{content}</Text>}\n <Details items={item.children} />\n </details>\n );\n }\n return (\n <div className=\"qp-query-graph__detail-row\">\n <Text color=\"secondary\">{item.name}</Text>\n <Text>{content}</Text>\n </div>\n );\n}\n\nfunction Jobs({jobs}: {jobs: QueryGraphJobCounts}) {\n const rows = jobStatuses.map((status) => ({\n status: i18n(jobStatusLabels[status]),\n count: jobs[status] ?? 0,\n }));\n const total = jobs.total ?? 0;\n const completed = jobs.completed ?? 0;\n return (\n <div className=\"qp-query-graph__jobs\">\n <Progress size=\"xs\" value={total > 0 ? (completed / total) * 100 : 0} />\n <Table\n data={[...rows, {status: i18n('value_total'), count: total}]}\n columns={[\n {id: 'status', name: i18n('field_status')},\n {id: 'count', name: i18n('field_count'), align: 'end'},\n ]}\n />\n </div>\n );\n}\n\nfunction Schemas({node}: {node: QueryGraphNode}) {\n return (\n <div className=\"qp-query-graph__schemas\">\n <SchemaGroup title={i18n('value_inputs')} schemas={node.popup?.inputs ?? []} />\n <SchemaGroup title={i18n('value_outputs')} schemas={node.popup?.outputs ?? []} />\n </div>\n );\n}\n\nfunction SchemaGroup({title, schemas}: {title: string; schemas: QueryGraphSchema[]}) {\n if (!schemas.length) return null;\n return (\n <details open>\n <summary>{title}</summary>\n {schemas.map((schema) => (\n <details key={schema.name} open={schemas.length === 1}>\n <summary>{schema.name}</summary>\n <Table\n data={schema.columns}\n columns={[\n {id: 'name', name: i18n('field_name')},\n {id: 'type', name: i18n('field_type'), align: 'end'},\n ]}\n />\n </details>\n ))}\n </details>\n );\n}\n\nfunction formatDuration(value: number) {\n if (value < 1000) return `${value} ms`;\n return `${(value / 1000).toFixed(value < 10000 ? 1 : 0)} s`;\n}\n\nfunction formatValue(value: QueryGraphDetail['value']): string {\n if (Array.isArray(value)) return value.map(formatValue).join(', ');\n if (value === null) return 'null';\n return String(value);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import type { QueryGraphNode, QueryGraphNodeStatus } from '../../../types/queryGraph';
3
+ export declare function getDefaultQueryGraphNodeIcon(node: QueryGraphNode): React.ReactElement;
4
+ export declare function getQueryGraphNodeIcon(node: QueryGraphNode): React.ReactElement;
5
+ export declare function getQueryGraphNodeIconSvgs(node: QueryGraphNode): {
6
+ iconSvg: string;
7
+ fallbackIconSvg: string;
8
+ iconColorToken: string;
9
+ fallbackIconColorToken: string;
10
+ };
11
+ export declare function queryGraphIconToSvg(icon: React.ReactNode): string | undefined;
12
+ export declare function getQueryGraphStatusIconSvg(status: QueryGraphNodeStatus): string | undefined;
@@ -0,0 +1,150 @@
1
+ import _objectSpread from "@babel/runtime/helpers/objectSpread2";
2
+ import "core-js/modules/es.array.iterator.js";
3
+ import "core-js/modules/es.map.js";
4
+ import "core-js/modules/es.object.to-string.js";
5
+ import "core-js/modules/es.string.iterator.js";
6
+ import "core-js/modules/es.string.starts-with.js";
7
+ import "core-js/modules/es.weak-map.js";
8
+ import "core-js/modules/esnext.map.get-or-insert.js";
9
+ import "core-js/modules/esnext.map.get-or-insert-computed.js";
10
+ import "core-js/modules/esnext.weak-map.get-or-insert.js";
11
+ import "core-js/modules/esnext.weak-map.get-or-insert-computed.js";
12
+ import "core-js/modules/web.dom-collections.iterator.js";
13
+ import React from 'react';
14
+ import { CircleCheck, CircleMinus, CirclePlay, CircleXmark, CodeCommit, CodeMerge, Eraser, LayoutHeaderCellsLarge, ListTimeline, Molecule, Shuffle } from '@gravity-ui/icons';
15
+ import { renderToStaticMarkup } from 'react-dom/server';
16
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
17
+ // Map, Reduce and MapReduce paths are adapted from the corresponding neutral
18
+ // operation icons in ytsaurus/ytsaurus-ui (Apache-2.0).
19
+ var MapOperationIcon = function MapOperationIcon(props) {
20
+ return /*#__PURE__*/_jsxs("svg", _objectSpread(_objectSpread({
21
+ width: "16",
22
+ height: "16",
23
+ viewBox: "0 0 16 16",
24
+ fill: "none",
25
+ xmlns: "http://www.w3.org/2000/svg"
26
+ }, props), {}, {
27
+ children: [/*#__PURE__*/_jsx("path", {
28
+ fill: "currentColor",
29
+ fillRule: "evenodd",
30
+ d: "M3 2.75a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0M2.25.5a2.25 2.25 0 1 1 0 4.5 2.25 2.25 0 0 1 0-4.5M3 8a.75.75 0 1 1-1.5 0A.75.75 0 0 1 3 8m-.75-2.25a2.25 2.25 0 1 1 0 4.5 2.25 2.25 0 0 1 0-4.5M3 13.25a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0M2.25 11a2.25 2.25 0 1 1 0 4.5 2.25 2.25 0 0 1 0-4.5m11.5-8a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5m0-2.5a2.25 2.25 0 1 1 0 4.5 2.25 2.25 0 0 1 0-4.5m0 8.25a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5m0-3a2.25 2.25 0 1 1 0 4.5 2.25 2.25 0 0 1 0-4.5m.75 7.5a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0m-.75-2.25a2.25 2.25 0 1 1 0 4.5 2.25 2.25 0 0 1 0-4.5"
31
+ }), /*#__PURE__*/_jsx("path", {
32
+ d: "M4 2.8h8M4 8h8m-5-2.5L9.5 8 7 10.5m-3 2.8h8",
33
+ stroke: "currentColor",
34
+ strokeWidth: "1.5",
35
+ strokeLinecap: "round",
36
+ strokeLinejoin: "round"
37
+ })]
38
+ }));
39
+ };
40
+ var ReduceOperationIcon = function ReduceOperationIcon(props) {
41
+ return /*#__PURE__*/_jsx("svg", _objectSpread(_objectSpread({
42
+ width: "16",
43
+ height: "16",
44
+ viewBox: "0 0 16 16",
45
+ fill: "none",
46
+ xmlns: "http://www.w3.org/2000/svg"
47
+ }, props), {}, {
48
+ children: /*#__PURE__*/_jsx("path", {
49
+ fill: "currentColor",
50
+ fillRule: "evenodd",
51
+ d: "M4 2.75a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0M3.25.5a2.25 2.25 0 0 1 2.122 1.5h.378a3 3 0 0 1 3 3v2.25h3.94l-1.22-1.22a.75.75 0 0 1 1.06-1.06l2.5 2.5a.75.75 0 0 1 0 1.06l-2.5 2.5a.75.75 0 1 1-1.06-1.06l1.22-1.22H8.75V11a3 3 0 0 1-3 3h-.378a2.25 2.25 0 1 1 0-1.5h.378A1.5 1.5 0 0 0 7.25 11V8.75H5.372a2.25 2.25 0 1 1 0-1.5H7.25V5a1.5 1.5 0 0 0-1.5-1.5h-.378A2.25 2.25 0 1 1 3.25.5M4 8a.75.75 0 1 1-1.5 0A.75.75 0 0 1 4 8m0 5.25a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0"
52
+ })
53
+ }));
54
+ };
55
+ var MapReduceOperationIcon = function MapReduceOperationIcon(props) {
56
+ return /*#__PURE__*/_jsxs("svg", _objectSpread(_objectSpread({
57
+ width: "16",
58
+ height: "16",
59
+ viewBox: "0 0 16 16",
60
+ fill: "none",
61
+ xmlns: "http://www.w3.org/2000/svg"
62
+ }, props), {}, {
63
+ children: [/*#__PURE__*/_jsx("path", {
64
+ fill: "currentColor",
65
+ fillRule: "evenodd",
66
+ d: "M3 2.75a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0M4.372 3.5A2.25 2.25 0 1 1 4.372 2H6.25a3 3 0 0 1 3 3v.896A2.25 2.25 0 0 1 10.572 7.25H14a.75.75 0 0 1 0 1.5h-3.428A2.25 2.25 0 0 1 9.25 10.104V11a3 3 0 0 1-3 3H4.372a2.25 2.25 0 1 1 0-1.5H6.25a1.5 1.5 0 0 0 1.5-1.5v-.861a2.25 2.25 0 0 1-1.423-1.393L6.25 8.75H4.372a2.25 2.25 0 1 1 0-1.5H6.25l.077.004A2.25 2.25 0 0 1 7.75 5.861V5a1.5 1.5 0 0 0-1.5-1.5zM3 8a.75.75 0 1 1-1.5 0A.75.75 0 0 1 3 8m0 5.25a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0M9.2 8a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0"
67
+ }), /*#__PURE__*/_jsx("path", {
68
+ d: "M12.5 5.5 15 8l-2.5 2.5",
69
+ stroke: "currentColor",
70
+ strokeWidth: "1.5",
71
+ strokeLinecap: "round",
72
+ strokeLinejoin: "round"
73
+ })]
74
+ }));
75
+ };
76
+ var operationIcons = {
77
+ read: ListTimeline,
78
+ map: MapOperationIcon,
79
+ reduce: ReduceOperationIcon,
80
+ 'map-reduce': MapReduceOperationIcon,
81
+ merge: CodeMerge,
82
+ sort: Shuffle,
83
+ erase: Eraser,
84
+ commit: CodeCommit,
85
+ operation: Molecule
86
+ };
87
+ var statusIcons = {
88
+ running: CirclePlay,
89
+ completed: CircleCheck,
90
+ failed: CircleXmark,
91
+ aborted: CircleMinus
92
+ };
93
+ var statusIconSvgCache = new Map();
94
+ var defaultIconSvgCache = new Map();
95
+ var customIconSvgCache = new WeakMap();
96
+ export function getDefaultQueryGraphNodeIcon(node) {
97
+ var _node$operationType;
98
+ var IconComponent = node.kind === 'operation' ? operationIcons[(_node$operationType = node.operationType) !== null && _node$operationType !== void 0 ? _node$operationType : 'operation'] : LayoutHeaderCellsLarge;
99
+ return /*#__PURE__*/_jsx(IconComponent, {});
100
+ }
101
+ export function getQueryGraphNodeIcon(node) {
102
+ return /*#__PURE__*/React.isValidElement(node.icon) && queryGraphIconToSvg(node.icon) ? node.icon : getDefaultQueryGraphNodeIcon(node);
103
+ }
104
+ export function getQueryGraphNodeIconSvgs(node) {
105
+ var _node$operationType2;
106
+ var defaultKey = node.kind === 'operation' ? "operation:".concat((_node$operationType2 = node.operationType) !== null && _node$operationType2 !== void 0 ? _node$operationType2 : 'operation') : 'resource';
107
+ var defaultIconColorToken = '--g-color-text-misc';
108
+ var fallbackIconSvg = defaultIconSvgCache.get(defaultKey);
109
+ if (!fallbackIconSvg) {
110
+ var _queryGraphIconToSvg;
111
+ fallbackIconSvg = (_queryGraphIconToSvg = queryGraphIconToSvg(getDefaultQueryGraphNodeIcon(node))) !== null && _queryGraphIconToSvg !== void 0 ? _queryGraphIconToSvg : '';
112
+ defaultIconSvgCache.set(defaultKey, fallbackIconSvg);
113
+ }
114
+ if (! /*#__PURE__*/React.isValidElement(node.icon)) {
115
+ return {
116
+ iconSvg: fallbackIconSvg,
117
+ fallbackIconSvg: fallbackIconSvg,
118
+ iconColorToken: defaultIconColorToken,
119
+ fallbackIconColorToken: defaultIconColorToken
120
+ };
121
+ }
122
+ var iconSvg = customIconSvgCache.get(node.icon);
123
+ if (!customIconSvgCache.has(node.icon)) {
124
+ iconSvg = queryGraphIconToSvg(node.icon);
125
+ customIconSvgCache.set(node.icon, iconSvg);
126
+ }
127
+ return {
128
+ iconSvg: iconSvg !== null && iconSvg !== void 0 ? iconSvg : fallbackIconSvg,
129
+ fallbackIconSvg: fallbackIconSvg,
130
+ iconColorToken: iconSvg ? '--g-color-text-primary' : defaultIconColorToken,
131
+ fallbackIconColorToken: defaultIconColorToken
132
+ };
133
+ }
134
+ export function queryGraphIconToSvg(icon) {
135
+ if (! /*#__PURE__*/React.isValidElement(icon)) return undefined;
136
+ try {
137
+ var markup = renderToStaticMarkup(icon);
138
+ return markup.startsWith('<svg') ? markup : undefined;
139
+ } catch (_unused) {
140
+ return undefined;
141
+ }
142
+ }
143
+ export function getQueryGraphStatusIconSvg(status) {
144
+ if (statusIconSvgCache.has(status)) return statusIconSvgCache.get(status);
145
+ var StatusIcon = statusIcons[status];
146
+ var svg = StatusIcon ? queryGraphIconToSvg(/*#__PURE__*/_jsx(StatusIcon, {})) : undefined;
147
+ statusIconSvgCache.set(status, svg);
148
+ return svg;
149
+ }
150
+ // #sourceMappingURL=queryGraphIcons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","CircleCheck","CircleMinus","CirclePlay","CircleXmark","CodeCommit","CodeMerge","Eraser","LayoutHeaderCellsLarge","ListTimeline","Molecule","Shuffle","renderToStaticMarkup","jsx","_jsx","jsxs","_jsxs","MapOperationIcon","props","_objectSpread","width","height","viewBox","fill","xmlns","children","fillRule","d","stroke","strokeWidth","strokeLinecap","strokeLinejoin","ReduceOperationIcon","MapReduceOperationIcon","operationIcons","read","map","reduce","merge","sort","erase","commit","operation","statusIcons","running","completed","failed","aborted","statusIconSvgCache","Map","defaultIconSvgCache","customIconSvgCache","WeakMap","getDefaultQueryGraphNodeIcon","node","_node$operationType","IconComponent","kind","operationType","getQueryGraphNodeIcon","isValidElement","icon","queryGraphIconToSvg","getQueryGraphNodeIconSvgs","_node$operationType2","defaultKey","concat","defaultIconColorToken","fallbackIconSvg","get","_queryGraphIconToSvg","set","iconSvg","iconColorToken","fallbackIconColorToken","has","undefined","markup","startsWith","_unused","getQueryGraphStatusIconSvg","status","StatusIcon","svg"],"sources":["queryGraphIcons.tsx"],"sourcesContent":["import React from 'react';\nimport {\n CircleCheck,\n CircleMinus,\n CirclePlay,\n CircleXmark,\n CodeCommit,\n CodeMerge,\n Eraser,\n LayoutHeaderCellsLarge,\n ListTimeline,\n Molecule,\n Shuffle,\n} from '@gravity-ui/icons';\nimport {renderToStaticMarkup} from 'react-dom/server';\n\nimport type {\n QueryGraphNode,\n QueryGraphNodeStatus,\n QueryGraphOperationType,\n} from '../../../types/queryGraph';\n\ntype SvgIcon = (props: React.SVGProps<SVGSVGElement>) => React.JSX.Element;\n\n// Map, Reduce and MapReduce paths are adapted from the corresponding neutral\n// operation icons in ytsaurus/ytsaurus-ui (Apache-2.0).\nconst MapOperationIcon: SvgIcon = (props) => (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n d=\"M3 2.75a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0M2.25.5a2.25 2.25 0 1 1 0 4.5 2.25 2.25 0 0 1 0-4.5M3 8a.75.75 0 1 1-1.5 0A.75.75 0 0 1 3 8m-.75-2.25a2.25 2.25 0 1 1 0 4.5 2.25 2.25 0 0 1 0-4.5M3 13.25a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0M2.25 11a2.25 2.25 0 1 1 0 4.5 2.25 2.25 0 0 1 0-4.5m11.5-8a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5m0-2.5a2.25 2.25 0 1 1 0 4.5 2.25 2.25 0 0 1 0-4.5m0 8.25a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5m0-3a2.25 2.25 0 1 1 0 4.5 2.25 2.25 0 0 1 0-4.5m.75 7.5a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0m-.75-2.25a2.25 2.25 0 1 1 0 4.5 2.25 2.25 0 0 1 0-4.5\"\n />\n <path\n d=\"M4 2.8h8M4 8h8m-5-2.5L9.5 8 7 10.5m-3 2.8h8\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n\nconst ReduceOperationIcon: SvgIcon = (props) => (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n d=\"M4 2.75a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0M3.25.5a2.25 2.25 0 0 1 2.122 1.5h.378a3 3 0 0 1 3 3v2.25h3.94l-1.22-1.22a.75.75 0 0 1 1.06-1.06l2.5 2.5a.75.75 0 0 1 0 1.06l-2.5 2.5a.75.75 0 1 1-1.06-1.06l1.22-1.22H8.75V11a3 3 0 0 1-3 3h-.378a2.25 2.25 0 1 1 0-1.5h.378A1.5 1.5 0 0 0 7.25 11V8.75H5.372a2.25 2.25 0 1 1 0-1.5H7.25V5a1.5 1.5 0 0 0-1.5-1.5h-.378A2.25 2.25 0 1 1 3.25.5M4 8a.75.75 0 1 1-1.5 0A.75.75 0 0 1 4 8m0 5.25a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0\"\n />\n </svg>\n);\n\nconst MapReduceOperationIcon: SvgIcon = (props) => (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n d=\"M3 2.75a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0M4.372 3.5A2.25 2.25 0 1 1 4.372 2H6.25a3 3 0 0 1 3 3v.896A2.25 2.25 0 0 1 10.572 7.25H14a.75.75 0 0 1 0 1.5h-3.428A2.25 2.25 0 0 1 9.25 10.104V11a3 3 0 0 1-3 3H4.372a2.25 2.25 0 1 1 0-1.5H6.25a1.5 1.5 0 0 0 1.5-1.5v-.861a2.25 2.25 0 0 1-1.423-1.393L6.25 8.75H4.372a2.25 2.25 0 1 1 0-1.5H6.25l.077.004A2.25 2.25 0 0 1 7.75 5.861V5a1.5 1.5 0 0 0-1.5-1.5zM3 8a.75.75 0 1 1-1.5 0A.75.75 0 0 1 3 8m0 5.25a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0M9.2 8a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0\"\n />\n <path\n d=\"M12.5 5.5 15 8l-2.5 2.5\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n\nconst operationIcons: Record<QueryGraphOperationType, SvgIcon> = {\n read: ListTimeline,\n map: MapOperationIcon,\n reduce: ReduceOperationIcon,\n 'map-reduce': MapReduceOperationIcon,\n merge: CodeMerge,\n sort: Shuffle,\n erase: Eraser,\n commit: CodeCommit,\n operation: Molecule,\n};\n\nconst statusIcons: Partial<Record<QueryGraphNodeStatus, SvgIcon>> = {\n running: CirclePlay,\n completed: CircleCheck,\n failed: CircleXmark,\n aborted: CircleMinus,\n};\nconst statusIconSvgCache = new Map<QueryGraphNodeStatus, string | undefined>();\nconst defaultIconSvgCache = new Map<string, string>();\nconst customIconSvgCache = new WeakMap<object, string | undefined>();\n\nexport function getDefaultQueryGraphNodeIcon(node: QueryGraphNode): React.ReactElement {\n const IconComponent =\n node.kind === 'operation'\n ? operationIcons[node.operationType ?? 'operation']\n : LayoutHeaderCellsLarge;\n return <IconComponent />;\n}\n\nexport function getQueryGraphNodeIcon(node: QueryGraphNode): React.ReactElement {\n return React.isValidElement(node.icon) && queryGraphIconToSvg(node.icon)\n ? node.icon\n : getDefaultQueryGraphNodeIcon(node);\n}\n\nexport function getQueryGraphNodeIconSvgs(node: QueryGraphNode) {\n const defaultKey =\n node.kind === 'operation' ? `operation:${node.operationType ?? 'operation'}` : 'resource';\n const defaultIconColorToken = '--g-color-text-misc';\n let fallbackIconSvg = defaultIconSvgCache.get(defaultKey);\n if (!fallbackIconSvg) {\n fallbackIconSvg = queryGraphIconToSvg(getDefaultQueryGraphNodeIcon(node)) ?? '';\n defaultIconSvgCache.set(defaultKey, fallbackIconSvg);\n }\n\n if (!React.isValidElement(node.icon)) {\n return {\n iconSvg: fallbackIconSvg,\n fallbackIconSvg,\n iconColorToken: defaultIconColorToken,\n fallbackIconColorToken: defaultIconColorToken,\n };\n }\n let iconSvg = customIconSvgCache.get(node.icon);\n if (!customIconSvgCache.has(node.icon)) {\n iconSvg = queryGraphIconToSvg(node.icon);\n customIconSvgCache.set(node.icon, iconSvg);\n }\n return {\n iconSvg: iconSvg ?? fallbackIconSvg,\n fallbackIconSvg,\n iconColorToken: iconSvg ? '--g-color-text-primary' : defaultIconColorToken,\n fallbackIconColorToken: defaultIconColorToken,\n };\n}\n\nexport function queryGraphIconToSvg(icon: React.ReactNode): string | undefined {\n if (!React.isValidElement(icon)) return undefined;\n try {\n const markup = renderToStaticMarkup(icon);\n return markup.startsWith('<svg') ? markup : undefined;\n } catch {\n return undefined;\n }\n}\n\nexport function getQueryGraphStatusIconSvg(status: QueryGraphNodeStatus) {\n if (statusIconSvgCache.has(status)) return statusIconSvgCache.get(status);\n const StatusIcon = statusIcons[status];\n const svg = StatusIcon ? queryGraphIconToSvg(<StatusIcon />) : undefined;\n statusIconSvgCache.set(status, svg);\n return svg;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,22 @@
1
+ import { type ConverterResult } from '@gravity-ui/graph';
2
+ type QueryGraphLayoutInput = {
3
+ structureKey: string;
4
+ blocks: Array<{
5
+ id: string;
6
+ width: number;
7
+ height: number;
8
+ }>;
9
+ connections: Array<{
10
+ id: string;
11
+ sourceBlockId: string;
12
+ targetBlockId: string;
13
+ }>;
14
+ onError?: (error: Error) => void;
15
+ };
16
+ export declare function useQueryGraphLayout({ structureKey, blocks, connections, onError, }: QueryGraphLayoutInput): {
17
+ result: ConverterResult | undefined;
18
+ resolvedStructureKey: string | undefined;
19
+ isInitialLoading: boolean;
20
+ error: Error | undefined;
21
+ };
22
+ export {};
@@ -0,0 +1,53 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
+ import { useCallback, useEffect, useRef, useState } from 'react';
3
+ import { useLayeredLayout } from '@gravity-ui/graph';
4
+ export function useQueryGraphLayout(_ref) {
5
+ var structureKey = _ref.structureKey,
6
+ blocks = _ref.blocks,
7
+ connections = _ref.connections,
8
+ onError = _ref.onError;
9
+ var onErrorRef = useRef(onError);
10
+ onErrorRef.current = onError;
11
+ var requestedKeyRef = useRef(structureKey);
12
+ var _useState = useState(),
13
+ _useState2 = _slicedToArray(_useState, 2),
14
+ resolved = _useState2[0],
15
+ setResolved = _useState2[1];
16
+ var _useState3 = useState(),
17
+ _useState4 = _slicedToArray(_useState3, 2),
18
+ error = _useState4[0],
19
+ setError = _useState4[1];
20
+ var handleError = useCallback(function (nextError) {
21
+ var _onErrorRef$current;
22
+ setError(nextError);
23
+ (_onErrorRef$current = onErrorRef.current) === null || _onErrorRef$current === void 0 || _onErrorRef$current.call(onErrorRef, nextError);
24
+ }, []);
25
+ var _useLayeredLayout = useLayeredLayout({
26
+ blocks: blocks,
27
+ connections: connections,
28
+ onError: handleError
29
+ }),
30
+ result = _useLayeredLayout.result,
31
+ isLoading = _useLayeredLayout.isLoading;
32
+ useEffect(function () {
33
+ setError(undefined);
34
+ }, [structureKey]);
35
+ useEffect(function () {
36
+ if (isLoading) requestedKeyRef.current = structureKey;
37
+ }, [isLoading, structureKey]);
38
+ useEffect(function () {
39
+ if (!isLoading && result && requestedKeyRef.current === structureKey) {
40
+ setResolved({
41
+ structureKey: structureKey,
42
+ result: result
43
+ });
44
+ }
45
+ }, [isLoading, result, structureKey]);
46
+ return {
47
+ result: resolved === null || resolved === void 0 ? void 0 : resolved.result,
48
+ resolvedStructureKey: resolved === null || resolved === void 0 ? void 0 : resolved.structureKey,
49
+ isInitialLoading: isLoading && !resolved,
50
+ error: error
51
+ };
52
+ }
53
+ // #sourceMappingURL=useQueryGraphLayout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCallback","useEffect","useRef","useState","useLayeredLayout","useQueryGraphLayout","_ref","structureKey","blocks","connections","onError","onErrorRef","current","requestedKeyRef","_useState","_useState2","_slicedToArray","resolved","setResolved","_useState3","_useState4","error","setError","handleError","nextError","_onErrorRef$current","call","_useLayeredLayout","result","isLoading","undefined","resolvedStructureKey","isInitialLoading"],"sources":["useQueryGraphLayout.ts"],"sourcesContent":["import {useCallback, useEffect, useRef, useState} from 'react';\nimport {type ConverterResult, useLayeredLayout} from '@gravity-ui/graph';\n\ntype QueryGraphLayoutInput = {\n structureKey: string;\n blocks: Array<{id: string; width: number; height: number}>;\n connections: Array<{\n id: string;\n sourceBlockId: string;\n targetBlockId: string;\n }>;\n onError?: (error: Error) => void;\n};\n\ntype ResolvedLayout = {structureKey: string; result: ConverterResult};\n\nexport function useQueryGraphLayout({\n structureKey,\n blocks,\n connections,\n onError,\n}: QueryGraphLayoutInput) {\n const onErrorRef = useRef(onError);\n onErrorRef.current = onError;\n const requestedKeyRef = useRef(structureKey);\n const [resolved, setResolved] = useState<ResolvedLayout>();\n const [error, setError] = useState<Error>();\n\n const handleError = useCallback((nextError: Error) => {\n setError(nextError);\n onErrorRef.current?.(nextError);\n }, []);\n const {result, isLoading} = useLayeredLayout({blocks, connections, onError: handleError});\n\n useEffect(() => {\n setError(undefined);\n }, [structureKey]);\n useEffect(() => {\n if (isLoading) requestedKeyRef.current = structureKey;\n }, [isLoading, structureKey]);\n useEffect(() => {\n if (!isLoading && result && requestedKeyRef.current === structureKey) {\n setResolved({structureKey, result});\n }\n }, [isLoading, result, structureKey]);\n\n return {\n result: resolved?.result,\n resolvedStructureKey: resolved?.structureKey,\n isInitialLoading: isLoading && !resolved,\n error,\n };\n}\n"],"mappings":";AAAA,SAAQA,WAAW,EAAEC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAO,OAAO;AAC9D,SAA8BC,gBAAgB,QAAO,mBAAmB;AAexE,OAAO,SAASC,mBAAmBA,CAAAC,IAAA,EAKT;EAAA,IAJtBC,YAAY,GAAAD,IAAA,CAAZC,YAAY;IACZC,MAAM,GAAAF,IAAA,CAANE,MAAM;IACNC,WAAW,GAAAH,IAAA,CAAXG,WAAW;IACXC,OAAO,GAAAJ,IAAA,CAAPI,OAAO;EAEP,IAAMC,UAAU,GAAGT,MAAM,CAACQ,OAAO,CAAC;EAClCC,UAAU,CAACC,OAAO,GAAGF,OAAO;EAC5B,IAAMG,eAAe,GAAGX,MAAM,CAACK,YAAY,CAAC;EAC5C,IAAAO,SAAA,GAAgCX,QAAQ,CAAiB,CAAC;IAAAY,UAAA,GAAAC,cAAA,CAAAF,SAAA;IAAnDG,QAAQ,GAAAF,UAAA;IAAEG,WAAW,GAAAH,UAAA;EAC5B,IAAAI,UAAA,GAA0BhB,QAAQ,CAAQ,CAAC;IAAAiB,UAAA,GAAAJ,cAAA,CAAAG,UAAA;IAApCE,KAAK,GAAAD,UAAA;IAAEE,QAAQ,GAAAF,UAAA;EAEtB,IAAMG,WAAW,GAAGvB,WAAW,CAAC,UAACwB,SAAgB,EAAK;IAAA,IAAAC,mBAAA;IAClDH,QAAQ,CAACE,SAAS,CAAC;IACnB,CAAAC,mBAAA,GAAAd,UAAU,CAACC,OAAO,cAAAa,mBAAA,eAAlBA,mBAAA,CAAAC,IAAA,CAAAf,UAAU,EAAWa,SAAS,CAAC;EACnC,CAAC,EAAE,EAAE,CAAC;EACN,IAAAG,iBAAA,GAA4BvB,gBAAgB,CAAC;MAACI,MAAM,EAANA,MAAM;MAAEC,WAAW,EAAXA,WAAW;MAAEC,OAAO,EAAEa;IAAW,CAAC,CAAC;IAAlFK,MAAM,GAAAD,iBAAA,CAANC,MAAM;IAAEC,SAAS,GAAAF,iBAAA,CAATE,SAAS;EAExB5B,SAAS,CAAC,YAAM;IACZqB,QAAQ,CAACQ,SAAS,CAAC;EACvB,CAAC,EAAE,CAACvB,YAAY,CAAC,CAAC;EAClBN,SAAS,CAAC,YAAM;IACZ,IAAI4B,SAAS,EAAEhB,eAAe,CAACD,OAAO,GAAGL,YAAY;EACzD,CAAC,EAAE,CAACsB,SAAS,EAAEtB,YAAY,CAAC,CAAC;EAC7BN,SAAS,CAAC,YAAM;IACZ,IAAI,CAAC4B,SAAS,IAAID,MAAM,IAAIf,eAAe,CAACD,OAAO,KAAKL,YAAY,EAAE;MAClEW,WAAW,CAAC;QAACX,YAAY,EAAZA,YAAY;QAAEqB,MAAM,EAANA;MAAM,CAAC,CAAC;IACvC;EACJ,CAAC,EAAE,CAACC,SAAS,EAAED,MAAM,EAAErB,YAAY,CAAC,CAAC;EAErC,OAAO;IACHqB,MAAM,EAAEX,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEW,MAAM;IACxBG,oBAAoB,EAAEd,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEV,YAAY;IAC5CyB,gBAAgB,EAAEH,SAAS,IAAI,CAACZ,QAAQ;IACxCI,KAAK,EAALA;EACJ,CAAC;AACL","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ import type { QueryGraphEdge, QueryGraphNode } from '../../../types/queryGraph';
2
+ export declare const largeGraphNodes: QueryGraphNode[];
3
+ export declare const largeGraphEdges: QueryGraphEdge[];