ydb-embedded-ui 18.3.2 → 18.5.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 (534) hide show
  1. package/README.md +5 -4
  2. package/dist/components/ConfirmationDialog/ConfirmationDialog.d.ts +1 -0
  3. package/dist/components/ConfirmationDialog/ConfirmationDialog.js +3 -2
  4. package/dist/components/ConfirmationDialog/ConfirmationDialog.js.map +1 -1
  5. package/dist/components/CriticalActionDialog/CriticalActionDialog.js +1 -1
  6. package/dist/components/CriticalActionDialog/CriticalActionDialog.js.map +1 -1
  7. package/dist/components/DiskCapacityInfo/DiskCapacityInfo.d.ts +21 -0
  8. package/dist/components/DiskCapacityInfo/DiskCapacityInfo.js +129 -0
  9. package/dist/components/DiskCapacityInfo/DiskCapacityInfo.js.map +1 -0
  10. package/dist/components/DiskCapacityInfo/i18n/en.json +7 -0
  11. package/dist/components/DiskCapacityInfo/i18n/index.d.ts +2 -0
  12. package/dist/components/DiskCapacityInfo/i18n/index.js +5 -0
  13. package/dist/components/DiskCapacityInfo/i18n/index.js.map +1 -0
  14. package/dist/components/DiskStateProgressBar/DiskStateProgressBar.d.ts +8 -1
  15. package/dist/components/DiskStateProgressBar/DiskStateProgressBar.js +24 -14
  16. package/dist/components/DiskStateProgressBar/DiskStateProgressBar.js.map +1 -1
  17. package/dist/components/DiskStateProgressBar/DiskStateProgressBar.scss +146 -2
  18. package/dist/components/Drawer/index.d.ts +1 -0
  19. package/dist/components/Drawer/index.js.map +1 -1
  20. package/dist/components/EntityStatusNew/EntityStatus.js +3 -3
  21. package/dist/components/EntityStatusNew/EntityStatus.js.map +1 -1
  22. package/dist/components/EntityStatusNew/EntityStatus.scss +4 -7
  23. package/dist/components/EntityStatusNew/i18n/en.json +4 -4
  24. package/dist/components/Graph/Graph.js +3 -1
  25. package/dist/components/Graph/Graph.js.map +1 -1
  26. package/dist/components/Graph/colors.d.ts +10 -0
  27. package/dist/components/Graph/colors.js +53 -0
  28. package/dist/components/Graph/colors.js.map +1 -0
  29. package/dist/components/Graph/colors.test.d.ts +1 -0
  30. package/dist/components/Graph/colors.test.js +60 -0
  31. package/dist/components/Graph/colors.test.js.map +1 -0
  32. package/dist/components/HealthcheckStatus/HealthcheckStatus.d.ts +1 -0
  33. package/dist/components/HealthcheckStatus/HealthcheckStatus.js +8 -36
  34. package/dist/components/HealthcheckStatus/HealthcheckStatus.js.map +1 -1
  35. package/dist/components/HealthcheckStatus/HealthcheckStatus.scss +7 -0
  36. package/dist/components/HealthcheckStatus/config.d.ts +11 -0
  37. package/dist/components/HealthcheckStatus/config.js +51 -0
  38. package/dist/components/HealthcheckStatus/config.js.map +1 -0
  39. package/dist/components/HealthcheckStatus/i18n/en.json +3 -3
  40. package/dist/components/HealthcheckStatus/i18n/index.d.ts +1 -1
  41. package/dist/components/HelpMarkWithDocs/HelpMarkWithDocs.d.ts +9 -0
  42. package/dist/components/HelpMarkWithDocs/HelpMarkWithDocs.js +8 -0
  43. package/dist/components/HelpMarkWithDocs/HelpMarkWithDocs.js.map +1 -0
  44. package/dist/components/HelpMarkWithDocs/i18n/en.json +3 -0
  45. package/dist/components/HelpMarkWithDocs/i18n/index.d.ts +1 -0
  46. package/dist/components/HelpMarkWithDocs/i18n/index.js +5 -0
  47. package/dist/components/HelpMarkWithDocs/i18n/index.js.map +1 -0
  48. package/dist/components/InfoViewer/schemaInfo/i18n/index.d.ts +1 -1
  49. package/dist/components/InfoViewer/schemaInfo/utils.js +1 -1
  50. package/dist/components/InfoViewer/schemaInfo/utils.js.map +1 -1
  51. package/dist/components/PDiskInfo/PDiskInfo.d.ts +1 -0
  52. package/dist/components/PDiskInfo/PDiskInfo.js +51 -14
  53. package/dist/components/PDiskInfo/PDiskInfo.js.map +1 -1
  54. package/dist/components/PDiskInfo/i18n/index.d.ts +1 -1
  55. package/dist/components/PDiskPopup/PDiskPopup.d.ts +1 -1
  56. package/dist/components/PDiskPopup/PDiskPopup.js +15 -6
  57. package/dist/components/PDiskPopup/PDiskPopup.js.map +1 -1
  58. package/dist/components/PoolBar/PoolBar.scss +10 -10
  59. package/dist/components/StatusIcon/StatusIcon.js +7 -7
  60. package/dist/components/StatusIcon/StatusIcon.js.map +1 -1
  61. package/dist/components/StatusIcon/StatusIcon.scss +2 -2
  62. package/dist/components/StatusIconNew/StatusIcon.js +7 -7
  63. package/dist/components/StatusIconNew/StatusIcon.js.map +1 -1
  64. package/dist/components/StorageGroupInfo/StorageGroupInfo.js +120 -2
  65. package/dist/components/StorageGroupInfo/StorageGroupInfo.js.map +1 -1
  66. package/dist/components/StorageGroupInfo/i18n/en.json +2 -1
  67. package/dist/components/StorageGroupInfo/i18n/index.d.ts +1 -1
  68. package/dist/components/TitleWithHelpmark/TitleWithHelpmark.d.ts +5 -2
  69. package/dist/components/TitleWithHelpmark/TitleWithHelpmark.js +4 -3
  70. package/dist/components/TitleWithHelpmark/TitleWithHelpmark.js.map +1 -1
  71. package/dist/components/VDisk/VDisk.js +44 -10
  72. package/dist/components/VDisk/VDisk.js.map +1 -1
  73. package/dist/components/VDisk/i18n/en.json +6 -1
  74. package/dist/components/VDisk/i18n/index.d.ts +1 -1
  75. package/dist/components/VDiskInfo/VDiskInfo.js +117 -67
  76. package/dist/components/VDiskInfo/VDiskInfo.js.map +1 -1
  77. package/dist/components/VDiskInfo/getVDiskCapacityColumns.d.ts +11 -0
  78. package/dist/components/VDiskInfo/getVDiskCapacityColumns.js +52 -0
  79. package/dist/components/VDiskInfo/getVDiskCapacityColumns.js.map +1 -0
  80. package/dist/components/VDiskPopup/VDiskPopup.d.ts +5 -0
  81. package/dist/components/VDiskPopup/VDiskPopup.js +20 -9
  82. package/dist/components/VDiskPopup/VDiskPopup.js.map +1 -1
  83. package/dist/components/YDBDefinitionList/YDBDefinitionList.d.ts +2 -1
  84. package/dist/components/YDBDefinitionList/YDBDefinitionList.js +2 -2
  85. package/dist/components/YDBDefinitionList/YDBDefinitionList.js.map +1 -1
  86. package/dist/components/capacityMetricsColumns/columns.js +19 -24
  87. package/dist/components/capacityMetricsColumns/columns.js.map +1 -1
  88. package/dist/components/capacityMetricsColumns/constants.d.ts +11 -0
  89. package/dist/components/capacityMetricsColumns/constants.js +25 -0
  90. package/dist/components/capacityMetricsColumns/constants.js.map +1 -1
  91. package/dist/components/capacityMetricsColumns/formatters.d.ts +1 -0
  92. package/dist/components/capacityMetricsColumns/formatters.js +9 -0
  93. package/dist/components/capacityMetricsColumns/formatters.js.map +1 -0
  94. package/dist/components/capacityMetricsColumns/i18n/en.json +9 -1
  95. package/dist/components/capacityMetricsColumns/i18n/index.d.ts +1 -1
  96. package/dist/components/nodesColumns/constants.js +1 -1
  97. package/dist/components/nodesColumns/constants.js.map +1 -1
  98. package/dist/containers/App/App.scss +6 -6
  99. package/dist/containers/App/NavigationWrapper.js +1 -1
  100. package/dist/containers/App/NavigationWrapper.js.map +1 -1
  101. package/dist/containers/AsideNavigation/Navigation.scss +0 -1
  102. package/dist/containers/AsideNavigation/i18n/en.json +1 -1
  103. package/dist/containers/Authentication/Authentication.js +2 -1
  104. package/dist/containers/Authentication/Authentication.js.map +1 -1
  105. package/dist/containers/Cluster/ClusterDrawerHealthcheck.js +3 -26
  106. package/dist/containers/Cluster/ClusterDrawerHealthcheck.js.map +1 -1
  107. package/dist/containers/Cluster/ClusterInfo/ClusterInfo.js +1 -1
  108. package/dist/containers/Cluster/ClusterInfo/ClusterInfo.js.map +1 -1
  109. package/dist/containers/Clusters/ClusterDrawerHealthcheck.js +3 -26
  110. package/dist/containers/Clusters/ClusterDrawerHealthcheck.js.map +1 -1
  111. package/dist/containers/Storage/Disks/Disks.d.ts +2 -2
  112. package/dist/containers/Storage/Disks/Disks.js +17 -14
  113. package/dist/containers/Storage/Disks/Disks.js.map +1 -1
  114. package/dist/containers/Storage/Disks/Disks.scss +20 -0
  115. package/dist/containers/Storage/Disks/calculateCompactVDiskWidths.d.ts +2 -0
  116. package/dist/containers/Storage/Disks/calculateCompactVDiskWidths.js +46 -0
  117. package/dist/containers/Storage/Disks/calculateCompactVDiskWidths.js.map +1 -0
  118. package/dist/containers/Storage/Disks/constants.d.ts +5 -0
  119. package/dist/containers/Storage/Disks/constants.js +11 -0
  120. package/dist/containers/Storage/Disks/constants.js.map +1 -0
  121. package/dist/containers/Storage/PDisk/PDisk.d.ts +2 -1
  122. package/dist/containers/Storage/PDisk/PDisk.js +2 -2
  123. package/dist/containers/Storage/PDisk/PDisk.js.map +1 -1
  124. package/dist/containers/Storage/PDisks/PDisks.js +2 -1
  125. package/dist/containers/Storage/PDisks/PDisks.js.map +1 -1
  126. package/dist/containers/Storage/PaginatedStorageGroups/StorageGroupsControls.js +8 -15
  127. package/dist/containers/Storage/PaginatedStorageGroups/StorageGroupsControls.js.map +1 -1
  128. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/columns.d.ts +2 -2
  129. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/columns.js +37 -9
  130. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/columns.js.map +1 -1
  131. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/constants.d.ts +5 -0
  132. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/constants.js +31 -1
  133. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/constants.js.map +1 -1
  134. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/hooks.js +39 -24
  135. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/hooks.js.map +1 -1
  136. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/i18n/en.json +1 -0
  137. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/i18n/index.d.ts +1 -1
  138. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/types.d.ts +1 -0
  139. package/dist/containers/Storage/PaginatedStorageNodesTable/columns/hooks.js +18 -9
  140. package/dist/containers/Storage/PaginatedStorageNodesTable/columns/hooks.js.map +1 -1
  141. package/dist/containers/Storage/StorageExpertModePanel/StorageExpertModePanel.js +1 -1
  142. package/dist/containers/Storage/StorageExpertModePanel/StorageExpertModePanel.js.map +1 -1
  143. package/dist/containers/Storage/StorageExpertModePanel/StorageExpertModePanel.scss +16 -2
  144. package/dist/containers/Storage/StorageExpertModePanel/components/AllLegend.js +96 -2
  145. package/dist/containers/Storage/StorageExpertModePanel/components/AllLegend.js.map +1 -1
  146. package/dist/containers/Storage/StorageExpertModePanel/components/SpaceLegend.js +2 -5
  147. package/dist/containers/Storage/StorageExpertModePanel/components/SpaceLegend.js.map +1 -1
  148. package/dist/containers/Storage/StorageExpertModePanel/components/getSpaceLegendSelection.d.ts +2 -0
  149. package/dist/containers/Storage/StorageExpertModePanel/components/getSpaceLegendSelection.js +6 -1
  150. package/dist/containers/Storage/StorageExpertModePanel/components/getSpaceLegendSelection.js.map +1 -1
  151. package/dist/containers/Storage/StorageExpertModePanel/components/useSpaceLegendSelection.js +3 -3
  152. package/dist/containers/Storage/StorageExpertModePanel/components/useSpaceLegendSelection.js.map +1 -1
  153. package/dist/containers/Storage/StorageExpertModePanel/i18n/en.json +13 -0
  154. package/dist/containers/Storage/StorageExpertModePanel/i18n/index.d.ts +1 -1
  155. package/dist/containers/Storage/useStorageQueryParams.js +9 -4
  156. package/dist/containers/Storage/useStorageQueryParams.js.map +1 -1
  157. package/dist/containers/Storage/useStorageVDiskDisplayStateGetter.js +45 -5
  158. package/dist/containers/Storage/useStorageVDiskDisplayStateGetter.js.map +1 -1
  159. package/dist/containers/Storage/utils/index.d.ts +2 -1
  160. package/dist/containers/Storage/utils/index.js +13 -0
  161. package/dist/containers/Storage/utils/index.js.map +1 -1
  162. package/dist/containers/Tenant/Diagnostics/AccessRights/AccessRights.js +2 -1
  163. package/dist/containers/Tenant/Diagnostics/AccessRights/AccessRights.js.map +1 -1
  164. package/dist/containers/Tenant/Diagnostics/AccessRights/components/ChangeOwnerDialog.js +2 -0
  165. package/dist/containers/Tenant/Diagnostics/AccessRights/components/ChangeOwnerDialog.js.map +1 -1
  166. package/dist/containers/Tenant/Diagnostics/AccessRights/i18n/index.d.ts +1 -1
  167. package/dist/containers/Tenant/Diagnostics/Consumers/Consumers.js +1 -1
  168. package/dist/containers/Tenant/Diagnostics/Consumers/Consumers.js.map +1 -1
  169. package/dist/containers/Tenant/Diagnostics/Network/i18n/index.d.ts +1 -1
  170. package/dist/containers/Tenant/Diagnostics/Overview/SchemaObjectInfo/prepareSchemaObjectInfo.js +4 -4
  171. package/dist/containers/Tenant/Diagnostics/Overview/SchemaObjectInfo/prepareSchemaObjectInfo.js.map +1 -1
  172. package/dist/containers/Tenant/Diagnostics/Overview/SchemaObjectInfo/prepareSpecificSchemaObjectInfo.js +4 -4
  173. package/dist/containers/Tenant/Diagnostics/Overview/SchemaObjectInfo/prepareSpecificSchemaObjectInfo.js.map +1 -1
  174. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/CompactTableAction/CompactTableAction.js +2 -0
  175. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/CompactTableAction/CompactTableAction.js.map +1 -1
  176. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/ManagePartitioningDialog.js +15 -13
  177. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/ManagePartitioningDialog.js.map +1 -1
  178. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/i18n/index.d.ts +1 -1
  179. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/useManagePartitionForm.d.ts +1 -1
  180. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/utils.js +2 -2
  181. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/utils.js.map +1 -1
  182. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/PartitionsProgress/PartitionsProgress.js +3 -3
  183. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/PartitionsProgress/PartitionsProgress.js.map +1 -1
  184. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/PartitionsProgress/i18n/en.json +1 -2
  185. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/PartitionsProgress/i18n/index.d.ts +1 -1
  186. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/TableInfo.js +1 -1
  187. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/TableInfo.js.map +1 -1
  188. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/i18n/index.d.ts +1 -1
  189. package/dist/containers/Tenant/Diagnostics/Overview/TopicInfo/TopicInfo.js +1 -1
  190. package/dist/containers/Tenant/Diagnostics/Overview/TopicInfo/TopicInfo.js.map +1 -1
  191. package/dist/containers/Tenant/Diagnostics/Overview/TopicStats/TopicStats.js +1 -1
  192. package/dist/containers/Tenant/Diagnostics/Overview/TopicStats/TopicStats.js.map +1 -1
  193. package/dist/containers/Tenant/Diagnostics/Partitions/Partitions.js +1 -1
  194. package/dist/containers/Tenant/Diagnostics/Partitions/Partitions.js.map +1 -1
  195. package/dist/containers/Tenant/Diagnostics/Partitions/utils/showMoveOffsetConfirmation.js +2 -0
  196. package/dist/containers/Tenant/Diagnostics/Partitions/utils/showMoveOffsetConfirmation.js.map +1 -1
  197. package/dist/containers/Tenant/Diagnostics/Partitions/utils/showSpecifyOffsetConfirmation.js +6 -1
  198. package/dist/containers/Tenant/Diagnostics/Partitions/utils/showSpecifyOffsetConfirmation.js.map +1 -1
  199. package/dist/containers/Tenant/Diagnostics/TenantOverview/Healthcheck/HealthcheckPreview.js +13 -16
  200. package/dist/containers/Tenant/Diagnostics/TenantOverview/Healthcheck/HealthcheckPreview.js.map +1 -1
  201. package/dist/containers/Tenant/Diagnostics/TenantOverview/Healthcheck/HealthcheckPreview.scss +12 -2
  202. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/MetricsTabs.scss +1 -0
  203. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/components/CpuTab.js +9 -1
  204. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/components/CpuTab.js.map +1 -1
  205. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/components/MemoryTab.js +9 -1
  206. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/components/MemoryTab.js.map +1 -1
  207. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/components/NetworkTab.js +9 -1
  208. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/components/NetworkTab.js.map +1 -1
  209. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/components/StorageTab.js +9 -1
  210. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/components/StorageTab.js.map +1 -1
  211. package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/MetricTabCard.d.ts +2 -1
  212. package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/MetricTabCard.js +8 -3
  213. package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/MetricTabCard.js.map +1 -1
  214. package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/ServerlessTabCard.js +7 -2
  215. package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/ServerlessTabCard.js.map +1 -1
  216. package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/TabCard.scss +5 -0
  217. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.js +5 -2
  218. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.js.map +1 -1
  219. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorage.d.ts +1 -1
  220. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorage.js +36 -15
  221. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorage.js.map +1 -1
  222. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageGroups.d.ts +14 -0
  223. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageGroups.js +38 -0
  224. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageGroups.js.map +1 -0
  225. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageNew.d.ts +1 -1
  226. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageNew.js +3 -2
  227. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageNew.js.map +1 -1
  228. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageNew.scss +6 -2
  229. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TopGroups.d.ts +10 -1
  230. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TopGroups.js +12 -8
  231. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TopGroups.js.map +1 -1
  232. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/i18n/en.json +15 -1
  233. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/i18n/index.d.ts +1 -1
  234. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/types.d.ts +3 -1
  235. package/dist/containers/Tenant/Diagnostics/TenantOverview/i18n/en.json +13 -0
  236. package/dist/containers/Tenant/Diagnostics/TenantOverview/i18n/index.d.ts +1 -1
  237. package/dist/containers/Tenant/Diagnostics/TopicData/TopicMessageDetails/TopicMessageDetails.js +1 -1
  238. package/dist/containers/Tenant/Diagnostics/TopicData/TopicMessageDetails/TopicMessageDetails.js.map +1 -1
  239. package/dist/containers/Tenant/Diagnostics/TopicData/columns/columns.js +1 -1
  240. package/dist/containers/Tenant/Diagnostics/TopicData/columns/columns.js.map +1 -1
  241. package/dist/containers/Tenant/Diagnostics/TopicData/getData.js +1 -1
  242. package/dist/containers/Tenant/Diagnostics/TopicData/getData.js.map +1 -1
  243. package/dist/containers/Tenant/Diagnostics/TopicData/i18n/index.d.ts +1 -1
  244. package/dist/containers/Tenant/Diagnostics/TopicData/useTopicProbeQuery.js +1 -1
  245. package/dist/containers/Tenant/Diagnostics/TopicData/useTopicProbeQuery.js.map +1 -1
  246. package/dist/containers/Tenant/EntityTitle/EntityTitle.js +1 -1
  247. package/dist/containers/Tenant/GrantAccess/components/Footer.js +2 -1
  248. package/dist/containers/Tenant/GrantAccess/components/Footer.js.map +1 -1
  249. package/dist/containers/Tenant/Healthcheck/components/HealthcheckDrawer.d.ts +18 -0
  250. package/dist/containers/Tenant/Healthcheck/components/HealthcheckDrawer.js +29 -0
  251. package/dist/containers/Tenant/Healthcheck/components/HealthcheckDrawer.js.map +1 -0
  252. package/dist/containers/Tenant/Healthcheck/components/HealthcheckDrawerTitle.d.ts +8 -0
  253. package/dist/containers/Tenant/Healthcheck/components/HealthcheckDrawerTitle.js +10 -0
  254. package/dist/containers/Tenant/Healthcheck/components/HealthcheckDrawerTitle.js.map +1 -0
  255. package/dist/containers/Tenant/Healthcheck/components/HealthcheckIssues.js +7 -1
  256. package/dist/containers/Tenant/Healthcheck/components/HealthcheckIssues.js.map +1 -1
  257. package/dist/containers/Tenant/Healthcheck/components/HealthcheckView.js +6 -5
  258. package/dist/containers/Tenant/Healthcheck/components/HealthcheckView.js.map +1 -1
  259. package/dist/containers/Tenant/Healthcheck/utils.d.ts +1 -0
  260. package/dist/containers/Tenant/Healthcheck/utils.js +5 -0
  261. package/dist/containers/Tenant/Healthcheck/utils.js.map +1 -1
  262. package/dist/containers/Tenant/ObjectSummary/CreateDirectoryDialog/CreateDirectoryDialog.js +14 -9
  263. package/dist/containers/Tenant/ObjectSummary/CreateDirectoryDialog/CreateDirectoryDialog.js.map +1 -1
  264. package/dist/containers/Tenant/ObjectSummary/CreateDirectoryDialog/CreateDirectoryDialog.scss +57 -6
  265. package/dist/containers/Tenant/ObjectSummary/ObjectSummary.js +22 -22
  266. package/dist/containers/Tenant/ObjectSummary/ObjectSummary.js.map +1 -1
  267. package/dist/containers/Tenant/ObjectSummary/ObjectSummary.scss +31 -0
  268. package/dist/containers/Tenant/ObjectSummary/SchemaTree/SchemaTree.js +58 -0
  269. package/dist/containers/Tenant/ObjectSummary/SchemaTree/SchemaTree.js.map +1 -1
  270. package/dist/containers/Tenant/Query/Issues/Issues.js +3 -3
  271. package/dist/containers/Tenant/Query/Issues/Issues.js.map +1 -1
  272. package/dist/containers/Tenant/Query/Issues/helpers.d.ts +3 -0
  273. package/dist/containers/Tenant/Query/Issues/helpers.js +40 -0
  274. package/dist/containers/Tenant/Query/Issues/helpers.js.map +1 -1
  275. package/dist/containers/Tenant/Query/Issues/helpers.test.d.ts +1 -0
  276. package/dist/containers/Tenant/Query/Issues/helpers.test.js +94 -0
  277. package/dist/containers/Tenant/Query/Issues/helpers.test.js.map +1 -0
  278. package/dist/containers/Tenant/Query/NewSQL/NewSQL.js +1 -1
  279. package/dist/containers/Tenant/Query/NewSQL/NewSQL.js.map +1 -1
  280. package/dist/containers/Tenant/Query/Preview/components/TopicPreview.js +1 -1
  281. package/dist/containers/Tenant/Query/Preview/components/TopicPreview.js.map +1 -1
  282. package/dist/containers/Tenant/Query/QueriesHistory/columns.js +2 -2
  283. package/dist/containers/Tenant/Query/QueriesHistory/columns.js.map +1 -1
  284. package/dist/containers/Tenant/Query/QueryEditor/EditorTabs/EditorTabItem.js +1 -1
  285. package/dist/containers/Tenant/Query/QueryEditor/EditorTabs/EditorTabItem.js.map +1 -1
  286. package/dist/containers/Tenant/Query/QueryEditor/EditorTabs/EditorTabItem.scss +24 -64
  287. package/dist/containers/Tenant/Query/QueryEditor/EditorTabs/RenameQueryDialog.js +2 -1
  288. package/dist/containers/Tenant/Query/QueryEditor/EditorTabs/RenameQueryDialog.js.map +1 -1
  289. package/dist/containers/Tenant/Query/QueryEditor/QueryEditor.js +141 -73
  290. package/dist/containers/Tenant/Query/QueryEditor/QueryEditor.js.map +1 -1
  291. package/dist/containers/Tenant/Query/QueryEditor/QueryEditor.scss +13 -2
  292. package/dist/containers/Tenant/Query/QueryEditor/YqlEditor/YqlEditor.d.ts +4 -2
  293. package/dist/containers/Tenant/Query/QueryEditor/YqlEditor/YqlEditor.js +187 -20
  294. package/dist/containers/Tenant/Query/QueryEditor/YqlEditor/YqlEditor.js.map +1 -1
  295. package/dist/containers/Tenant/Query/QueryEditor/YqlEditor/currentStatement.d.ts +9 -0
  296. package/dist/containers/Tenant/Query/QueryEditor/YqlEditor/currentStatement.js +154 -0
  297. package/dist/containers/Tenant/Query/QueryEditor/YqlEditor/currentStatement.js.map +1 -0
  298. package/dist/containers/Tenant/Query/QueryEditor/YqlEditor/currentStatement.test.d.ts +1 -0
  299. package/dist/containers/Tenant/Query/QueryEditor/YqlEditor/currentStatement.test.js +153 -0
  300. package/dist/containers/Tenant/Query/QueryEditor/YqlEditor/currentStatement.test.js.map +1 -0
  301. package/dist/containers/Tenant/Query/QueryEditor/types.d.ts +5 -0
  302. package/dist/containers/Tenant/Query/QueryEditor/types.js +2 -0
  303. package/dist/containers/Tenant/Query/QueryEditor/types.js.map +1 -0
  304. package/dist/containers/Tenant/Query/QueryEditor/utils/reachExplainQueryMetricaGoals.d.ts +5 -0
  305. package/dist/containers/Tenant/Query/QueryEditor/utils/reachExplainQueryMetricaGoals.js +13 -0
  306. package/dist/containers/Tenant/Query/QueryEditor/utils/reachExplainQueryMetricaGoals.js.map +1 -0
  307. package/dist/containers/Tenant/Query/QueryEditorControls/EditorButton.d.ts +6 -3
  308. package/dist/containers/Tenant/Query/QueryEditorControls/EditorButton.js +12 -6
  309. package/dist/containers/Tenant/Query/QueryEditorControls/EditorButton.js.map +1 -1
  310. package/dist/containers/Tenant/Query/QueryEditorControls/EditorButton.scss +18 -5
  311. package/dist/containers/Tenant/Query/QueryEditorControls/QueryEditorControls.d.ts +3 -2
  312. package/dist/containers/Tenant/Query/QueryEditorControls/QueryEditorControls.js +23 -12
  313. package/dist/containers/Tenant/Query/QueryEditorControls/QueryEditorControls.js.map +1 -1
  314. package/dist/containers/Tenant/Query/QueryEditorControls/QueryEditorControls.scss +19 -0
  315. package/dist/containers/Tenant/Query/QueryResult/QueryResultViewer.js +14 -21
  316. package/dist/containers/Tenant/Query/QueryResult/QueryResultViewer.js.map +1 -1
  317. package/dist/containers/Tenant/Query/QueryResult/components/QueryResultError/QueryResultError.d.ts +6 -2
  318. package/dist/containers/Tenant/Query/QueryResult/components/QueryResultError/QueryResultError.js +6 -2
  319. package/dist/containers/Tenant/Query/QueryResult/components/QueryResultError/QueryResultError.js.map +1 -1
  320. package/dist/containers/Tenant/Query/QueryResult/components/ResultSetsViewer/ResultSetsViewer.d.ts +2 -0
  321. package/dist/containers/Tenant/Query/QueryResult/components/ResultSetsViewer/ResultSetsViewer.js +1 -1
  322. package/dist/containers/Tenant/Query/QueryResult/components/ResultSetsViewer/ResultSetsViewer.js.map +1 -1
  323. package/dist/containers/Tenant/Query/QueryResult/constants.d.ts +3 -0
  324. package/dist/containers/Tenant/Query/QueryResult/constants.js +35 -0
  325. package/dist/containers/Tenant/Query/QueryResult/constants.js.map +1 -1
  326. package/dist/containers/Tenant/Query/QuerySettingsDialog/QuerySettingsDialog.js +2 -0
  327. package/dist/containers/Tenant/Query/QuerySettingsDialog/QuerySettingsDialog.js.map +1 -1
  328. package/dist/containers/Tenant/Query/SaveChangesDialog/SaveChangesDialog.js +2 -1
  329. package/dist/containers/Tenant/Query/SaveChangesDialog/SaveChangesDialog.js.map +1 -1
  330. package/dist/containers/Tenant/Query/SaveQuery/SaveQuery.js +2 -0
  331. package/dist/containers/Tenant/Query/SaveQuery/SaveQuery.js.map +1 -1
  332. package/dist/containers/Tenant/Query/SavedQueries/SavedQueries.js +2 -1
  333. package/dist/containers/Tenant/Query/SavedQueries/SavedQueries.js.map +1 -1
  334. package/dist/containers/Tenant/Query/i18n/en.json +5 -2
  335. package/dist/containers/Tenant/Query/i18n/index.d.ts +1 -1
  336. package/dist/containers/Tenant/Query/utils/isQueryCancelledError.d.ts +1 -1
  337. package/dist/containers/Tenant/Query/utils/isQueryCancelledError.js +1 -13
  338. package/dist/containers/Tenant/Query/utils/isQueryCancelledError.js.map +1 -1
  339. package/dist/containers/Tenant/TableFormDialog/TableFormDialog.d.ts +19 -0
  340. package/dist/containers/Tenant/TableFormDialog/TableFormDialog.js +227 -0
  341. package/dist/containers/Tenant/TableFormDialog/TableFormDialog.js.map +1 -0
  342. package/dist/containers/Tenant/TableFormDialog/TableFormDialog.scss +589 -0
  343. package/dist/containers/Tenant/TableFormDialog/columnValueValidation.d.ts +1 -0
  344. package/dist/containers/Tenant/TableFormDialog/columnValueValidation.js +179 -0
  345. package/dist/containers/Tenant/TableFormDialog/columnValueValidation.js.map +1 -0
  346. package/dist/containers/Tenant/TableFormDialog/components/ColumnSelectorField.d.ts +11 -0
  347. package/dist/containers/Tenant/TableFormDialog/components/ColumnSelectorField.js +85 -0
  348. package/dist/containers/Tenant/TableFormDialog/components/ColumnSelectorField.js.map +1 -0
  349. package/dist/containers/Tenant/TableFormDialog/components/ColumnSelectorField.scss +175 -0
  350. package/dist/containers/Tenant/TableFormDialog/components/RangeInputPicker.d.ts +19 -0
  351. package/dist/containers/Tenant/TableFormDialog/components/RangeInputPicker.js +115 -0
  352. package/dist/containers/Tenant/TableFormDialog/components/RangeInputPicker.js.map +1 -0
  353. package/dist/containers/Tenant/TableFormDialog/components/RangeInputPicker.scss +22 -0
  354. package/dist/containers/Tenant/TableFormDialog/components/layout.d.ts +15 -0
  355. package/dist/containers/Tenant/TableFormDialog/components/layout.js +32 -0
  356. package/dist/containers/Tenant/TableFormDialog/components/layout.js.map +1 -0
  357. package/dist/containers/Tenant/TableFormDialog/constants.d.ts +16 -0
  358. package/dist/containers/Tenant/TableFormDialog/constants.js +99 -0
  359. package/dist/containers/Tenant/TableFormDialog/constants.js.map +1 -0
  360. package/dist/containers/Tenant/TableFormDialog/i18n/en.json +143 -0
  361. package/dist/containers/Tenant/TableFormDialog/i18n/index.d.ts +2 -0
  362. package/dist/containers/Tenant/TableFormDialog/i18n/index.js +5 -0
  363. package/dist/containers/Tenant/TableFormDialog/i18n/index.js.map +1 -0
  364. package/dist/containers/Tenant/TableFormDialog/sections/GeneralSection.d.ts +8 -0
  365. package/dist/containers/Tenant/TableFormDialog/sections/GeneralSection.js +34 -0
  366. package/dist/containers/Tenant/TableFormDialog/sections/GeneralSection.js.map +1 -0
  367. package/dist/containers/Tenant/TableFormDialog/sections/PartitioningSection.d.ts +5 -0
  368. package/dist/containers/Tenant/TableFormDialog/sections/PartitioningSection.js +28 -0
  369. package/dist/containers/Tenant/TableFormDialog/sections/PartitioningSection.js.map +1 -0
  370. package/dist/containers/Tenant/TableFormDialog/sections/SettingsSection.d.ts +6 -0
  371. package/dist/containers/Tenant/TableFormDialog/sections/SettingsSection.js +141 -0
  372. package/dist/containers/Tenant/TableFormDialog/sections/SettingsSection.js.map +1 -0
  373. package/dist/containers/Tenant/TableFormDialog/sections/SplitPointDialog.d.ts +22 -0
  374. package/dist/containers/Tenant/TableFormDialog/sections/SplitPointDialog.js +98 -0
  375. package/dist/containers/Tenant/TableFormDialog/sections/SplitPointDialog.js.map +1 -0
  376. package/dist/containers/Tenant/TableFormDialog/sections/TTLSection.d.ts +6 -0
  377. package/dist/containers/Tenant/TableFormDialog/sections/TTLSection.js +70 -0
  378. package/dist/containers/Tenant/TableFormDialog/sections/TTLSection.js.map +1 -0
  379. package/dist/containers/Tenant/TableFormDialog/sections/YdbColumnsSection.d.ts +11 -0
  380. package/dist/containers/Tenant/TableFormDialog/sections/YdbColumnsSection.js +181 -0
  381. package/dist/containers/Tenant/TableFormDialog/sections/YdbColumnsSection.js.map +1 -0
  382. package/dist/containers/Tenant/TableFormDialog/sections/YdbIndexesSection.d.ts +1 -0
  383. package/dist/containers/Tenant/TableFormDialog/sections/YdbIndexesSection.js +42 -0
  384. package/dist/containers/Tenant/TableFormDialog/sections/YdbIndexesSection.js.map +1 -0
  385. package/dist/containers/Tenant/TableFormDialog/types.d.ts +26 -0
  386. package/dist/containers/Tenant/TableFormDialog/types.js +3 -0
  387. package/dist/containers/Tenant/TableFormDialog/types.js.map +1 -0
  388. package/dist/containers/Tenant/TableFormDialog/utils.d.ts +41 -0
  389. package/dist/containers/Tenant/TableFormDialog/utils.js +245 -0
  390. package/dist/containers/Tenant/TableFormDialog/utils.js.map +1 -0
  391. package/dist/containers/Tenant/TableFormDialog/validation.d.ts +8 -0
  392. package/dist/containers/Tenant/TableFormDialog/validation.js +308 -0
  393. package/dist/containers/Tenant/TableFormDialog/validation.js.map +1 -0
  394. package/dist/containers/Tenant/Tenant.js +1 -1
  395. package/dist/containers/Tenant/Tenant.js.map +1 -1
  396. package/dist/containers/Tenant/TenantDrawerHealthcheck.js +3 -26
  397. package/dist/containers/Tenant/TenantDrawerHealthcheck.js.map +1 -1
  398. package/dist/containers/Tenant/TenantDrawerRights.js +1 -1
  399. package/dist/containers/Tenant/TenantDrawerRights.js.map +1 -1
  400. package/dist/containers/Tenant/TenantNavigation/useTenantNavigation.js +5 -5
  401. package/dist/containers/Tenant/TenantNavigation/useTenantNavigation.js.map +1 -1
  402. package/dist/containers/Tenant/TopicFormDialog/TopicFormDialog.d.ts +19 -0
  403. package/dist/containers/Tenant/TopicFormDialog/TopicFormDialog.js +301 -0
  404. package/dist/containers/Tenant/TopicFormDialog/TopicFormDialog.js.map +1 -0
  405. package/dist/containers/Tenant/TopicFormDialog/TopicFormDialog.scss +182 -0
  406. package/dist/containers/Tenant/TopicFormDialog/i18n/en.json +51 -0
  407. package/dist/containers/Tenant/TopicFormDialog/i18n/index.d.ts +2 -0
  408. package/dist/containers/Tenant/TopicFormDialog/i18n/index.js +5 -0
  409. package/dist/containers/Tenant/TopicFormDialog/i18n/index.js.map +1 -0
  410. package/dist/containers/Tenant/TopicFormDialog/utils.d.ts +18 -0
  411. package/dist/containers/Tenant/TopicFormDialog/utils.js +100 -0
  412. package/dist/containers/Tenant/TopicFormDialog/utils.js.map +1 -0
  413. package/dist/containers/Tenant/TopicFormDialog/validation.d.ts +3 -0
  414. package/dist/containers/Tenant/TopicFormDialog/validation.js +88 -0
  415. package/dist/containers/Tenant/TopicFormDialog/validation.js.map +1 -0
  416. package/dist/containers/Tenant/constants.d.ts +0 -2
  417. package/dist/containers/Tenant/constants.js +6 -14
  418. package/dist/containers/Tenant/constants.js.map +1 -1
  419. package/dist/containers/Tenant/i18n/en.json +114 -110
  420. package/dist/containers/Tenant/i18n/index.d.ts +1 -1
  421. package/dist/containers/Tenant/utils/controls.js +1 -1
  422. package/dist/containers/Tenant/utils/pathSegmentValidation.d.ts +5 -0
  423. package/dist/containers/Tenant/utils/pathSegmentValidation.js +15 -0
  424. package/dist/containers/Tenant/utils/pathSegmentValidation.js.map +1 -0
  425. package/dist/containers/Tenant/utils/schema.js +32 -32
  426. package/dist/containers/Tenant/utils/schema.js.map +1 -1
  427. package/dist/containers/Tenant/utils/schemaActions.d.ts +4 -0
  428. package/dist/containers/Tenant/utils/schemaActions.js +190 -98
  429. package/dist/containers/Tenant/utils/schemaActions.js.map +1 -1
  430. package/dist/containers/Tenants/TenantsTable.js +2 -2
  431. package/dist/containers/Tenants/TenantsTable.js.map +1 -1
  432. package/dist/containers/VDiskPage/VDiskPage.js +3 -30
  433. package/dist/containers/VDiskPage/VDiskPage.js.map +1 -1
  434. package/dist/containers/VDiskPage/VDiskStorageDetails.js +2 -2
  435. package/dist/containers/VDiskPage/VDiskStorageDetails.js.map +1 -1
  436. package/dist/containers/VDiskPage/useVDiskQueryParams.d.ts +13 -0
  437. package/dist/containers/VDiskPage/useVDiskQueryParams.js +55 -0
  438. package/dist/containers/VDiskPage/useVDiskQueryParams.js.map +1 -0
  439. package/dist/containers/Versions/i18n/index.d.ts +1 -1
  440. package/dist/store/reducers/pdisk/utils.js +4 -4
  441. package/dist/store/reducers/pdisk/utils.js.map +1 -1
  442. package/dist/store/reducers/query/api.d.ts +2 -1
  443. package/dist/store/reducers/query/api.js +107 -48
  444. package/dist/store/reducers/query/api.js.map +1 -1
  445. package/dist/store/reducers/query/parsers/preparePlanData.js +8 -1
  446. package/dist/store/reducers/query/parsers/preparePlanData.js.map +1 -1
  447. package/dist/store/reducers/query/slice.d.ts +8 -9
  448. package/dist/store/reducers/query/slice.js +5 -0
  449. package/dist/store/reducers/query/slice.js.map +1 -1
  450. package/dist/store/reducers/query/streaming/reducers.d.ts +3 -0
  451. package/dist/store/reducers/query/streaming/reducers.js +6 -6
  452. package/dist/store/reducers/query/streaming/reducers.js.map +1 -1
  453. package/dist/store/reducers/query/types.d.ts +8 -4
  454. package/dist/store/reducers/query/utils.d.ts +10 -2
  455. package/dist/store/reducers/query/utils.js +37 -6
  456. package/dist/store/reducers/query/utils.js.map +1 -1
  457. package/dist/store/reducers/storage/prepareGroupsDisks.d.ts +10 -3
  458. package/dist/store/reducers/storage/prepareGroupsDisks.js +43 -6
  459. package/dist/store/reducers/storage/prepareGroupsDisks.js.map +1 -1
  460. package/dist/store/reducers/storage/types.d.ts +1 -0
  461. package/dist/store/reducers/storage/utils.js +4 -7
  462. package/dist/store/reducers/storage/utils.js.map +1 -1
  463. package/dist/store/reducers/table/constants.d.ts +6 -0
  464. package/dist/store/reducers/table/constants.js +36 -0
  465. package/dist/store/reducers/table/constants.js.map +1 -0
  466. package/dist/store/reducers/table/table.d.ts +19 -0
  467. package/dist/store/reducers/table/table.js +104 -0
  468. package/dist/store/reducers/table/table.js.map +1 -0
  469. package/dist/store/reducers/table/types.d.ts +193 -0
  470. package/dist/store/reducers/table/types.js +12 -0
  471. package/dist/store/reducers/table/types.js.map +1 -0
  472. package/dist/store/reducers/table/utils.d.ts +17 -0
  473. package/dist/store/reducers/table/utils.js +485 -0
  474. package/dist/store/reducers/table/utils.js.map +1 -0
  475. package/dist/store/reducers/topic/topic.d.ts +1762 -0
  476. package/dist/store/reducers/topic/topic.js +172 -0
  477. package/dist/store/reducers/topic/topic.js.map +1 -0
  478. package/dist/store/reducers/topic/utils.d.ts +23 -0
  479. package/dist/store/reducers/topic/utils.js +75 -0
  480. package/dist/store/reducers/topic/utils.js.map +1 -0
  481. package/dist/styles/mixins.scss +9 -0
  482. package/dist/types/api/pdisk.d.ts +6 -1
  483. package/dist/types/api/pdisk.js.map +1 -1
  484. package/dist/types/api/storage.d.ts +3 -1
  485. package/dist/types/api/storage.js.map +1 -1
  486. package/dist/types/api/topic.d.ts +18 -0
  487. package/dist/types/api/topic.js +8 -0
  488. package/dist/types/api/topic.js.map +1 -1
  489. package/dist/types/api/vdisk.d.ts +8 -0
  490. package/dist/types/api/vdisk.js.map +1 -1
  491. package/dist/uiFactory/types.d.ts +5 -0
  492. package/dist/uiFactory/uiFactory.d.ts +4 -1
  493. package/dist/uiFactory/uiFactory.js +8 -1
  494. package/dist/uiFactory/uiFactory.js.map +1 -1
  495. package/dist/utils/capacityAlerts.d.ts +1 -0
  496. package/dist/utils/capacityAlerts.js +3 -0
  497. package/dist/utils/capacityAlerts.js.map +1 -1
  498. package/dist/utils/constants.d.ts +2 -1
  499. package/dist/utils/constants.js +2 -1
  500. package/dist/utils/constants.js.map +1 -1
  501. package/dist/utils/disks/displayState.d.ts +5 -0
  502. package/dist/utils/disks/displayState.js.map +1 -1
  503. package/dist/utils/disks/iconCalculators.d.ts +1 -3
  504. package/dist/utils/disks/iconCalculators.js +5 -6
  505. package/dist/utils/disks/iconCalculators.js.map +1 -1
  506. package/dist/utils/disks/prepareDisks.d.ts +1 -1
  507. package/dist/utils/disks/prepareDisks.js +44 -3
  508. package/dist/utils/disks/prepareDisks.js.map +1 -1
  509. package/dist/utils/disks/severityCalculators.d.ts +1 -4
  510. package/dist/utils/disks/severityCalculators.js +2 -6
  511. package/dist/utils/disks/severityCalculators.js.map +1 -1
  512. package/dist/utils/disks/types.d.ts +8 -0
  513. package/dist/utils/emptyDataPlaceholder.d.ts +1 -0
  514. package/dist/utils/emptyDataPlaceholder.js +2 -0
  515. package/dist/utils/emptyDataPlaceholder.js.map +1 -0
  516. package/dist/utils/hooks/useSelectedColumns.d.ts +3 -0
  517. package/dist/utils/hooks/useSelectedColumns.js +18 -0
  518. package/dist/utils/hooks/useSelectedColumns.js.map +1 -1
  519. package/dist/utils/hooks/withConfirmation/RunningQueryDialog.js +2 -1
  520. package/dist/utils/hooks/withConfirmation/RunningQueryDialog.js.map +1 -1
  521. package/dist/utils/hooks/withConfirmation/UnsavedChangesDialog.js +2 -1
  522. package/dist/utils/hooks/withConfirmation/UnsavedChangesDialog.js.map +1 -1
  523. package/dist/utils/query.d.ts +4 -1
  524. package/dist/utils/query.js +34 -1
  525. package/dist/utils/query.js.map +1 -1
  526. package/dist/utils/storageMetrics.d.ts +5 -1
  527. package/dist/utils/storageMetrics.js +35 -4
  528. package/dist/utils/storageMetrics.js.map +1 -1
  529. package/dist/utils/utils.js +2 -1
  530. package/dist/utils/utils.js.map +1 -1
  531. package/package.json +1 -1
  532. package/dist/store/reducers/topic.d.ts +0 -1291
  533. package/dist/store/reducers/topic.js +0 -83
  534. package/dist/store/reducers/topic.js.map +0 -1
