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.
- package/README.md +5 -4
- package/dist/components/ConfirmationDialog/ConfirmationDialog.d.ts +1 -0
- package/dist/components/ConfirmationDialog/ConfirmationDialog.js +3 -2
- package/dist/components/ConfirmationDialog/ConfirmationDialog.js.map +1 -1
- package/dist/components/DiskCapacityInfo/DiskCapacityInfo.d.ts +21 -0
- package/dist/components/DiskCapacityInfo/DiskCapacityInfo.js +129 -0
- package/dist/components/DiskCapacityInfo/DiskCapacityInfo.js.map +1 -0
- package/dist/components/DiskCapacityInfo/i18n/en.json +7 -0
- package/dist/components/DiskCapacityInfo/i18n/index.d.ts +2 -0
- package/dist/components/DiskCapacityInfo/i18n/index.js +5 -0
- package/dist/components/DiskCapacityInfo/i18n/index.js.map +1 -0
- package/dist/components/DiskStateProgressBar/DiskStateProgressBar.d.ts +8 -1
- package/dist/components/DiskStateProgressBar/DiskStateProgressBar.js +24 -14
- package/dist/components/DiskStateProgressBar/DiskStateProgressBar.js.map +1 -1
- package/dist/components/DiskStateProgressBar/DiskStateProgressBar.scss +144 -0
- package/dist/components/HelpMarkWithDocs/HelpMarkWithDocs.d.ts +9 -0
- package/dist/components/HelpMarkWithDocs/HelpMarkWithDocs.js +8 -0
- package/dist/components/HelpMarkWithDocs/HelpMarkWithDocs.js.map +1 -0
- package/dist/components/HelpMarkWithDocs/i18n/en.json +3 -0
- package/dist/components/HelpMarkWithDocs/i18n/index.d.ts +1 -0
- package/dist/components/HelpMarkWithDocs/i18n/index.js +5 -0
- package/dist/components/HelpMarkWithDocs/i18n/index.js.map +1 -0
- package/dist/components/PDiskInfo/PDiskInfo.d.ts +1 -0
- package/dist/components/PDiskInfo/PDiskInfo.js +51 -14
- package/dist/components/PDiskInfo/PDiskInfo.js.map +1 -1
- package/dist/components/PDiskInfo/i18n/index.d.ts +1 -1
- package/dist/components/PDiskPopup/PDiskPopup.d.ts +1 -1
- package/dist/components/PDiskPopup/PDiskPopup.js +13 -4
- package/dist/components/PDiskPopup/PDiskPopup.js.map +1 -1
- package/dist/components/StorageGroupInfo/StorageGroupInfo.js +120 -2
- package/dist/components/StorageGroupInfo/StorageGroupInfo.js.map +1 -1
- package/dist/components/StorageGroupInfo/i18n/en.json +2 -1
- package/dist/components/StorageGroupInfo/i18n/index.d.ts +1 -1
- package/dist/components/TitleWithHelpmark/TitleWithHelpmark.d.ts +5 -2
- package/dist/components/TitleWithHelpmark/TitleWithHelpmark.js +4 -3
- package/dist/components/TitleWithHelpmark/TitleWithHelpmark.js.map +1 -1
- package/dist/components/VDisk/VDisk.js +44 -10
- package/dist/components/VDisk/VDisk.js.map +1 -1
- package/dist/components/VDisk/i18n/en.json +6 -1
- package/dist/components/VDisk/i18n/index.d.ts +1 -1
- package/dist/components/VDiskInfo/VDiskInfo.js +117 -67
- package/dist/components/VDiskInfo/VDiskInfo.js.map +1 -1
- package/dist/components/VDiskInfo/getVDiskCapacityColumns.d.ts +11 -0
- package/dist/components/VDiskInfo/getVDiskCapacityColumns.js +52 -0
- package/dist/components/VDiskInfo/getVDiskCapacityColumns.js.map +1 -0
- package/dist/components/VDiskPopup/VDiskPopup.d.ts +5 -0
- package/dist/components/VDiskPopup/VDiskPopup.js +18 -7
- package/dist/components/VDiskPopup/VDiskPopup.js.map +1 -1
- package/dist/components/YDBDefinitionList/YDBDefinitionList.d.ts +2 -1
- package/dist/components/YDBDefinitionList/YDBDefinitionList.js +2 -2
- package/dist/components/YDBDefinitionList/YDBDefinitionList.js.map +1 -1
- package/dist/components/capacityMetricsColumns/columns.js +19 -24
- package/dist/components/capacityMetricsColumns/columns.js.map +1 -1
- package/dist/components/capacityMetricsColumns/constants.d.ts +11 -0
- package/dist/components/capacityMetricsColumns/constants.js +25 -0
- package/dist/components/capacityMetricsColumns/constants.js.map +1 -1
- package/dist/components/capacityMetricsColumns/formatters.d.ts +1 -0
- package/dist/components/capacityMetricsColumns/formatters.js +9 -0
- package/dist/components/capacityMetricsColumns/formatters.js.map +1 -0
- package/dist/components/capacityMetricsColumns/i18n/en.json +9 -1
- package/dist/components/capacityMetricsColumns/i18n/index.d.ts +1 -1
- package/dist/components/nodesColumns/constants.js +1 -1
- package/dist/components/nodesColumns/constants.js.map +1 -1
- package/dist/containers/App/NavigationWrapper.js +1 -1
- package/dist/containers/App/NavigationWrapper.js.map +1 -1
- package/dist/containers/AsideNavigation/i18n/en.json +1 -1
- package/dist/containers/Cluster/ClusterInfo/ClusterInfo.js +1 -1
- package/dist/containers/Cluster/ClusterInfo/ClusterInfo.js.map +1 -1
- package/dist/containers/Storage/Disks/Disks.d.ts +2 -2
- package/dist/containers/Storage/Disks/Disks.js +13 -10
- package/dist/containers/Storage/Disks/Disks.js.map +1 -1
- package/dist/containers/Storage/Disks/Disks.scss +20 -0
- package/dist/containers/Storage/Disks/calculateCompactVDiskWidths.d.ts +2 -0
- package/dist/containers/Storage/Disks/calculateCompactVDiskWidths.js +46 -0
- package/dist/containers/Storage/Disks/calculateCompactVDiskWidths.js.map +1 -0
- package/dist/containers/Storage/Disks/constants.d.ts +5 -0
- package/dist/containers/Storage/Disks/constants.js +11 -0
- package/dist/containers/Storage/Disks/constants.js.map +1 -0
- package/dist/containers/Storage/PaginatedStorageGroups/StorageGroupsControls.js +8 -15
- package/dist/containers/Storage/PaginatedStorageGroups/StorageGroupsControls.js.map +1 -1
- package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/columns.d.ts +2 -2
- package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/columns.js +37 -9
- package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/columns.js.map +1 -1
- package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/constants.d.ts +5 -0
- package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/constants.js +31 -1
- package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/constants.js.map +1 -1
- package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/hooks.js +39 -24
- package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/hooks.js.map +1 -1
- package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/i18n/en.json +1 -0
- package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/i18n/index.d.ts +1 -1
- package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/types.d.ts +1 -0
- package/dist/containers/Storage/PaginatedStorageNodesTable/columns/hooks.js +18 -9
- package/dist/containers/Storage/PaginatedStorageNodesTable/columns/hooks.js.map +1 -1
- package/dist/containers/Storage/StorageExpertModePanel/StorageExpertModePanel.js +1 -1
- package/dist/containers/Storage/StorageExpertModePanel/StorageExpertModePanel.js.map +1 -1
- package/dist/containers/Storage/StorageExpertModePanel/StorageExpertModePanel.scss +13 -0
- package/dist/containers/Storage/StorageExpertModePanel/components/AllLegend.js +96 -2
- package/dist/containers/Storage/StorageExpertModePanel/components/AllLegend.js.map +1 -1
- package/dist/containers/Storage/StorageExpertModePanel/components/SpaceLegend.js +2 -5
- package/dist/containers/Storage/StorageExpertModePanel/components/SpaceLegend.js.map +1 -1
- package/dist/containers/Storage/StorageExpertModePanel/components/getSpaceLegendSelection.d.ts +2 -0
- package/dist/containers/Storage/StorageExpertModePanel/components/getSpaceLegendSelection.js +6 -1
- package/dist/containers/Storage/StorageExpertModePanel/components/getSpaceLegendSelection.js.map +1 -1
- package/dist/containers/Storage/StorageExpertModePanel/components/useSpaceLegendSelection.js +3 -3
- package/dist/containers/Storage/StorageExpertModePanel/components/useSpaceLegendSelection.js.map +1 -1
- package/dist/containers/Storage/StorageExpertModePanel/i18n/en.json +13 -0
- package/dist/containers/Storage/StorageExpertModePanel/i18n/index.d.ts +1 -1
- package/dist/containers/Storage/useStorageQueryParams.js +9 -4
- package/dist/containers/Storage/useStorageQueryParams.js.map +1 -1
- package/dist/containers/Storage/useStorageVDiskDisplayStateGetter.js +45 -5
- package/dist/containers/Storage/useStorageVDiskDisplayStateGetter.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/Consumers/Consumers.js +1 -1
- package/dist/containers/Tenant/Diagnostics/Consumers/Consumers.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/ManagePartitioningDialog.js +12 -13
- package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/ManagePartitioningDialog.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/useManagePartitionForm.d.ts +1 -1
- package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/utils.js +2 -2
- package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/utils.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/PartitionsProgress/PartitionsProgress.js +3 -3
- package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/PartitionsProgress/PartitionsProgress.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/PartitionsProgress/i18n/en.json +1 -2
- package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/PartitionsProgress/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/Diagnostics/Overview/TopicStats/TopicStats.js +1 -1
- package/dist/containers/Tenant/Diagnostics/Overview/TopicStats/TopicStats.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/Partitions/Partitions.js +1 -1
- package/dist/containers/Tenant/Diagnostics/Partitions/Partitions.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.js +5 -2
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorage.d.ts +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorage.js +36 -15
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorage.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageGroups.d.ts +14 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageGroups.js +38 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageGroups.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageNew.d.ts +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageNew.js +3 -2
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageNew.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TopGroups.d.ts +10 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TopGroups.js +12 -8
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TopGroups.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/i18n/en.json +15 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/types.d.ts +3 -1
- package/dist/containers/Tenant/Diagnostics/TopicData/TopicMessageDetails/TopicMessageDetails.js +1 -1
- package/dist/containers/Tenant/Diagnostics/TopicData/TopicMessageDetails/TopicMessageDetails.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TopicData/columns/columns.js +1 -1
- package/dist/containers/Tenant/Diagnostics/TopicData/columns/columns.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TopicData/getData.js +1 -1
- package/dist/containers/Tenant/Diagnostics/TopicData/getData.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TopicData/useTopicProbeQuery.js +1 -1
- package/dist/containers/Tenant/Diagnostics/TopicData/useTopicProbeQuery.js.map +1 -1
- package/dist/containers/Tenant/ObjectSummary/CreateDirectoryDialog/CreateDirectoryDialog.js +10 -6
- package/dist/containers/Tenant/ObjectSummary/CreateDirectoryDialog/CreateDirectoryDialog.js.map +1 -1
- package/dist/containers/Tenant/ObjectSummary/CreateDirectoryDialog/CreateDirectoryDialog.scss +57 -6
- package/dist/containers/Tenant/ObjectSummary/ObjectSummary.scss +31 -0
- package/dist/containers/Tenant/ObjectSummary/SchemaTree/SchemaTree.js +58 -0
- package/dist/containers/Tenant/ObjectSummary/SchemaTree/SchemaTree.js.map +1 -1
- package/dist/containers/Tenant/Query/Issues/Issues.js +3 -3
- package/dist/containers/Tenant/Query/Issues/Issues.js.map +1 -1
- package/dist/containers/Tenant/Query/Issues/helpers.d.ts +3 -0
- package/dist/containers/Tenant/Query/Issues/helpers.js +40 -0
- package/dist/containers/Tenant/Query/Issues/helpers.js.map +1 -1
- package/dist/containers/Tenant/Query/Issues/helpers.test.d.ts +1 -0
- package/dist/containers/Tenant/Query/Issues/helpers.test.js +94 -0
- package/dist/containers/Tenant/Query/Issues/helpers.test.js.map +1 -0
- package/dist/containers/Tenant/Query/NewSQL/NewSQL.js +1 -1
- package/dist/containers/Tenant/Query/NewSQL/NewSQL.js.map +1 -1
- package/dist/containers/Tenant/Query/Preview/components/TopicPreview.js +1 -1
- package/dist/containers/Tenant/Query/Preview/components/TopicPreview.js.map +1 -1
- package/dist/containers/Tenant/Query/QueryEditor/QueryEditor.js +141 -73
- package/dist/containers/Tenant/Query/QueryEditor/QueryEditor.js.map +1 -1
- package/dist/containers/Tenant/Query/QueryEditor/QueryEditor.scss +8 -0
- package/dist/containers/Tenant/Query/QueryEditor/YqlEditor/YqlEditor.d.ts +4 -2
- package/dist/containers/Tenant/Query/QueryEditor/YqlEditor/YqlEditor.js +187 -20
- package/dist/containers/Tenant/Query/QueryEditor/YqlEditor/YqlEditor.js.map +1 -1
- package/dist/containers/Tenant/Query/QueryEditor/YqlEditor/currentStatement.d.ts +9 -0
- package/dist/containers/Tenant/Query/QueryEditor/YqlEditor/currentStatement.js +154 -0
- package/dist/containers/Tenant/Query/QueryEditor/YqlEditor/currentStatement.js.map +1 -0
- package/dist/containers/Tenant/Query/QueryEditor/YqlEditor/currentStatement.test.d.ts +1 -0
- package/dist/containers/Tenant/Query/QueryEditor/YqlEditor/currentStatement.test.js +153 -0
- package/dist/containers/Tenant/Query/QueryEditor/YqlEditor/currentStatement.test.js.map +1 -0
- package/dist/containers/Tenant/Query/QueryEditor/types.d.ts +5 -0
- package/dist/containers/Tenant/Query/QueryEditor/types.js +2 -0
- package/dist/containers/Tenant/Query/QueryEditor/types.js.map +1 -0
- package/dist/containers/Tenant/Query/QueryEditor/utils/reachExplainQueryMetricaGoals.d.ts +5 -0
- package/dist/containers/Tenant/Query/QueryEditor/utils/reachExplainQueryMetricaGoals.js +13 -0
- package/dist/containers/Tenant/Query/QueryEditor/utils/reachExplainQueryMetricaGoals.js.map +1 -0
- package/dist/containers/Tenant/Query/QueryEditorControls/EditorButton.d.ts +6 -3
- package/dist/containers/Tenant/Query/QueryEditorControls/EditorButton.js +10 -5
- package/dist/containers/Tenant/Query/QueryEditorControls/EditorButton.js.map +1 -1
- package/dist/containers/Tenant/Query/QueryEditorControls/EditorButton.scss +18 -5
- package/dist/containers/Tenant/Query/QueryEditorControls/QueryEditorControls.d.ts +3 -2
- package/dist/containers/Tenant/Query/QueryEditorControls/QueryEditorControls.js +23 -12
- package/dist/containers/Tenant/Query/QueryEditorControls/QueryEditorControls.js.map +1 -1
- package/dist/containers/Tenant/Query/QueryEditorControls/QueryEditorControls.scss +19 -0
- package/dist/containers/Tenant/Query/QueryResult/QueryResultViewer.js +14 -21
- package/dist/containers/Tenant/Query/QueryResult/QueryResultViewer.js.map +1 -1
- package/dist/containers/Tenant/Query/QueryResult/components/QueryResultError/QueryResultError.d.ts +6 -2
- package/dist/containers/Tenant/Query/QueryResult/components/QueryResultError/QueryResultError.js +6 -2
- package/dist/containers/Tenant/Query/QueryResult/components/QueryResultError/QueryResultError.js.map +1 -1
- package/dist/containers/Tenant/Query/QueryResult/components/ResultSetsViewer/ResultSetsViewer.d.ts +2 -0
- package/dist/containers/Tenant/Query/QueryResult/components/ResultSetsViewer/ResultSetsViewer.js +1 -1
- package/dist/containers/Tenant/Query/QueryResult/components/ResultSetsViewer/ResultSetsViewer.js.map +1 -1
- package/dist/containers/Tenant/Query/QueryResult/constants.d.ts +3 -0
- package/dist/containers/Tenant/Query/QueryResult/constants.js +35 -0
- package/dist/containers/Tenant/Query/QueryResult/constants.js.map +1 -1
- package/dist/containers/Tenant/Query/i18n/en.json +5 -2
- package/dist/containers/Tenant/Query/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/Query/utils/isQueryCancelledError.d.ts +1 -1
- package/dist/containers/Tenant/Query/utils/isQueryCancelledError.js +1 -13
- package/dist/containers/Tenant/Query/utils/isQueryCancelledError.js.map +1 -1
- package/dist/containers/Tenant/TableFormDialog/TableFormDialog.d.ts +19 -0
- package/dist/containers/Tenant/TableFormDialog/TableFormDialog.js +225 -0
- package/dist/containers/Tenant/TableFormDialog/TableFormDialog.js.map +1 -0
- package/dist/containers/Tenant/TableFormDialog/TableFormDialog.scss +589 -0
- package/dist/containers/Tenant/TableFormDialog/columnValueValidation.d.ts +1 -0
- package/dist/containers/Tenant/TableFormDialog/columnValueValidation.js +179 -0
- package/dist/containers/Tenant/TableFormDialog/columnValueValidation.js.map +1 -0
- package/dist/containers/Tenant/TableFormDialog/components/ColumnSelectorField.d.ts +11 -0
- package/dist/containers/Tenant/TableFormDialog/components/ColumnSelectorField.js +84 -0
- package/dist/containers/Tenant/TableFormDialog/components/ColumnSelectorField.js.map +1 -0
- package/dist/containers/Tenant/TableFormDialog/components/ColumnSelectorField.scss +175 -0
- package/dist/containers/Tenant/TableFormDialog/components/RangeInputPicker.d.ts +19 -0
- package/dist/containers/Tenant/TableFormDialog/components/RangeInputPicker.js +115 -0
- package/dist/containers/Tenant/TableFormDialog/components/RangeInputPicker.js.map +1 -0
- package/dist/containers/Tenant/TableFormDialog/components/RangeInputPicker.scss +22 -0
- package/dist/containers/Tenant/TableFormDialog/components/layout.d.ts +15 -0
- package/dist/containers/Tenant/TableFormDialog/components/layout.js +32 -0
- package/dist/containers/Tenant/TableFormDialog/components/layout.js.map +1 -0
- package/dist/containers/Tenant/TableFormDialog/constants.d.ts +16 -0
- package/dist/containers/Tenant/TableFormDialog/constants.js +99 -0
- package/dist/containers/Tenant/TableFormDialog/constants.js.map +1 -0
- package/dist/containers/Tenant/TableFormDialog/i18n/en.json +143 -0
- package/dist/containers/Tenant/TableFormDialog/i18n/index.d.ts +2 -0
- package/dist/containers/Tenant/TableFormDialog/i18n/index.js +5 -0
- package/dist/containers/Tenant/TableFormDialog/i18n/index.js.map +1 -0
- package/dist/containers/Tenant/TableFormDialog/sections/GeneralSection.d.ts +8 -0
- package/dist/containers/Tenant/TableFormDialog/sections/GeneralSection.js +34 -0
- package/dist/containers/Tenant/TableFormDialog/sections/GeneralSection.js.map +1 -0
- package/dist/containers/Tenant/TableFormDialog/sections/PartitioningSection.d.ts +5 -0
- package/dist/containers/Tenant/TableFormDialog/sections/PartitioningSection.js +28 -0
- package/dist/containers/Tenant/TableFormDialog/sections/PartitioningSection.js.map +1 -0
- package/dist/containers/Tenant/TableFormDialog/sections/SettingsSection.d.ts +6 -0
- package/dist/containers/Tenant/TableFormDialog/sections/SettingsSection.js +141 -0
- package/dist/containers/Tenant/TableFormDialog/sections/SettingsSection.js.map +1 -0
- package/dist/containers/Tenant/TableFormDialog/sections/SplitPointDialog.d.ts +22 -0
- package/dist/containers/Tenant/TableFormDialog/sections/SplitPointDialog.js +97 -0
- package/dist/containers/Tenant/TableFormDialog/sections/SplitPointDialog.js.map +1 -0
- package/dist/containers/Tenant/TableFormDialog/sections/TTLSection.d.ts +6 -0
- package/dist/containers/Tenant/TableFormDialog/sections/TTLSection.js +70 -0
- package/dist/containers/Tenant/TableFormDialog/sections/TTLSection.js.map +1 -0
- package/dist/containers/Tenant/TableFormDialog/sections/YdbColumnsSection.d.ts +11 -0
- package/dist/containers/Tenant/TableFormDialog/sections/YdbColumnsSection.js +181 -0
- package/dist/containers/Tenant/TableFormDialog/sections/YdbColumnsSection.js.map +1 -0
- package/dist/containers/Tenant/TableFormDialog/sections/YdbIndexesSection.d.ts +1 -0
- package/dist/containers/Tenant/TableFormDialog/sections/YdbIndexesSection.js +42 -0
- package/dist/containers/Tenant/TableFormDialog/sections/YdbIndexesSection.js.map +1 -0
- package/dist/containers/Tenant/TableFormDialog/types.d.ts +26 -0
- package/dist/containers/Tenant/TableFormDialog/types.js +3 -0
- package/dist/containers/Tenant/TableFormDialog/types.js.map +1 -0
- package/dist/containers/Tenant/TableFormDialog/utils.d.ts +41 -0
- package/dist/containers/Tenant/TableFormDialog/utils.js +245 -0
- package/dist/containers/Tenant/TableFormDialog/utils.js.map +1 -0
- package/dist/containers/Tenant/TableFormDialog/validation.d.ts +8 -0
- package/dist/containers/Tenant/TableFormDialog/validation.js +308 -0
- package/dist/containers/Tenant/TableFormDialog/validation.js.map +1 -0
- package/dist/containers/Tenant/TopicFormDialog/TopicFormDialog.d.ts +19 -0
- package/dist/containers/Tenant/TopicFormDialog/TopicFormDialog.js +296 -0
- package/dist/containers/Tenant/TopicFormDialog/TopicFormDialog.js.map +1 -0
- package/dist/containers/Tenant/TopicFormDialog/TopicFormDialog.scss +182 -0
- package/dist/containers/Tenant/TopicFormDialog/i18n/en.json +51 -0
- package/dist/containers/Tenant/TopicFormDialog/i18n/index.d.ts +2 -0
- package/dist/containers/Tenant/TopicFormDialog/i18n/index.js +5 -0
- package/dist/containers/Tenant/TopicFormDialog/i18n/index.js.map +1 -0
- package/dist/containers/Tenant/TopicFormDialog/utils.d.ts +18 -0
- package/dist/containers/Tenant/TopicFormDialog/utils.js +100 -0
- package/dist/containers/Tenant/TopicFormDialog/utils.js.map +1 -0
- package/dist/containers/Tenant/TopicFormDialog/validation.d.ts +3 -0
- package/dist/containers/Tenant/TopicFormDialog/validation.js +88 -0
- package/dist/containers/Tenant/TopicFormDialog/validation.js.map +1 -0
- package/dist/containers/Tenant/i18n/en.json +5 -1
- package/dist/containers/Tenant/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/utils/pathSegmentValidation.d.ts +5 -0
- package/dist/containers/Tenant/utils/pathSegmentValidation.js +15 -0
- package/dist/containers/Tenant/utils/pathSegmentValidation.js.map +1 -0
- package/dist/containers/Tenant/utils/schemaActions.d.ts +4 -0
- package/dist/containers/Tenant/utils/schemaActions.js +103 -14
- package/dist/containers/Tenant/utils/schemaActions.js.map +1 -1
- package/dist/containers/VDiskPage/VDiskPage.js +3 -30
- package/dist/containers/VDiskPage/VDiskPage.js.map +1 -1
- package/dist/containers/VDiskPage/useVDiskQueryParams.d.ts +13 -0
- package/dist/containers/VDiskPage/useVDiskQueryParams.js +55 -0
- package/dist/containers/VDiskPage/useVDiskQueryParams.js.map +1 -0
- package/dist/store/reducers/pdisk/utils.js +4 -4
- package/dist/store/reducers/pdisk/utils.js.map +1 -1
- package/dist/store/reducers/query/api.d.ts +2 -1
- package/dist/store/reducers/query/api.js +107 -48
- package/dist/store/reducers/query/api.js.map +1 -1
- package/dist/store/reducers/query/parsers/preparePlanData.js +8 -1
- package/dist/store/reducers/query/parsers/preparePlanData.js.map +1 -1
- package/dist/store/reducers/query/slice.d.ts +8 -9
- package/dist/store/reducers/query/slice.js +5 -0
- package/dist/store/reducers/query/slice.js.map +1 -1
- package/dist/store/reducers/query/streaming/reducers.d.ts +3 -0
- package/dist/store/reducers/query/streaming/reducers.js +6 -6
- package/dist/store/reducers/query/streaming/reducers.js.map +1 -1
- package/dist/store/reducers/query/types.d.ts +8 -4
- package/dist/store/reducers/query/utils.d.ts +10 -2
- package/dist/store/reducers/query/utils.js +37 -6
- package/dist/store/reducers/query/utils.js.map +1 -1
- package/dist/store/reducers/storage/prepareGroupsDisks.d.ts +10 -3
- package/dist/store/reducers/storage/prepareGroupsDisks.js +43 -6
- package/dist/store/reducers/storage/prepareGroupsDisks.js.map +1 -1
- package/dist/store/reducers/storage/types.d.ts +1 -0
- package/dist/store/reducers/storage/utils.js +4 -7
- package/dist/store/reducers/storage/utils.js.map +1 -1
- package/dist/store/reducers/table/constants.d.ts +6 -0
- package/dist/store/reducers/table/constants.js +36 -0
- package/dist/store/reducers/table/constants.js.map +1 -0
- package/dist/store/reducers/table/table.d.ts +19 -0
- package/dist/store/reducers/table/table.js +104 -0
- package/dist/store/reducers/table/table.js.map +1 -0
- package/dist/store/reducers/table/types.d.ts +193 -0
- package/dist/store/reducers/table/types.js +12 -0
- package/dist/store/reducers/table/types.js.map +1 -0
- package/dist/store/reducers/table/utils.d.ts +17 -0
- package/dist/store/reducers/table/utils.js +485 -0
- package/dist/store/reducers/table/utils.js.map +1 -0
- package/dist/store/reducers/topic/topic.d.ts +1762 -0
- package/dist/store/reducers/topic/topic.js +172 -0
- package/dist/store/reducers/topic/topic.js.map +1 -0
- package/dist/store/reducers/topic/utils.d.ts +23 -0
- package/dist/store/reducers/topic/utils.js +75 -0
- package/dist/store/reducers/topic/utils.js.map +1 -0
- package/dist/types/api/pdisk.d.ts +6 -1
- package/dist/types/api/pdisk.js.map +1 -1
- package/dist/types/api/storage.d.ts +3 -1
- package/dist/types/api/storage.js.map +1 -1
- package/dist/types/api/topic.d.ts +18 -0
- package/dist/types/api/topic.js +8 -0
- package/dist/types/api/topic.js.map +1 -1
- package/dist/types/api/vdisk.d.ts +8 -0
- package/dist/types/api/vdisk.js.map +1 -1
- package/dist/uiFactory/types.d.ts +5 -0
- package/dist/uiFactory/uiFactory.d.ts +4 -1
- package/dist/uiFactory/uiFactory.js +8 -1
- package/dist/uiFactory/uiFactory.js.map +1 -1
- package/dist/utils/capacityAlerts.d.ts +1 -0
- package/dist/utils/capacityAlerts.js +3 -0
- package/dist/utils/capacityAlerts.js.map +1 -1
- package/dist/utils/constants.d.ts +1 -1
- package/dist/utils/constants.js +1 -1
- package/dist/utils/constants.js.map +1 -1
- package/dist/utils/disks/displayState.d.ts +5 -0
- package/dist/utils/disks/displayState.js.map +1 -1
- package/dist/utils/disks/iconCalculators.d.ts +1 -3
- package/dist/utils/disks/iconCalculators.js +5 -6
- package/dist/utils/disks/iconCalculators.js.map +1 -1
- package/dist/utils/disks/prepareDisks.d.ts +1 -1
- package/dist/utils/disks/prepareDisks.js +44 -3
- package/dist/utils/disks/prepareDisks.js.map +1 -1
- package/dist/utils/disks/severityCalculators.d.ts +1 -4
- package/dist/utils/disks/severityCalculators.js +2 -6
- package/dist/utils/disks/severityCalculators.js.map +1 -1
- package/dist/utils/disks/types.d.ts +8 -0
- package/dist/utils/emptyDataPlaceholder.d.ts +1 -0
- package/dist/utils/emptyDataPlaceholder.js +2 -0
- package/dist/utils/emptyDataPlaceholder.js.map +1 -0
- package/dist/utils/hooks/useSelectedColumns.d.ts +3 -0
- package/dist/utils/hooks/useSelectedColumns.js +18 -0
- package/dist/utils/hooks/useSelectedColumns.js.map +1 -1
- package/dist/utils/query.d.ts +4 -1
- package/dist/utils/query.js +34 -1
- package/dist/utils/query.js.map +1 -1
- package/dist/utils/storageMetrics.d.ts +5 -1
- package/dist/utils/storageMetrics.js +35 -4
- package/dist/utils/storageMetrics.js.map +1 -1
- package/dist/utils/utils.js +2 -1
- package/dist/utils/utils.js.map +1 -1
- package/package.json +1 -1
- package/dist/store/reducers/topic.d.ts +0 -1291
- package/dist/store/reducers/topic.js +0 -83
- package/dist/store/reducers/topic.js.map +0 -1
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { ColumnValueField } from '../../../../store/reducers/table/types';
|
|
2
|
+
import type { Column, ColumnField } from '../types';
|
|
3
|
+
interface SplitPointDraftRow {
|
|
4
|
+
column: Column;
|
|
5
|
+
id: string;
|
|
6
|
+
isDefined: boolean;
|
|
7
|
+
value: string;
|
|
8
|
+
}
|
|
9
|
+
export interface SplitPointDialogState {
|
|
10
|
+
open: boolean;
|
|
11
|
+
index: number;
|
|
12
|
+
columns: Column[];
|
|
13
|
+
values: SplitPointDraftRow[];
|
|
14
|
+
}
|
|
15
|
+
interface SplitPointDialogProps {
|
|
16
|
+
state: SplitPointDialogState;
|
|
17
|
+
onClose: () => void;
|
|
18
|
+
onSubmit: (index: number, values: ColumnValueField[]) => void;
|
|
19
|
+
}
|
|
20
|
+
export declare function SplitPointDialog({ state, onClose, onSubmit }: SplitPointDialogProps): import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
export declare function buildSplitPointEntries(pkColumns: ColumnField[], storedValues: ColumnValueField[] | undefined): SplitPointDraftRow[];
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { Checkbox, Dialog, Label, Popover, TextArea, TextInput } from '@gravity-ui/uikit';
|
|
4
|
+
import { cn } from '../../../../utils/cn';
|
|
5
|
+
import { isValueForTypeValid } from '../columnValueValidation';
|
|
6
|
+
import { SPLIT_POINT_STRING_TYPES } from '../constants';
|
|
7
|
+
import i18n from '../i18n';
|
|
8
|
+
import { generateColumnId, getColumnTypeDescription } from '../utils';
|
|
9
|
+
const b = cn('ydb-table-form-dialog');
|
|
10
|
+
function isColumnValueMustBeDefined(column) {
|
|
11
|
+
return !column.autoincrement;
|
|
12
|
+
}
|
|
13
|
+
function getNotDefinedValue(column) {
|
|
14
|
+
const fallback = column.autoincrement ? 'AUTO INCREMENT' : 'NULL';
|
|
15
|
+
return column.defaultValue === undefined ? fallback : String(column.defaultValue);
|
|
16
|
+
}
|
|
17
|
+
function isRowInvalid(row) {
|
|
18
|
+
return row.isDefined && !isValueForTypeValid(row.value, row.column.type);
|
|
19
|
+
}
|
|
20
|
+
function SplitPointValueControl({ row, invalid, errorMessage, isStringType, onChange, onBlur, }) {
|
|
21
|
+
if (!row.isDefined) {
|
|
22
|
+
const notDefinedValue = getNotDefinedValue(row.column);
|
|
23
|
+
return (_jsx(TextInput, { className: b('split-point-input', { null: notDefinedValue === 'NULL' }), value: notDefinedValue, disabled: true }));
|
|
24
|
+
}
|
|
25
|
+
if (isStringType) {
|
|
26
|
+
return (_jsx(TextArea, { className: b('split-point-input'), value: row.value, onUpdate: (value) => onChange(row.id, value), onBlur: () => onBlur(row.id), minRows: 2, validationState: invalid ? 'invalid' : undefined, errorMessage: errorMessage }));
|
|
27
|
+
}
|
|
28
|
+
return (_jsx(TextInput, { className: b('split-point-input'), value: row.value, onUpdate: (value) => onChange(row.id, value), onBlur: () => onBlur(row.id), validationState: invalid ? 'invalid' : undefined, errorMessage: errorMessage }));
|
|
29
|
+
}
|
|
30
|
+
export function SplitPointDialog({ state, onClose, onSubmit }) {
|
|
31
|
+
const [draftValues, setDraftValues] = React.useState(state.values);
|
|
32
|
+
const [touched, setTouched] = React.useState({});
|
|
33
|
+
React.useEffect(() => {
|
|
34
|
+
setDraftValues(state.values);
|
|
35
|
+
setTouched({});
|
|
36
|
+
}, [state.values]);
|
|
37
|
+
const handleChange = (id, value) => {
|
|
38
|
+
setDraftValues((prev) => prev.map((row) => (row.id === id ? { ...row, value } : row)));
|
|
39
|
+
};
|
|
40
|
+
const handleBlur = (id) => {
|
|
41
|
+
setTouched((prev) => ({ ...prev, [id]: true }));
|
|
42
|
+
};
|
|
43
|
+
const handleToggleDefined = (id, isDefined) => {
|
|
44
|
+
setDraftValues((prev) => prev.map((row) => (row.id === id ? { ...row, isDefined } : row)));
|
|
45
|
+
};
|
|
46
|
+
const markAllTouched = React.useCallback(() => {
|
|
47
|
+
setTouched(Object.fromEntries(draftValues.map((row) => [row.id, true])));
|
|
48
|
+
}, [draftValues]);
|
|
49
|
+
const hasErrors = draftValues.some(isRowInvalid);
|
|
50
|
+
const handleSubmit = () => {
|
|
51
|
+
if (hasErrors) {
|
|
52
|
+
markAllTouched();
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
onSubmit(state.index, draftValues.map((row) => ({
|
|
56
|
+
id: row.id,
|
|
57
|
+
isDefined: row.isDefined,
|
|
58
|
+
value: row.isDefined ? row.value : null,
|
|
59
|
+
name: row.column.name,
|
|
60
|
+
type: row.column.type,
|
|
61
|
+
notNull: row.column.notNull,
|
|
62
|
+
})));
|
|
63
|
+
onClose();
|
|
64
|
+
};
|
|
65
|
+
const primaryKeyNames = state.columns.map((column) => column.name).join(', ');
|
|
66
|
+
return (_jsxs(Dialog, { open: state.open, onClose: onClose, size: "s", className: b('split-point-dialog'), disableHeightTransition: true, children: [_jsx(Dialog.Header, { caption: i18n('title_split-point') }), _jsxs(Dialog.Body, { className: b('split-point-body'), children: [primaryKeyNames ? (_jsxs("div", { className: b('split-point-pk'), children: [_jsxs("span", { className: b('split-point-pk-label'), children: [i18n('column_primary-key'), ":"] }), ' ', _jsx("span", { children: primaryKeyNames })] })) : null, _jsx("div", { className: b('split-point-fields'), children: draftValues.map((row) => {
|
|
67
|
+
const { type } = row.column;
|
|
68
|
+
const typeDescription = getColumnTypeDescription(type);
|
|
69
|
+
const isStringType = SPLIT_POINT_STRING_TYPES.has(type);
|
|
70
|
+
const showDefinedToggle = !isColumnValueMustBeDefined(row.column);
|
|
71
|
+
const invalid = Boolean(touched[row.id]) && isRowInvalid(row);
|
|
72
|
+
const errorMessage = invalid ? i18n('error_value-invalid') : undefined;
|
|
73
|
+
const typeText = `(${type})`;
|
|
74
|
+
const typeLabel = typeDescription ? (_jsx(Popover, { content: typeDescription, placement: "top", hasArrow: true, className: b('split-point-type-popover'), children: _jsx("span", { className: b('split-point-type'), children: typeText }) })) : (_jsx("span", { className: b('split-point-type'), children: typeText }));
|
|
75
|
+
return (_jsxs("div", { className: b('split-point-dialog-row'), children: [_jsx("div", { className: b('split-point-meta'), children: _jsxs("div", { className: b('split-point-label'), children: [_jsx("span", { children: row.column.name }), typeLabel, row.column.notNull ? (_jsx(Label, { theme: "unknown", size: "xs", className: b('not-null-label'), children: i18n('label_non-null') })) : null] }) }), _jsxs("div", { className: b('split-point-control'), children: [showDefinedToggle ? (_jsx("div", { className: b('split-point-toggle'), children: _jsx(Checkbox, { checked: row.isDefined, title: i18n('action_set-value'), onUpdate: (checked) => handleToggleDefined(row.id, checked) }) })) : null, _jsx("div", { className: b('split-point-value'), children: _jsx(SplitPointValueControl, { row: row, invalid: invalid, errorMessage: errorMessage, isStringType: isStringType, onChange: handleChange, onBlur: handleBlur }) })] })] }, row.id));
|
|
76
|
+
}) })] }), _jsx(Dialog.Footer, { textButtonApply: i18n('action_add'), textButtonCancel: i18n('action_cancel'), onClickButtonApply: handleSubmit, onClickButtonCancel: onClose })] }));
|
|
77
|
+
}
|
|
78
|
+
export function buildSplitPointEntries(pkColumns, storedValues) {
|
|
79
|
+
return pkColumns.map((column, idx) => {
|
|
80
|
+
var _a, _b;
|
|
81
|
+
const stored = storedValues === null || storedValues === void 0 ? void 0 : storedValues[idx];
|
|
82
|
+
return {
|
|
83
|
+
column: {
|
|
84
|
+
name: column.name,
|
|
85
|
+
type: column.type,
|
|
86
|
+
notNull: column.notNull,
|
|
87
|
+
key: column.key,
|
|
88
|
+
autoincrement: column.autoincrement,
|
|
89
|
+
defaultValue: column.defaultValue,
|
|
90
|
+
},
|
|
91
|
+
id: (_a = stored === null || stored === void 0 ? void 0 : stored.id) !== null && _a !== void 0 ? _a : generateColumnId(),
|
|
92
|
+
isDefined: (_b = stored === null || stored === void 0 ? void 0 : stored.isDefined) !== null && _b !== void 0 ? _b : isColumnValueMustBeDefined(column),
|
|
93
|
+
value: (stored === null || stored === void 0 ? void 0 : stored.value) === null || (stored === null || stored === void 0 ? void 0 : stored.value) === undefined ? '' : String(stored.value),
|
|
94
|
+
};
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=SplitPointDialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SplitPointDialog.js","sourceRoot":"","sources":["../../../../../src/containers/Tenant/TableFormDialog/sections/SplitPointDialog.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { SegmentedRadioGroup, Select, TextInput } from '@gravity-ui/uikit';
|
|
4
|
+
import { Controller, useFormContext, useWatch } from 'react-hook-form';
|
|
5
|
+
import { cn } from '../../../../utils/cn';
|
|
6
|
+
import { FormFieldError, FormRow, FormSection } from '../components/layout';
|
|
7
|
+
import i18n from '../i18n';
|
|
8
|
+
import { acceptIntegerInput, epochModeOptions, formatOptionalIntegerInput, getAvailableTtlColumns, isValidTtlNumType, lifetimeUnitOptions, parseOptionalIntegerInput, ttlStatusOptions, } from '../utils';
|
|
9
|
+
const b = cn('ydb-table-form-dialog');
|
|
10
|
+
function formatEpochModeValue(value) {
|
|
11
|
+
const normalized = value
|
|
12
|
+
.replace(/^UNIT_/, '')
|
|
13
|
+
.toLowerCase()
|
|
14
|
+
.replace(/_/g, ' ');
|
|
15
|
+
return normalized ? normalized[0].toUpperCase() + normalized.slice(1) : value;
|
|
16
|
+
}
|
|
17
|
+
export function TTLSection({ originalInfo }) {
|
|
18
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
19
|
+
const { control, setValue, formState } = useFormContext();
|
|
20
|
+
const status = useWatch({ control, name: 'settings.ttl.status' });
|
|
21
|
+
const column = useWatch({ control, name: 'settings.ttl.column' });
|
|
22
|
+
const columnWithEpochMode = useWatch({ control, name: 'settings.ttl.columnWithEpochMode' });
|
|
23
|
+
const formColumns = useWatch({ control, name: 'columns' });
|
|
24
|
+
const deletedColumns = useWatch({ control, name: 'deletedColumns' });
|
|
25
|
+
const enabled = status === 'enabled';
|
|
26
|
+
const isEpochMode = Boolean(columnWithEpochMode);
|
|
27
|
+
const ttlColumns = React.useMemo(() => {
|
|
28
|
+
return getAvailableTtlColumns(originalInfo === null || originalInfo === void 0 ? void 0 : originalInfo.columns, formColumns, deletedColumns);
|
|
29
|
+
}, [originalInfo, formColumns, deletedColumns]);
|
|
30
|
+
const columnOptions = React.useMemo(() => ttlColumns.length === 0
|
|
31
|
+
? [
|
|
32
|
+
{
|
|
33
|
+
value: '',
|
|
34
|
+
content: i18n('label_ttl-warning'),
|
|
35
|
+
disabled: true,
|
|
36
|
+
},
|
|
37
|
+
]
|
|
38
|
+
: ttlColumns.map(({ name }) => ({ value: name, content: name })), [ttlColumns]);
|
|
39
|
+
const renderEpochModeSelectedOption = React.useCallback((option) => {
|
|
40
|
+
var _a;
|
|
41
|
+
return (_jsx(React.Fragment, { children: (_a = option.content) !== null && _a !== void 0 ? _a : formatEpochModeValue(option.value) }));
|
|
42
|
+
}, []);
|
|
43
|
+
React.useEffect(() => {
|
|
44
|
+
var _a;
|
|
45
|
+
if (!enabled || !column) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
const matchedType = (_a = ttlColumns.find(({ name }) => name === column)) === null || _a === void 0 ? void 0 : _a.type;
|
|
49
|
+
if (!matchedType) {
|
|
50
|
+
setValue('settings.ttl.columnWithEpochMode', false, { shouldValidate: false });
|
|
51
|
+
setValue('settings.ttl.epochMode', undefined, { shouldValidate: false });
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
const withEpochMode = isValidTtlNumType(matchedType);
|
|
55
|
+
setValue('settings.ttl.columnWithEpochMode', withEpochMode, { shouldValidate: false });
|
|
56
|
+
if (!withEpochMode) {
|
|
57
|
+
setValue('settings.ttl.epochMode', undefined, { shouldValidate: false });
|
|
58
|
+
}
|
|
59
|
+
}, [enabled, column, ttlColumns, setValue]);
|
|
60
|
+
const columnError = (_c = (_b = (_a = formState.errors.settings) === null || _a === void 0 ? void 0 : _a.ttl) === null || _b === void 0 ? void 0 : _b.column) === null || _c === void 0 ? void 0 : _c.message;
|
|
61
|
+
const epochError = (_f = (_e = (_d = formState.errors.settings) === null || _d === void 0 ? void 0 : _d.ttl) === null || _e === void 0 ? void 0 : _e.epochMode) === null || _f === void 0 ? void 0 : _f.message;
|
|
62
|
+
const lifetimeError = (_j = (_h = (_g = formState.errors.settings) === null || _g === void 0 ? void 0 : _g.ttl) === null || _h === void 0 ? void 0 : _h.lifetime) === null || _j === void 0 ? void 0 : _j.message;
|
|
63
|
+
return (_jsxs(FormSection, { title: i18n('label_section-ttl'), note: i18n('tooltip_section-ttl'), children: [_jsx(FormRow, { title: i18n('field_ttl-status'), children: _jsx(Controller, { control: control, name: "settings.ttl.status", render: ({ field }) => (_jsx(SegmentedRadioGroup, { value: field.value, onUpdate: (value) => field.onChange(value), children: ttlStatusOptions.map((option) => (_jsx(SegmentedRadioGroup.Option, { value: option.value, children: option.content }, option.value))) })) }) }), enabled ? (_jsxs(React.Fragment, { children: [_jsx(FormRow, { title: i18n('field_ttl-column'), note: i18n('tooltip_ttl-column'), children: _jsx(Controller, { control: control, name: "settings.ttl.column", render: ({ field }) => (_jsxs("div", { className: b('control-stack'), children: [_jsx(Select, { className: b('control'), value: field.value ? [field.value] : [], options: columnOptions, placeholder: i18n('action_select'), onUpdate: ([value]) => field.onChange(value), width: "max", validationState: columnError ? 'invalid' : undefined }), _jsx(FormFieldError, { message: columnError })] })) }) }), isEpochMode ? (_jsx(FormRow, { title: i18n('field_ttl-unit'), note: i18n('tooltip_ttl-unit'), children: _jsx(Controller, { control: control, name: "settings.ttl.epochMode", render: ({ field }) => (_jsxs("div", { className: b('control-stack'), children: [_jsx(Select, { className: b('control'), value: field.value ? [field.value] : [], options: epochModeOptions, onUpdate: ([value]) => field.onChange(value), width: "max", validationState: epochError ? 'invalid' : undefined, renderSelectedOption: renderEpochModeSelectedOption }), _jsx(FormFieldError, { message: epochError })] })) }) })) : null, _jsx(FormRow, { title: i18n('field_ttl-lifetime'), note: i18n('tooltip_ttl-lifetime'), children: _jsxs("div", { className: b('ttl-lifetime'), children: [_jsx(Controller, { control: control, name: "settings.ttl.lifetime", render: ({ field }) => (_jsx(TextInput, { className: b('ttl-lifetime-input'), value: formatOptionalIntegerInput(field.value), onUpdate: (value) => {
|
|
64
|
+
if (!acceptIntegerInput(value)) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
field.onChange(parseOptionalIntegerInput(value));
|
|
68
|
+
}, validationState: lifetimeError ? 'invalid' : undefined, errorMessage: lifetimeError })) }), _jsx(Controller, { control: control, name: "settings.ttl.unit", render: ({ field }) => (_jsx(Select, { className: b('ttl-lifetime-select'), value: field.value ? [field.value] : ['seconds'], options: lifetimeUnitOptions, onUpdate: ([value]) => field.onChange(value) })) })] }) })] })) : null] }));
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=TTLSection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TTLSection.js","sourceRoot":"","sources":["../../../../../src/containers/Tenant/TableFormDialog/sections/TTLSection.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { FormMode, OriginalTableInfo, TableType } from '../types';
|
|
2
|
+
interface YdbColumnsSectionProps {
|
|
3
|
+
mode: FormMode;
|
|
4
|
+
tableType: TableType;
|
|
5
|
+
types: string[];
|
|
6
|
+
pkTypes: Set<string>;
|
|
7
|
+
keyNullable: boolean;
|
|
8
|
+
originalInfo?: OriginalTableInfo;
|
|
9
|
+
}
|
|
10
|
+
export declare function YdbColumnsSection({ mode, tableType, types, pkTypes, keyNullable, originalInfo, }: YdbColumnsSectionProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { ArrowUturnCcwLeft, Plus, TrashBin } from '@gravity-ui/icons';
|
|
4
|
+
import { Button, Checkbox, HelpMark, Icon, Popover, Select, Text, TextInput, } from '@gravity-ui/uikit';
|
|
5
|
+
import { Controller, useFieldArray, useFormContext, useWatch } from 'react-hook-form';
|
|
6
|
+
import { cn } from '../../../../utils/cn';
|
|
7
|
+
import { FormFieldError, FormSection } from '../components/layout';
|
|
8
|
+
import i18n from '../i18n';
|
|
9
|
+
import { generateColumnId, getAutoincrementDisabledMessage, getNotNullDisabledMessage, isSerialCompatible, } from '../utils';
|
|
10
|
+
const b = cn('ydb-table-form-dialog');
|
|
11
|
+
export function YdbColumnsSection({ mode, tableType, types, pkTypes, keyNullable, originalInfo, }) {
|
|
12
|
+
var _a, _b, _c;
|
|
13
|
+
const { control, setValue, formState } = useFormContext();
|
|
14
|
+
const { fields, append, remove } = useFieldArray({ control, name: 'columns' });
|
|
15
|
+
const { fields: deletedFields, append: appendDeleted, remove: removeDeleted, } = useFieldArray({ control, name: 'deletedColumns', keyName: 'rhfKey' });
|
|
16
|
+
const columnsFieldError = formState.errors.columns;
|
|
17
|
+
const columnsError = (_b = (_a = columnsFieldError === null || columnsFieldError === void 0 ? void 0 : columnsFieldError.root) === null || _a === void 0 ? void 0 : _a.message) !== null && _b !== void 0 ? _b : columnsFieldError === null || columnsFieldError === void 0 ? void 0 : columnsFieldError.message;
|
|
18
|
+
const originalColumns = React.useMemo(() => { var _a; return (_a = originalInfo === null || originalInfo === void 0 ? void 0 : originalInfo.columns) !== null && _a !== void 0 ? _a : []; }, [originalInfo === null || originalInfo === void 0 ? void 0 : originalInfo.columns]);
|
|
19
|
+
const primaryOriginalColumns = React.useMemo(() => originalColumns.filter((column) => column.key), [originalColumns]);
|
|
20
|
+
const nonPrimaryOriginalColumns = React.useMemo(() => originalColumns.filter((column) => !column.key), [originalColumns]);
|
|
21
|
+
const typeOptions = React.useMemo(() => types.map((type) => ({ value: type, content: type })), [types]);
|
|
22
|
+
const handleAddColumn = React.useCallback(() => {
|
|
23
|
+
append({
|
|
24
|
+
_id: generateColumnId(),
|
|
25
|
+
name: '',
|
|
26
|
+
type: 'Utf8',
|
|
27
|
+
notNull: false,
|
|
28
|
+
defaultValue: '',
|
|
29
|
+
withDefaultValue: false,
|
|
30
|
+
});
|
|
31
|
+
}, [append]);
|
|
32
|
+
const handleTypeChange = React.useCallback((index, nextType) => {
|
|
33
|
+
if (!nextType) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
if (!pkTypes.has(nextType)) {
|
|
37
|
+
setValue(`columns.${index}.key`, false, { shouldValidate: true });
|
|
38
|
+
}
|
|
39
|
+
if (!isSerialCompatible(nextType)) {
|
|
40
|
+
setValue(`columns.${index}.autoincrement`, false, { shouldValidate: true });
|
|
41
|
+
}
|
|
42
|
+
}, [pkTypes, setValue]);
|
|
43
|
+
const handleKeyChange = React.useCallback((index, nextKey) => {
|
|
44
|
+
if (!keyNullable && nextKey) {
|
|
45
|
+
setValue(`columns.${index}.notNull`, true, { shouldValidate: true });
|
|
46
|
+
}
|
|
47
|
+
if (!nextKey) {
|
|
48
|
+
setValue(`columns.${index}.autoincrement`, false, { shouldValidate: true });
|
|
49
|
+
}
|
|
50
|
+
}, [keyNullable, setValue]);
|
|
51
|
+
const handleAutoincrementChange = React.useCallback((index, value) => {
|
|
52
|
+
if (value) {
|
|
53
|
+
setValue(`columns.${index}.notNull`, true, { shouldValidate: true });
|
|
54
|
+
}
|
|
55
|
+
}, [setValue]);
|
|
56
|
+
const handleDeleteOriginalColumn = React.useCallback((column) => {
|
|
57
|
+
appendDeleted(column);
|
|
58
|
+
}, [appendDeleted]);
|
|
59
|
+
const showHeader = fields.length > 0 ||
|
|
60
|
+
primaryOriginalColumns.length > 0 ||
|
|
61
|
+
nonPrimaryOriginalColumns.length > 0;
|
|
62
|
+
const currentTtlColumn = originalInfo === null || originalInfo === void 0 ? void 0 : originalInfo.ttlColumn;
|
|
63
|
+
const indexedColumns = React.useMemo(() => {
|
|
64
|
+
const columns = new Set();
|
|
65
|
+
originalInfo === null || originalInfo === void 0 ? void 0 : originalInfo.indexes.forEach((index) => {
|
|
66
|
+
index.columns.forEach((column) => {
|
|
67
|
+
columns.add(column);
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
return columns;
|
|
71
|
+
}, [originalInfo === null || originalInfo === void 0 ? void 0 : originalInfo.indexes]);
|
|
72
|
+
const primaryKeyColumnNames = primaryOriginalColumns.map((column) => column.name);
|
|
73
|
+
const partitionKeyColumnNames = (_c = originalInfo === null || originalInfo === void 0 ? void 0 : originalInfo.partitionKey) !== null && _c !== void 0 ? _c : [];
|
|
74
|
+
const showDefaultColumn = tableType === 'row';
|
|
75
|
+
return (_jsxs(FormSection, { title: i18n('label_columns'), children: [mode === 'update' ? (_jsxs("div", { className: b('special-columns'), children: [_jsx(SpecialColumnLabel, { label: i18n('column_primary-key'), columns: primaryKeyColumnNames }), (originalInfo === null || originalInfo === void 0 ? void 0 : originalInfo.type) === 'column' ? (_jsx(SpecialColumnLabel, { label: i18n('field_partition-key'), columns: partitionKeyColumnNames })) : null] })) : null, _jsxs("div", { className: b('columns-table', {
|
|
76
|
+
update: mode === 'update',
|
|
77
|
+
'no-default': !showDefaultColumn,
|
|
78
|
+
}), children: [showHeader ? (_jsxs(React.Fragment, { children: [_jsxs("div", { className: b('columns-head'), children: [_jsx("div", { className: b('columns-head-cell'), children: i18n('column_name') }), _jsx("div", { className: b('columns-head-cell'), children: i18n('column_type') }), mode === 'create' ? (_jsxs("div", { className: b('columns-head-cell'), children: [i18n('column_primary-key'), _jsx(HelpMark, { className: b('help-mark'), popoverProps: {
|
|
79
|
+
placement: ['bottom', 'top'],
|
|
80
|
+
className: b('help-mark-popup'),
|
|
81
|
+
}, children: i18n('tooltip_primary-key') })] })) : null, _jsx("div", { className: b('columns-head-cell'), children: i18n('column_not-null') }), showDefaultColumn ? (_jsx("div", { className: b('columns-head-cell'), children: i18n('column_default') })) : null, _jsx("div", {})] }), _jsx("hr", { className: b('columns-separator') })] })) : null, mode === 'update' && primaryOriginalColumns.length > 0 ? (_jsxs(React.Fragment, { children: [primaryOriginalColumns.map((column) => (_jsx(PrimaryColumnRow, { column: column, showDefaultColumn: showDefaultColumn }, `pk-${column.name}`))), _jsx("hr", { className: b('columns-separator') })] })) : null, mode === 'update' && nonPrimaryOriginalColumns.length > 0 ? (_jsxs(React.Fragment, { children: [nonPrimaryOriginalColumns.map((column) => {
|
|
82
|
+
const deletedIndex = deletedFields.findIndex((deleted) => deleted.name === column.name);
|
|
83
|
+
const isDeleting = deletedIndex >= 0;
|
|
84
|
+
return (_jsx(NonPrimaryColumnRow, { column: column, showDefaultColumn: showDefaultColumn, isDeleting: isDeleting, deleteDisabledMessage: getDeleteDisabledMessage({
|
|
85
|
+
columnName: column.name,
|
|
86
|
+
currentTtlColumn,
|
|
87
|
+
indexedColumns,
|
|
88
|
+
}), onDelete: () => handleDeleteOriginalColumn(column), onUndo: () => removeDeleted(deletedIndex) }, `existing-${column.name}`));
|
|
89
|
+
}), _jsx("hr", { className: b('columns-separator') })] })) : null, fields.map((field, index) => (_jsx(EditableColumnRow, { index: index, mode: mode, showDefaultColumn: showDefaultColumn, typeOptions: typeOptions, pkTypes: pkTypes, keyNullable: keyNullable, onTypeChange: (value) => handleTypeChange(index, value), onKeyChange: (value) => handleKeyChange(index, value), onAutoincrementChange: (value) => handleAutoincrementChange(index, value), onRemove: () => remove(index) }, field.id))), _jsx(FormFieldError, { message: columnsError }), _jsx("div", { children: _jsxs(Button, { onClick: handleAddColumn, children: [_jsx(Icon, { data: Plus, size: 16 }), i18n('button_add-column')] }) })] })] }));
|
|
90
|
+
}
|
|
91
|
+
function ActionButtonWithPopover({ content, children, }) {
|
|
92
|
+
if (!content) {
|
|
93
|
+
return children;
|
|
94
|
+
}
|
|
95
|
+
return (_jsx(Popover, { content: content, placement: "top", hasArrow: true, className: b('ttl-delete-popover'), children: _jsx("span", { className: b('columns-action-popover-target'), children: children }) }));
|
|
96
|
+
}
|
|
97
|
+
function getDeleteDisabledMessage({ columnName, currentTtlColumn, indexedColumns, }) {
|
|
98
|
+
const messages = [];
|
|
99
|
+
if (currentTtlColumn === columnName) {
|
|
100
|
+
messages.push(i18n('tooltip_ttl-delete-disabled'));
|
|
101
|
+
}
|
|
102
|
+
if (indexedColumns.has(columnName)) {
|
|
103
|
+
messages.push(i18n('tooltip_index-delete-disabled'));
|
|
104
|
+
}
|
|
105
|
+
return messages.join(' ');
|
|
106
|
+
}
|
|
107
|
+
function SpecialColumnLabel({ label, columns }) {
|
|
108
|
+
if (!columns.length) {
|
|
109
|
+
return null;
|
|
110
|
+
}
|
|
111
|
+
return (_jsxs("div", { className: b('special-column'), children: [_jsxs("span", { className: b('special-column-label'), children: [label, ":"] }), " ", columns.join(', ')] }));
|
|
112
|
+
}
|
|
113
|
+
function formatDefaultValue(column) {
|
|
114
|
+
if (column.autoincrement) {
|
|
115
|
+
return i18n('label_autoincrement');
|
|
116
|
+
}
|
|
117
|
+
if (typeof column.defaultValue === 'undefined') {
|
|
118
|
+
return '';
|
|
119
|
+
}
|
|
120
|
+
return String(column.defaultValue);
|
|
121
|
+
}
|
|
122
|
+
function PrimaryColumnRow({ column, showDefaultColumn, }) {
|
|
123
|
+
return (_jsxs("div", { className: b('columns-row', { readonly: true }), children: [_jsx("div", { className: b('columns-cell', { name: true }), children: column.name }), _jsx("div", { className: b('columns-cell', { type: true }), children: column.type }), _jsx("div", { className: b('columns-cell', { 'not-null': true }), children: column.notNull ? i18n('value_yes') : i18n('value_no') }), showDefaultColumn ? (_jsx("div", { className: b('columns-cell', { default: true }), children: formatDefaultValue(column) })) : null, _jsx("div", {})] }));
|
|
124
|
+
}
|
|
125
|
+
function NonPrimaryColumnRow({ column, showDefaultColumn, isDeleting, deleteDisabledMessage, onDelete, onUndo, }) {
|
|
126
|
+
return (_jsxs("div", { className: b('columns-row', { readonly: true, deleting: isDeleting }), children: [_jsx("div", { className: b('columns-cell', { name: true }), children: column.name }), _jsx("div", { className: b('columns-cell', { type: true }), children: column.type }), _jsx("div", { className: b('columns-cell', { 'not-null': true }), children: column.notNull ? i18n('value_yes') : i18n('value_no') }), showDefaultColumn ? (_jsx("div", { className: b('columns-cell', { default: true }), children: formatDefaultValue(column) })) : null, _jsx("div", { className: b('columns-cell', { action: true }), children: isDeleting ? (_jsx(Button, { view: "flat", size: "m", onClick: onUndo, title: i18n('action_undo'), children: _jsx(Icon, { data: ArrowUturnCcwLeft, size: 16 }) })) : (_jsx(ActionButtonWithPopover, { content: deleteDisabledMessage, children: _jsx(Button, { view: "flat", size: "m", onClick: onDelete, disabled: Boolean(deleteDisabledMessage), title: deleteDisabledMessage !== null && deleteDisabledMessage !== void 0 ? deleteDisabledMessage : i18n('action_delete'), children: _jsx(Icon, { data: TrashBin, size: 16 }) }) })) })] }));
|
|
127
|
+
}
|
|
128
|
+
function EditableColumnRow({ index, mode, showDefaultColumn, typeOptions, pkTypes, keyNullable, onTypeChange, onKeyChange, onAutoincrementChange, onRemove, }) {
|
|
129
|
+
var _a, _b, _c, _d;
|
|
130
|
+
const { control, clearErrors, formState, setValue, trigger } = useFormContext();
|
|
131
|
+
const column = useWatch({ control, name: `columns.${index}` });
|
|
132
|
+
const defaultValueFieldName = `columns.${index}.defaultValue`;
|
|
133
|
+
const revalidateColumns = React.useCallback(() => {
|
|
134
|
+
trigger(['columns', 'settings']).catch(() => undefined);
|
|
135
|
+
}, [trigger]);
|
|
136
|
+
const handleDefaultValueUpdate = React.useCallback((value) => {
|
|
137
|
+
setValue(defaultValueFieldName, value, {
|
|
138
|
+
shouldDirty: true,
|
|
139
|
+
shouldValidate: false,
|
|
140
|
+
});
|
|
141
|
+
clearErrors(defaultValueFieldName);
|
|
142
|
+
}, [clearErrors, defaultValueFieldName, setValue]);
|
|
143
|
+
const columnErrors = (_a = formState.errors.columns) === null || _a === void 0 ? void 0 : _a[index];
|
|
144
|
+
const nameError = (_b = columnErrors === null || columnErrors === void 0 ? void 0 : columnErrors.name) === null || _b === void 0 ? void 0 : _b.message;
|
|
145
|
+
const typeError = (_c = columnErrors === null || columnErrors === void 0 ? void 0 : columnErrors.type) === null || _c === void 0 ? void 0 : _c.message;
|
|
146
|
+
const defaultValueError = (_d = columnErrors === null || columnErrors === void 0 ? void 0 : columnErrors.defaultValue) === null || _d === void 0 ? void 0 : _d.message;
|
|
147
|
+
const notNullDisabledMessage = getNotNullDisabledMessage(column, keyNullable);
|
|
148
|
+
const autoincrementDisabledMessage = getAutoincrementDisabledMessage(column);
|
|
149
|
+
const keyDisabled = !pkTypes.has(column.type);
|
|
150
|
+
let defaultValueControl = null;
|
|
151
|
+
if (mode === 'create' && showDefaultColumn) {
|
|
152
|
+
if (column.key) {
|
|
153
|
+
defaultValueControl = (_jsx("div", { className: b('checkbox-control'), children: _jsx(Controller, { control: control, name: `columns.${index}.autoincrement`, render: ({ field }) => (_jsx(Checkbox, { size: "l", checked: Boolean(field.value), disabled: Boolean(autoincrementDisabledMessage), title: autoincrementDisabledMessage, onUpdate: (value) => {
|
|
154
|
+
field.onChange(value);
|
|
155
|
+
onAutoincrementChange(value);
|
|
156
|
+
}, children: _jsx(Text, { variant: "body-1", children: i18n('label_autoincrement') }) })) }) }));
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
defaultValueControl = (_jsxs("div", { className: b('default-row'), children: [_jsx("div", { className: b('default-value-toggle'), children: _jsx(Controller, { control: control, name: `columns.${index}.withDefaultValue`, render: ({ field }) => (_jsx(Checkbox, { size: "l", checked: Boolean(field.value), onUpdate: field.onChange })) }) }), _jsx("div", { className: b('default-value-input'), children: _jsx(Controller, { control: control, name: `columns.${index}.defaultValue`, render: ({ field }) => (_jsx(TextInput, { value: field.value === undefined ? '' : String(field.value), onUpdate: handleDefaultValueUpdate, onBlur: () => {
|
|
160
|
+
field.onBlur();
|
|
161
|
+
trigger(defaultValueFieldName).catch(() => undefined);
|
|
162
|
+
}, disabled: !column.withDefaultValue, validationState: defaultValueError ? 'invalid' : undefined })) }) }), defaultValueError ? (_jsx("div", { className: b('default-value-error'), children: _jsx(FormFieldError, { message: defaultValueError }) })) : null] }));
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
return (_jsxs("div", { className: b('columns-row'), children: [_jsx("div", { className: b('columns-cell', { name: true }), children: _jsx(Controller, { control: control, name: `columns.${index}.name`, render: ({ field }) => {
|
|
166
|
+
var _a;
|
|
167
|
+
return (_jsx(TextInput, { value: (_a = field.value) !== null && _a !== void 0 ? _a : '', onUpdate: field.onChange, validationState: nameError ? 'invalid' : undefined, errorMessage: nameError, autoComplete: false }));
|
|
168
|
+
} }) }), _jsx("div", { className: b('columns-cell', { type: true }), children: _jsx(Controller, { control: control, name: `columns.${index}.type`, render: ({ field }) => (_jsx(Select, { value: field.value ? [field.value] : [], options: typeOptions, filterable: typeOptions.length > 9, width: "max", popupClassName: b('columns-type-popup'), onUpdate: ([value]) => {
|
|
169
|
+
field.onChange(value);
|
|
170
|
+
onTypeChange(value);
|
|
171
|
+
revalidateColumns();
|
|
172
|
+
}, validationState: typeError ? 'invalid' : undefined })) }) }), mode === 'create' ? (_jsx("div", { className: b('columns-cell', { key: true }), children: _jsx(Controller, { control: control, name: `columns.${index}.key`, render: ({ field }) => (_jsx(Checkbox, { size: "l", checked: Boolean(field.value), disabled: keyDisabled, onUpdate: (value) => {
|
|
173
|
+
field.onChange(value);
|
|
174
|
+
onKeyChange(value);
|
|
175
|
+
revalidateColumns();
|
|
176
|
+
} })) }) })) : null, _jsx("div", { className: b('columns-cell', { 'not-null': true }), children: mode === 'create' ? (_jsx(Controller, { control: control, name: `columns.${index}.notNull`, render: ({ field }) => (_jsx(Checkbox, { size: "l", checked: Boolean(field.value), disabled: Boolean(notNullDisabledMessage), title: notNullDisabledMessage, onUpdate: field.onChange })) })) : null }), showDefaultColumn ? (_jsx("div", { className: b('columns-cell', { default: true }), children: defaultValueControl })) : null, _jsx("div", { className: b('columns-cell', { action: true }), children: _jsx(Button, { view: "flat", size: "m", onClick: () => {
|
|
177
|
+
onRemove();
|
|
178
|
+
revalidateColumns();
|
|
179
|
+
}, title: i18n('action_delete'), children: _jsx(Icon, { data: TrashBin, size: 16 }) }) })] }));
|
|
180
|
+
}
|
|
181
|
+
//# sourceMappingURL=YdbColumnsSection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"YdbColumnsSection.js","sourceRoot":"","sources":["../../../../../src/containers/Tenant/TableFormDialog/sections/YdbColumnsSection.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function YdbIndexesSection(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { Plus, TrashBin } from '@gravity-ui/icons';
|
|
4
|
+
import { Button, HelpMark, Icon, TextInput } from '@gravity-ui/uikit';
|
|
5
|
+
import { Controller, useFieldArray, useFormContext, useWatch } from 'react-hook-form';
|
|
6
|
+
import { cn } from '../../../../utils/cn';
|
|
7
|
+
import { ColumnSelectorField } from '../components/ColumnSelectorField';
|
|
8
|
+
import { FormFieldError, FormSection } from '../components/layout';
|
|
9
|
+
import { YDB_PK_TYPES } from '../constants';
|
|
10
|
+
import i18n from '../i18n';
|
|
11
|
+
const b = cn('ydb-table-form-dialog');
|
|
12
|
+
export function YdbIndexesSection() {
|
|
13
|
+
const { control, formState } = useFormContext();
|
|
14
|
+
const { fields: newIndexFields, append, remove, } = useFieldArray({
|
|
15
|
+
control,
|
|
16
|
+
name: 'secondaryIndexes',
|
|
17
|
+
});
|
|
18
|
+
const formColumns = useWatch({ control, name: 'columns' });
|
|
19
|
+
const availableColumns = React.useMemo(() => {
|
|
20
|
+
return formColumns.filter(({ name, type }) => Boolean(name) && YDB_PK_TYPES.has(type));
|
|
21
|
+
}, [formColumns]);
|
|
22
|
+
const hasAnyIndex = newIndexFields.length > 0;
|
|
23
|
+
const handleAddIndex = React.useCallback(() => {
|
|
24
|
+
append({ name: '', key: [] });
|
|
25
|
+
}, [append]);
|
|
26
|
+
return (_jsx(FormSection, { title: i18n('label_indexes'), children: _jsxs("div", { className: b('indexes-table'), children: [hasAnyIndex ? (_jsxs("div", { className: b('indexes-head'), children: [_jsx("div", { children: i18n('column_name') }), _jsxs("div", { className: b('columns-head-cell'), children: [i18n('column_index-key'), _jsx(HelpMark, { className: b('help-mark'), popoverProps: {
|
|
27
|
+
placement: ['bottom', 'top'],
|
|
28
|
+
className: b('help-mark-popup'),
|
|
29
|
+
}, children: i18n('tooltip_index-key') })] }), _jsx("div", {})] })) : null, newIndexFields.map((field, index) => {
|
|
30
|
+
var _a, _b, _c, _d, _e, _f;
|
|
31
|
+
const nameError = (_c = (_b = (_a = formState.errors.secondaryIndexes) === null || _a === void 0 ? void 0 : _a[index]) === null || _b === void 0 ? void 0 : _b.name) === null || _c === void 0 ? void 0 : _c.message;
|
|
32
|
+
const keyError = (_f = (_e = (_d = formState.errors.secondaryIndexes) === null || _d === void 0 ? void 0 : _d[index]) === null || _e === void 0 ? void 0 : _e.key) === null || _f === void 0 ? void 0 : _f.message;
|
|
33
|
+
return (_jsxs("div", { className: b('indexes-row'), children: [_jsx("div", { className: b('indexes-cell', { name: true }), children: _jsx(Controller, { control: control, name: `secondaryIndexes.${index}.name`, render: ({ field: nameField }) => {
|
|
34
|
+
var _a;
|
|
35
|
+
return (_jsx(TextInput, { className: b('control'), value: (_a = nameField.value) !== null && _a !== void 0 ? _a : '', onUpdate: nameField.onChange, validationState: nameError ? 'invalid' : undefined, errorMessage: nameError }));
|
|
36
|
+
} }) }), _jsx("div", { className: b('indexes-cell', { key: true }), children: _jsx(Controller, { control: control, name: `secondaryIndexes.${index}.key`, render: ({ field: keyField }) => {
|
|
37
|
+
var _a;
|
|
38
|
+
return (_jsxs("div", { className: b('control-stack'), children: [_jsx(ColumnSelectorField, { value: (_a = keyField.value) !== null && _a !== void 0 ? _a : [], onChange: keyField.onChange, columns: availableColumns, invalid: Boolean(keyError), className: b('control') }), _jsx(FormFieldError, { message: keyError })] }));
|
|
39
|
+
} }) }), _jsx("div", { className: b('indexes-cell', { action: true }), children: _jsx(Button, { view: "flat", size: "m", onClick: () => remove(index), title: i18n('action_delete'), children: _jsx(Icon, { data: TrashBin, size: 16 }) }) })] }, field.id));
|
|
40
|
+
}), _jsx("div", { children: _jsxs(Button, { onClick: handleAddIndex, children: [_jsx(Icon, { data: Plus, size: 16 }), i18n('button_add-index')] }) })] }) }));
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=YdbIndexesSection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"YdbIndexesSection.js","sourceRoot":"","sources":["../../../../../src/containers/Tenant/TableFormDialog/sections/YdbIndexesSection.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { Column, ColumnField, SecondaryIndex, TTLSettings, TableFormValues, TableSettings } from '../../../store/reducers/table/types';
|
|
2
|
+
import { PartitionsType } from '../../../store/reducers/table/types';
|
|
3
|
+
import type { TEvDescribeSchemeResult } from '../../../types/api/schema/schema';
|
|
4
|
+
export type FormMode = 'create' | 'update';
|
|
5
|
+
export type TableType = TableFormValues['type'];
|
|
6
|
+
export type { Column, ColumnField, TableFormValues as FormValues, SecondaryIndex, TTLSettings, TableSettings, };
|
|
7
|
+
export { PartitionsType };
|
|
8
|
+
export interface OriginalTableInfo {
|
|
9
|
+
name: string;
|
|
10
|
+
type: 'row' | 'column';
|
|
11
|
+
columns: Column[];
|
|
12
|
+
partitionKey: string[];
|
|
13
|
+
indexes: Array<{
|
|
14
|
+
name: string;
|
|
15
|
+
columns: string[];
|
|
16
|
+
}>;
|
|
17
|
+
hasTtl: boolean;
|
|
18
|
+
ttlColumn?: string;
|
|
19
|
+
hasMinPartitions: boolean;
|
|
20
|
+
hasMaxPartitions: boolean;
|
|
21
|
+
}
|
|
22
|
+
export interface TableFormSharedProps {
|
|
23
|
+
mode: FormMode;
|
|
24
|
+
originalTable?: TEvDescribeSchemeResult;
|
|
25
|
+
originalInfo?: OriginalTableInfo;
|
|
26
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/containers/Tenant/TableFormDialog/types.ts"],"names":[],"mappings":"AAQA,OAAO,EAAC,cAAc,EAAC,MAAM,qCAAqC,CAAC;AAcnE,OAAO,EAAC,cAAc,EAAC,CAAC"}
|