@solidxai/core-ui 0.1.12-beta.6 → 0.1.12-beta.8
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/dist/components/auth/AuthLayout.d.ts.map +1 -1
- package/dist/components/auth/AuthLayout.js +19 -17
- package/dist/components/auth/AuthLayout.js.map +1 -1
- package/dist/components/auth/AuthLayout.tsx +59 -34
- package/dist/components/common/BackendReconnectIndicator.d.ts +6 -0
- package/dist/components/common/BackendReconnectIndicator.d.ts.map +1 -0
- package/dist/components/common/BackendReconnectIndicator.js +25 -0
- package/dist/components/common/BackendReconnectIndicator.js.map +1 -0
- package/dist/components/common/BackendReconnectIndicator.tsx +45 -0
- package/dist/components/common/SettingsComponent.d.ts.map +1 -1
- package/dist/components/common/SettingsComponent.js +7 -3
- package/dist/components/common/SettingsComponent.js.map +1 -1
- package/dist/components/common/SettingsComponent.module.css +144 -12
- package/dist/components/common/SettingsComponent.tsx +22 -3
- package/dist/components/common/SolidAdmin.d.ts.map +1 -1
- package/dist/components/common/SolidAdmin.js +7 -2
- package/dist/components/common/SolidAdmin.js.map +1 -1
- package/dist/components/common/SolidAdmin.tsx +7 -2
- package/dist/components/common/SolidBreadcrumb.d.ts.map +1 -1
- package/dist/components/common/SolidBreadcrumb.js +1 -6
- package/dist/components/common/SolidBreadcrumb.js.map +1 -1
- package/dist/components/common/SolidBreadcrumb.tsx +1 -8
- package/dist/components/common/SolidMaterialSymbol.d.ts +10 -0
- package/dist/components/common/SolidMaterialSymbol.d.ts.map +1 -0
- package/dist/components/common/SolidMaterialSymbol.js +69 -0
- package/dist/components/common/SolidMaterialSymbol.js.map +1 -0
- package/dist/components/common/SolidMaterialSymbol.tsx +96 -0
- package/dist/components/common/SolidToastProvider.d.ts.map +1 -1
- package/dist/components/common/SolidToastProvider.js +14 -1
- package/dist/components/common/SolidToastProvider.js.map +1 -1
- package/dist/components/common/SolidToastProvider.tsx +19 -1
- package/dist/components/core/card/CardGrid.d.ts +1 -1
- package/dist/components/core/card/CardGrid.d.ts.map +1 -1
- package/dist/components/core/card/CardGrid.js +2 -2
- package/dist/components/core/card/CardGrid.js.map +1 -1
- package/dist/components/core/card/CardGrid.tsx +4 -0
- package/dist/components/core/card/CardItem.d.ts +2 -0
- package/dist/components/core/card/CardItem.d.ts.map +1 -1
- package/dist/components/core/card/CardItem.js +7 -2
- package/dist/components/core/card/CardItem.js.map +1 -1
- package/dist/components/core/card/CardItem.tsx +30 -8
- package/dist/components/core/card/SolidCardView.d.ts.map +1 -1
- package/dist/components/core/card/SolidCardView.js +87 -21
- package/dist/components/core/card/SolidCardView.js.map +1 -1
- package/dist/components/core/card/SolidCardView.tsx +96 -40
- package/dist/components/core/card/SolidCardViewConfigure.d.ts +1 -1
- package/dist/components/core/card/SolidCardViewConfigure.d.ts.map +1 -1
- package/dist/components/core/card/SolidCardViewConfigure.js +9 -7
- package/dist/components/core/card/SolidCardViewConfigure.js.map +1 -1
- package/dist/components/core/card/SolidCardViewConfigure.tsx +14 -1
- package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.module.css +3 -1
- package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.js +4 -3
- package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.tsx +15 -19
- package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.d.ts.map +1 -1
- package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.js +43 -16
- package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.js.map +1 -1
- package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.tsx +24 -2
- package/dist/components/core/form/SolidFormFooter.js +1 -1
- package/dist/components/core/form/SolidFormFooter.js.map +1 -1
- package/dist/components/core/form/SolidFormFooter.tsx +1 -1
- package/dist/components/core/form/SolidFormLayouts.js +1 -1
- package/dist/components/core/form/SolidFormLayouts.js.map +1 -1
- package/dist/components/core/form/SolidFormLayouts.tsx +2 -2
- package/dist/components/core/form/fields/SolidMediaMultipleField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidMediaMultipleField.js +120 -56
- package/dist/components/core/form/fields/SolidMediaMultipleField.js.map +1 -1
- package/dist/components/core/form/fields/SolidMediaMultipleField.tsx +63 -50
- package/dist/components/core/form/fields/SolidMediaSingleField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidMediaSingleField.js +115 -37
- package/dist/components/core/form/fields/SolidMediaSingleField.js.map +1 -1
- package/dist/components/core/form/fields/SolidMediaSingleField.tsx +36 -35
- package/dist/components/core/form/fields/SolidRichTextField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidRichTextField.js +67 -4
- package/dist/components/core/form/fields/SolidRichTextField.js.map +1 -1
- package/dist/components/core/form/fields/SolidRichTextField.tsx +89 -7
- package/dist/components/core/form/fields/mediaFieldUtils.d.ts +3 -0
- package/dist/components/core/form/fields/mediaFieldUtils.d.ts.map +1 -0
- package/dist/components/core/form/fields/mediaFieldUtils.js +30 -0
- package/dist/components/core/form/fields/mediaFieldUtils.js.map +1 -0
- package/dist/components/core/form/fields/mediaFieldUtils.ts +45 -0
- package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js +1 -1
- package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js.map +1 -1
- package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.tsx +3 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +22 -23
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +13 -7
- package/dist/components/core/form/fields/widgets/SolidIconEditWidget.d.ts.map +1 -1
- package/dist/components/core/form/fields/widgets/SolidIconEditWidget.js +16 -11
- package/dist/components/core/form/fields/widgets/SolidIconEditWidget.js.map +1 -1
- package/dist/components/core/form/fields/widgets/SolidIconEditWidget.tsx +32 -18
- package/dist/components/core/form/fields/widgets/SolidIconViewWidget.d.ts.map +1 -1
- package/dist/components/core/form/fields/widgets/SolidIconViewWidget.js +3 -1
- package/dist/components/core/form/fields/widgets/SolidIconViewWidget.js.map +1 -1
- package/dist/components/core/form/fields/widgets/SolidIconViewWidget.tsx +11 -5
- package/dist/components/core/kanban/KanbanBoard.d.ts +1 -1
- package/dist/components/core/kanban/KanbanBoard.d.ts.map +1 -1
- package/dist/components/core/kanban/KanbanBoard.js +2 -2
- package/dist/components/core/kanban/KanbanBoard.js.map +1 -1
- package/dist/components/core/kanban/KanbanBoard.tsx +3 -1
- package/dist/components/core/kanban/KanbanCard.d.ts +2 -0
- package/dist/components/core/kanban/KanbanCard.d.ts.map +1 -1
- package/dist/components/core/kanban/KanbanCard.js +10 -5
- package/dist/components/core/kanban/KanbanCard.js.map +1 -1
- package/dist/components/core/kanban/KanbanCard.tsx +28 -12
- package/dist/components/core/kanban/KanbanColumn.d.ts +3 -1
- package/dist/components/core/kanban/KanbanColumn.d.ts.map +1 -1
- package/dist/components/core/kanban/KanbanColumn.js +2 -2
- package/dist/components/core/kanban/KanbanColumn.js.map +1 -1
- package/dist/components/core/kanban/KanbanColumn.tsx +4 -2
- package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.js +154 -25
- package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.tsx +129 -16
- package/dist/components/core/kanban/SolidKanbanViewConfigure.d.ts +1 -1
- package/dist/components/core/kanban/SolidKanbanViewConfigure.d.ts.map +1 -1
- package/dist/components/core/kanban/SolidKanbanViewConfigure.js +13 -10
- package/dist/components/core/kanban/SolidKanbanViewConfigure.js.map +1 -1
- package/dist/components/core/kanban/SolidKanbanViewConfigure.tsx +18 -3
- package/dist/components/core/list/SolidDataTable.d.ts.map +1 -1
- package/dist/components/core/list/SolidDataTable.js +3 -2
- package/dist/components/core/list/SolidDataTable.js.map +1 -1
- package/dist/components/core/list/SolidDataTable.tsx +3 -2
- package/dist/components/core/list/SolidListView.d.ts.map +1 -1
- package/dist/components/core/list/SolidListView.js +16 -5
- package/dist/components/core/list/SolidListView.js.map +1 -1
- package/dist/components/core/list/SolidListView.tsx +20 -8
- package/dist/components/core/list/SolidListViewColumn.d.ts.map +1 -1
- package/dist/components/core/list/SolidListViewColumn.js +1 -0
- package/dist/components/core/list/SolidListViewColumn.js.map +1 -1
- package/dist/components/core/list/SolidListViewColumn.tsx +1 -0
- package/dist/components/core/list/columns/SolidShortTextColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidShortTextColumn.js +7 -2
- package/dist/components/core/list/columns/SolidShortTextColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidShortTextColumn.tsx +7 -2
- package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.js +4 -1
- package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.js.map +1 -1
- package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.tsx +5 -2
- package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js +2 -1
- package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js.map +1 -1
- package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.tsx +2 -1
- package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.js +4 -1
- package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.js.map +1 -1
- package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.tsx +5 -2
- package/dist/components/core/locales/SolidLocale.d.ts.map +1 -1
- package/dist/components/core/locales/SolidLocale.js +1 -1
- package/dist/components/core/locales/SolidLocale.js.map +1 -1
- package/dist/components/core/locales/SolidLocale.tsx +1 -0
- package/dist/components/core/model/CreateModel.css +26 -0
- package/dist/components/core/model/FieldMetaData.d.ts.map +1 -1
- package/dist/components/core/model/FieldMetaData.js +21 -3
- package/dist/components/core/model/FieldMetaData.js.map +1 -1
- package/dist/components/core/model/FieldMetaData.tsx +45 -4
- package/dist/components/core/model/FieldMetaDataForm.css +82 -0
- package/dist/components/core/model/FieldMetaDataForm.d.ts +1 -0
- package/dist/components/core/model/FieldMetaDataForm.d.ts.map +1 -1
- package/dist/components/core/model/FieldMetaDataForm.js +246 -235
- package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
- package/dist/components/core/model/FieldMetaDataForm.tsx +46 -34
- package/dist/components/core/model/FieldSelector.js +1 -1
- package/dist/components/core/model/FieldSelector.js.map +1 -1
- package/dist/components/core/model/FieldSelector.tsx +1 -1
- package/dist/components/core/model/ModelMetaData.js +1 -1
- package/dist/components/core/model/ModelMetaData.js.map +1 -1
- package/dist/components/core/model/ModelMetaData.tsx +1 -1
- package/dist/components/core/module/CreateModule.css +55 -2
- package/dist/components/core/module/CreateModule.d.ts.map +1 -1
- package/dist/components/core/module/CreateModule.js +2 -2
- package/dist/components/core/module/CreateModule.js.map +1 -1
- package/dist/components/core/module/CreateModule.tsx +3 -2
- package/dist/components/core/module/ModuleMetadataExplorer.css +27 -0
- package/dist/components/core/module/ModuleMetadataExplorer.d.ts.map +1 -1
- package/dist/components/core/module/ModuleMetadataExplorer.js +1 -1
- package/dist/components/core/module/ModuleMetadataExplorer.js.map +1 -1
- package/dist/components/core/module/ModuleMetadataExplorer.tsx +1 -0
- package/dist/components/core/tree/SolidTreeTable.d.ts +2 -1
- package/dist/components/core/tree/SolidTreeTable.d.ts.map +1 -1
- package/dist/components/core/tree/SolidTreeTable.js +2 -2
- package/dist/components/core/tree/SolidTreeTable.js.map +1 -1
- package/dist/components/core/tree/SolidTreeTable.tsx +3 -1
- package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -1
- package/dist/components/core/tree/SolidTreeView.js +44 -16
- package/dist/components/core/tree/SolidTreeView.js.map +1 -1
- package/dist/components/core/tree/SolidTreeView.tsx +55 -24
- package/dist/components/core/users/CreateUser.d.ts.map +1 -1
- package/dist/components/core/users/CreateUser.js +45 -32
- package/dist/components/core/users/CreateUser.js.map +1 -1
- package/dist/components/core/users/CreateUser.tsx +15 -4
- package/dist/components/layout/AdminHeaderActions.d.ts.map +1 -1
- package/dist/components/layout/AdminHeaderActions.js +10 -9
- package/dist/components/layout/AdminHeaderActions.js.map +1 -1
- package/dist/components/layout/AdminHeaderActions.tsx +2 -0
- package/dist/components/layout/AppSidebar.d.ts.map +1 -1
- package/dist/components/layout/AppSidebar.js +2 -1
- package/dist/components/layout/AppSidebar.js.map +1 -1
- package/dist/components/layout/AppSidebar.tsx +12 -5
- package/dist/components/layout/SolidMenuItemIcon.d.ts +9 -0
- package/dist/components/layout/SolidMenuItemIcon.d.ts.map +1 -0
- package/dist/components/layout/SolidMenuItemIcon.js +20 -0
- package/dist/components/layout/SolidMenuItemIcon.js.map +1 -0
- package/dist/components/layout/SolidMenuItemIcon.tsx +45 -0
- package/dist/components/layout/navbar-two-menu.d.ts.map +1 -1
- package/dist/components/layout/navbar-two-menu.js +6 -7
- package/dist/components/layout/navbar-two-menu.js.map +1 -1
- package/dist/components/layout/navbar-two-menu.tsx +4 -12
- package/dist/components/shad-cn-ui/SolidCodeEditor.d.ts.map +1 -1
- package/dist/components/shad-cn-ui/SolidCodeEditor.js +30 -2
- package/dist/components/shad-cn-ui/SolidCodeEditor.js.map +1 -1
- package/dist/components/shad-cn-ui/SolidCodeEditor.tsx +38 -1
- package/dist/helpers/backendHealthMonitor.d.ts +39 -0
- package/dist/helpers/backendHealthMonitor.d.ts.map +1 -0
- package/dist/helpers/backendHealthMonitor.js +255 -0
- package/dist/helpers/backendHealthMonitor.js.map +1 -0
- package/dist/helpers/backendHealthMonitor.ts +177 -0
- package/dist/helpers/helpers.d.ts +1 -0
- package/dist/helpers/helpers.d.ts.map +1 -1
- package/dist/helpers/helpers.js +9 -0
- package/dist/helpers/helpers.js.map +1 -1
- package/dist/helpers/helpers.ts +11 -1
- package/dist/helpers/menuItemIcons.d.ts +34 -0
- package/dist/helpers/menuItemIcons.d.ts.map +1 -0
- package/dist/helpers/menuItemIcons.js +144 -0
- package/dist/helpers/menuItemIcons.js.map +1 -0
- package/dist/helpers/menuItemIcons.ts +191 -0
- package/dist/helpers/relationDisplay.d.ts +3 -0
- package/dist/helpers/relationDisplay.d.ts.map +1 -0
- package/dist/helpers/relationDisplay.js +92 -0
- package/dist/helpers/relationDisplay.js.map +1 -0
- package/dist/helpers/relationDisplay.ts +101 -0
- package/dist/helpers/settingsPayload.d.ts +1 -0
- package/dist/helpers/settingsPayload.d.ts.map +1 -1
- package/dist/helpers/settingsPayload.js.map +1 -1
- package/dist/helpers/settingsPayload.ts +1 -0
- package/dist/helpers/solidIcons.d.ts +2 -0
- package/dist/helpers/solidIcons.d.ts.map +1 -1
- package/dist/helpers/solidIcons.js +8 -0
- package/dist/helpers/solidIcons.js.map +1 -1
- package/dist/helpers/solidIcons.tsx +10 -1
- package/dist/helpers/waitForBackendAvailability.d.ts +1 -0
- package/dist/helpers/waitForBackendAvailability.d.ts.map +1 -1
- package/dist/helpers/waitForBackendAvailability.js +35 -22
- package/dist/helpers/waitForBackendAvailability.js.map +1 -1
- package/dist/helpers/waitForBackendAvailability.ts +18 -12
- package/dist/http/solidHttp.d.ts.map +1 -1
- package/dist/http/solidHttp.js +10 -4
- package/dist/http/solidHttp.js.map +1 -1
- package/dist/http/solidHttp.ts +9 -4
- package/dist/redux/api/datasourceIntrospectionApi.d.ts +4 -0
- package/dist/redux/api/datasourceIntrospectionApi.d.ts.map +1 -1
- package/dist/redux/api/datasourceIntrospectionApi.js.map +1 -1
- package/dist/redux/api/datasourceIntrospectionApi.ts +4 -0
- package/dist/redux/api/fetchBaseQuery.d.ts.map +1 -1
- package/dist/redux/api/fetchBaseQuery.js +9 -3
- package/dist/redux/api/fetchBaseQuery.js.map +1 -1
- package/dist/redux/api/fetchBaseQuery.tsx +9 -3
- package/dist/redux/store/StoreProvider.d.ts.map +1 -1
- package/dist/redux/store/StoreProvider.js +4 -3
- package/dist/redux/store/StoreProvider.js.map +1 -1
- package/dist/redux/store/StoreProvider.tsx +4 -3
- package/dist/redux/store/defaultStoreConfig.d.ts +5 -5
- package/dist/resources/globals.css +341 -49
- package/dist/resources/solid-custom.css +464 -11
- package/dist/resources/solid-responsive.css +31 -20
- package/dist/resources/solid-tailwind-generated.css +1 -1
- package/dist/routes/AppEventListener.d.ts.map +1 -1
- package/dist/routes/AppEventListener.js +23 -0
- package/dist/routes/AppEventListener.js.map +1 -1
- package/dist/routes/AppEventListener.tsx +29 -0
- package/dist/routes/pages/admin/core/DashboardPage.module.css +12 -0
- package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.css +306 -3
- package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.d.ts.map +1 -1
- package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.js +745 -393
- package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.js.map +1 -1
- package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.tsx +1074 -420
- package/dist/routes/pages/admin/core/DatasourcesPage.css +15 -0
- package/dist/routes/pages/admin/core/DatasourcesPage.d.ts.map +1 -1
- package/dist/routes/pages/admin/core/DatasourcesPage.js +7 -188
- package/dist/routes/pages/admin/core/DatasourcesPage.js.map +1 -1
- package/dist/routes/pages/admin/core/DatasourcesPage.tsx +3 -393
- package/package.json +1 -1
|
@@ -1,27 +1,8 @@
|
|
|
1
|
-
import { Database,
|
|
2
|
-
import {
|
|
3
|
-
import { useDispatch } from "react-redux";
|
|
4
|
-
import { showToast } from "../../../../redux/features/toastSlice";
|
|
5
|
-
import {
|
|
6
|
-
type CreateDatasourceManagementPayload,
|
|
7
|
-
type DatasourceManagementRecord,
|
|
8
|
-
useCreateDatasourceMutation,
|
|
9
|
-
useGetDatasourcesQuery,
|
|
10
|
-
} from "../../../../redux/api/datasourceManagementApi";
|
|
1
|
+
import { Database, RefreshCw } from "lucide-react";
|
|
2
|
+
import { useGetDatasourcesQuery } from "../../../../redux/api/datasourceManagementApi";
|
|
11
3
|
import {
|
|
12
4
|
SolidButton,
|
|
13
|
-
SolidDialog,
|
|
14
|
-
SolidDialogBody,
|
|
15
|
-
SolidDialogDescription,
|
|
16
|
-
SolidDialogFooter,
|
|
17
|
-
SolidDialogHeader,
|
|
18
|
-
SolidDialogSeparator,
|
|
19
|
-
SolidDialogTitle,
|
|
20
|
-
SolidInput,
|
|
21
|
-
SolidPanel,
|
|
22
|
-
SolidSelect,
|
|
23
5
|
SolidSpinner,
|
|
24
|
-
SolidSwitch,
|
|
25
6
|
} from "../../../../components/shad-cn-ui";
|
|
26
7
|
import "./DatasourcesPage.css";
|
|
27
8
|
|
|
@@ -31,45 +12,6 @@ const providerOptions = [
|
|
|
31
12
|
{ label: "MS SQL Server", value: "mssql" },
|
|
32
13
|
] as const;
|
|
33
14
|
|
|
34
|
-
const defaultFormState: CreateDatasourceManagementPayload = {
|
|
35
|
-
name: "",
|
|
36
|
-
displayName: "",
|
|
37
|
-
type: "postgres",
|
|
38
|
-
host: "",
|
|
39
|
-
port: 5432,
|
|
40
|
-
database: "",
|
|
41
|
-
username: "",
|
|
42
|
-
password: "",
|
|
43
|
-
synchronize: false,
|
|
44
|
-
logging: false,
|
|
45
|
-
ssl: false,
|
|
46
|
-
sslRejectUnauthorized: true,
|
|
47
|
-
poolMax: 20,
|
|
48
|
-
connectionTimeoutMs: 60000,
|
|
49
|
-
idleTimeoutMs: 30000,
|
|
50
|
-
statementTimeoutMs: 60000,
|
|
51
|
-
idleInTxTimeoutMs: 60000,
|
|
52
|
-
retryAttempts: 0,
|
|
53
|
-
retryDelayMs: 0,
|
|
54
|
-
encrypt: false,
|
|
55
|
-
trustServerCertificate: true,
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
function slugifyDatasourceName(value: string) {
|
|
59
|
-
return value
|
|
60
|
-
.toLowerCase()
|
|
61
|
-
.trim()
|
|
62
|
-
.replace(/[^a-z0-9]+/g, "-")
|
|
63
|
-
.replace(/^-+|-+$/g, "")
|
|
64
|
-
.slice(0, 48);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
function getDefaultPort(type: CreateDatasourceManagementPayload["type"]) {
|
|
68
|
-
if (type === "mysql") return 3306;
|
|
69
|
-
if (type === "mssql") return 1433;
|
|
70
|
-
return 5432;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
15
|
function providerLabel(type: string) {
|
|
74
16
|
return providerOptions.find((option) => option.value === type)?.label || type;
|
|
75
17
|
}
|
|
@@ -86,39 +28,6 @@ function providerGlyph(type: string) {
|
|
|
86
28
|
return "MS";
|
|
87
29
|
}
|
|
88
30
|
|
|
89
|
-
function readMutationError(error: any) {
|
|
90
|
-
return (
|
|
91
|
-
error?.data?.message
|
|
92
|
-
|| error?.error
|
|
93
|
-
|| error?.message
|
|
94
|
-
|| "Unable to save the datasource."
|
|
95
|
-
);
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
function sanitizePayload(formState: CreateDatasourceManagementPayload): CreateDatasourceManagementPayload {
|
|
99
|
-
const payload: CreateDatasourceManagementPayload = {
|
|
100
|
-
...formState,
|
|
101
|
-
name: slugifyDatasourceName(formState.name),
|
|
102
|
-
};
|
|
103
|
-
|
|
104
|
-
if (payload.type === "mssql") {
|
|
105
|
-
delete payload.ssl;
|
|
106
|
-
delete payload.sslRejectUnauthorized;
|
|
107
|
-
delete payload.statementTimeoutMs;
|
|
108
|
-
delete payload.idleInTxTimeoutMs;
|
|
109
|
-
} else {
|
|
110
|
-
delete payload.encrypt;
|
|
111
|
-
delete payload.trustServerCertificate;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
if (payload.type !== "postgres") {
|
|
115
|
-
delete payload.statementTimeoutMs;
|
|
116
|
-
delete payload.idleInTxTimeoutMs;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
return payload;
|
|
120
|
-
}
|
|
121
|
-
|
|
122
31
|
function DatasourceProviderMark({ type }: { type: string }) {
|
|
123
32
|
return (
|
|
124
33
|
<div className={`sdm-provider-mark ${providerTone(type)}`}>
|
|
@@ -128,7 +37,6 @@ function DatasourceProviderMark({ type }: { type: string }) {
|
|
|
128
37
|
}
|
|
129
38
|
|
|
130
39
|
export function DatasourcesPage() {
|
|
131
|
-
const dispatch = useDispatch();
|
|
132
40
|
const {
|
|
133
41
|
data: datasources = [],
|
|
134
42
|
isLoading,
|
|
@@ -136,68 +44,6 @@ export function DatasourcesPage() {
|
|
|
136
44
|
error,
|
|
137
45
|
refetch,
|
|
138
46
|
} = useGetDatasourcesQuery();
|
|
139
|
-
const [createDatasource, { isLoading: isCreating }] = useCreateDatasourceMutation();
|
|
140
|
-
const [dialogOpen, setDialogOpen] = useState(false);
|
|
141
|
-
const [nameTouched, setNameTouched] = useState(false);
|
|
142
|
-
const [formState, setFormState] = useState<CreateDatasourceManagementPayload>(defaultFormState);
|
|
143
|
-
|
|
144
|
-
useEffect(() => {
|
|
145
|
-
if (!dialogOpen) {
|
|
146
|
-
setFormState(defaultFormState);
|
|
147
|
-
setNameTouched(false);
|
|
148
|
-
}
|
|
149
|
-
}, [dialogOpen]);
|
|
150
|
-
|
|
151
|
-
const handleFieldChange = <K extends keyof CreateDatasourceManagementPayload>(
|
|
152
|
-
key: K,
|
|
153
|
-
value: CreateDatasourceManagementPayload[K],
|
|
154
|
-
) => {
|
|
155
|
-
setFormState((current) => ({
|
|
156
|
-
...current,
|
|
157
|
-
[key]: value,
|
|
158
|
-
}));
|
|
159
|
-
};
|
|
160
|
-
|
|
161
|
-
const handleDisplayNameChange = (value: string) => {
|
|
162
|
-
setFormState((current) => ({
|
|
163
|
-
...current,
|
|
164
|
-
displayName: value,
|
|
165
|
-
name: nameTouched ? current.name : slugifyDatasourceName(value),
|
|
166
|
-
}));
|
|
167
|
-
};
|
|
168
|
-
|
|
169
|
-
const handleTypeChange = (value: CreateDatasourceManagementPayload["type"]) => {
|
|
170
|
-
handleFieldChange("type", value);
|
|
171
|
-
handleFieldChange("port", getDefaultPort(value));
|
|
172
|
-
};
|
|
173
|
-
|
|
174
|
-
const handleSubmit = async () => {
|
|
175
|
-
if (!formState.name || !formState.host || !formState.database || !formState.username || !formState.password) {
|
|
176
|
-
dispatch(showToast({
|
|
177
|
-
severity: "warn",
|
|
178
|
-
summary: "Missing details",
|
|
179
|
-
detail: "Fill in the datasource name, host, database, username, and password.",
|
|
180
|
-
}));
|
|
181
|
-
return;
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
try {
|
|
185
|
-
const payload = sanitizePayload(formState);
|
|
186
|
-
await createDatasource(payload).unwrap();
|
|
187
|
-
setDialogOpen(false);
|
|
188
|
-
dispatch(showToast({
|
|
189
|
-
severity: "success",
|
|
190
|
-
summary: "Datasource created",
|
|
191
|
-
detail: `${payload.displayName || payload.name} is now registered in SolidX.`,
|
|
192
|
-
}));
|
|
193
|
-
} catch (mutationError: any) {
|
|
194
|
-
dispatch(showToast({
|
|
195
|
-
severity: "error",
|
|
196
|
-
summary: "Datasource creation failed",
|
|
197
|
-
detail: readMutationError(mutationError),
|
|
198
|
-
}));
|
|
199
|
-
}
|
|
200
|
-
};
|
|
201
47
|
|
|
202
48
|
return (
|
|
203
49
|
<div className="sdm-page">
|
|
@@ -215,14 +61,6 @@ export function DatasourcesPage() {
|
|
|
215
61
|
</div>
|
|
216
62
|
) : null}
|
|
217
63
|
|
|
218
|
-
<SolidButton
|
|
219
|
-
className="sdm-icon-button"
|
|
220
|
-
leftIcon={<Plus size={16} />}
|
|
221
|
-
onClick={() => setDialogOpen(true)}
|
|
222
|
-
tooltip="Add datasource"
|
|
223
|
-
aria-label="Add datasource"
|
|
224
|
-
/>
|
|
225
|
-
|
|
226
64
|
<SolidButton
|
|
227
65
|
className="sdm-icon-button"
|
|
228
66
|
leftIcon={<RefreshCw size={16} />}
|
|
@@ -303,238 +141,10 @@ export function DatasourcesPage() {
|
|
|
303
141
|
<Database size={22} />
|
|
304
142
|
<div>
|
|
305
143
|
<h3>No datasources configured</h3>
|
|
306
|
-
<p>
|
|
144
|
+
<p>Datasource creation is temporarily unavailable from this screen.</p>
|
|
307
145
|
</div>
|
|
308
|
-
<SolidButton size="small" onClick={() => setDialogOpen(true)} leftIcon={<Plus size={14} />}>
|
|
309
|
-
Add datasource
|
|
310
|
-
</SolidButton>
|
|
311
146
|
</div>
|
|
312
147
|
)}
|
|
313
|
-
|
|
314
|
-
<SolidDialog open={dialogOpen} onOpenChange={setDialogOpen} style={{ width: "min(860px, calc(100vw - 32px))" }}>
|
|
315
|
-
<SolidDialogHeader>
|
|
316
|
-
<div>
|
|
317
|
-
<SolidDialogTitle>Add datasource</SolidDialogTitle>
|
|
318
|
-
<SolidDialogDescription>
|
|
319
|
-
Create a new datasource module, register it in `app.module.ts`, and persist its env variables to disk.
|
|
320
|
-
</SolidDialogDescription>
|
|
321
|
-
</div>
|
|
322
|
-
</SolidDialogHeader>
|
|
323
|
-
<SolidDialogSeparator />
|
|
324
|
-
<SolidDialogBody>
|
|
325
|
-
<div className="sdm-form-grid">
|
|
326
|
-
<label className="sdm-form-field">
|
|
327
|
-
<span>Display name</span>
|
|
328
|
-
<SolidInput
|
|
329
|
-
value={formState.displayName || ""}
|
|
330
|
-
placeholder="Applications"
|
|
331
|
-
onChange={(event) => handleDisplayNameChange(event.target.value)}
|
|
332
|
-
/>
|
|
333
|
-
</label>
|
|
334
|
-
|
|
335
|
-
<label className="sdm-form-field">
|
|
336
|
-
<span>Datasource key</span>
|
|
337
|
-
<SolidInput
|
|
338
|
-
value={formState.name}
|
|
339
|
-
placeholder="applications"
|
|
340
|
-
onChange={(event) => {
|
|
341
|
-
setNameTouched(true);
|
|
342
|
-
handleFieldChange("name", slugifyDatasourceName(event.target.value));
|
|
343
|
-
}}
|
|
344
|
-
/>
|
|
345
|
-
</label>
|
|
346
|
-
|
|
347
|
-
<label className="sdm-form-field">
|
|
348
|
-
<span>Provider</span>
|
|
349
|
-
<SolidSelect
|
|
350
|
-
value={formState.type}
|
|
351
|
-
options={providerOptions as any}
|
|
352
|
-
onChange={(event) => handleTypeChange(event.value)}
|
|
353
|
-
/>
|
|
354
|
-
</label>
|
|
355
|
-
|
|
356
|
-
<label className="sdm-form-field">
|
|
357
|
-
<span>Port</span>
|
|
358
|
-
<SolidInput
|
|
359
|
-
type="number"
|
|
360
|
-
value={formState.port}
|
|
361
|
-
onChange={(event) => handleFieldChange("port", Number(event.target.value) || getDefaultPort(formState.type))}
|
|
362
|
-
/>
|
|
363
|
-
</label>
|
|
364
|
-
|
|
365
|
-
<label className="sdm-form-field">
|
|
366
|
-
<span>Host</span>
|
|
367
|
-
<SolidInput
|
|
368
|
-
value={formState.host}
|
|
369
|
-
placeholder="localhost"
|
|
370
|
-
onChange={(event) => handleFieldChange("host", event.target.value)}
|
|
371
|
-
/>
|
|
372
|
-
</label>
|
|
373
|
-
|
|
374
|
-
<label className="sdm-form-field">
|
|
375
|
-
<span>Database</span>
|
|
376
|
-
<SolidInput
|
|
377
|
-
value={formState.database}
|
|
378
|
-
placeholder="solidx_app"
|
|
379
|
-
onChange={(event) => handleFieldChange("database", event.target.value)}
|
|
380
|
-
/>
|
|
381
|
-
</label>
|
|
382
|
-
|
|
383
|
-
<label className="sdm-form-field">
|
|
384
|
-
<span>Username</span>
|
|
385
|
-
<SolidInput
|
|
386
|
-
value={formState.username}
|
|
387
|
-
placeholder="postgres"
|
|
388
|
-
onChange={(event) => handleFieldChange("username", event.target.value)}
|
|
389
|
-
/>
|
|
390
|
-
</label>
|
|
391
|
-
|
|
392
|
-
<label className="sdm-form-field">
|
|
393
|
-
<span>Password</span>
|
|
394
|
-
<SolidInput
|
|
395
|
-
type="password"
|
|
396
|
-
value={formState.password}
|
|
397
|
-
onChange={(event) => handleFieldChange("password", event.target.value)}
|
|
398
|
-
/>
|
|
399
|
-
</label>
|
|
400
|
-
</div>
|
|
401
|
-
|
|
402
|
-
<div className="sdm-switch-row">
|
|
403
|
-
<label className="sdm-switch-field">
|
|
404
|
-
<div>
|
|
405
|
-
<strong>Synchronize</strong>
|
|
406
|
-
<span>Write `*_DATABASE_SYNCHRONIZE` for this datasource.</span>
|
|
407
|
-
</div>
|
|
408
|
-
<SolidSwitch checked={!!formState.synchronize} onChange={(checked) => handleFieldChange("synchronize", checked)} />
|
|
409
|
-
</label>
|
|
410
|
-
|
|
411
|
-
<label className="sdm-switch-field">
|
|
412
|
-
<div>
|
|
413
|
-
<strong>Logging</strong>
|
|
414
|
-
<span>Enable TypeORM logging through the generated datasource module.</span>
|
|
415
|
-
</div>
|
|
416
|
-
<SolidSwitch checked={!!formState.logging} onChange={(checked) => handleFieldChange("logging", checked)} />
|
|
417
|
-
</label>
|
|
418
|
-
</div>
|
|
419
|
-
|
|
420
|
-
<SolidPanel header="Advanced options" toggleable className="solid-column-panel sdm-advanced-panel">
|
|
421
|
-
<div className="sdm-advanced-grid">
|
|
422
|
-
{formState.type === "mssql" ? (
|
|
423
|
-
<>
|
|
424
|
-
<label className="sdm-switch-field sdm-switch-field--inline">
|
|
425
|
-
<div>
|
|
426
|
-
<strong>Encrypt</strong>
|
|
427
|
-
<span>MSSQL connection option.</span>
|
|
428
|
-
</div>
|
|
429
|
-
<SolidSwitch checked={!!formState.encrypt} onChange={(checked) => handleFieldChange("encrypt", checked)} />
|
|
430
|
-
</label>
|
|
431
|
-
|
|
432
|
-
<label className="sdm-switch-field sdm-switch-field--inline">
|
|
433
|
-
<div>
|
|
434
|
-
<strong>Trust certificate</strong>
|
|
435
|
-
<span>Allow self-signed development certificates.</span>
|
|
436
|
-
</div>
|
|
437
|
-
<SolidSwitch checked={!!formState.trustServerCertificate} onChange={(checked) => handleFieldChange("trustServerCertificate", checked)} />
|
|
438
|
-
</label>
|
|
439
|
-
</>
|
|
440
|
-
) : (
|
|
441
|
-
<>
|
|
442
|
-
<label className="sdm-switch-field sdm-switch-field--inline">
|
|
443
|
-
<div>
|
|
444
|
-
<strong>SSL</strong>
|
|
445
|
-
<span>Enable SSL for PostgreSQL or MySQL.</span>
|
|
446
|
-
</div>
|
|
447
|
-
<SolidSwitch checked={!!formState.ssl} onChange={(checked) => handleFieldChange("ssl", checked)} />
|
|
448
|
-
</label>
|
|
449
|
-
|
|
450
|
-
<label className="sdm-switch-field sdm-switch-field--inline">
|
|
451
|
-
<div>
|
|
452
|
-
<strong>Reject unauthorized</strong>
|
|
453
|
-
<span>Keep certificate validation strict when SSL is enabled.</span>
|
|
454
|
-
</div>
|
|
455
|
-
<SolidSwitch checked={!!formState.sslRejectUnauthorized} onChange={(checked) => handleFieldChange("sslRejectUnauthorized", checked)} />
|
|
456
|
-
</label>
|
|
457
|
-
</>
|
|
458
|
-
)}
|
|
459
|
-
|
|
460
|
-
<label className="sdm-form-field">
|
|
461
|
-
<span>Pool max</span>
|
|
462
|
-
<SolidInput
|
|
463
|
-
type="number"
|
|
464
|
-
value={formState.poolMax ?? ""}
|
|
465
|
-
onChange={(event) => handleFieldChange("poolMax", Number(event.target.value) || 0)}
|
|
466
|
-
/>
|
|
467
|
-
</label>
|
|
468
|
-
|
|
469
|
-
<label className="sdm-form-field">
|
|
470
|
-
<span>Connection timeout (ms)</span>
|
|
471
|
-
<SolidInput
|
|
472
|
-
type="number"
|
|
473
|
-
value={formState.connectionTimeoutMs ?? ""}
|
|
474
|
-
onChange={(event) => handleFieldChange("connectionTimeoutMs", Number(event.target.value) || 0)}
|
|
475
|
-
/>
|
|
476
|
-
</label>
|
|
477
|
-
|
|
478
|
-
<label className="sdm-form-field">
|
|
479
|
-
<span>Idle timeout (ms)</span>
|
|
480
|
-
<SolidInput
|
|
481
|
-
type="number"
|
|
482
|
-
value={formState.idleTimeoutMs ?? ""}
|
|
483
|
-
onChange={(event) => handleFieldChange("idleTimeoutMs", Number(event.target.value) || 0)}
|
|
484
|
-
/>
|
|
485
|
-
</label>
|
|
486
|
-
|
|
487
|
-
{formState.type === "postgres" ? (
|
|
488
|
-
<>
|
|
489
|
-
<label className="sdm-form-field">
|
|
490
|
-
<span>Statement timeout (ms)</span>
|
|
491
|
-
<SolidInput
|
|
492
|
-
type="number"
|
|
493
|
-
value={formState.statementTimeoutMs ?? ""}
|
|
494
|
-
onChange={(event) => handleFieldChange("statementTimeoutMs", Number(event.target.value) || 0)}
|
|
495
|
-
/>
|
|
496
|
-
</label>
|
|
497
|
-
|
|
498
|
-
<label className="sdm-form-field">
|
|
499
|
-
<span>Idle in transaction timeout (ms)</span>
|
|
500
|
-
<SolidInput
|
|
501
|
-
type="number"
|
|
502
|
-
value={formState.idleInTxTimeoutMs ?? ""}
|
|
503
|
-
onChange={(event) => handleFieldChange("idleInTxTimeoutMs", Number(event.target.value) || 0)}
|
|
504
|
-
/>
|
|
505
|
-
</label>
|
|
506
|
-
</>
|
|
507
|
-
) : null}
|
|
508
|
-
|
|
509
|
-
<label className="sdm-form-field">
|
|
510
|
-
<span>Retry attempts</span>
|
|
511
|
-
<SolidInput
|
|
512
|
-
type="number"
|
|
513
|
-
value={formState.retryAttempts ?? ""}
|
|
514
|
-
onChange={(event) => handleFieldChange("retryAttempts", Number(event.target.value) || 0)}
|
|
515
|
-
/>
|
|
516
|
-
</label>
|
|
517
|
-
|
|
518
|
-
<label className="sdm-form-field">
|
|
519
|
-
<span>Retry delay (ms)</span>
|
|
520
|
-
<SolidInput
|
|
521
|
-
type="number"
|
|
522
|
-
value={formState.retryDelayMs ?? ""}
|
|
523
|
-
onChange={(event) => handleFieldChange("retryDelayMs", Number(event.target.value) || 0)}
|
|
524
|
-
/>
|
|
525
|
-
</label>
|
|
526
|
-
</div>
|
|
527
|
-
</SolidPanel>
|
|
528
|
-
</SolidDialogBody>
|
|
529
|
-
<SolidDialogFooter>
|
|
530
|
-
<SolidButton variant="outline" onClick={() => setDialogOpen(false)}>
|
|
531
|
-
Cancel
|
|
532
|
-
</SolidButton>
|
|
533
|
-
<SolidButton onClick={() => void handleSubmit()} loading={isCreating}>
|
|
534
|
-
Create datasource
|
|
535
|
-
</SolidButton>
|
|
536
|
-
</SolidDialogFooter>
|
|
537
|
-
</SolidDialog>
|
|
538
148
|
</div>
|
|
539
149
|
);
|
|
540
150
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@solidxai/core-ui",
|
|
3
|
-
"version": "0.1.12-beta.
|
|
3
|
+
"version": "0.1.12-beta.8",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"build:tailwind": "tailwindcss -i ./src/resources/solid-tailwind.css -o ./src/resources/solid-tailwind-generated.css -c ./tailwind.config.js --minify",
|
|
6
6
|
"prebuild": "npm run build:tailwind && npm run copy-resources && npm run copy-styles",
|