@@ -0,0 +1,153 @@
1
+ import * as yqlAutocomplete from '@gravity-ui/websql-autocomplete/yql';
2
+ import { extractYqlStatements, findYqlStatementAtOffset } from './currentStatement';
3
+ jest.mock('@gravity-ui/websql-autocomplete/yql', () => {
4
+ const actual = jest.requireActual('@gravity-ui/websql-autocomplete/yql');
5
+ return {
6
+ ...actual,
7
+ tokenizeYqlQuery: jest.fn(actual.tokenizeYqlQuery),
8
+ };
9
+ });
10
+ describe('current YQL statement', () => {
11
+ test.each([
12
+ ['; SELECT 1;', ['SELECT 1;']],
13
+ ['SELECT 1;;; SELECT 2;', ['SELECT 1;', 'SELECT 2;']],
14
+ ])('filters empty separator statements from %s', (query, expectedStatements) => {
15
+ const statements = extractYqlStatements(query);
16
+ expect(statements.map(({ startIndex, endIndex }) => query.slice(startIndex, endIndex))).toEqual(expectedStatements);
17
+ });
18
+ test('finds each statement and excludes whitespace between statements', () => {
19
+ var _a, _b;
20
+ const query = 'SELECT 1;\n\nSELECT 2;';
21
+ const statements = extractYqlStatements(query);
22
+ expect((_a = findYqlStatementAtOffset(query, 2, statements)) === null || _a === void 0 ? void 0 : _a.text).toBe('SELECT 1;');
23
+ expect((_b = findYqlStatementAtOffset(query, query.indexOf('SELECT 2'), statements)) === null || _b === void 0 ? void 0 : _b.text).toBe('SELECT 2;');
24
+ expect(findYqlStatementAtOffset(query, query.indexOf('\n\n') + 1, statements)).toBeUndefined();
25
+ });
26
+ test('does not split semicolons inside strings and comments', () => {
27
+ const query = '/* ignored; */ SELECT "a;b";\n-- gap;\nSELECT 2;';
28
+ const statements = extractYqlStatements(query);
29
+ expect(statements.map(({ startIndex, endIndex }) => query.slice(startIndex, endIndex))).toEqual(['SELECT "a;b";', 'SELECT 2;']);
30
+ });
31
+ test.each([
32
+ [
33
+ 'anonymous action',
34
+ 'SELECT 0;\nDO BEGIN\n SELECT 1;\n SELECT 2;\nEND DO;\nSELECT 3;',
35
+ ['SELECT 0;', 'DO BEGIN\n SELECT 1;\n SELECT 2;\nEND DO;', 'SELECT 3;'],
36
+ ],
37
+ [
38
+ 'action definition',
39
+ 'DEFINE ACTION $a() AS DO BEGIN SELECT 1; SELECT 2; END DO; END DEFINE;\nDO $a();',
40
+ ['DEFINE ACTION $a() AS DO BEGIN SELECT 1; SELECT 2; END DO; END DEFINE;', 'DO $a();'],
41
+ ],
42
+ [
43
+ 'subquery definition',
44
+ 'DEFINE SUBQUERY $s() AS SELECT 1; SELECT 2; END DEFINE;\nSELECT 3;',
45
+ ['DEFINE SUBQUERY $s() AS SELECT 1; SELECT 2; END DEFINE;', 'SELECT 3;'],
46
+ ],
47
+ [
48
+ 'streaming query body',
49
+ 'CREATE STREAMING QUERY q AS DO BEGIN INSERT INTO sink SELECT * FROM source; END DO;',
50
+ ['CREATE STREAMING QUERY q AS DO BEGIN INSERT INTO sink SELECT * FROM source; END DO;'],
51
+ ],
52
+ ])('keeps each %s intact', (_name, query, expectedStatements) => {
53
+ const statements = extractYqlStatements(query);
54
+ expect(statements.map(({ startIndex, endIndex }) => query.slice(startIndex, endIndex))).toEqual(expectedStatements);
55
+ });
56
+ test('keeps a lambda definition separate from the following statement', () => {
57
+ const query = `$l = ($x) -> {
58
+ return [
59
+ <|
60
+ offset:$x._offset,
61
+ message:$x._data
62
+ |>
63
+ ];
64
+ };
65
+
66
+ ALTER TRANSFER transfer
67
+ SET USING $l;`;
68
+ const statements = extractYqlStatements(query);
69
+ expect(statements.map(({ startIndex, endIndex }) => query.slice(startIndex, endIndex))).toEqual([
70
+ `$l = ($x) -> {
71
+ return [
72
+ <|
73
+ offset:$x._offset,
74
+ message:$x._data
75
+ |>
76
+ ];
77
+ };`,
78
+ `ALTER TRANSFER transfer
79
+ SET USING $l;`,
80
+ ]);
81
+ });
82
+ test('extracts a large flat script without the YQL tokenizer', () => {
83
+ const tokenizeYqlQueryMock = jest.mocked(yqlAutocomplete.tokenizeYqlQuery);
84
+ tokenizeYqlQueryMock.mockClear();
85
+ const query = new Array(400).fill('SELECT 1;').join('');
86
+ const statements = extractYqlStatements(query);
87
+ expect(statements).toHaveLength(400);
88
+ expect(query.slice(statements[0].startIndex, statements[0].endIndex)).toBe('SELECT 1;');
89
+ expect(query.slice(statements[399].startIndex, statements[399].endIndex)).toBe('SELECT 1;');
90
+ expect(tokenizeYqlQueryMock).not.toHaveBeenCalled();
91
+ });
92
+ test('uses the YQL tokenizer for unsupported lexer characters', () => {
93
+ const tokenizeYqlQueryMock = jest.mocked(yqlAutocomplete.tokenizeYqlQuery);
94
+ tokenizeYqlQueryMock.mockClear();
95
+ const query = '# SELECT 1;';
96
+ const statements = extractYqlStatements(query);
97
+ expect(statements.map(({ startIndex, endIndex }) => query.slice(startIndex, endIndex))).toEqual(['SELECT 1;']);
98
+ expect(tokenizeYqlQueryMock).toHaveBeenCalledTimes(1);
99
+ });
100
+ test('distinguishes statements on the same line', () => {
101
+ var _a, _b;
102
+ const query = 'SELECT 1; SELECT 2;';
103
+ const statements = extractYqlStatements(query);
104
+ expect((_a = findYqlStatementAtOffset(query, query.indexOf('1'), statements)) === null || _a === void 0 ? void 0 : _a.text).toBe('SELECT 1;');
105
+ expect((_b = findYqlStatementAtOffset(query, query.indexOf('2'), statements)) === null || _b === void 0 ? void 0 : _b.text).toBe('SELECT 2;');
106
+ });
107
+ test('prefers a statement starting at an adjacent statement boundary', () => {
108
+ var _a;
109
+ const query = 'SELECT 1;SELECT 2;';
110
+ const statements = extractYqlStatements(query);
111
+ expect((_a = findYqlStatementAtOffset(query, query.indexOf('SELECT 2'), statements)) === null || _a === void 0 ? void 0 : _a.text).toBe('SELECT 2;');
112
+ });
113
+ test('uses JavaScript offsets correctly with Unicode', () => {
114
+ var _a;
115
+ const query = 'SELECT "😀;";\nSELECT 2;';
116
+ const statements = extractYqlStatements(query);
117
+ expect((_a = findYqlStatementAtOffset(query, query.indexOf('SELECT 2'), statements)) === null || _a === void 0 ? void 0 : _a.text).toBe('SELECT 2;');
118
+ });
119
+ test('returns the recoverable incomplete statement', () => {
120
+ var _a;
121
+ const query = 'SELECT 1;\nSEL';
122
+ const statements = extractYqlStatements(query);
123
+ expect((_a = findYqlStatementAtOffset(query, query.length - 1, statements)) === null || _a === void 0 ? void 0 : _a.text).toBe('SEL');
124
+ });
125
+ test('finds a multiline statement', () => {
126
+ var _a;
127
+ const query = 'SELECT\n 1;\n\nSELECT 2;';
128
+ const statements = extractYqlStatements(query);
129
+ expect((_a = findYqlStatementAtOffset(query, query.indexOf('1'), statements)) === null || _a === void 0 ? void 0 : _a.text).toBe('SELECT\n 1;');
130
+ });
131
+ test('returns no statement for standalone comments', () => {
132
+ const query = '-- comment only\n/* another comment */';
133
+ const statements = extractYqlStatements(query);
134
+ expect(findYqlStatementAtOffset(query, query.indexOf('comment'), statements)).toBeUndefined();
135
+ });
136
+ test('includes the exact end of a semicolon-terminated statement', () => {
137
+ var _a;
138
+ const query = 'SELECT 1;';
139
+ const statements = extractYqlStatements(query);
140
+ expect((_a = findYqlStatementAtOffset(query, query.length, statements)) === null || _a === void 0 ? void 0 : _a.text).toBe('SELECT 1;');
141
+ });
142
+ test('does not skip whitespace after the terminating semicolon', () => {
143
+ const query = 'SELECT 1; ';
144
+ const statements = extractYqlStatements(query);
145
+ expect(findYqlStatementAtOffset(query, query.length, statements)).toBeUndefined();
146
+ });
147
+ test('keeps an unterminated statement end exclusive', () => {
148
+ const query = 'SELECT 1';
149
+ const statements = extractYqlStatements(query);
150
+ expect(findYqlStatementAtOffset(query, query.length, statements)).toBeUndefined();
151
+ });
152
+ });
153
+ //# sourceMappingURL=currentStatement.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"currentStatement.test.js","sourceRoot":"","sources":["../../../../../../src/containers/Tenant/Query/QueryEditor/YqlEditor/currentStatement.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type Monaco from 'monaco-editor';
2
+ export interface QueryExecution {
3
+ text: string;
4
+ range?: Monaco.IRange;
5
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/containers/Tenant/Query/QueryEditor/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import type { QueryAction } from '../../../../../types/store/query';
2
+ import { reachMetricaGoal } from '../../../../../utils/yaMetrica';
3
+ type MetricaParams = NonNullable<Parameters<typeof reachMetricaGoal>[1]>;
4
+ export declare function reachExplainQueryMetricaGoals(actionType: QueryAction, params: MetricaParams): void;
5
+ export {};
@@ -0,0 +1,13 @@
1
+ import { QUERY_ACTIONS } from '../../../../../utils/query';
2
+ import { reachMetricaGoal } from '../../../../../utils/yaMetrica';
3
+ export function reachExplainQueryMetricaGoals(actionType, params) {
4
+ const metricaParams = {
5
+ ...params,
6
+ actionType: actionType === QUERY_ACTIONS.explainAnalyze ? 'explainAnalyze' : actionType,
7
+ };
8
+ reachMetricaGoal('runQuery', metricaParams);
9
+ if (actionType === QUERY_ACTIONS.explainAnalyze) {
10
+ reachMetricaGoal('explainAnalyzeQuery', metricaParams);
11
+ }
12
+ }
13
+ //# sourceMappingURL=reachExplainQueryMetricaGoals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reachExplainQueryMetricaGoals.js","sourceRoot":"","sources":["../../../../../../src/containers/Tenant/Query/QueryEditor/utils/reachExplainQueryMetricaGoals.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,aAAa,EAAC,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAC,gBAAgB,EAAC,MAAM,gCAAgC,CAAC;AAIhE,MAAM,UAAU,6BAA6B,CAAC,UAAuB,EAAE,MAAqB;IACxF,MAAM,aAAa,GAAG;QAClB,GAAG,MAAM;QACT,UAAU,EAAE,UAAU,KAAK,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU;KAC1F,CAAC;IAEF,gBAAgB,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAE5C,IAAI,UAAU,KAAK,aAAa,CAAC,cAAc,EAAE,CAAC;QAC9C,gBAAgB,CAAC,qBAAqB,EAAE,aAAa,CAAC,CAAC;IAC3D,CAAC;AACL,CAAC"}
@@ -1,15 +1,18 @@
1
1
  import type { ButtonProps } from '@gravity-ui/uikit';
2
2
  import './EditorButton.scss';
3
+ type StopButtonProps = ButtonProps & {
4
+ error?: boolean;
5
+ replacedAction?: 'run' | 'explain' | 'explainAnalyze';
6
+ };
3
7
  interface SettingsButtonProps {
4
8
  onClick: () => void;
5
9
  isLoading: boolean;
6
10
  }
7
11
  export declare const EditorButton: {
8
12
  Run: (props: ButtonProps) => import("react/jsx-runtime").JSX.Element;
9
- Stop: ({ error, ...props }: ButtonProps & {
10
- error?: boolean;
11
- }) => import("react/jsx-runtime").JSX.Element;
13
+ Stop: ({ error, replacedAction, ...props }: StopButtonProps) => import("react/jsx-runtime").JSX.Element;
12
14
  Explain: (props: ButtonProps) => import("react/jsx-runtime").JSX.Element;
15
+ ExplainAnalyze: (props: ButtonProps) => import("react/jsx-runtime").JSX.Element;
13
16
  Settings: ({ onClick, isLoading }: SettingsButtonProps) => import("react/jsx-runtime").JSX.Element;
14
17
  };
15
18
  export {};
@@ -1,26 +1,32 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Binoculars, Gear, PlayFill, StopFill } from '@gravity-ui/icons';
3
- import { Button, Icon, Tooltip } from '@gravity-ui/uikit';
2
+ import { Gear, PlayFill, StopFill } from '@gravity-ui/icons';
3
+ import { ActionTooltip, Button, Icon } from '@gravity-ui/uikit';
4
4
  import QuerySettingsDescription from '../../../../components/QuerySettingsDescription/QuerySettingsDescription';
