ydb-embedded-ui 18.3.2 → 18.4.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 (383) 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/DiskCapacityInfo/DiskCapacityInfo.d.ts +21 -0
  6. package/dist/components/DiskCapacityInfo/DiskCapacityInfo.js +129 -0
  7. package/dist/components/DiskCapacityInfo/DiskCapacityInfo.js.map +1 -0
  8. package/dist/components/DiskCapacityInfo/i18n/en.json +7 -0
  9. package/dist/components/DiskCapacityInfo/i18n/index.d.ts +2 -0
  10. package/dist/components/DiskCapacityInfo/i18n/index.js +5 -0
  11. package/dist/components/DiskCapacityInfo/i18n/index.js.map +1 -0
  12. package/dist/components/DiskStateProgressBar/DiskStateProgressBar.d.ts +8 -1
  13. package/dist/components/DiskStateProgressBar/DiskStateProgressBar.js +24 -14
  14. package/dist/components/DiskStateProgressBar/DiskStateProgressBar.js.map +1 -1
  15. package/dist/components/DiskStateProgressBar/DiskStateProgressBar.scss +144 -0
  16. package/dist/components/HelpMarkWithDocs/HelpMarkWithDocs.d.ts +9 -0
  17. package/dist/components/HelpMarkWithDocs/HelpMarkWithDocs.js +8 -0
  18. package/dist/components/HelpMarkWithDocs/HelpMarkWithDocs.js.map +1 -0
  19. package/dist/components/HelpMarkWithDocs/i18n/en.json +3 -0
  20. package/dist/components/HelpMarkWithDocs/i18n/index.d.ts +1 -0
  21. package/dist/components/HelpMarkWithDocs/i18n/index.js +5 -0
  22. package/dist/components/HelpMarkWithDocs/i18n/index.js.map +1 -0
  23. package/dist/components/PDiskInfo/PDiskInfo.d.ts +1 -0
  24. package/dist/components/PDiskInfo/PDiskInfo.js +51 -14
  25. package/dist/components/PDiskInfo/PDiskInfo.js.map +1 -1
  26. package/dist/components/PDiskInfo/i18n/index.d.ts +1 -1
  27. package/dist/components/PDiskPopup/PDiskPopup.d.ts +1 -1
  28. package/dist/components/PDiskPopup/PDiskPopup.js +13 -4
  29. package/dist/components/PDiskPopup/PDiskPopup.js.map +1 -1
  30. package/dist/components/StorageGroupInfo/StorageGroupInfo.js +120 -2
  31. package/dist/components/StorageGroupInfo/StorageGroupInfo.js.map +1 -1
  32. package/dist/components/StorageGroupInfo/i18n/en.json +2 -1
  33. package/dist/components/StorageGroupInfo/i18n/index.d.ts +1 -1
  34. package/dist/components/TitleWithHelpmark/TitleWithHelpmark.d.ts +5 -2
  35. package/dist/components/TitleWithHelpmark/TitleWithHelpmark.js +4 -3
  36. package/dist/components/TitleWithHelpmark/TitleWithHelpmark.js.map +1 -1
  37. package/dist/components/VDisk/VDisk.js +44 -10
  38. package/dist/components/VDisk/VDisk.js.map +1 -1
  39. package/dist/components/VDisk/i18n/en.json +6 -1
  40. package/dist/components/VDisk/i18n/index.d.ts +1 -1
  41. package/dist/components/VDiskInfo/VDiskInfo.js +117 -67
  42. package/dist/components/VDiskInfo/VDiskInfo.js.map +1 -1
  43. package/dist/components/VDiskInfo/getVDiskCapacityColumns.d.ts +11 -0
  44. package/dist/components/VDiskInfo/getVDiskCapacityColumns.js +52 -0
  45. package/dist/components/VDiskInfo/getVDiskCapacityColumns.js.map +1 -0
  46. package/dist/components/VDiskPopup/VDiskPopup.d.ts +5 -0
  47. package/dist/components/VDiskPopup/VDiskPopup.js +18 -7
  48. package/dist/components/VDiskPopup/VDiskPopup.js.map +1 -1
  49. package/dist/components/YDBDefinitionList/YDBDefinitionList.d.ts +2 -1
  50. package/dist/components/YDBDefinitionList/YDBDefinitionList.js +2 -2
  51. package/dist/components/YDBDefinitionList/YDBDefinitionList.js.map +1 -1
  52. package/dist/components/capacityMetricsColumns/columns.js +19 -24
  53. package/dist/components/capacityMetricsColumns/columns.js.map +1 -1
  54. package/dist/components/capacityMetricsColumns/constants.d.ts +11 -0
  55. package/dist/components/capacityMetricsColumns/constants.js +25 -0
  56. package/dist/components/capacityMetricsColumns/constants.js.map +1 -1
  57. package/dist/components/capacityMetricsColumns/formatters.d.ts +1 -0
  58. package/dist/components/capacityMetricsColumns/formatters.js +9 -0
  59. package/dist/components/capacityMetricsColumns/formatters.js.map +1 -0
  60. package/dist/components/capacityMetricsColumns/i18n/en.json +9 -1
  61. package/dist/components/capacityMetricsColumns/i18n/index.d.ts +1 -1
  62. package/dist/components/nodesColumns/constants.js +1 -1
  63. package/dist/components/nodesColumns/constants.js.map +1 -1
  64. package/dist/containers/App/NavigationWrapper.js +1 -1
  65. package/dist/containers/App/NavigationWrapper.js.map +1 -1
  66. package/dist/containers/AsideNavigation/i18n/en.json +1 -1
  67. package/dist/containers/Cluster/ClusterInfo/ClusterInfo.js +1 -1
  68. package/dist/containers/Cluster/ClusterInfo/ClusterInfo.js.map +1 -1
  69. package/dist/containers/Storage/Disks/Disks.d.ts +2 -2
  70. package/dist/containers/Storage/Disks/Disks.js +13 -10
  71. package/dist/containers/Storage/Disks/Disks.js.map +1 -1
  72. package/dist/containers/Storage/Disks/Disks.scss +20 -0
  73. package/dist/containers/Storage/Disks/calculateCompactVDiskWidths.d.ts +2 -0
  74. package/dist/containers/Storage/Disks/calculateCompactVDiskWidths.js +46 -0
  75. package/dist/containers/Storage/Disks/calculateCompactVDiskWidths.js.map +1 -0
  76. package/dist/containers/Storage/Disks/constants.d.ts +5 -0
  77. package/dist/containers/Storage/Disks/constants.js +11 -0
  78. package/dist/containers/Storage/Disks/constants.js.map +1 -0
  79. package/dist/containers/Storage/PaginatedStorageGroups/StorageGroupsControls.js +8 -15
  80. package/dist/containers/Storage/PaginatedStorageGroups/StorageGroupsControls.js.map +1 -1
  81. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/columns.d.ts +2 -2
  82. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/columns.js +37 -9
  83. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/columns.js.map +1 -1
  84. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/constants.d.ts +5 -0
  85. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/constants.js +31 -1
  86. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/constants.js.map +1 -1
  87. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/hooks.js +39 -24
  88. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/hooks.js.map +1 -1
  89. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/i18n/en.json +1 -0
  90. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/i18n/index.d.ts +1 -1
  91. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/types.d.ts +1 -0
  92. package/dist/containers/Storage/PaginatedStorageNodesTable/columns/hooks.js +18 -9
  93. package/dist/containers/Storage/PaginatedStorageNodesTable/columns/hooks.js.map +1 -1
  94. package/dist/containers/Storage/StorageExpertModePanel/StorageExpertModePanel.js +1 -1
  95. package/dist/containers/Storage/StorageExpertModePanel/StorageExpertModePanel.js.map +1 -1
  96. package/dist/containers/Storage/StorageExpertModePanel/StorageExpertModePanel.scss +13 -0
  97. package/dist/containers/Storage/StorageExpertModePanel/components/AllLegend.js +96 -2
  98. package/dist/containers/Storage/StorageExpertModePanel/components/AllLegend.js.map +1 -1
  99. package/dist/containers/Storage/StorageExpertModePanel/components/SpaceLegend.js +2 -5
  100. package/dist/containers/Storage/StorageExpertModePanel/components/SpaceLegend.js.map +1 -1
  101. package/dist/containers/Storage/StorageExpertModePanel/components/getSpaceLegendSelection.d.ts +2 -0
  102. package/dist/containers/Storage/StorageExpertModePanel/components/getSpaceLegendSelection.js +6 -1
  103. package/dist/containers/Storage/StorageExpertModePanel/components/getSpaceLegendSelection.js.map +1 -1
  104. package/dist/containers/Storage/StorageExpertModePanel/components/useSpaceLegendSelection.js +3 -3
  105. package/dist/containers/Storage/StorageExpertModePanel/components/useSpaceLegendSelection.js.map +1 -1
  106. package/dist/containers/Storage/StorageExpertModePanel/i18n/en.json +13 -0
  107. package/dist/containers/Storage/StorageExpertModePanel/i18n/index.d.ts +1 -1
  108. package/dist/containers/Storage/useStorageQueryParams.js +9 -4
  109. package/dist/containers/Storage/useStorageQueryParams.js.map +1 -1
  110. package/dist/containers/Storage/useStorageVDiskDisplayStateGetter.js +45 -5
  111. package/dist/containers/Storage/useStorageVDiskDisplayStateGetter.js.map +1 -1
  112. package/dist/containers/Tenant/Diagnostics/Consumers/Consumers.js +1 -1
  113. package/dist/containers/Tenant/Diagnostics/Consumers/Consumers.js.map +1 -1
  114. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/ManagePartitioningDialog.js +12 -13
  115. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/ManagePartitioningDialog.js.map +1 -1
  116. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/useManagePartitionForm.d.ts +1 -1
  117. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/utils.js +2 -2
  118. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/utils.js.map +1 -1
  119. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/PartitionsProgress/PartitionsProgress.js +3 -3
  120. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/PartitionsProgress/PartitionsProgress.js.map +1 -1
  121. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/PartitionsProgress/i18n/en.json +1 -2
  122. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/PartitionsProgress/i18n/index.d.ts +1 -1
  123. package/dist/containers/Tenant/Diagnostics/Overview/TopicStats/TopicStats.js +1 -1
  124. package/dist/containers/Tenant/Diagnostics/Overview/TopicStats/TopicStats.js.map +1 -1
  125. package/dist/containers/Tenant/Diagnostics/Partitions/Partitions.js +1 -1
  126. package/dist/containers/Tenant/Diagnostics/Partitions/Partitions.js.map +1 -1
  127. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.js +5 -2
  128. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.js.map +1 -1
  129. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorage.d.ts +1 -1
  130. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorage.js +36 -15
  131. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorage.js.map +1 -1
  132. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageGroups.d.ts +14 -0
  133. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageGroups.js +38 -0
  134. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageGroups.js.map +1 -0
  135. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageNew.d.ts +1 -1
  136. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageNew.js +3 -2
  137. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageNew.js.map +1 -1
  138. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TopGroups.d.ts +10 -1
  139. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TopGroups.js +12 -8
  140. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TopGroups.js.map +1 -1
  141. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/i18n/en.json +15 -1
  142. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/i18n/index.d.ts +1 -1
  143. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/types.d.ts +3 -1
  144. package/dist/containers/Tenant/Diagnostics/TopicData/TopicMessageDetails/TopicMessageDetails.js +1 -1
  145. package/dist/containers/Tenant/Diagnostics/TopicData/TopicMessageDetails/TopicMessageDetails.js.map +1 -1
  146. package/dist/containers/Tenant/Diagnostics/TopicData/columns/columns.js +1 -1
  147. package/dist/containers/Tenant/Diagnostics/TopicData/columns/columns.js.map +1 -1
  148. package/dist/containers/Tenant/Diagnostics/TopicData/getData.js +1 -1
  149. package/dist/containers/Tenant/Diagnostics/TopicData/getData.js.map +1 -1
  150. package/dist/containers/Tenant/Diagnostics/TopicData/useTopicProbeQuery.js +1 -1
  151. package/dist/containers/Tenant/Diagnostics/TopicData/useTopicProbeQuery.js.map +1 -1
  152. package/dist/containers/Tenant/ObjectSummary/CreateDirectoryDialog/CreateDirectoryDialog.js +10 -6
  153. package/dist/containers/Tenant/ObjectSummary/CreateDirectoryDialog/CreateDirectoryDialog.js.map +1 -1
  154. package/dist/containers/Tenant/ObjectSummary/CreateDirectoryDialog/CreateDirectoryDialog.scss +57 -6
  155. package/dist/containers/Tenant/ObjectSummary/ObjectSummary.scss +31 -0
  156. package/dist/containers/Tenant/ObjectSummary/SchemaTree/SchemaTree.js +58 -0
  157. package/dist/containers/Tenant/ObjectSummary/SchemaTree/SchemaTree.js.map +1 -1
  158. package/dist/containers/Tenant/Query/Issues/Issues.js +3 -3
  159. package/dist/containers/Tenant/Query/Issues/Issues.js.map +1 -1
  160. package/dist/containers/Tenant/Query/Issues/helpers.d.ts +3 -0
  161. package/dist/containers/Tenant/Query/Issues/helpers.js +40 -0
  162. package/dist/containers/Tenant/Query/Issues/helpers.js.map +1 -1
  163. package/dist/containers/Tenant/Query/Issues/helpers.test.d.ts +1 -0
  164. package/dist/containers/Tenant/Query/Issues/helpers.test.js +94 -0
  165. package/dist/containers/Tenant/Query/Issues/helpers.test.js.map +1 -0
  166. package/dist/containers/Tenant/Query/NewSQL/NewSQL.js +1 -1
  167. package/dist/containers/Tenant/Query/NewSQL/NewSQL.js.map +1 -1
  168. package/dist/containers/Tenant/Query/Preview/components/TopicPreview.js +1 -1
  169. package/dist/containers/Tenant/Query/Preview/components/TopicPreview.js.map +1 -1
  170. package/dist/containers/Tenant/Query/QueryEditor/QueryEditor.js +141 -73
  171. package/dist/containers/Tenant/Query/QueryEditor/QueryEditor.js.map +1 -1
  172. package/dist/containers/Tenant/Query/QueryEditor/QueryEditor.scss +8 -0
  173. package/dist/containers/Tenant/Query/QueryEditor/YqlEditor/YqlEditor.d.ts +4 -2
  174. package/dist/containers/Tenant/Query/QueryEditor/YqlEditor/YqlEditor.js +187 -20
  175. package/dist/containers/Tenant/Query/QueryEditor/YqlEditor/YqlEditor.js.map +1 -1
  176. package/dist/containers/Tenant/Query/QueryEditor/YqlEditor/currentStatement.d.ts +9 -0
  177. package/dist/containers/Tenant/Query/QueryEditor/YqlEditor/currentStatement.js +154 -0
  178. package/dist/containers/Tenant/Query/QueryEditor/YqlEditor/currentStatement.js.map +1 -0
  179. package/dist/containers/Tenant/Query/QueryEditor/YqlEditor/currentStatement.test.d.ts +1 -0
  180. package/dist/containers/Tenant/Query/QueryEditor/YqlEditor/currentStatement.test.js +153 -0
  181. package/dist/containers/Tenant/Query/QueryEditor/YqlEditor/currentStatement.test.js.map +1 -0
  182. package/dist/containers/Tenant/Query/QueryEditor/types.d.ts +5 -0
  183. package/dist/containers/Tenant/Query/QueryEditor/types.js +2 -0
  184. package/dist/containers/Tenant/Query/QueryEditor/types.js.map +1 -0
  185. package/dist/containers/Tenant/Query/QueryEditor/utils/reachExplainQueryMetricaGoals.d.ts +5 -0
  186. package/dist/containers/Tenant/Query/QueryEditor/utils/reachExplainQueryMetricaGoals.js +13 -0
  187. package/dist/containers/Tenant/Query/QueryEditor/utils/reachExplainQueryMetricaGoals.js.map +1 -0
  188. package/dist/containers/Tenant/Query/QueryEditorControls/EditorButton.d.ts +6 -3
  189. package/dist/containers/Tenant/Query/QueryEditorControls/EditorButton.js +10 -5
  190. package/dist/containers/Tenant/Query/QueryEditorControls/EditorButton.js.map +1 -1
  191. package/dist/containers/Tenant/Query/QueryEditorControls/EditorButton.scss +18 -5
  192. package/dist/containers/Tenant/Query/QueryEditorControls/QueryEditorControls.d.ts +3 -2
  193. package/dist/containers/Tenant/Query/QueryEditorControls/QueryEditorControls.js +23 -12
  194. package/dist/containers/Tenant/Query/QueryEditorControls/QueryEditorControls.js.map +1 -1
  195. package/dist/containers/Tenant/Query/QueryEditorControls/QueryEditorControls.scss +19 -0
  196. package/dist/containers/Tenant/Query/QueryResult/QueryResultViewer.js +14 -21
  197. package/dist/containers/Tenant/Query/QueryResult/QueryResultViewer.js.map +1 -1
  198. package/dist/containers/Tenant/Query/QueryResult/components/QueryResultError/QueryResultError.d.ts +6 -2
  199. package/dist/containers/Tenant/Query/QueryResult/components/QueryResultError/QueryResultError.js +6 -2
  200. package/dist/containers/Tenant/Query/QueryResult/components/QueryResultError/QueryResultError.js.map +1 -1
  201. package/dist/containers/Tenant/Query/QueryResult/components/ResultSetsViewer/ResultSetsViewer.d.ts +2 -0
  202. package/dist/containers/Tenant/Query/QueryResult/components/ResultSetsViewer/ResultSetsViewer.js +1 -1
  203. package/dist/containers/Tenant/Query/QueryResult/components/ResultSetsViewer/ResultSetsViewer.js.map +1 -1
  204. package/dist/containers/Tenant/Query/QueryResult/constants.d.ts +3 -0
  205. package/dist/containers/Tenant/Query/QueryResult/constants.js +35 -0
  206. package/dist/containers/Tenant/Query/QueryResult/constants.js.map +1 -1
  207. package/dist/containers/Tenant/Query/i18n/en.json +5 -2
  208. package/dist/containers/Tenant/Query/i18n/index.d.ts +1 -1
  209. package/dist/containers/Tenant/Query/utils/isQueryCancelledError.d.ts +1 -1
  210. package/dist/containers/Tenant/Query/utils/isQueryCancelledError.js +1 -13
  211. package/dist/containers/Tenant/Query/utils/isQueryCancelledError.js.map +1 -1
  212. package/dist/containers/Tenant/TableFormDialog/TableFormDialog.d.ts +19 -0
  213. package/dist/containers/Tenant/TableFormDialog/TableFormDialog.js +225 -0
  214. package/dist/containers/Tenant/TableFormDialog/TableFormDialog.js.map +1 -0
  215. package/dist/containers/Tenant/TableFormDialog/TableFormDialog.scss +589 -0
  216. package/dist/containers/Tenant/TableFormDialog/columnValueValidation.d.ts +1 -0
  217. package/dist/containers/Tenant/TableFormDialog/columnValueValidation.js +179 -0
  218. package/dist/containers/Tenant/TableFormDialog/columnValueValidation.js.map +1 -0
  219. package/dist/containers/Tenant/TableFormDialog/components/ColumnSelectorField.d.ts +11 -0
  220. package/dist/containers/Tenant/TableFormDialog/components/ColumnSelectorField.js +84 -0
  221. package/dist/containers/Tenant/TableFormDialog/components/ColumnSelectorField.js.map +1 -0
  222. package/dist/containers/Tenant/TableFormDialog/components/ColumnSelectorField.scss +175 -0
  223. package/dist/containers/Tenant/TableFormDialog/components/RangeInputPicker.d.ts +19 -0
  224. package/dist/containers/Tenant/TableFormDialog/components/RangeInputPicker.js +115 -0
  225. package/dist/containers/Tenant/TableFormDialog/components/RangeInputPicker.js.map +1 -0
  226. package/dist/containers/Tenant/TableFormDialog/components/RangeInputPicker.scss +22 -0
  227. package/dist/containers/Tenant/TableFormDialog/components/layout.d.ts +15 -0
  228. package/dist/containers/Tenant/TableFormDialog/components/layout.js +32 -0
  229. package/dist/containers/Tenant/TableFormDialog/components/layout.js.map +1 -0
  230. package/dist/containers/Tenant/TableFormDialog/constants.d.ts +16 -0
  231. package/dist/containers/Tenant/TableFormDialog/constants.js +99 -0
  232. package/dist/containers/Tenant/TableFormDialog/constants.js.map +1 -0
  233. package/dist/containers/Tenant/TableFormDialog/i18n/en.json +143 -0
  234. package/dist/containers/Tenant/TableFormDialog/i18n/index.d.ts +2 -0
  235. package/dist/containers/Tenant/TableFormDialog/i18n/index.js +5 -0
  236. package/dist/containers/Tenant/TableFormDialog/i18n/index.js.map +1 -0
  237. package/dist/containers/Tenant/TableFormDialog/sections/GeneralSection.d.ts +8 -0
  238. package/dist/containers/Tenant/TableFormDialog/sections/GeneralSection.js +34 -0
  239. package/dist/containers/Tenant/TableFormDialog/sections/GeneralSection.js.map +1 -0
  240. package/dist/containers/Tenant/TableFormDialog/sections/PartitioningSection.d.ts +5 -0
  241. package/dist/containers/Tenant/TableFormDialog/sections/PartitioningSection.js +28 -0
  242. package/dist/containers/Tenant/TableFormDialog/sections/PartitioningSection.js.map +1 -0
  243. package/dist/containers/Tenant/TableFormDialog/sections/SettingsSection.d.ts +6 -0
  244. package/dist/containers/Tenant/TableFormDialog/sections/SettingsSection.js +141 -0
  245. package/dist/containers/Tenant/TableFormDialog/sections/SettingsSection.js.map +1 -0
  246. package/dist/containers/Tenant/TableFormDialog/sections/SplitPointDialog.d.ts +22 -0
  247. package/dist/containers/Tenant/TableFormDialog/sections/SplitPointDialog.js +97 -0
  248. package/dist/containers/Tenant/TableFormDialog/sections/SplitPointDialog.js.map +1 -0
  249. package/dist/containers/Tenant/TableFormDialog/sections/TTLSection.d.ts +6 -0
  250. package/dist/containers/Tenant/TableFormDialog/sections/TTLSection.js +70 -0
  251. package/dist/containers/Tenant/TableFormDialog/sections/TTLSection.js.map +1 -0
  252. package/dist/containers/Tenant/TableFormDialog/sections/YdbColumnsSection.d.ts +11 -0
  253. package/dist/containers/Tenant/TableFormDialog/sections/YdbColumnsSection.js +181 -0
  254. package/dist/containers/Tenant/TableFormDialog/sections/YdbColumnsSection.js.map +1 -0
  255. package/dist/containers/Tenant/TableFormDialog/sections/YdbIndexesSection.d.ts +1 -0
  256. package/dist/containers/Tenant/TableFormDialog/sections/YdbIndexesSection.js +42 -0
  257. package/dist/containers/Tenant/TableFormDialog/sections/YdbIndexesSection.js.map +1 -0
  258. package/dist/containers/Tenant/TableFormDialog/types.d.ts +26 -0
  259. package/dist/containers/Tenant/TableFormDialog/types.js +3 -0
  260. package/dist/containers/Tenant/TableFormDialog/types.js.map +1 -0
  261. package/dist/containers/Tenant/TableFormDialog/utils.d.ts +41 -0
  262. package/dist/containers/Tenant/TableFormDialog/utils.js +245 -0
  263. package/dist/containers/Tenant/TableFormDialog/utils.js.map +1 -0
  264. package/dist/containers/Tenant/TableFormDialog/validation.d.ts +8 -0
  265. package/dist/containers/Tenant/TableFormDialog/validation.js +308 -0
  266. package/dist/containers/Tenant/TableFormDialog/validation.js.map +1 -0
  267. package/dist/containers/Tenant/TopicFormDialog/TopicFormDialog.d.ts +19 -0
  268. package/dist/containers/Tenant/TopicFormDialog/TopicFormDialog.js +296 -0
  269. package/dist/containers/Tenant/TopicFormDialog/TopicFormDialog.js.map +1 -0
  270. package/dist/containers/Tenant/TopicFormDialog/TopicFormDialog.scss +182 -0
  271. package/dist/containers/Tenant/TopicFormDialog/i18n/en.json +51 -0
  272. package/dist/containers/Tenant/TopicFormDialog/i18n/index.d.ts +2 -0
  273. package/dist/containers/Tenant/TopicFormDialog/i18n/index.js +5 -0
  274. package/dist/containers/Tenant/TopicFormDialog/i18n/index.js.map +1 -0
  275. package/dist/containers/Tenant/TopicFormDialog/utils.d.ts +18 -0
  276. package/dist/containers/Tenant/TopicFormDialog/utils.js +100 -0
  277. package/dist/containers/Tenant/TopicFormDialog/utils.js.map +1 -0
  278. package/dist/containers/Tenant/TopicFormDialog/validation.d.ts +3 -0
  279. package/dist/containers/Tenant/TopicFormDialog/validation.js +88 -0
  280. package/dist/containers/Tenant/TopicFormDialog/validation.js.map +1 -0
  281. package/dist/containers/Tenant/i18n/en.json +5 -1
  282. package/dist/containers/Tenant/i18n/index.d.ts +1 -1
  283. package/dist/containers/Tenant/utils/pathSegmentValidation.d.ts +5 -0
  284. package/dist/containers/Tenant/utils/pathSegmentValidation.js +15 -0
  285. package/dist/containers/Tenant/utils/pathSegmentValidation.js.map +1 -0
  286. package/dist/containers/Tenant/utils/schemaActions.d.ts +4 -0
  287. package/dist/containers/Tenant/utils/schemaActions.js +103 -14
  288. package/dist/containers/Tenant/utils/schemaActions.js.map +1 -1
  289. package/dist/containers/VDiskPage/VDiskPage.js +3 -30
  290. package/dist/containers/VDiskPage/VDiskPage.js.map +1 -1
  291. package/dist/containers/VDiskPage/useVDiskQueryParams.d.ts +13 -0
  292. package/dist/containers/VDiskPage/useVDiskQueryParams.js +55 -0
  293. package/dist/containers/VDiskPage/useVDiskQueryParams.js.map +1 -0
  294. package/dist/store/reducers/pdisk/utils.js +4 -4
  295. package/dist/store/reducers/pdisk/utils.js.map +1 -1
  296. package/dist/store/reducers/query/api.d.ts +2 -1
  297. package/dist/store/reducers/query/api.js +107 -48
  298. package/dist/store/reducers/query/api.js.map +1 -1
  299. package/dist/store/reducers/query/parsers/preparePlanData.js +8 -1
  300. package/dist/store/reducers/query/parsers/preparePlanData.js.map +1 -1
  301. package/dist/store/reducers/query/slice.d.ts +8 -9
  302. package/dist/store/reducers/query/slice.js +5 -0
  303. package/dist/store/reducers/query/slice.js.map +1 -1
  304. package/dist/store/reducers/query/streaming/reducers.d.ts +3 -0
  305. package/dist/store/reducers/query/streaming/reducers.js +6 -6
  306. package/dist/store/reducers/query/streaming/reducers.js.map +1 -1
  307. package/dist/store/reducers/query/types.d.ts +8 -4
  308. package/dist/store/reducers/query/utils.d.ts +10 -2
  309. package/dist/store/reducers/query/utils.js +37 -6
  310. package/dist/store/reducers/query/utils.js.map +1 -1
  311. package/dist/store/reducers/storage/prepareGroupsDisks.d.ts +10 -3
  312. package/dist/store/reducers/storage/prepareGroupsDisks.js +43 -6
  313. package/dist/store/reducers/storage/prepareGroupsDisks.js.map +1 -1
  314. package/dist/store/reducers/storage/types.d.ts +1 -0
  315. package/dist/store/reducers/storage/utils.js +4 -7
  316. package/dist/store/reducers/storage/utils.js.map +1 -1
  317. package/dist/store/reducers/table/constants.d.ts +6 -0
  318. package/dist/store/reducers/table/constants.js +36 -0
  319. package/dist/store/reducers/table/constants.js.map +1 -0
  320. package/dist/store/reducers/table/table.d.ts +19 -0
  321. package/dist/store/reducers/table/table.js +104 -0
  322. package/dist/store/reducers/table/table.js.map +1 -0
  323. package/dist/store/reducers/table/types.d.ts +193 -0
  324. package/dist/store/reducers/table/types.js +12 -0
  325. package/dist/store/reducers/table/types.js.map +1 -0
  326. package/dist/store/reducers/table/utils.d.ts +17 -0
  327. package/dist/store/reducers/table/utils.js +485 -0
  328. package/dist/store/reducers/table/utils.js.map +1 -0
  329. package/dist/store/reducers/topic/topic.d.ts +1762 -0
  330. package/dist/store/reducers/topic/topic.js +172 -0
  331. package/dist/store/reducers/topic/topic.js.map +1 -0
  332. package/dist/store/reducers/topic/utils.d.ts +23 -0
  333. package/dist/store/reducers/topic/utils.js +75 -0
  334. package/dist/store/reducers/topic/utils.js.map +1 -0
  335. package/dist/types/api/pdisk.d.ts +6 -1
  336. package/dist/types/api/pdisk.js.map +1 -1
  337. package/dist/types/api/storage.d.ts +3 -1
  338. package/dist/types/api/storage.js.map +1 -1
  339. package/dist/types/api/topic.d.ts +18 -0
  340. package/dist/types/api/topic.js +8 -0
  341. package/dist/types/api/topic.js.map +1 -1
  342. package/dist/types/api/vdisk.d.ts +8 -0
  343. package/dist/types/api/vdisk.js.map +1 -1
  344. package/dist/uiFactory/types.d.ts +5 -0
  345. package/dist/uiFactory/uiFactory.d.ts +4 -1
  346. package/dist/uiFactory/uiFactory.js +8 -1
  347. package/dist/uiFactory/uiFactory.js.map +1 -1
  348. package/dist/utils/capacityAlerts.d.ts +1 -0
  349. package/dist/utils/capacityAlerts.js +3 -0
  350. package/dist/utils/capacityAlerts.js.map +1 -1
  351. package/dist/utils/constants.d.ts +1 -1
  352. package/dist/utils/constants.js +1 -1
  353. package/dist/utils/constants.js.map +1 -1
  354. package/dist/utils/disks/displayState.d.ts +5 -0
  355. package/dist/utils/disks/displayState.js.map +1 -1
  356. package/dist/utils/disks/iconCalculators.d.ts +1 -3
  357. package/dist/utils/disks/iconCalculators.js +5 -6
  358. package/dist/utils/disks/iconCalculators.js.map +1 -1
  359. package/dist/utils/disks/prepareDisks.d.ts +1 -1
  360. package/dist/utils/disks/prepareDisks.js +44 -3
  361. package/dist/utils/disks/prepareDisks.js.map +1 -1
  362. package/dist/utils/disks/severityCalculators.d.ts +1 -4
  363. package/dist/utils/disks/severityCalculators.js +2 -6
  364. package/dist/utils/disks/severityCalculators.js.map +1 -1
  365. package/dist/utils/disks/types.d.ts +8 -0
  366. package/dist/utils/emptyDataPlaceholder.d.ts +1 -0
  367. package/dist/utils/emptyDataPlaceholder.js +2 -0
  368. package/dist/utils/emptyDataPlaceholder.js.map +1 -0
  369. package/dist/utils/hooks/useSelectedColumns.d.ts +3 -0
  370. package/dist/utils/hooks/useSelectedColumns.js +18 -0
  371. package/dist/utils/hooks/useSelectedColumns.js.map +1 -1
  372. package/dist/utils/query.d.ts +4 -1
  373. package/dist/utils/query.js +34 -1
  374. package/dist/utils/query.js.map +1 -1
  375. package/dist/utils/storageMetrics.d.ts +5 -1
  376. package/dist/utils/storageMetrics.js +35 -4
  377. package/dist/utils/storageMetrics.js.map +1 -1
  378. package/dist/utils/utils.js +2 -1
  379. package/dist/utils/utils.js.map +1 -1
  380. package/package.json +1 -1
  381. package/dist/store/reducers/topic.d.ts +0 -1291
  382. package/dist/store/reducers/topic.js +0 -83
  383. package/dist/store/reducers/topic.js.map +0 -1
