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,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":"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"}
|
|
@@ -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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"}
|