5
5
  import { cn } from '../../../../utils/cn';
6
+ import { BRAND_BUTTON_CLASS } from '../../../../utils/constants';
6
7
  import { useChangedQuerySettings } from '../../../../utils/hooks/useChangedQuerySettings';
7
8
  import i18n from '../i18n';
8
9
  import './EditorButton.scss';
9
10
  const b = cn('ydb-query-editor-button');
10
- const Run = (props) => (_jsxs(Button, { ...props, className: b('run-button'), children: [_jsx(Icon, { data: PlayFill, size: 16 }), i18n('action.run')] }));
11
- const Stop = ({ error, ...props }) => (_jsxs(Button, { ...props, className: b('stop-button', { error }), children: [_jsx(Icon, { data: StopFill, size: 16 }), i18n('action.stop')] }));
12
- const Explain = (props) => (_jsxs(Button, { ...props, className: b('explain-button'), children: [_jsx(Icon, { data: Binoculars, size: 16 }), i18n('action.explain')] }));
11
+ const Run = (props) => (_jsxs(Button, { ...props, className: b('run-button', undefined, BRAND_BUTTON_CLASS), children: [_jsx(Icon, { data: PlayFill, size: 16 }), i18n('action.run')] }));
12
+ const Stop = ({ error, replacedAction, ...props }) => (_jsxs(Button, { ...props, className: b('stop-button', {
13
+ error,
14
+ 'explain-analyze': replacedAction === 'explainAnalyze',
15
+ }), children: [_jsx(Icon, { data: StopFill, size: 16 }), i18n('action.stop')] }));
16
+ const Explain = (props) => (_jsx(Button, { ...props, className: b('explain-button', undefined, BRAND_BUTTON_CLASS), children: i18n('action.explain') }));
17
+ const ExplainAnalyze = (props) => (_jsx(ActionTooltip, { title: i18n('explain-analyze.tooltip.title'), description: i18n('explain-analyze.tooltip.description'), openDelay: 0, placement: ['top-start'], children: _jsx(Button, { ...props, className: b('explain-analyze-button', undefined, BRAND_BUTTON_CLASS), children: i18n('action.explain-analyze') }) }));
13
18
  const Settings = ({ onClick, isLoading }) => {
14
19
  const { changedCurrentSettings, changedCurrentSettingsDescriptions } = useChangedQuerySettings();
15
20
  const extraGearProps = changedCurrentSettings.length > 0
16
21
  ? { view: 'outlined-info', selected: true }
17
22
  : null;
18
- return (_jsx(Tooltip, { disabled: changedCurrentSettings.length === 0, content: _jsx(QuerySettingsDescription, { prefix: i18n('gear.tooltip'), querySettings: changedCurrentSettingsDescriptions }), openDelay: 0, placement: ['top-start'], children: _jsxs(Button, { onClick: onClick, loading: isLoading, className: b('gear-button'), ...extraGearProps, children: [_jsx(Icon, { data: Gear, size: 16 }), extraGearProps ? (_jsxs("div", { className: b('changed-settings'), children: ["(", changedCurrentSettings.length, ")"] })) : null] }) }));
23
+ return (_jsx(ActionTooltip, { disabled: changedCurrentSettings.length === 0, title: i18n('gear.tooltip'), description: _jsx(QuerySettingsDescription, { prefix: "", querySettings: changedCurrentSettingsDescriptions }), openDelay: 0, placement: ['top-start'], children: _jsxs(Button, { onClick: onClick, loading: isLoading, className: b('gear-button'), ...extraGearProps, children: [_jsx(Icon, { data: Gear, size: 16 }), extraGearProps ? (_jsxs("div", { className: b('changed-settings'), children: ["(", changedCurrentSettings.length, ")"] })) : null] }) }));
19
24
  };