@@ -0,0 +1,41 @@
1
+ import type { SelectOption } from '@gravity-ui/uikit';
2
+ import { skipToken } from '@reduxjs/toolkit/query';
3
+ import type { SchemaPathParam } from '../../../types/api/common';
4
+ import type { TEvDescribeSchemeResult } from '../../../types/api/schema/schema';
5
+ import type { Column, ColumnField, FormMode, FormValues, OriginalTableInfo, TableType } from './types';
6
+ import { PartitionsType } from './types';
7
+ export declare function isValidTtlType(type: string | undefined): boolean;
8
+ export declare function isValidTtlNumType(type: string | undefined): boolean;
9
+ export declare function getAvailableTtlColumns(originalColumns?: Column[], formColumns?: Array<Pick<Column, 'name' | 'type'>>, deletedColumns?: Array<Pick<Column, 'name'>>): Pick<Column, "type" | "name">[];
10
+ export declare const epochModeOptions: SelectOption[];
11
+ export declare const lifetimeUnitOptions: SelectOption[];
12
+ export declare const ttlStatusOptions: {
13
+ value: string;
14
+ content: string;
15
+ }[];
16
+ export declare const partitionsTypeOptions: {
17
+ value: PartitionsType;
18
+ content: string;
19
+ }[];
20
+ export declare function generateColumnId(): string;
21
+ export declare function getInitialColumns(type: TableType): ColumnField[];
22
+ export declare function getCreateInitialValues(initialType?: TableType): FormValues;
23
+ export declare function getUpdateInitialValues(table: TEvDescribeSchemeResult): FormValues;
24
+ export declare function getTableQueryArgs({ mode, path, database, databaseFullPath, useMetaProxy, }: {
25
+ mode: FormMode;
26
+ path?: string;
27
+ database: string;
28
+ databaseFullPath: string;
29
+ useMetaProxy: boolean;
30
+ }): {
31
+ database: string;
32
+ path: SchemaPathParam;
33
+ } | typeof skipToken;
34
+ export declare function describeOriginalTable(table: TEvDescribeSchemeResult | undefined): OriginalTableInfo | undefined;
35
+ export declare function getNotNullDisabledMessage(column: ColumnField, keyNullable: boolean): string | undefined;
36
+ export declare function getAutoincrementDisabledMessage(column: ColumnField): string | undefined;
37
+ export declare function isSerialCompatible(type: string | undefined): boolean;
38
+ export declare function acceptIntegerInput(value: string): boolean;
39
+ export declare function formatOptionalIntegerInput(value?: number): string;
40
+ export declare function parseOptionalIntegerInput(value: string): number;
41
+ export declare function getColumnTypeDescription(type: string): string | undefined;
@@ -0,0 +1,245 @@
1
+ import { skipToken } from '@reduxjs/toolkit/query';
2
+ import { SERIAL_TYPES_MAP } from '../../../store/reducers/table/constants';
3
+ import { prepareFormValues } from '../../../store/reducers/table/utils';
4
+ import { EPathType } from '../../../types/api/schema/schema';
5
+ import { MAX_PARTITION_SIZE_MB } from './constants';
6
+ import i18n from './i18n';
7
+ import { PartitionsType } from './types';
8
+ const TTL_VALID_TYPES = new Set([
9
+ 'Date',
10
+ 'Date32',
11
+ 'Datetime',
12
+ 'Datetime64',
13
+ 'Timestamp',
14
+ 'Timestamp64',
15
+ 'Uint32',
16
+ 'Uint64',
17
+ ]);
18
+ const TTL_NUM_TYPES = new Set(['Uint32', 'Uint64']);
19
+ export function isValidTtlType(type) {
20
+ return Boolean(type && TTL_VALID_TYPES.has(type));
21
+ }
22
+ export function isValidTtlNumType(type) {
23
+ return Boolean(type && TTL_NUM_TYPES.has(type));
24
+ }
25
+ export function getAvailableTtlColumns(originalColumns = [], formColumns = [], deletedColumns = []) {
26
+ const deletedNames = new Set(deletedColumns.map(({ name }) => name));
27
+ return [...originalColumns, ...formColumns].filter(({ name, type }) => name && isValidTtlType(type) && !deletedNames.has(name));
28
+ }
29
+ export const epochModeOptions = [
30
+ { value: 'seconds', content: i18n('value_epoch-seconds') },
31
+ { value: 'milliseconds', content: i18n('value_epoch-milliseconds') },
32
+ { value: 'microseconds', content: i18n('value_epoch-microseconds') },
33
+ { value: 'nanoseconds', content: i18n('value_epoch-nanoseconds') },
34
+ ];
35
+ export const lifetimeUnitOptions = [
36
+ { value: 'seconds', content: i18n('value_seconds') },
37
+ { value: 'minutes', content: i18n('value_minutes') },
38
+ { value: 'hours', content: i18n('value_hours') },
39
+ { value: 'days', content: i18n('value_days') },
40
+ ];
41
+ export const ttlStatusOptions = [
42
+ { value: 'disabled', content: i18n('value_disabled') },
43
+ { value: 'enabled', content: i18n('value_enabled') },
44
+ ];
45
+ export const partitionsTypeOptions = [
46
+ { value: PartitionsType.None, content: i18n('value_partitions-none') },
47
+ { value: PartitionsType.Uniform, content: i18n('value_partitions-uniform') },
48
+ { value: PartitionsType.Explicit, content: i18n('value_partitions-explicit') },
49
+ ];
50
+ let columnIdCounter = 0;
51
+ export function generateColumnId() {
52
+ columnIdCounter += 1;
53
+ return `col_${Date.now().toString(36)}_${columnIdCounter}`;
54
+ }
55
+ export function getInitialColumns(type) {
56
+ return [
57
+ {
58
+ _id: generateColumnId(),
59
+ name: 'id',
60
+ type: 'Int64',
61
+ key: true,
62
+ notNull: type === 'column',
63
+ defaultValue: '',
64
+ withDefaultValue: false,
65
+ },
66
+ ];
67
+ }
68
+ export function getCreateInitialValues(initialType = 'row') {
69
+ var _a, _b;
70
+ const columns = getInitialColumns(initialType);
71
+ const firstName = (_b = (_a = columns[0]) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : '';
72
+ return {
73
+ name: '',
74
+ type: initialType,
75
+ columns,
76
+ secondaryIndexes: [],
77
+ deletedColumns: [],
78
+ partitionKey: firstName ? [firstName] : [],
79
+ partitionCount: 64,
80
+ settings: {
81
+ partitionsType: PartitionsType.None,
82
+ uniformPartitions: undefined,
83
+ partitionsAtKeys: [],
84
+ autoPartitionBySize: true,
85
+ autoPartitionByLoad: false,
86
+ autoPartitionBySizeMb: MAX_PARTITION_SIZE_MB,
87
+ keyBloomFilter: false,
88
+ ttl: { status: 'disabled' },
89
+ },
90
+ };
91
+ }
92
+ export function getUpdateInitialValues(table) {
93
+ return prepareFormValues(table);
94
+ }
95
+ export function getTableQueryArgs({ mode, path, database, databaseFullPath, useMetaProxy, }) {
96
+ if (mode !== 'update' || !path) {
97
+ return skipToken;
98
+ }
99
+ return {
100
+ database,
101
+ path: { path, databaseFullPath, useMetaProxy },
102
+ };
103
+ }
104
+ function getColumnDefaultValue(column) {
105
+ var _a;
106
+ const literalValue = (_a = column.DefaultFromLiteral) === null || _a === void 0 ? void 0 : _a.value;
107
+ if (literalValue) {
108
+ return Object.values(literalValue)[0];
109
+ }
110
+ if (typeof column.DefaultValue === 'string' ||
111
+ typeof column.DefaultValue === 'number' ||
112
+ typeof column.DefaultValue === 'boolean') {
113
+ return column.DefaultValue;
114
+ }
115
+ return undefined;
116
+ }
117
+ function describeColumn(column, keyColumnNames) {
118
+ var _a, _b, _c;
119
+ const name = (_a = column.Name) !== null && _a !== void 0 ? _a : '';
120
+ const keyOrder = keyColumnNames.indexOf(name);
121
+ return {
122
+ name,
123
+ type: (_b = column.Type) !== null && _b !== void 0 ? _b : '',
124
+ notNull: (_c = column.NotNull) !== null && _c !== void 0 ? _c : false,
125
+ key: keyOrder >= 0,
126
+ keyOrder: keyOrder >= 0 ? keyOrder : undefined,
127
+ autoincrement: Boolean(column.DefaultFromSequence),
128
+ defaultValue: getColumnDefaultValue(column),
129
+ };
130
+ }
131
+ function sortColumnsByKeyOrder(columns) {
132
+ const keys = columns.filter((c) => c.key);
133
+ const others = columns.filter((c) => !c.key);
134
+ keys.sort((a, b) => {
135
+ var _a, _b;
136
+ const ao = (_a = a.keyOrder) !== null && _a !== void 0 ? _a : 0;
137
+ const bo = (_b = b.keyOrder) !== null && _b !== void 0 ? _b : 0;
138
+ return ao - bo;
139
+ });
140
+ return [...keys, ...others];
141
+ }
142
+ export function describeOriginalTable(table) {
143
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y;
144
+ if (!table) {
145
+ return undefined;
146
+ }
147
+ const pathDesc = table.PathDescription;
148
+ const name = (_b = (_a = pathDesc === null || pathDesc === void 0 ? void 0 : pathDesc.Self) === null || _a === void 0 ? void 0 : _a.Name) !== null && _b !== void 0 ? _b : '';
149
+ const pathType = (_c = pathDesc === null || pathDesc === void 0 ? void 0 : pathDesc.Self) === null || _c === void 0 ? void 0 : _c.PathType;
150
+ if (pathType === EPathType.EPathTypeColumnTable && (pathDesc === null || pathDesc === void 0 ? void 0 : pathDesc.ColumnTableDescription)) {
151
+ const desc = pathDesc.ColumnTableDescription;
152
+ const keyColumnNames = (_e = (_d = desc.Schema) === null || _d === void 0 ? void 0 : _d.KeyColumnNames) !== null && _e !== void 0 ? _e : [];
153
+ const columns = sortColumnsByKeyOrder(((_g = (_f = desc.Schema) === null || _f === void 0 ? void 0 : _f.Columns) !== null && _g !== void 0 ? _g : []).map((col) => describeColumn(col, keyColumnNames)));
154
+ return {
155
+ name,
156
+ type: 'column',
157
+ columns,
158
+ partitionKey: (_k = (_j = (_h = desc.Sharding) === null || _h === void 0 ? void 0 : _h.HashSharding) === null || _j === void 0 ? void 0 : _j.Columns) !== null && _k !== void 0 ? _k : [],
159
+ indexes: [],
160
+ hasTtl: Boolean((_l = desc.TtlSettings) === null || _l === void 0 ? void 0 : _l.Enabled),
161
+ ttlColumn: (_o = (_m = desc.TtlSettings) === null || _m === void 0 ? void 0 : _m.Enabled) === null || _o === void 0 ? void 0 : _o.ColumnName,
162
+ hasMinPartitions: false,
163
+ hasMaxPartitions: false,
164
+ };
165
+ }
166
+ const desc = pathDesc === null || pathDesc === void 0 ? void 0 : pathDesc.Table;
167
+ const keyColumnNames = (_p = desc === null || desc === void 0 ? void 0 : desc.KeyColumnNames) !== null && _p !== void 0 ? _p : [];
168
+ const columns = sortColumnsByKeyOrder(((_q = desc === null || desc === void 0 ? void 0 : desc.Columns) !== null && _q !== void 0 ? _q : []).map((col) => describeColumn(col, keyColumnNames)));
169
+ const indexes = ((_r = desc === null || desc === void 0 ? void 0 : desc.TableIndexes) !== null && _r !== void 0 ? _r : []).map((idx) => {
170
+ var _a, _b, _c;
171
+ return ({
172
+ name: (_a = idx.Name) !== null && _a !== void 0 ? _a : '',
173
+ columns: [...((_b = idx.KeyColumnNames) !== null && _b !== void 0 ? _b : []), ...((_c = idx.DataColumnNames) !== null && _c !== void 0 ? _c : [])],
174
+ });
175
+ });
176
+ return {
177
+ name,
178
+ type: 'row',
179
+ columns,
180
+ partitionKey: [],
181
+ indexes,
182
+ hasTtl: Boolean((_s = desc === null || desc === void 0 ? void 0 : desc.TTLSettings) === null || _s === void 0 ? void 0 : _s.Enabled),
183
+ ttlColumn: (_u = (_t = desc === null || desc === void 0 ? void 0 : desc.TTLSettings) === null || _t === void 0 ? void 0 : _t.Enabled) === null || _u === void 0 ? void 0 : _u.ColumnName,
184
+ hasMinPartitions: typeof ((_w = (_v = desc === null || desc === void 0 ? void 0 : desc.PartitionConfig) === null || _v === void 0 ? void 0 : _v.PartitioningPolicy) === null || _w === void 0 ? void 0 : _w.MinPartitionsCount) !== 'undefined',
185
+ hasMaxPartitions: typeof ((_y = (_x = desc === null || desc === void 0 ? void 0 : desc.PartitionConfig) === null || _x === void 0 ? void 0 : _x.PartitioningPolicy) === null || _y === void 0 ? void 0 : _y.MaxPartitionsCount) !== 'undefined',
186
+ };
187
+ }
188
+ export function getNotNullDisabledMessage(column, keyNullable) {
189
+ if (!keyNullable && column.key) {
190
+ return i18n('label_not-null-note-key');
191
+ }
192
+ if (column.autoincrement) {
193
+ return i18n('label_not-null-note-autoincrement');
194
+ }
195
+ return undefined;
196
+ }
197
+ export function getAutoincrementDisabledMessage(column) {
198
+ if (!column.key || (column.type && !Object.keys(SERIAL_TYPES_MAP).includes(column.type))) {
199
+ return i18n('label_autoincrement-note-type');
200
+ }
201
+ return undefined;
202
+ }
203
+ export function isSerialCompatible(type) {
204
+ return Boolean(type && Object.keys(SERIAL_TYPES_MAP).includes(type));
205
+ }
206
+ export function acceptIntegerInput(value) {
207
+ return value === '' || /^(0|[1-9][0-9]*)$/.test(value);
208
+ }
209
+ export function formatOptionalIntegerInput(value) {
210
+ return value === undefined || Number.isNaN(value) ? '' : String(value);
211
+ }
212
+ export function parseOptionalIntegerInput(value) {
213
+ return value === '' ? Number.NaN : Number(value);
214
+ }
215
+ const columnTypeDescriptions = {
216
+ Bool: i18n('context_type-bool'),
217
+ Int8: i18n('context_type-int8'),
218
+ Int16: i18n('context_type-int16'),
219
+ Int32: i18n('context_type-int32'),
220
+ Int64: i18n('context_type-int64'),
221
+ Uint8: i18n('context_type-uint8'),
222
+ Uint16: i18n('context_type-uint16'),
223
+ Uint32: i18n('context_type-uint32'),
224
+ Uint64: i18n('context_type-uint64'),
225
+ 'Decimal(22,9)': i18n('context_type-decimal22-9'),
226
+ Float: i18n('context_type-float'),
227
+ Double: i18n('context_type-double'),
228
+ String: i18n('context_type-string'),
229
+ Utf8: i18n('context_type-utf8'),
230
+ Json: i18n('context_type-json'),
231
+ JsonDocument: i18n('context_type-jsondocument'),
232
+ Date: i18n('context_type-date'),
233
+ Date32: i18n('context_type-date'),
234
+ Datetime: i18n('context_type-datetime'),
235
+ Datetime64: i18n('context_type-datetime'),
236
+ Timestamp: i18n('context_type-timestamp'),
237
+ Timestamp64: i18n('context_type-timestamp'),
238
+ Interval: i18n('context_type-interval'),
239
+ Interval64: i18n('context_type-interval'),
240
+ Uuid: i18n('context_type-uuid'),
241
+ };
242
+ export function getColumnTypeDescription(type) {
243
+ return columnTypeDescriptions[type];
244
+ }
245
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/containers/Tenant/TableFormDialog/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,SAAS,EAAC,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAAC,gBAAgB,EAAC,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAC,iBAAiB,EAAC,MAAM,qCAAqC,CAAC;AAGtE,OAAO,EAAC,SAAS,EAAC,MAAM,kCAAkC,CAAC;AAG3D,OAAO,EAAC,qBAAqB,EAAC,MAAM,aAAa,CAAC;AAClD,OAAO,IAAI,MAAM,QAAQ,CAAC;AAS1B,OAAO,EAAC,cAAc,EAAC,MAAM,SAAS,CAAC;AAEvC,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IAC5B,MAAM;IACN,QAAQ;IACR,UAAU;IACV,YAAY;IACZ,WAAW;IACX,aAAa;IACb,QAAQ;IACR,QAAQ;CACX,CAAC,CAAC;AAEH,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AAEpD,MAAM,UAAU,cAAc,CAAC,IAAwB;IACnD,OAAO,OAAO,CAAC,IAAI,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAwB;IACtD,OAAO,OAAO,CAAC,IAAI,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,sBAAsB,CAClC,kBAA4B,EAAE,EAC9B,cAAoD,EAAE,EACtD,iBAA8C,EAAE;IAEhD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEnE,OAAO,CAAC,GAAG,eAAe,EAAE,GAAG,WAAW,CAAC,CAAC,MAAM,CAC9C,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,EAAE,EAAE,CAAC,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAC5E,CAAC;AACN,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAmB;IAC5C,EAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,qBAAqB,CAAC,EAAC;IACxD,EAAC,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,CAAC,0BAA0B,CAAC,EAAC;IAClE,EAAC,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,CAAC,0BAA0B,CAAC,EAAC;IAClE,EAAC,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,CAAC,yBAAyB,CAAC,EAAC;CACnE,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAmB;IAC/C,EAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,EAAC;IAClD,EAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,EAAC;IAClD,EAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,EAAC;IAC9C,EAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,EAAC;CAC/C,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC5B,EAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAAC;IACpD,EAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,EAAC;CACrD,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACjC,EAAC,KAAK,EAAE,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,uBAAuB,CAAC,EAAC;IACpE,EAAC,KAAK,EAAE,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,0BAA0B,CAAC,EAAC;IAC1E,EAAC,KAAK,EAAE,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,2BAA2B,CAAC,EAAC;CAC/E,CAAC;AAEF,IAAI,eAAe,GAAG,CAAC,CAAC;AACxB,MAAM,UAAU,gBAAgB;IAC5B,eAAe,IAAI,CAAC,CAAC;IACrB,OAAO,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,eAAe,EAAE,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAe;IAC7C,OAAO;QACH;YACI,GAAG,EAAE,gBAAgB,EAAE;YACvB,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,OAAO;YACb,GAAG,EAAE,IAAI;YACT,OAAO,EAAE,IAAI,KAAK,QAAQ;YAC1B,YAAY,EAAE,EAAE;YAChB,gBAAgB,EAAE,KAAK;SAC1B;KACJ,CAAC;AACN,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,cAAyB,KAAK;;IACjE,MAAM,OAAO,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,MAAA,MAAA,OAAO,CAAC,CAAC,CAAC,0CAAE,IAAI,mCAAI,EAAE,CAAC;IAEzC,OAAO;QACH,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,WAAW;QACjB,OAAO;QACP,gBAAgB,EAAE,EAAE;QACpB,cAAc,EAAE,EAAE;QAClB,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;QAC1C,cAAc,EAAE,EAAE;QAClB,QAAQ,EAAE;YACN,cAAc,EAAE,cAAc,CAAC,IAAI;YACnC,iBAAiB,EAAE,SAAS;YAC5B,gBAAgB,EAAE,EAAE;YACpB,mBAAmB,EAAE,IAAI;YACzB,mBAAmB,EAAE,KAAK;YAC1B,qBAAqB,EAAE,qBAAqB;YAC5C,cAAc,EAAE,KAAK;YACrB,GAAG,EAAE,EAAC,MAAM,EAAE,UAAU,EAAC;SAC5B;KACJ,CAAC;AACN,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAA8B;IACjE,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,EAC9B,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,gBAAgB,EAChB,YAAY,GAOf;IACG,IAAI,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAC7B,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,OAAO;QACH,QAAQ;QACR,IAAI,EAAE,EAAC,IAAI,EAAE,gBAAgB,EAAE,YAAY,EAAC;KAC/C,CAAC;AACN,CAAC;AAUD,SAAS,qBAAqB,CAAC,MAAuB;;IAClD,MAAM,YAAY,GAAG,MAAA,MAAM,CAAC,kBAAkB,0CAAE,KAAK,CAAC;IACtD,IAAI,YAAY,EAAE,CAAC;QACf,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAA8B,CAAC;IACvE,CAAC;IAED,IACI,OAAO,MAAM,CAAC,YAAY,KAAK,QAAQ;QACvC,OAAO,MAAM,CAAC,YAAY,KAAK,QAAQ;QACvC,OAAO,MAAM,CAAC,YAAY,KAAK,SAAS,EAC1C,CAAC;QACC,OAAO,MAAM,CAAC,YAAY,CAAC;IAC/B,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,SAAS,cAAc,CAAC,MAAuB,EAAE,cAAwB;;IACrE,MAAM,IAAI,GAAG,MAAA,MAAM,CAAC,IAAI,mCAAI,EAAE,CAAC;IAC/B,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9C,OAAO;QACH,IAAI;QACJ,IAAI,EAAE,MAAA,MAAM,CAAC,IAAI,mCAAI,EAAE;QACvB,OAAO,EAAE,MAAA,MAAM,CAAC,OAAO,mCAAI,KAAK;QAChC,GAAG,EAAE,QAAQ,IAAI,CAAC;QAClB,QAAQ,EAAE,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;QAC9C,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC;QAClD,YAAY,EAAE,qBAAqB,CAAC,MAAM,CAAC;KAC9C,CAAC;AACN,CAAC;AAED,SAAS,qBAAqB,CAA+C,OAAY;IACrF,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC7C,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;;QACf,MAAM,EAAE,GAAG,MAAA,CAAC,CAAC,QAAQ,mCAAI,CAAC,CAAC;QAC3B,MAAM,EAAE,GAAG,MAAA,CAAC,CAAC,QAAQ,mCAAI,CAAC,CAAC;QAC3B,OAAO,EAAE,GAAG,EAAE,CAAC;IACnB,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,qBAAqB,CACjC,KAA0C;;IAE1C,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,MAAM,QAAQ,GAAG,KAAK,CAAC,eAAe,CAAC;IACvC,MAAM,IAAI,GAAG,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,IAAI,mCAAI,EAAE,CAAC;IACxC,MAAM,QAAQ,GAAG,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,QAAQ,CAAC;IAE1C,IAAI,QAAQ,KAAK,SAAS,CAAC,oBAAoB,KAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,sBAAsB,CAAA,EAAE,CAAC;QAClF,MAAM,IAAI,GAAG,QAAQ,CAAC,sBAAsB,CAAC;QAC7C,MAAM,cAAc,GAAG,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,cAAc,mCAAI,EAAE,CAAC;QACzD,MAAM,OAAO,GAAG,qBAAqB,CACjC,CAAC,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,OAAO,mCAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CACjF,CAAC;QACF,OAAO;YACH,IAAI;YACJ,IAAI,EAAE,QAAQ;YACd,OAAO;YACP,YAAY,EAAE,MAAA,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,YAAY,0CAAE,OAAO,mCAAI,EAAE;YACxD,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,OAAO,CAAC,MAAA,IAAI,CAAC,WAAW,0CAAE,OAAO,CAAC;YAC1C,SAAS,EAAE,MAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,OAAO,0CAAE,UAAU;YAChD,gBAAgB,EAAE,KAAK;YACvB,gBAAgB,EAAE,KAAK;SAC1B,CAAC;IACN,CAAC;IAED,MAAM,IAAI,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,CAAC;IAC7B,MAAM,cAAc,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,cAAc,mCAAI,EAAE,CAAC;IAClD,MAAM,OAAO,GAAG,qBAAqB,CACjC,CAAC,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,mCAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAC1E,CAAC;IAEF,MAAM,OAAO,GAAG,CAAC,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY,mCAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;;QAAC,OAAA,CAAC;YACrD,IAAI,EAAE,MAAA,GAAG,CAAC,IAAI,mCAAI,EAAE;YACpB,OAAO,EAAE,CAAC,GAAG,CAAC,MAAA,GAAG,CAAC,cAAc,mCAAI,EAAE,CAAC,EAAE,GAAG,CAAC,MAAA,GAAG,CAAC,eAAe,mCAAI,EAAE,CAAC,CAAC;SAC3E,CAAC,CAAA;KAAA,CAAC,CAAC;IAEJ,OAAO;QACH,IAAI;QACJ,IAAI,EAAE,KAAK;QACX,OAAO;QACP,YAAY,EAAE,EAAE;QAChB,OAAO;QACP,MAAM,EAAE,OAAO,CAAC,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,0CAAE,OAAO,CAAC;QAC3C,SAAS,EAAE,MAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,0CAAE,OAAO,0CAAE,UAAU;QACjD,gBAAgB,EACZ,OAAO,CAAA,MAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,eAAe,0CAAE,kBAAkB,0CAAE,kBAAkB,CAAA,KAAK,WAAW;QACxF,gBAAgB,EACZ,OAAO,CAAA,MAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,eAAe,0CAAE,kBAAkB,0CAAE,kBAAkB,CAAA,KAAK,WAAW;KAC3F,CAAC;AACN,CAAC;AAED,MAAM,UAAU,yBAAyB,CACrC,MAAmB,EACnB,WAAoB;IAEpB,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,yBAAyB,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC,mCAAmC,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,MAAmB;IAC/D,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QACvF,OAAO,IAAI,CAAC,+BAA+B,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAwB;IACvD,OAAO,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC5C,OAAO,KAAK,KAAK,EAAE,IAAI,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,KAAc;IACrD,OAAO,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,KAAa;IACnD,OAAO,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,sBAAsB,GAA2B;IACnD,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC;IAC/B,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC;IAC/B,KAAK,EAAE,IAAI,CAAC,oBAAoB,CAAC;IACjC,KAAK,EAAE,IAAI,CAAC,oBAAoB,CAAC;IACjC,KAAK,EAAE,IAAI,CAAC,oBAAoB,CAAC;IACjC,KAAK,EAAE,IAAI,CAAC,oBAAoB,CAAC;IACjC,MAAM,EAAE,IAAI,CAAC,qBAAqB,CAAC;IACnC,MAAM,EAAE,IAAI,CAAC,qBAAqB,CAAC;IACnC,MAAM,EAAE,IAAI,CAAC,qBAAqB,CAAC;IACnC,eAAe,EAAE,IAAI,CAAC,0BAA0B,CAAC;IACjD,KAAK,EAAE,IAAI,CAAC,oBAAoB,CAAC;IACjC,MAAM,EAAE,IAAI,CAAC,qBAAqB,CAAC;IACnC,MAAM,EAAE,IAAI,CAAC,qBAAqB,CAAC;IACnC,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC;IAC/B,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC;IAC/B,YAAY,EAAE,IAAI,CAAC,2BAA2B,CAAC;IAC/C,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC;IAC/B,MAAM,EAAE,IAAI,CAAC,mBAAmB,CAAC;IACjC,QAAQ,EAAE,IAAI,CAAC,uBAAuB,CAAC;IACvC,UAAU,EAAE,IAAI,CAAC,uBAAuB,CAAC;IACzC,SAAS,EAAE,IAAI,CAAC,wBAAwB,CAAC;IACzC,WAAW,EAAE,IAAI,CAAC,wBAAwB,CAAC;IAC3C,QAAQ,EAAE,IAAI,CAAC,uBAAuB,CAAC;IACvC,UAAU,EAAE,IAAI,CAAC,uBAAuB,CAAC;IACzC,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC;CAClC,CAAC;AAEF,MAAM,UAAU,wBAAwB,CAAC,IAAY;IACjD,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAC;AACxC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { z } from 'zod';
2
+ import type { FormMode, FormValues, OriginalTableInfo } from './types';
3
+ interface SchemaContext {
4
+ mode: FormMode;
5
+ originalInfo?: OriginalTableInfo;
6
+ }
7
+ export declare function buildTableValidationSchema({ mode, originalInfo, }: SchemaContext): z.ZodType<FormValues, FormValues>;
8
+ export {};
@@ -0,0 +1,308 @@
1
+ import { z } from 'zod';
2
+ import { isValidEntityPath, isValidEntityPathSegment } from '../utils/pathSegmentValidation';
3
+ import { isValueForTypeValid } from './columnValueValidation';
4
+ import { COLUMN_NAME_REG_EXP, ENTITY_NAME_REG_EXP, MAX_COLUMN_PARTITION_COUNT, MAX_PARTITIONS_COUNT, MIN_COLUMN_PARTITION_COUNT, MIN_PARTITIONS_COUNT, } from './constants';
5
+ import i18n from './i18n';
6
+ import { PartitionsType } from './types';
7
+ import { getAvailableTtlColumns, isValidTtlNumType } from './utils';
8
+ const UNIFORM_PARTITION_KEY_TYPES = new Set(['Uint32', 'Uint64']);
9
+ const addIssue = (ctx, path, message) => {
10
+ ctx.addIssue({
11
+ code: z.ZodIssueCode.custom,
12
+ path,
13
+ message,
14
+ });
15
+ };
16
+ const baseSchema = z
17
+ .object({
18
+ name: z.string(),
19
+ type: z.union([z.literal('row'), z.literal('column')]),
20
+ columns: z.array(z.any()),
21
+ secondaryIndexes: z.array(z.any()),
22
+ deletedColumns: z.array(z.any()),
23
+ partitionKey: z.array(z.string()),
24
+ partitionCount: z.number().or(z.nan()).optional(),
25
+ settings: z.any(),
26
+ })
27
+ .passthrough();
28
+ function validateName(data, ctx, mode) {
29
+ if (!data.name) {
30
+ addIssue(ctx, ['name'], i18n('error_required'));
31
+ return;
32
+ }
33
+ const hasPathSegments = mode === 'create' || data.type === 'row';
34
+ const isValidName = hasPathSegments
35
+ ? isValidEntityPath(data.name, {
36
+ allowLeadingSlash: mode === 'update' && data.type === 'row',
37
+ })
38
+ : isValidEntityPathSegment(data.name);
39
+ if (!isValidName) {
40
+ addIssue(ctx, ['name'], hasPathSegments ? i18n('error_name-path-pattern') : i18n('error_name-segment-pattern'));
41
+ }
42
+ }
43
+ function validateColumns(data, ctx, mode) {
44
+ if (data.type !== 'row' && data.type !== 'column') {
45
+ return;
46
+ }
47
+ data.columns.forEach((column, index) => {
48
+ if (!column.name) {
49
+ addIssue(ctx, ['columns', index, 'name'], i18n('error_required'));
50
+ }
51
+ else if (!COLUMN_NAME_REG_EXP.test(column.name)) {
52
+ addIssue(ctx, ['columns', index, 'name'], i18n('error_column-name-pattern'));
53
+ }
54
+ if (!column.type) {
55
+ addIssue(ctx, ['columns', index, 'type'], i18n('error_required'));
56
+ }
57
+ });
58
+ if (mode === 'create' && data.columns.length === 0) {
59
+ addIssue(ctx, ['columns'], i18n('error_columns-empty'));
60
+ }
61
+ }
62
+ function isDefaultValueValid(value, type) {
63
+ return isValueForTypeValid(value, type);
64
+ }
65
+ function validateColumnDefaults(data, ctx, mode) {
66
+ if (mode !== 'create') {
67
+ return;
68
+ }
69
+ data.columns.forEach((column, index) => {
70
+ if (!column.withDefaultValue || column.key || column.autoincrement || !column.type) {
71
+ return;
72
+ }
73
+ const value = column.defaultValue === undefined ? '' : String(column.defaultValue);
74
+ if (!isDefaultValueValid(value, column.type)) {
75
+ addIssue(ctx, ['columns', index, 'defaultValue'], i18n('error_value-invalid'));
76
+ }
77
+ });
78
+ }
79
+ function validateDuplicateColumns(data, ctx, originalInfo) {
80
+ var _a;
81
+ const existingColumns = new Set((_a = originalInfo === null || originalInfo === void 0 ? void 0 : originalInfo.columns.map(({ name }) => name)) !== null && _a !== void 0 ? _a : []);
82
+ data.deletedColumns.forEach(({ name }) => existingColumns.delete(name));
83
+ const duplicatedIndexes = new Set();
84
+ const newColumnsByName = new Map();
85
+ data.columns.forEach(({ name }, index) => {
86
+ if (!name) {
87
+ return;
88
+ }
89
+ if (existingColumns.has(name)) {
90
+ duplicatedIndexes.add(index);
91
+ }
92
+ const indexes = newColumnsByName.get(name);
93
+ if (indexes) {
94
+ indexes.push(index);
95
+ duplicatedIndexes.add(index);
96
+ indexes.forEach((duplicateIndex) => duplicatedIndexes.add(duplicateIndex));
97
+ return;
98
+ }
99
+ newColumnsByName.set(name, [index]);
100
+ });
101
+ duplicatedIndexes.forEach((index) => {
102
+ addIssue(ctx, ['columns', index, 'name'], i18n('error_column-name-duplicate'));
103
+ });
104
+ }
105
+ function validatePrimaryKey(data, ctx, mode) {
106
+ if (mode !== 'create' || data.columns.length === 0) {
107
+ return;
108
+ }
109
+ if (!data.columns.some((column) => Boolean(column.key))) {
110
+ addIssue(ctx, ['columns'], i18n('error_primary-key-required'));
111
+ }
112
+ }
113
+ function validateSecondaryIndexes(data, ctx, originalInfo) {
114
+ var _a, _b;
115
+ if (data.type !== 'row') {
116
+ return;
117
+ }
118
+ const allColumns = new Set([
119
+ ...((_a = originalInfo === null || originalInfo === void 0 ? void 0 : originalInfo.columns.map(({ name }) => name)) !== null && _a !== void 0 ? _a : []),
120
+ ...data.columns.map(({ name }) => name),
121
+ ]);
122
+ data.deletedColumns.forEach((column) => allColumns.delete(column.name));
123
+ const duplicatedIndexes = new Set();
124
+ const indexNames = new Map();
125
+ data.secondaryIndexes.forEach((index, i) => {
126
+ if (index.name) {
127
+ if (ENTITY_NAME_REG_EXP.test(index.name)) {
128
+ const indexes = indexNames.get(index.name);
129
+ if (indexes) {
130
+ indexes.push(i);
131
+ duplicatedIndexes.add(i);
132
+ indexes.forEach((duplicateIndex) => duplicatedIndexes.add(duplicateIndex));
133
+ }
134
+ else {
135
+ indexNames.set(index.name, [i]);
136
+ }
137
+ }
138
+ else {
139
+ addIssue(ctx, ['secondaryIndexes', i, 'name'], i18n('error_name-pattern'));
140
+ }
141
+ }
142
+ else {
143
+ addIssue(ctx, ['secondaryIndexes', i, 'name'], i18n('error_required'));
144
+ }
145
+ if (!index.key || index.key.length === 0) {
146
+ addIssue(ctx, ['secondaryIndexes', i, 'key'], i18n('error_required'));
147
+ }
148
+ else if (!index.key.every((column) => allColumns.has(column))) {
149
+ addIssue(ctx, ['secondaryIndexes', i, 'key'], i18n('error_indexes-key'));
150
+ }
151
+ });
152
+ duplicatedIndexes.forEach((index) => {
153
+ addIssue(ctx, ['secondaryIndexes', index, 'name'], i18n('error_index-name-duplicate'));
154
+ });
155
+ const originalIndexedColumns = new Set((_b = originalInfo === null || originalInfo === void 0 ? void 0 : originalInfo.indexes.flatMap((index) => index.columns)) !== null && _b !== void 0 ? _b : []);
156
+ if (data.deletedColumns.some((column) => originalIndexedColumns.has(column.name))) {
157
+ addIssue(ctx, ['columns'], i18n('error_indexes-delete-column'));
158
+ }
159
+ }
160
+ function validatePartitioning(data, ctx, mode) {
161
+ if (data.type !== 'column' || mode !== 'create') {
162
+ return;
163
+ }
164
+ if (!data.partitionKey || data.partitionKey.length === 0) {
165
+ addIssue(ctx, ['partitionKey'], i18n('error_required'));
166
+ }
167
+ const count = Number(data.partitionCount);
168
+ if (!Number.isFinite(count) ||
169
+ count < MIN_COLUMN_PARTITION_COUNT ||
170
+ count > MAX_COLUMN_PARTITION_COUNT) {
171
+ addIssue(ctx, ['partitionCount'], i18n('error_partition-count-range'));
172
+ }
173
+ }
174
+ function validateTtl(data, ctx, originalInfo) {
175
+ var _a;
176
+ const ttl = (_a = data.settings) === null || _a === void 0 ? void 0 : _a.ttl;
177
+ if (!ttl || ttl.status === 'disabled') {
178
+ return;
179
+ }
180
+ const selectedTtlColumn = getAvailableTtlColumns(originalInfo === null || originalInfo === void 0 ? void 0 : originalInfo.columns, data.columns, data.deletedColumns).find(({ name }) => name === ttl.column);
181
+ if (!ttl.column) {
182
+ addIssue(ctx, ['settings', 'ttl', 'column'], i18n('error_required'));
183
+ }
184
+ if (ttl.column && !selectedTtlColumn) {
185
+ addIssue(ctx, ['settings', 'ttl', 'column'], i18n('error_ttl-column-invalid'));
186
+ }
187
+ if (selectedTtlColumn && isValidTtlNumType(selectedTtlColumn.type) && !ttl.epochMode) {
188
+ addIssue(ctx, ['settings', 'ttl', 'epochMode'], i18n('error_required'));
189
+ }
190
+ if (ttl.lifetime === undefined || ttl.lifetime === null || Number.isNaN(ttl.lifetime)) {
191
+ addIssue(ctx, ['settings', 'ttl', 'lifetime'], i18n('error_required'));
192
+ }
193
+ }
194
+ function validatePartitionsAtKeys(data, ctx) {
195
+ const settings = data.settings;
196
+ if (!settings || settings.partitionsType !== PartitionsType.Explicit) {
197
+ return;
198
+ }
199
+ const partitionsAtKeys = settings.partitionsAtKeys;
200
+ if (!partitionsAtKeys || partitionsAtKeys.length === 0) {
201
+ return;
202
+ }
203
+ const pkColumns = data.columns.filter(({ key }) => Boolean(key));
204
+ const pkColumnCount = pkColumns.length;
205
+ const allHaveLengthOne = partitionsAtKeys.every((point) => point.length === 1 && point.every((p) => Boolean(p.value)));
206
+ const allHaveLengthPk = partitionsAtKeys.every((point) => point.length === pkColumnCount && point.every((p) => Boolean(p.value)));
207
+ if (!allHaveLengthOne && !allHaveLengthPk) {
208
+ addIssue(ctx, ['settings', 'partitionsAtKeys'], i18n('error_partitions-at-keys-invalid'));
209
+ return;
210
+ }
211
+ const matchesCurrentPrimaryKey = partitionsAtKeys.every((point) => {
212
+ const currentColumns = point.length === 1 ? pkColumns.slice(0, 1) : pkColumns;
213
+ return point.every((column, index) => {
214
+ const currentColumn = currentColumns[index];
215
+ return (Boolean(currentColumn) &&
216
+ Boolean(column.value) &&
217
+ column.name === currentColumn.name &&
218
+ column.type === currentColumn.type &&
219
+ isValueForTypeValid(String(column.value), currentColumn.type));
220
+ });
221
+ });
222
+ if (!matchesCurrentPrimaryKey) {
223
+ addIssue(ctx, ['settings', 'partitionsAtKeys'], i18n('error_partitions-at-keys-invalid'));
224
+ }
225
+ }
226
+ function validateOptionalPartitionsCount(ctx, path, value, isRequired) {
227
+ if (!isRequired && value === undefined) {
228
+ return;
229
+ }
230
+ if (value === undefined) {
231
+ addIssue(ctx, ['settings', path], i18n('error_required'));
232
+ return;
233
+ }
234
+ const parsedValue = Number(value);
235
+ if (Number.isNaN(parsedValue)) {
236
+ if (isRequired) {
237
+ addIssue(ctx, ['settings', path], i18n('error_required'));
238
+ }
239
+ return;
240
+ }
241
+ if (parsedValue < MIN_PARTITIONS_COUNT || parsedValue > MAX_PARTITIONS_COUNT) {
242
+ addIssue(ctx, ['settings', path], i18n('error_partitions-count'));
243
+ }
244
+ }
245
+ function validateAutoPartitionRange(data, ctx) {
246
+ const { autoPartitionMinPartitions, autoPartitionMaxPartitions } = data.settings;
247
+ if (typeof autoPartitionMinPartitions !== 'number' ||
248
+ Number.isNaN(autoPartitionMinPartitions) ||
249
+ typeof autoPartitionMaxPartitions !== 'number' ||
250
+ Number.isNaN(autoPartitionMaxPartitions)) {
251
+ return;
252
+ }
253
+ if (autoPartitionMinPartitions > autoPartitionMaxPartitions) {
254
+ addIssue(ctx, ['settings', 'autoPartitionMinPartitions'], i18n('error_minimum-greater-maximum'));
255
+ addIssue(ctx, ['settings', 'autoPartitionMaxPartitions'], i18n('error_maximum-less-minimum'));
256
+ }
257
+ }
258
+ function validateRowSettings(data, ctx, mode, originalInfo) {
259
+ const settings = data.settings;
260
+ if (!settings) {
261
+ return;
262
+ }
263
+ if (mode === 'create') {
264
+ if (settings.partitionsType === PartitionsType.Uniform) {
265
+ const value = Number(settings.uniformPartitions);
266
+ const firstKeyColumn = data.columns.find((column) => Boolean(column.key));
267
+ if (settings.uniformPartitions === undefined || Number.isNaN(value)) {
268
+ addIssue(ctx, ['settings', 'uniformPartitions'], i18n('error_required'));
269
+ }
270
+ else if (value < MIN_PARTITIONS_COUNT || value > MAX_PARTITIONS_COUNT) {
271
+ addIssue(ctx, ['settings', 'uniformPartitions'], i18n('error_partitions-count'));
272
+ }
273
+ else if (!firstKeyColumn || !UNIFORM_PARTITION_KEY_TYPES.has(firstKeyColumn.type)) {
274
+ addIssue(ctx, ['settings', 'uniformPartitions'], i18n('error_uniform-partitions-first-key-type'));
275
+ }
276
+ }
277
+ validatePartitionsAtKeys(data, ctx);
278
+ }
279
+ validateOptionalPartitionsCount(ctx, 'autoPartitionMinPartitions', settings.autoPartitionMinPartitions, originalInfo === null || originalInfo === void 0 ? void 0 : originalInfo.hasMinPartitions);
280
+ validateOptionalPartitionsCount(ctx, 'autoPartitionMaxPartitions', settings.autoPartitionMaxPartitions, originalInfo === null || originalInfo === void 0 ? void 0 : originalInfo.hasMaxPartitions);
281
+ validateAutoPartitionRange(data, ctx);
282
+ }
283
+ function validateSettings(data, ctx, mode, originalInfo) {
284
+ const settings = data.settings;
285
+ if (!settings) {
286
+ return;
287
+ }
288
+ if (data.type !== 'row') {
289
+ validateTtl(data, ctx, originalInfo);
290
+ return;
291
+ }
292
+ validateRowSettings(data, ctx, mode, originalInfo);
293
+ validateTtl(data, ctx, originalInfo);
294
+ }
295
+ export function buildTableValidationSchema({ mode, originalInfo, }) {
296
+ return baseSchema.superRefine((raw, ctx) => {
297
+ const data = raw;
298
+ validateName(data, ctx, mode);
299
+ validateColumns(data, ctx, mode);
300
+ validateColumnDefaults(data, ctx, mode);
301
+ validateDuplicateColumns(data, ctx, originalInfo);
302
+ validatePrimaryKey(data, ctx, mode);
303
+ validateSecondaryIndexes(data, ctx, originalInfo);
304
+ validatePartitioning(data, ctx, mode);
305
+ validateSettings(data, ctx, mode, originalInfo);
306
+ });
307
+ }
308
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../../src/containers/Tenant/TableFormDialog/validation.ts"],"names":[],"mappings":"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"}