20
25
  export const EditorButton = {
21
26
  Run,
22
27
  Stop,
23
28
  Explain,
29
+ ExplainAnalyze,
24
30
  Settings,
25
31
  };
26
32
  //# sourceMappingURL=EditorButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EditorButton.js","sourceRoot":"","sources":["../../../../../src/containers/Tenant/Query/QueryEditorControls/EditorButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAEvE,OAAO,EAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAC,MAAM,mBAAmB,CAAC;AAExD,OAAO,wBAAwB,MAAM,0EAA0E,CAAC;AAChH,OAAO,EAAC,EAAE,EAAC,MAAM,sBAAsB,CAAC;AACxC,OAAO,EAAC,uBAAuB,EAAC,MAAM,iDAAiD,CAAC;AACxF,OAAO,IAAI,MAAM,SAAS,CAAC;AAE3B,OAAO,qBAAqB,CAAC;AAE7B,MAAM,CAAC,GAAG,EAAE,CAAC,yBAAyB,CAAC,CAAC;AAExC,MAAM,GAAG,GAAG,CAAC,KAAkB,EAAE,EAAE,CAAC,CAChC,MAAC,MAAM,OAAK,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,YAAY,CAAC,aACzC,KAAC,IAAI,IAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,GAAI,EACjC,IAAI,CAAC,YAAY,CAAC,IACd,CACZ,CAAC;AAEF,MAAM,IAAI,GAAG,CAAC,EAAC,KAAK,EAAE,GAAG,KAAK,EAAkC,EAAE,EAAE,CAAC,CACjE,MAAC,MAAM,OAAK,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,aAAa,EAAE,EAAC,KAAK,EAAC,CAAC,aACnD,KAAC,IAAI,IAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,GAAI,EACjC,IAAI,CAAC,aAAa,CAAC,IACf,CACZ,CAAC;AAEF,MAAM,OAAO,GAAG,CAAC,KAAkB,EAAE,EAAE,CAAC,CACpC,MAAC,MAAM,OAAK,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,gBAAgB,CAAC,aAC7C,KAAC,IAAI,IAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,GAAI,EACnC,IAAI,CAAC,gBAAgB,CAAC,IAClB,CACZ,CAAC;AAOF,MAAM,QAAQ,GAAG,CAAC,EAAC,OAAO,EAAE,SAAS,EAAsB,EAAE,EAAE;IAC3D,MAAM,EAAC,sBAAsB,EAAE,kCAAkC,EAAC,GAAG,uBAAuB,EAAE,CAAC;IAE/F,MAAM,cAAc,GAChB,sBAAsB,CAAC,MAAM,GAAG,CAAC;QAC7B,CAAC,CAAE,EAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAW;QACpD,CAAC,CAAC,IAAI,CAAC;IAEf,OAAO,CACH,KAAC,OAAO,IACJ,QAAQ,EAAE,sBAAsB,CAAC,MAAM,KAAK,CAAC,EAC7C,OAAO,EACH,KAAC,wBAAwB,IACrB,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,EAC5B,aAAa,EAAE,kCAAkC,GACnD,EAEN,SAAS,EAAE,CAAC,EACZ,SAAS,EAAE,CAAC,WAAW,CAAC,YAExB,MAAC,MAAM,IACH,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,SAAS,EAClB,SAAS,EAAE,CAAC,CAAC,aAAa,CAAC,KACvB,cAAc,aAElB,KAAC,IAAI,IAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,GAAI,EAC7B,cAAc,CAAC,CAAC,CAAC,CACd,eAAK,SAAS,EAAE,CAAC,CAAC,kBAAkB,CAAC,kBAAI,sBAAsB,CAAC,MAAM,SAAQ,CACjF,CAAC,CAAC,CAAC,IAAI,IACH,GACH,CACb,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG;IACxB,GAAG;IACH,IAAI;IACJ,OAAO;IACP,QAAQ;CACX,CAAC"}
1
+ {"version":3,"file":"EditorButton.js","sourceRoot":"","sources":["../../../../../src/containers/Tenant/Query/QueryEditorControls/EditorButton.tsx"],"names":[],"mappings":"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"}
@@ -1,16 +1,29 @@
1
1
  @use '../../../../styles/mixins.scss';
2
2
 
3
3
  .ydb-query-editor-button {
4
- &__explain-button {
5
- width: 92px;
4
+ &__run-button {
5
+ width: 76px;
6
+ min-width: 76px;
7
+ max-width: 76px;
6
8
  }
7
9
 
8
- &__run-button,
9
- &__stop-button {
10
- width: 76px;
10
+ &__explain-analyze-button {
11
+ width: 111px;
12
+ min-width: 111px;
13
+ max-width: 111px;
11
14
  }
12
15
 
13
16
  &__stop-button {
17
+ width: 76px;
18
+ min-width: 76px;
19
+ max-width: 76px;
20
+
21
+ &_explain-analyze {
22
+ width: 111px;
23
+ min-width: 111px;
24
+ max-width: 111px;
25
+ }
26
+
14
27
  .g-root_theme_dark &,
15
28
  .g-root_theme_dark-hc & {
16
29
  --g-button-text-color: var(--g-color-text-dark-primary);
@@ -7,10 +7,11 @@ interface QueryEditorControlsProps {
7
7
  highlightedAction: QueryAction;
8
8
  queryId?: string;
9
9
  database: string;
10
- isStreamingEnabled?: boolean;
10
+ isCurrentQueryStreaming?: boolean;
11
11
  handleGetExplainQueryClick: (text: string) => void;
12
+ handleGetExplainAnalyzeQueryClick: (text: string) => void;
12
13
  handleSendExecuteClick: (text: string) => void;
13
14
  onSettingsButtonClick: () => void;
14
15
  }
15
- export declare const QueryEditorControls: ({ disabled, isLoading, isStoppable, highlightedAction, queryId, database, isStreamingEnabled, handleSendExecuteClick, onSettingsButtonClick, handleGetExplainQueryClick, }: QueryEditorControlsProps) => import("react/jsx-runtime").JSX.Element;
16
+ export declare const QueryEditorControls: ({ disabled, isLoading, isStoppable, highlightedAction, queryId, database, isCurrentQueryStreaming, handleSendExecuteClick, onSettingsButtonClick, handleGetExplainQueryClick, handleGetExplainAnalyzeQueryClick, }: QueryEditorControlsProps) => import("react/jsx-runtime").JSX.Element;
16
17
  export {};
@@ -5,6 +5,7 @@ import { selectActiveTabId, selectUserInput } from '../../../../store/reducers/q
5
5
  import { cn } from '../../../../utils/cn';
6
6
  import createToast from '../../../../utils/createToast';
7
7
  import { useTypedSelector } from '../../../../utils/hooks';
8
+ import { QUERY_ACTIONS } from '../../../../utils/query';
8
9
  import { reachMetricaGoal } from '../../../../utils/yaMetrica';
9
10
  import { NewSQL } from '../NewSQL/NewSQL';
10
11
  import { queryExecutionManagerInstance } from '../QueryEditor/utils/queryExecutionManager';
@@ -14,15 +15,21 @@ import { EditorButton } from './EditorButton';
14
15
  import './QueryEditorControls.scss';
15
16
  const b = cn('ydb-query-editor-controls');
16
17
  const STOP_AUTO_HIDE_TIMEOUT = 5000;
18
+ const actionButtonComponents = {
19
+ run: EditorButton.Run,
20
+ explain: EditorButton.Explain,
21
+ explainAnalyze: EditorButton.ExplainAnalyze,
22
+ };
17
23
  const ActionButton = ({ type, isHighlighted, isLoading, isStoppable, controlsDisabled, onActionClick, renderStopButton, }) => {
18
- if (isStoppable && isLoading && isHighlighted) {
19
- return renderStopButton();
20
- }
21
- const ButtonComponent = type === 'run' ? EditorButton.Run : EditorButton.Explain;
22
- return (_jsx(ButtonComponent, { onClick: onActionClick, disabled: controlsDisabled, loading: isLoading, view: isHighlighted ? 'action' : undefined }));
24
+ const ButtonComponent = actionButtonComponents[type];
25
+ const button = isStoppable && isLoading && isHighlighted ? (renderStopButton(type)) : (_jsx(ButtonComponent, { onClick: onActionClick, disabled: controlsDisabled, loading: isLoading, view: isHighlighted ? 'action' : undefined }));
26
+ return (_jsx("div", { className: b('action-button', {
27
+ run: type === 'run',
28
+ 'explain-analyze': type === 'explainAnalyze',
29
+ }), children: button }));
23
30
  };
24
31
  const CANCEL_ERROR_ANIMATION_DURATION = 500;
25
- export const QueryEditorControls = ({ disabled, isLoading, isStoppable, highlightedAction, queryId, database, isStreamingEnabled, handleSendExecuteClick, onSettingsButtonClick, handleGetExplainQueryClick, }) => {
32
+ export const QueryEditorControls = ({ disabled, isLoading, isStoppable, highlightedAction, queryId, database, isCurrentQueryStreaming, handleSendExecuteClick, onSettingsButtonClick, handleGetExplainQueryClick, handleGetExplainAnalyzeQueryClick, }) => {
26
33
  const input = useTypedSelector(selectUserInput);
27
34
  const activeTabId = useTypedSelector(selectActiveTabId);
28
35
  const [sendCancelQuery, cancelQueryResponse] = cancelQueryApi.useCancelQueryMutation();
@@ -31,7 +38,7 @@ export const QueryEditorControls = ({ disabled, isLoading, isStoppable, highligh
31
38
  const onStopButtonClick = React.useCallback(async () => {
32
39
  reachMetricaGoal('stopQuery');
33
40
  try {
34
- if (isStreamingEnabled) {
41
+ if (isCurrentQueryStreaming) {
35
42
  if (!activeTabId) {
36
43
  return;
37
44
  }
@@ -57,15 +64,19 @@ export const QueryEditorControls = ({ disabled, isLoading, isStoppable, highligh
57
64
  setCancelQueryError(false);
58
65
  }, CANCEL_ERROR_ANIMATION_DURATION);
59
66
  }
60
- }, [isStreamingEnabled, queryId, sendCancelQuery, database, activeTabId]);
61
- const isRunHighlighted = highlightedAction === 'execute';
62
- const isExplainHighlighted = highlightedAction === 'explain';
67
+ }, [isCurrentQueryStreaming, queryId, sendCancelQuery, database, activeTabId]);
68
+ const isRunHighlighted = highlightedAction === QUERY_ACTIONS.execute;
69
+ const isExplainHighlighted = highlightedAction === QUERY_ACTIONS.explain;
70
+ const isExplainAnalyzeHighlighted = highlightedAction === QUERY_ACTIONS.explainAnalyze;
63
71
  const onRunButtonClick = React.useCallback(() => {
64
72
  handleSendExecuteClick(input);
65
73
  }, [handleSendExecuteClick, input]);
66
74
  const onExplainButtonClick = React.useCallback(() => {
67
75
  handleGetExplainQueryClick(input);
68
76
  }, [handleGetExplainQueryClick, input]);
77
+ const onExplainAnalyzeButtonClick = React.useCallback(() => {
78
+ handleGetExplainAnalyzeQueryClick(input);
79
+ }, [handleGetExplainAnalyzeQueryClick, input]);
69
80
  React.useEffect(() => {
70
81
  return () => {
71
82
  if (cancelErrorAnimationRef.current) {
@@ -74,7 +85,7 @@ export const QueryEditorControls = ({ disabled, isLoading, isStoppable, highligh
74
85
  };
75
86
  }, []);
76
87
  const controlsDisabled = disabled || !input;
77
- const renderStopButton = () => (_jsx(EditorButton.Stop, { loading: cancelQueryResponse.isLoading, error: cancelQueryError, onClick: onStopButtonClick }));
78
- return (_jsxs("div", { className: b(), children: [_jsxs("div", { className: b('left'), children: [_jsx(ActionButton, { type: "run", isHighlighted: isRunHighlighted, isLoading: isLoading, isStoppable: isStoppable, controlsDisabled: controlsDisabled, onActionClick: onRunButtonClick, renderStopButton: renderStopButton }), _jsx(ActionButton, { type: "explain", isHighlighted: isExplainHighlighted, isLoading: isLoading, isStoppable: isStoppable, controlsDisabled: controlsDisabled, onActionClick: onExplainButtonClick, renderStopButton: renderStopButton }), _jsx(EditorButton.Settings, { onClick: onSettingsButtonClick, isLoading: isLoading })] }), _jsxs("div", { className: b('right'), children: [_jsx(NewSQL, { database: database }), _jsx(SaveQuery, { buttonProps: { disabled } })] })] }));
88
+ const renderStopButton = (replacedAction) => (_jsx(EditorButton.Stop, { loading: cancelQueryResponse.isLoading, error: cancelQueryError, replacedAction: replacedAction, onClick: onStopButtonClick }));
89
+ return (_jsxs("div", { className: b(), children: [_jsxs("div", { className: b('left'), children: [_jsx(ActionButton, { type: "run", isHighlighted: isRunHighlighted, isLoading: isLoading, isStoppable: isStoppable, controlsDisabled: controlsDisabled, onActionClick: onRunButtonClick, renderStopButton: renderStopButton }), _jsx(ActionButton, { type: "explain", isHighlighted: isExplainHighlighted, isLoading: isLoading, isStoppable: isStoppable, controlsDisabled: controlsDisabled, onActionClick: onExplainButtonClick, renderStopButton: renderStopButton }), _jsx(ActionButton, { type: "explainAnalyze", isHighlighted: isExplainAnalyzeHighlighted, isLoading: isLoading, isStoppable: isStoppable, controlsDisabled: controlsDisabled, onActionClick: onExplainAnalyzeButtonClick, renderStopButton: renderStopButton }), _jsx(EditorButton.Settings, { onClick: onSettingsButtonClick, isLoading: isLoading })] }), _jsxs("div", { className: b('right'), children: [_jsx(NewSQL, { database: database }), _jsx(SaveQuery, { buttonProps: { disabled } })] })] }));
79
90
  };
80
91
  //# sourceMappingURL=QueryEditorControls.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"QueryEditorControls.js","sourceRoot":"","sources":["../../../../../src/containers/Tenant/Query/QueryEditorControls/QueryEditorControls.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"QueryEditorControls.js","sourceRoot":"","sources":["../../../../../src/containers/Tenant/Query/QueryEditorControls/QueryEditorControls.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,cAAc,EAAC,MAAM,wCAAwC,CAAC;AACtE,OAAO,EAAC,iBAAiB,EAAE,eAAe,EAAC,MAAM,wCAAwC,CAAC;AAE1F,OAAO,EAAC,EAAE,EAAC,MAAM,sBAAsB,CAAC;AACxC,OAAO,WAAW,MAAM,+BAA+B,CAAC;AACxD,OAAO,EAAC,gBAAgB,EAAC,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAC,aAAa,EAAC,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAC,gBAAgB,EAAC,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAC,MAAM,EAAC,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAC,6BAA6B,EAAC,MAAM,4CAA4C,CAAC;AACzF,OAAO,EAAC,SAAS,EAAC,MAAM,wBAAwB,CAAC;AACjD,OAAO,IAAI,MAAM,SAAS,CAAC;AAE3B,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAE5C,OAAO,4BAA4B,CAAC;AAEpC,MAAM,CAAC,GAAG,EAAE,CAAC,2BAA2B,CAAC,CAAC;AAiB1C,MAAM,sBAAsB,GAAG,IAAI,CAAC;AAcpC,MAAM,sBAAsB,GAAG;IAC3B,GAAG,EAAE,YAAY,CAAC,GAAG;IACrB,OAAO,EAAE,YAAY,CAAC,OAAO;IAC7B,cAAc,EAAE,YAAY,CAAC,cAAc;CAC9C,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,EAClB,IAAI,EACJ,aAAa,EACb,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,gBAAgB,GACA,EAAE,EAAE;IACpB,MAAM,eAAe,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;IACrD,MAAM,MAAM,GACR,WAAW,IAAI,SAAS,IAAI,aAAa,CAAC,CAAC,CAAC,CACxC,gBAAgB,CAAC,IAAI,CAAC,CACzB,CAAC,CAAC,CAAC,CACA,KAAC,eAAe,IACZ,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,EAAE,SAAS,EAClB,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,GAC5C,CACL,CAAC;IAEN,OAAO,CACH,cACI,SAAS,EAAE,CAAC,CAAC,eAAe,EAAE;YAC1B,GAAG,EAAE,IAAI,KAAK,KAAK;YACnB,iBAAiB,EAAE,IAAI,KAAK,gBAAgB;SAC/C,CAAC,YAED,MAAM,GACL,CACT,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,+BAA+B,GAAG,GAAG,CAAC;AAE5C,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAChC,QAAQ,EACR,SAAS,EACT,WAAW,EACX,iBAAiB,EACjB,OAAO,EACP,QAAQ,EACR,uBAAuB,EAEvB,sBAAsB,EACtB,qBAAqB,EACrB,0BAA0B,EAC1B,iCAAiC,GACV,EAAE,EAAE;IAC3B,MAAM,KAAK,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAC;IAChD,MAAM,WAAW,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;IACxD,MAAM,CAAC,eAAe,EAAE,mBAAmB,CAAC,GAAG,cAAc,CAAC,sBAAsB,EAAE,CAAC;IACvF,MAAM,uBAAuB,GAAG,KAAK,CAAC,MAAM,CAAgB,IAAI,CAAC,CAAC;IAClE,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAU,KAAK,CAAC,CAAC;IAE/E,MAAM,iBAAiB,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;QACnD,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAC9B,IAAI,CAAC;YACD,IAAI,uBAAuB,EAAE,CAAC;gBAC1B,IAAI,CAAC,WAAW,EAAE,CAAC;oBACf,OAAO;gBACX,CAAC;gBAED,6BAA6B,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YAC1D,CAAC;iBAAM,IAAI,OAAO,EAAE,CAAC;gBACjB,MAAM,eAAe,CAAC,EAAC,OAAO,EAAE,QAAQ,EAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YACxD,CAAC;QACL,CAAC;QAAC,WAAM,CAAC;YACL,WAAW,CAAC;gBACR,IAAI,EAAE,YAAY;gBAClB,KAAK,EAAE,EAAE;gBACT,OAAO,EAAE,IAAI,CAAC,oBAAoB,CAAC;gBACnC,KAAK,EAAE,QAAQ;gBACf,UAAU,EAAE,sBAAsB;aACrC,CAAC,CAAC;YACH,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAE1B,IAAI,uBAAuB,CAAC,OAAO,EAAE,CAAC;gBAClC,MAAM,CAAC,YAAY,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;YACzD,CAAC;YACD,uBAAuB,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;gBACrD,mBAAmB,CAAC,KAAK,CAAC,CAAC;YAC/B,CAAC,EAAE,+BAA+B,CAAC,CAAC;QACxC,CAAC;IACL,CAAC,EAAE,CAAC,uBAAuB,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;IAE/E,MAAM,gBAAgB,GAAG,iBAAiB,KAAK,aAAa,CAAC,OAAO,CAAC;IACrE,MAAM,oBAAoB,GAAG,iBAAiB,KAAK,aAAa,CAAC,OAAO,CAAC;IACzE,MAAM,2BAA2B,GAAG,iBAAiB,KAAK,aAAa,CAAC,cAAc,CAAC;IAEvF,MAAM,gBAAgB,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC5C,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC,EAAE,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC,CAAC;IAEpC,MAAM,oBAAoB,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAChD,0BAA0B,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC,EAAE,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC,CAAC;IAExC,MAAM,2BAA2B,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACvD,iCAAiC,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC,EAAE,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC,CAAC;IAE/C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,OAAO,GAAG,EAAE;YACR,IAAI,uBAAuB,CAAC,OAAO,EAAE,CAAC;gBAClC,MAAM,CAAC,YAAY,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;YACzD,CAAC;QACL,CAAC,CAAC;IACN,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,gBAAgB,GAAG,QAAQ,IAAI,CAAC,KAAK,CAAC;IAE5C,MAAM,gBAAgB,GAAG,CAAC,cAAgC,EAAE,EAAE,CAAC,CAC3D,KAAC,YAAY,CAAC,IAAI,IACd,OAAO,EAAE,mBAAmB,CAAC,SAAS,EACtC,KAAK,EAAE,gBAAgB,EACvB,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,iBAAiB,GAC5B,CACL,CAAC;IAEF,OAAO,CACH,eAAK,SAAS,EAAE,CAAC,EAAE,aACf,eAAK,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,aACrB,KAAC,YAAY,IACT,IAAI,EAAC,KAAK,EACV,aAAa,EAAE,gBAAgB,EAC/B,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,gBAAgB,EAClC,aAAa,EAAE,gBAAgB,EAC/B,gBAAgB,EAAE,gBAAgB,GACpC,EACF,KAAC,YAAY,IACT,IAAI,EAAC,SAAS,EACd,aAAa,EAAE,oBAAoB,EACnC,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,gBAAgB,EAClC,aAAa,EAAE,oBAAoB,EACnC,gBAAgB,EAAE,gBAAgB,GACpC,EACF,KAAC,YAAY,IACT,IAAI,EAAC,gBAAgB,EACrB,aAAa,EAAE,2BAA2B,EAC1C,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,gBAAgB,EAClC,aAAa,EAAE,2BAA2B,EAC1C,gBAAgB,EAAE,gBAAgB,GACpC,EACF,KAAC,YAAY,CAAC,QAAQ,IAAC,OAAO,EAAE,qBAAqB,EAAE,SAAS,EAAE,SAAS,GAAI,IAC7E,EACN,eAAK,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,aACtB,KAAC,MAAM,IAAC,QAAQ,EAAE,QAAQ,GAAI,EAC9B,KAAC,SAAS,IAAC,WAAW,EAAE,EAAC,QAAQ,EAAC,GAAI,IACpC,IACJ,CACT,CAAC;AACN,CAAC,CAAC"}
@@ -13,6 +13,25 @@
13
13
  gap: 12px;
14
14
  }
15
15
 
16
+ &__action-button {
17
+ display: flex;
18
+ flex: none;
19
+
20
+ &_run {
21
+ width: 76px;
22
+ }
23
+
24
+ &_explain-analyze {
25
+ width: 111px;
26
+ }
27
+
28
+ > .g-button {
29
+ width: 100%;
30
+ min-width: 0;
31
+ max-width: 100%;
32
+ }
33
+ }
34
+
16
35
  &__mode-selector {
17
36
  $b: &;
18
37
 
@@ -11,6 +11,7 @@ import { SETTING_KEYS } from '../../../../store/reducers/settings/constants';
11
11
  import { cn } from '../../../../utils/cn';
12
12
  import { useSetting, useTypedDispatch, useTypedSelector } from '../../../../utils/hooks';
13
13
  import { getIllustration } from '../../../../utils/illustrations';
14
+ import { isExecutionQueryAction } from '../../../../utils/query';
14
15
  import { PaneVisibilityToggleButtons } from '../../utils/paneVisibilityToggleHelpers';
15
16
  import { QuerySettingsBanner } from '../QuerySettingsBanner/QuerySettingsBanner';
16
17
  import { QueryStoppedBanner } from '../QueryStoppedBanner/QueryStoppedBanner';
@@ -21,7 +22,7 @@ import { QueryInfoDropdown } from './components/QueryInfoDropdown/QueryInfoDropd
21
22
  import { QueryResultError } from './components/QueryResultError/QueryResultError';
22
23
  import { ResultSetsViewer } from './components/ResultSetsViewer/ResultSetsViewer';
23
24
  import { TraceButton } from './components/TraceButton/TraceButton';
24
- import { RESULT_OPTIONS_IDS } from './constants';
25
+ import { RESULT_OPTIONS_IDS, getDefaultResultSection, getResultSections } from './constants';
25
26
  import i18n from './i18n';
26
27
  import './QueryResultViewer.scss';
27
28
  const b = cn('ydb-query-result');
@@ -46,15 +47,13 @@ const RESULT_OPTIONS_TITLES = {
46
47
  return i18n('action.ast');
47
48
  },
48
49
  };
49
- const EXECUTE_SECTIONS = ['result', 'schema', 'simplified', 'stats'];
50
- const EXPLAIN_SECTIONS = ['schema', 'simplified', 'json', 'ast'];
51
50
  export function QueryResultViewer({ result, resultType = 'execute', isResultsCollapsed, theme, database, queryText, tableSettings, onCollapseResults, onExpandResults, }) {
52
51
  var _a;
53
52
  const InternalErrorImage = getIllustration('InternalError');
54
53
  const dispatch = useTypedDispatch();
55
54
  const selectedTabs = useTypedSelector(selectResultTab);
56
- const isExecute = resultType === 'execute';
57
- const isExplain = resultType === 'explain';
55
+ const isExecutionResult = isExecutionQueryAction(resultType);
56
+ const hasResultSection = getResultSections(resultType).includes(RESULT_OPTIONS_IDS.result);
58
57
  const [selectedResultSet, setSelectedResultSet] = React.useState(0);
59
58
  const [useShowPlanToSvg] = useSetting(SETTING_KEYS.USE_SHOW_PLAN_SVG);
60
59
  const [copyStatus, setCopyStatus] = React.useState('pending');
@@ -62,13 +61,13 @@ export function QueryResultViewer({ result, resultType = 'execute', isResultsCol
62
61
  const activeSection = React.useMemo(() => {
63
62
  const savedTab = selectedTabs === null || selectedTabs === void 0 ? void 0 : selectedTabs[resultType];
64
63
  if (savedTab) {
65
- const validSections = isExecute ? EXECUTE_SECTIONS : EXPLAIN_SECTIONS;
64
+ const validSections = getResultSections(resultType);
66
65
  if (validSections.includes(savedTab)) {
67
66
  return savedTab;
68
67
  }
69
68
  }
70
- return isExecute ? RESULT_OPTIONS_IDS.result : RESULT_OPTIONS_IDS.schema;
71
- }, [selectedTabs, resultType, isExecute]);
69
+ return getDefaultResultSection(resultType);
70
+ }, [selectedTabs, resultType]);
72
71
  const { error, isLoading, streamingStatus, data = {} } = result;
73
72
  const { preparedPlan, simplifiedPlan, stats, resultSets, ast } = data;
74
73
  React.useEffect(() => {
@@ -83,18 +82,12 @@ export function QueryResultViewer({ result, resultType = 'execute', isResultsCol
83
82
  window.clearTimeout(copyTimeoutRef.current);
84
83
  };
85
84
  const radioButtonOptions = React.useMemo(() => {
86
- let sections = [];
87
- if (isExecute) {
88
- sections = EXECUTE_SECTIONS;
89
- }
90
- else if (isExplain) {
91
- sections = EXPLAIN_SECTIONS;
92
- }
85
+ const sections = getResultSections(resultType);
93
86
  return sections.map((section) => ({
94
87
  value: section,
95
88
  content: RESULT_OPTIONS_TITLES[section],
96
89
  }));
97
- }, [isExecute, isExplain]);
90
+ }, [resultType]);
98
91
  const hasCopyableData = React.useCallback(() => {
99
92
  var _a, _b, _c;
100
93
  switch (activeSection) {
@@ -180,7 +173,7 @@ export function QueryResultViewer({ result, resultType = 'execute', isResultsCol
180
173
  ast: data.ast,
181
174
  stats: data.stats,
182
175
  plan: data.plan,
183
- }, error: error, database: database, hasPlanToSvg: Boolean((data === null || data === void 0 ? void 0 : data.plan) && useShowPlanToSvg && isExecute) }));
176
+ }, error: error, database: database, hasPlanToSvg: Boolean((data === null || data === void 0 ? void 0 : data.plan) && useShowPlanToSvg && isExecutionResult) }));
184
177
  };
185
178
  const renderCommonErrorView = (isStopped) => {
186
179
  return (_jsxs(Flex, { justifyContent: "center", alignItems: "center", width: "100%", gap: 8, children: [_jsx(InternalErrorImage, { width: 230, height: 230, className: b('illustration') }), _jsxs(Flex, { direction: "column", gap: 2, children: [_jsx(Text, { variant: "subheader-2", children: isStopped ? i18n('stopped.title') : i18n('error.title') }), _jsx(Text, { color: "complementary", children: isStopped ? i18n('stopped.description') : i18n('error.description') })] })] }));
@@ -191,18 +184,18 @@ export function QueryResultViewer({ result, resultType = 'execute', isResultsCol
191
184
  if (error && isStopped && !(resultSets === null || resultSets === void 0 ? void 0 : resultSets.length)) {
192
185
  return renderCommonErrorView(isStopped);
193
186
  }
194
- return (_jsx(ResultSetsViewer, { resultSets: resultSets, error: error, selectedResultSet: selectedResultSet, tableSettings: tableSettings, setSelectedResultSet: setSelectedResultSet }));
187
+ return (_jsx(ResultSetsViewer, { resultSets: resultSets, error: error, selectedResultSet: selectedResultSet, tableSettings: tableSettings, setSelectedResultSet: setSelectedResultSet, sourcePosition: result.sourcePosition }));
195
188
  }
196
189
  if (error) {
197
- if (isExecute || isStopped) {
190
+ if ((isExecutionResult && hasResultSection) || isStopped) {
198
191
  return renderCommonErrorView(isStopped);
199
192
  }
200
- return _jsx(QueryResultError, { error: error });
193
+ return _jsx(QueryResultError, { error: error, sourcePosition: result.sourcePosition });
201
194
  }
202
195
  return (_jsx(PlanSection, { activeSection: activeSection, sectionTitle: RESULT_OPTIONS_TITLES[activeSection], preparedPlan: preparedPlan, simplifiedPlan: simplifiedPlan, stats: stats, ast: ast, theme: theme }));
203
196
  };
204
197
  const renderLeftControls = () => {
205
- return (_jsxs("div", { className: b('controls-left'), children: [radioButtonOptions.length && activeSection ? (_jsx(SegmentedRadioGroup, { options: radioButtonOptions, value: activeSection, onUpdate: onSelectSection })) : null, _jsx(QueryExecutionStatus, { error: error, loading: isLoading, streamingStatus: streamingStatus }), (data === null || data === void 0 ? void 0 : data.traceId) && isExecute ? _jsx(TraceButton, { traceId: data.traceId }) : null] }));
198
+ return (_jsxs("div", { className: b('controls-left'), children: [radioButtonOptions.length && activeSection ? (_jsx(SegmentedRadioGroup, { options: radioButtonOptions, value: activeSection, onUpdate: onSelectSection })) : null, _jsx(QueryExecutionStatus, { error: error, loading: isLoading, streamingStatus: streamingStatus }), (data === null || data === void 0 ? void 0 : data.traceId) && isExecutionResult ? _jsx(TraceButton, { traceId: data.traceId }) : null] }));
206
199
  };
207
200
  const renderRightControls = () => {
208
201
  return (_jsxs("div", { className: b('controls-right'), children: [renderQueryInfoDropdown(), renderCopyButton(), _jsx(EnableFullscreenButton, {}), _jsx(PaneVisibilityToggleButtons, { onCollapse: onCollapseResults, onExpand: onExpandResults, isCollapsed: isResultsCollapsed, initialDirection: "bottom" })] }));