@quillsql/admin 1.6.4 → 1.7.1
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/cjs/Admin.d.ts +3 -44
- package/dist/cjs/Admin.d.ts.map +1 -1
- package/dist/cjs/Admin.js +117 -28
- package/dist/cjs/AdminProvider.d.ts +9 -145
- package/dist/cjs/AdminProvider.d.ts.map +1 -1
- package/dist/cjs/AdminProvider.js +176 -97
- package/dist/cjs/api/ConnectionClient.d.ts +7 -4
- package/dist/cjs/api/ConnectionClient.d.ts.map +1 -1
- package/dist/cjs/api/ConnectionClient.js +66 -6
- package/dist/cjs/assets/ArrowDownHeadIcon.d.ts.map +1 -1
- package/dist/cjs/assets/XIcon.d.ts.map +1 -1
- package/dist/cjs/components/Banner/index.js +2 -2
- package/dist/cjs/components/CardSection.js +2 -2
- package/dist/cjs/components/ClipboardButton.d.ts.map +1 -1
- package/dist/cjs/components/DashboardSelectPopover.d.ts.map +1 -1
- package/dist/cjs/components/DashboardSelectPopover.js +29 -1
- package/dist/cjs/components/DatabaseSelector.d.ts +1 -1
- package/dist/cjs/components/DatabaseSelector.d.ts.map +1 -1
- package/dist/cjs/components/DateRangePicker/SingleDatePicker.js +2 -2
- package/dist/cjs/components/DateRangePicker/YearlessDateRangePicker.js +2 -2
- package/dist/cjs/components/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
- package/dist/cjs/components/DropDownMenuWithLabel.js +2 -2
- package/dist/cjs/components/DynamicBanner.d.ts +1 -1
- package/dist/cjs/components/DynamicBanner.d.ts.map +1 -1
- package/dist/cjs/components/EmptyDashboardComponent/index.js +2 -2
- package/dist/cjs/components/EmptyVirtualTablesComponent.js +2 -2
- package/dist/cjs/components/FormTooltip.js +2 -2
- package/dist/cjs/components/InputLabel.js +2 -2
- package/dist/cjs/components/InternalDashboard/DashboardFilter.d.ts +1 -1
- package/dist/cjs/components/InternalDashboard/DashboardFilter.d.ts.map +1 -1
- package/dist/cjs/components/InternalDashboard/DashboardFilter.js +2 -2
- package/dist/cjs/components/InternalDashboard/DashboardLoadingComponent.d.ts.map +1 -1
- package/dist/cjs/components/InternalDashboard/DateRangePicker/QuillDateRangePicker.js +2 -2
- package/dist/cjs/components/InternalDashboard/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
- package/dist/cjs/components/InternalDashboard/InternalDashboard.d.ts.map +1 -1
- package/dist/cjs/components/InternalDashboard/InternalDashboard.js +118 -38
- package/dist/cjs/components/OrgSelect.d.ts.map +1 -1
- package/dist/cjs/components/OrgSelect.js +51 -7
- package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts +5 -1
- package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
- package/dist/cjs/components/QuillMultiSelectWithCombo.js +331 -152
- package/dist/cjs/components/QuillPopover.js +2 -2
- package/dist/cjs/components/QuillSelect.d.ts.map +1 -1
- package/dist/cjs/components/QuillSelect.js +2 -2
- package/dist/cjs/components/QuillSelectWithCombo.d.ts +4 -3
- package/dist/cjs/components/QuillSelectWithCombo.d.ts.map +1 -1
- package/dist/cjs/components/QuillSelectWithCombo.js +36 -8
- package/dist/cjs/components/QuillToolTipPortal.d.ts.map +1 -1
- package/dist/cjs/components/QuillToolTipPortal.js +2 -2
- package/dist/cjs/components/SqlTextEditor.d.ts.map +1 -1
- package/dist/cjs/components/SqlTextEditor.js +15 -2
- package/dist/cjs/components/Tenants/EditTenant.d.ts +1 -1
- package/dist/cjs/components/Tenants/EditTenant.d.ts.map +1 -1
- package/dist/cjs/components/Tenants/EditTenant.js +52 -9
- package/dist/cjs/components/UiComponents.d.ts +1 -1
- package/dist/cjs/components/UiComponents.d.ts.map +1 -1
- package/dist/cjs/components/UiComponents.js +9 -8
- package/dist/cjs/components/VirtualTableTile.d.ts +1 -1
- package/dist/cjs/components/VirtualTableTile.d.ts.map +1 -1
- package/dist/cjs/forms/client_onboard/ConnectDatabase.d.ts +1 -1
- package/dist/cjs/forms/client_onboard/ConnectDatabase.d.ts.map +1 -1
- package/dist/cjs/forms/client_onboard/ConnectDatabase.js +51 -3
- package/dist/cjs/forms/client_onboard/ConnectSchema.d.ts +1 -1
- package/dist/cjs/forms/client_onboard/ConnectSchema.d.ts.map +1 -1
- package/dist/cjs/forms/client_onboard/ConnectSchema.js +34 -2
- package/dist/cjs/forms/client_onboard/CreateVirtualTables.d.ts +1 -8
- package/dist/cjs/forms/client_onboard/CreateVirtualTables.d.ts.map +1 -1
- package/dist/cjs/forms/client_onboard/CreateVirtualTables.js +24 -39
- package/dist/cjs/forms/client_onboard/__tests__/ConnectDatabase.test.js +2 -2
- package/dist/cjs/forms/client_onboard/__tests__/ConnectSchema.test.js +5 -5
- package/dist/cjs/forms/client_onboard/__tests__/CreateVirtualTables.test.js +5 -5
- package/dist/cjs/forms/virtual_tables/CreateEditVirtualTable.d.ts +1 -1
- package/dist/cjs/forms/virtual_tables/CreateEditVirtualTable.d.ts.map +1 -1
- package/dist/cjs/forms/virtual_tables/CreateEditVirtualTable.js +98 -16
- package/dist/cjs/hooks/useAdmin.d.ts +16 -0
- package/dist/cjs/hooks/useAdmin.d.ts.map +1 -0
- package/dist/cjs/hooks/useAdmin.js +13 -0
- package/dist/cjs/hooks/useDashboardManager.js +2 -2
- package/dist/cjs/hooks/useDatabaseSchema.d.ts.map +1 -1
- package/dist/cjs/hooks/useDatabaseSchema.js +13 -2
- package/dist/cjs/hooks/useLongLoading.d.ts +13 -0
- package/dist/cjs/hooks/useLongLoading.d.ts.map +1 -0
- package/dist/cjs/hooks/useLongLoading.js +67 -0
- package/dist/cjs/hooks/useOnClickOutside.d.ts.map +1 -1
- package/dist/cjs/hooks/useTenants.d.ts +1 -1
- package/dist/cjs/hooks/useTenants.d.ts.map +1 -1
- package/dist/cjs/hooks/useTenants.js +2 -2
- package/dist/cjs/hooks/useThrottle.d.ts.map +1 -1
- package/dist/cjs/icons/ArrowDownHeadIcon.d.ts.map +1 -1
- package/dist/cjs/icons/CheckCircleIcon.d.ts.map +1 -1
- package/dist/cjs/icons/ExclamationFilledIcon.d.ts.map +1 -1
- package/dist/cjs/icons/ExteriorLinkIcon.d.ts.map +1 -1
- package/dist/cjs/icons/QuestionMarkCircleIcon.d.ts.map +1 -1
- package/dist/cjs/modals/CodePreview.d.ts.map +1 -1
- package/dist/cjs/modals/CodePreview.js +8 -3
- package/dist/cjs/modals/CreateEnvironmentModal.d.ts +5 -0
- package/dist/cjs/modals/CreateEnvironmentModal.d.ts.map +1 -0
- package/dist/cjs/modals/CreateEnvironmentModal.js +21 -0
- package/dist/cjs/modals/EditEnvironmentModal.d.ts.map +1 -1
- package/dist/cjs/modals/EditEnvironmentModal.js +68 -16
- package/dist/cjs/modals/EditFiltersModal.d.ts.map +1 -1
- package/dist/cjs/modals/EditFiltersModal.js +14 -10
- package/dist/cjs/modals/NewDashboardModal.d.ts.map +1 -1
- package/dist/cjs/modals/NewDashboardModal.js +56 -30
- package/dist/cjs/modals/PromoteDashboardModal.js +2 -2
- package/dist/cjs/modals/PromoteReportModal.d.ts.map +1 -1
- package/dist/cjs/modals/PromoteReportModal.js +16 -5
- package/dist/cjs/modals/PromoteViewModal.d.ts.map +1 -1
- package/dist/cjs/modals/PromoteViewModal.js +14 -3
- package/dist/cjs/modals/ReorderDashboardModal.js +2 -2
- package/dist/cjs/modals/SavedQueriesModal.js +3 -3
- package/dist/cjs/modals/TenantFieldModal.d.ts +9 -0
- package/dist/cjs/modals/TenantFieldModal.d.ts.map +1 -0
- package/dist/cjs/modals/TenantFieldModal.js +54 -0
- package/dist/cjs/models/AdminContext.d.ts +158 -0
- package/dist/cjs/models/AdminContext.d.ts.map +1 -0
- package/dist/cjs/models/AdminContext.js +5 -0
- package/dist/cjs/models/Provider.d.ts +45 -0
- package/dist/cjs/models/Provider.d.ts.map +1 -0
- package/dist/cjs/models/Provider.js +21 -0
- package/dist/cjs/models/Tenant.d.ts +39 -0
- package/dist/cjs/models/Tenant.d.ts.map +1 -0
- package/dist/cjs/models/Tenant.js +2 -0
- package/dist/cjs/primitives/ButtonPrimitive.d.ts +1 -1
- package/dist/cjs/primitives/ButtonPrimitive.d.ts.map +1 -1
- package/dist/cjs/primitives/ButtonPrimitive.js +2 -2
- package/dist/cjs/primitives/CheckboxPrimitive.d.ts.map +1 -1
- package/dist/cjs/primitives/CheckboxPrimitive.js +2 -0
- package/dist/cjs/primitives/HeaderPrimitive.d.ts +1 -1
- package/dist/cjs/primitives/HeaderPrimitive.d.ts.map +1 -1
- package/dist/cjs/primitives/HeaderPrimitive.js +2 -2
- package/dist/cjs/primitives/MiniButtonPrimitive.js +2 -2
- package/dist/cjs/primitives/PopoverPrimitive.d.ts.map +1 -1
- package/dist/cjs/primitives/PopoverPrimitive.js +18 -7
- package/dist/cjs/primitives/SecondaryButtonPrimitive.d.ts +1 -1
- package/dist/cjs/primitives/SecondaryButtonPrimitive.d.ts.map +1 -1
- package/dist/cjs/primitives/SecondaryButtonPrimitive.js +2 -2
- package/dist/cjs/primitives/TextInputPrimitive.d.ts +1 -1
- package/dist/cjs/primitives/TextInputPrimitive.d.ts.map +1 -1
- package/dist/cjs/primitives/TextInputPrimitive.js +2 -2
- package/dist/cjs/primitives/TogglePrimitive.d.ts.map +1 -1
- package/dist/cjs/public_components/ChartQueryBuilder.d.ts.map +1 -1
- package/dist/cjs/public_components/ChartQueryBuilder.js +11 -10
- package/dist/cjs/public_components/CreateEnvironment.d.ts.map +1 -1
- package/dist/cjs/public_components/CreateEnvironment.js +50 -17
- package/dist/cjs/public_components/DashboardManager.d.ts.map +1 -1
- package/dist/cjs/public_components/DashboardManager.js +70 -10
- package/dist/cjs/public_components/EnvSelectPopover.d.ts.map +1 -1
- package/dist/cjs/public_components/EnvSelectPopover.js +32 -4
- package/dist/cjs/public_components/VirtualTableManager.d.ts +0 -1
- package/dist/cjs/public_components/VirtualTableManager.d.ts.map +1 -1
- package/dist/cjs/public_components/VirtualTableManager.js +99 -25
- package/dist/cjs/public_components/__tests__/CreateEnvironment.test.js +43 -4
- package/dist/cjs/utils/astProcessing.d.ts +1 -1
- package/dist/cjs/utils/astProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/columnProcessing.d.ts +1 -0
- package/dist/cjs/utils/columnProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/columnProcessing.js +23 -1
- package/dist/cjs/utils/dataEditor.d.ts +1 -1
- package/dist/cjs/utils/dataEditor.d.ts.map +1 -1
- package/dist/cjs/utils/dataFetcher.d.ts +1 -1
- package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
- package/dist/cjs/utils/databases.d.ts +6 -1
- package/dist/cjs/utils/databases.d.ts.map +1 -1
- package/dist/cjs/utils/databases.js +18 -0
- package/dist/cjs/utils/delay.d.ts.map +1 -1
- package/dist/cjs/utils/filter.d.ts +17 -21
- package/dist/cjs/utils/filter.d.ts.map +1 -1
- package/dist/cjs/utils/filter.js +6 -6
- package/dist/cjs/utils/report.d.ts +5 -5
- package/dist/cjs/utils/report.d.ts.map +1 -1
- package/dist/cjs/utils/schema.d.ts +8 -5
- package/dist/cjs/utils/schema.d.ts.map +1 -1
- package/dist/cjs/utils/schema.js +42 -3
- package/dist/cjs/utils/table.d.ts.map +1 -1
- package/dist/cjs/utils/tenants.d.ts +2 -39
- package/dist/cjs/utils/tenants.d.ts.map +1 -1
- package/dist/cjs/utils/ui.d.ts.map +1 -1
- package/dist/esm/Admin.d.ts +3 -44
- package/dist/esm/Admin.d.ts.map +1 -1
- package/dist/esm/Admin.js +116 -29
- package/dist/esm/AdminProvider.d.ts +9 -145
- package/dist/esm/AdminProvider.d.ts.map +1 -1
- package/dist/esm/AdminProvider.js +177 -96
- package/dist/esm/api/ConnectionClient.d.ts +7 -4
- package/dist/esm/api/ConnectionClient.d.ts.map +1 -1
- package/dist/esm/api/ConnectionClient.js +66 -6
- package/dist/esm/assets/ArrowDownHeadIcon.d.ts.map +1 -1
- package/dist/esm/assets/XIcon.d.ts.map +1 -1
- package/dist/esm/components/Banner/index.js +1 -1
- package/dist/esm/components/CardSection.js +1 -1
- package/dist/esm/components/ClipboardButton.d.ts.map +1 -1
- package/dist/esm/components/DashboardSelectPopover.d.ts.map +1 -1
- package/dist/esm/components/DashboardSelectPopover.js +29 -1
- package/dist/esm/components/DatabaseSelector.d.ts +1 -1
- package/dist/esm/components/DatabaseSelector.d.ts.map +1 -1
- package/dist/esm/components/DateRangePicker/SingleDatePicker.js +1 -1
- package/dist/esm/components/DateRangePicker/YearlessDateRangePicker.js +1 -1
- package/dist/esm/components/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
- package/dist/esm/components/DropDownMenuWithLabel.js +1 -1
- package/dist/esm/components/DynamicBanner.d.ts +1 -1
- package/dist/esm/components/DynamicBanner.d.ts.map +1 -1
- package/dist/esm/components/EmptyDashboardComponent/index.js +1 -1
- package/dist/esm/components/EmptyVirtualTablesComponent.js +1 -1
- package/dist/esm/components/FormTooltip.js +1 -1
- package/dist/esm/components/InputLabel.js +1 -1
- package/dist/esm/components/InternalDashboard/DashboardFilter.d.ts +1 -1
- package/dist/esm/components/InternalDashboard/DashboardFilter.d.ts.map +1 -1
- package/dist/esm/components/InternalDashboard/DashboardFilter.js +2 -2
- package/dist/esm/components/InternalDashboard/DashboardLoadingComponent.d.ts.map +1 -1
- package/dist/esm/components/InternalDashboard/DateRangePicker/QuillDateRangePicker.js +1 -1
- package/dist/esm/components/InternalDashboard/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
- package/dist/esm/components/InternalDashboard/InternalDashboard.d.ts.map +1 -1
- package/dist/esm/components/InternalDashboard/InternalDashboard.js +116 -36
- package/dist/esm/components/OrgSelect.d.ts.map +1 -1
- package/dist/esm/components/OrgSelect.js +49 -5
- package/dist/esm/components/QuillMultiSelectWithCombo.d.ts +5 -1
- package/dist/esm/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
- package/dist/esm/components/QuillMultiSelectWithCombo.js +329 -150
- package/dist/esm/components/QuillPopover.js +1 -1
- package/dist/esm/components/QuillSelect.d.ts.map +1 -1
- package/dist/esm/components/QuillSelect.js +1 -1
- package/dist/esm/components/QuillSelectWithCombo.d.ts +4 -3
- package/dist/esm/components/QuillSelectWithCombo.d.ts.map +1 -1
- package/dist/esm/components/QuillSelectWithCombo.js +35 -7
- package/dist/esm/components/QuillToolTipPortal.d.ts.map +1 -1
- package/dist/esm/components/QuillToolTipPortal.js +1 -1
- package/dist/esm/components/SqlTextEditor.d.ts.map +1 -1
- package/dist/esm/components/SqlTextEditor.js +15 -2
- package/dist/esm/components/Tenants/EditTenant.d.ts +1 -1
- package/dist/esm/components/Tenants/EditTenant.d.ts.map +1 -1
- package/dist/esm/components/Tenants/EditTenant.js +52 -9
- package/dist/esm/components/UiComponents.d.ts +1 -1
- package/dist/esm/components/UiComponents.d.ts.map +1 -1
- package/dist/esm/components/UiComponents.js +2 -1
- package/dist/esm/components/VirtualTableTile.d.ts +1 -1
- package/dist/esm/components/VirtualTableTile.d.ts.map +1 -1
- package/dist/esm/forms/client_onboard/ConnectDatabase.d.ts +1 -1
- package/dist/esm/forms/client_onboard/ConnectDatabase.d.ts.map +1 -1
- package/dist/esm/forms/client_onboard/ConnectDatabase.js +51 -3
- package/dist/esm/forms/client_onboard/ConnectSchema.d.ts +1 -1
- package/dist/esm/forms/client_onboard/ConnectSchema.d.ts.map +1 -1
- package/dist/esm/forms/client_onboard/ConnectSchema.js +34 -2
- package/dist/esm/forms/client_onboard/CreateVirtualTables.d.ts +1 -8
- package/dist/esm/forms/client_onboard/CreateVirtualTables.d.ts.map +1 -1
- package/dist/esm/forms/client_onboard/CreateVirtualTables.js +23 -37
- package/dist/esm/forms/client_onboard/__tests__/ConnectDatabase.test.js +1 -1
- package/dist/esm/forms/client_onboard/__tests__/ConnectSchema.test.js +3 -3
- package/dist/esm/forms/client_onboard/__tests__/CreateVirtualTables.test.js +3 -3
- package/dist/esm/forms/virtual_tables/CreateEditVirtualTable.d.ts +1 -1
- package/dist/esm/forms/virtual_tables/CreateEditVirtualTable.d.ts.map +1 -1
- package/dist/esm/forms/virtual_tables/CreateEditVirtualTable.js +96 -14
- package/dist/esm/hooks/useAdmin.d.ts +16 -0
- package/dist/esm/hooks/useAdmin.d.ts.map +1 -0
- package/dist/esm/hooks/useAdmin.js +9 -0
- package/dist/esm/hooks/useDashboardManager.js +1 -1
- package/dist/esm/hooks/useDatabaseSchema.d.ts.map +1 -1
- package/dist/esm/hooks/useDatabaseSchema.js +13 -2
- package/dist/esm/hooks/useLongLoading.d.ts +13 -0
- package/dist/esm/hooks/useLongLoading.d.ts.map +1 -0
- package/dist/esm/hooks/useLongLoading.js +64 -0
- package/dist/esm/hooks/useOnClickOutside.d.ts.map +1 -1
- package/dist/esm/hooks/useTenants.d.ts +1 -1
- package/dist/esm/hooks/useTenants.d.ts.map +1 -1
- package/dist/esm/hooks/useTenants.js +1 -1
- package/dist/esm/hooks/useThrottle.d.ts.map +1 -1
- package/dist/esm/icons/ArrowDownHeadIcon.d.ts.map +1 -1
- package/dist/esm/icons/CheckCircleIcon.d.ts.map +1 -1
- package/dist/esm/icons/ExclamationFilledIcon.d.ts.map +1 -1
- package/dist/esm/icons/ExteriorLinkIcon.d.ts.map +1 -1
- package/dist/esm/icons/QuestionMarkCircleIcon.d.ts.map +1 -1
- package/dist/esm/modals/CodePreview.d.ts.map +1 -1
- package/dist/esm/modals/CodePreview.js +8 -3
- package/dist/esm/modals/CreateEnvironmentModal.d.ts +5 -0
- package/dist/esm/modals/CreateEnvironmentModal.d.ts.map +1 -0
- package/dist/esm/modals/CreateEnvironmentModal.js +15 -0
- package/dist/esm/modals/EditEnvironmentModal.d.ts.map +1 -1
- package/dist/esm/modals/EditEnvironmentModal.js +68 -16
- package/dist/esm/modals/EditFiltersModal.d.ts.map +1 -1
- package/dist/esm/modals/EditFiltersModal.js +14 -10
- package/dist/esm/modals/NewDashboardModal.d.ts.map +1 -1
- package/dist/esm/modals/NewDashboardModal.js +56 -30
- package/dist/esm/modals/PromoteDashboardModal.js +1 -1
- package/dist/esm/modals/PromoteReportModal.d.ts.map +1 -1
- package/dist/esm/modals/PromoteReportModal.js +16 -5
- package/dist/esm/modals/PromoteViewModal.d.ts.map +1 -1
- package/dist/esm/modals/PromoteViewModal.js +14 -3
- package/dist/esm/modals/ReorderDashboardModal.js +1 -1
- package/dist/esm/modals/SavedQueriesModal.js +1 -1
- package/dist/esm/modals/TenantFieldModal.d.ts +9 -0
- package/dist/esm/modals/TenantFieldModal.d.ts.map +1 -0
- package/dist/esm/modals/TenantFieldModal.js +51 -0
- package/dist/esm/models/AdminContext.d.ts +158 -0
- package/dist/esm/models/AdminContext.d.ts.map +1 -0
- package/dist/esm/models/AdminContext.js +2 -0
- package/dist/esm/models/Provider.d.ts +45 -0
- package/dist/esm/models/Provider.d.ts.map +1 -0
- package/dist/esm/models/Provider.js +18 -0
- package/dist/esm/models/Tenant.d.ts +39 -0
- package/dist/esm/models/Tenant.d.ts.map +1 -0
- package/dist/esm/models/Tenant.js +1 -0
- package/dist/esm/primitives/ButtonPrimitive.d.ts +1 -1
- package/dist/esm/primitives/ButtonPrimitive.d.ts.map +1 -1
- package/dist/esm/primitives/ButtonPrimitive.js +1 -1
- package/dist/esm/primitives/CheckboxPrimitive.d.ts.map +1 -1
- package/dist/esm/primitives/CheckboxPrimitive.js +2 -0
- package/dist/esm/primitives/HeaderPrimitive.d.ts +1 -1
- package/dist/esm/primitives/HeaderPrimitive.d.ts.map +1 -1
- package/dist/esm/primitives/HeaderPrimitive.js +1 -1
- package/dist/esm/primitives/MiniButtonPrimitive.js +1 -1
- package/dist/esm/primitives/PopoverPrimitive.d.ts.map +1 -1
- package/dist/esm/primitives/PopoverPrimitive.js +17 -6
- package/dist/esm/primitives/SecondaryButtonPrimitive.d.ts +1 -1
- package/dist/esm/primitives/SecondaryButtonPrimitive.d.ts.map +1 -1
- package/dist/esm/primitives/SecondaryButtonPrimitive.js +1 -1
- package/dist/esm/primitives/TextInputPrimitive.d.ts +1 -1
- package/dist/esm/primitives/TextInputPrimitive.d.ts.map +1 -1
- package/dist/esm/primitives/TextInputPrimitive.js +1 -1
- package/dist/esm/primitives/TogglePrimitive.d.ts.map +1 -1
- package/dist/esm/public_components/ChartQueryBuilder.d.ts.map +1 -1
- package/dist/esm/public_components/ChartQueryBuilder.js +11 -10
- package/dist/esm/public_components/CreateEnvironment.d.ts.map +1 -1
- package/dist/esm/public_components/CreateEnvironment.js +50 -17
- package/dist/esm/public_components/DashboardManager.d.ts.map +1 -1
- package/dist/esm/public_components/DashboardManager.js +68 -8
- package/dist/esm/public_components/EnvSelectPopover.d.ts.map +1 -1
- package/dist/esm/public_components/EnvSelectPopover.js +32 -4
- package/dist/esm/public_components/VirtualTableManager.d.ts +0 -1
- package/dist/esm/public_components/VirtualTableManager.d.ts.map +1 -1
- package/dist/esm/public_components/VirtualTableManager.js +97 -21
- package/dist/esm/public_components/__tests__/CreateEnvironment.test.js +42 -3
- package/dist/esm/utils/astProcessing.d.ts +1 -1
- package/dist/esm/utils/astProcessing.d.ts.map +1 -1
- package/dist/esm/utils/columnProcessing.d.ts +1 -0
- package/dist/esm/utils/columnProcessing.d.ts.map +1 -1
- package/dist/esm/utils/columnProcessing.js +21 -1
- package/dist/esm/utils/dataEditor.d.ts +1 -1
- package/dist/esm/utils/dataEditor.d.ts.map +1 -1
- package/dist/esm/utils/dataFetcher.d.ts +1 -1
- package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
- package/dist/esm/utils/databases.d.ts +6 -1
- package/dist/esm/utils/databases.d.ts.map +1 -1
- package/dist/esm/utils/databases.js +18 -0
- package/dist/esm/utils/delay.d.ts.map +1 -1
- package/dist/esm/utils/filter.d.ts +17 -21
- package/dist/esm/utils/filter.d.ts.map +1 -1
- package/dist/esm/utils/filter.js +5 -5
- package/dist/esm/utils/report.d.ts +5 -5
- package/dist/esm/utils/report.d.ts.map +1 -1
- package/dist/esm/utils/schema.d.ts +8 -5
- package/dist/esm/utils/schema.d.ts.map +1 -1
- package/dist/esm/utils/schema.js +42 -3
- package/dist/esm/utils/table.d.ts.map +1 -1
- package/dist/esm/utils/tenants.d.ts +2 -39
- package/dist/esm/utils/tenants.d.ts.map +1 -1
- package/dist/esm/utils/ui.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -6,8 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.default = DashboardManager;
|
|
7
7
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
8
|
const react_1 = require("react");
|
|
9
|
-
const
|
|
10
|
-
const components_1 = require("../components");
|
|
9
|
+
const useAdmin_1 = require("../hooks/useAdmin");
|
|
11
10
|
const react_2 = require("@quillsql/react");
|
|
12
11
|
const Admin_1 = require("../Admin");
|
|
13
12
|
const primitives_1 = require("../primitives");
|
|
@@ -27,9 +26,13 @@ const PopoverPrimitive_1 = require("../primitives/PopoverPrimitive");
|
|
|
27
26
|
const CodePreview_1 = __importDefault(require("../modals/CodePreview"));
|
|
28
27
|
const SavedQueriesModal_1 = __importDefault(require("../modals/SavedQueriesModal"));
|
|
29
28
|
const InternalDashboard_1 = require("../components/InternalDashboard/InternalDashboard");
|
|
30
|
-
const
|
|
29
|
+
const useLongLoading_1 = require("../hooks/useLongLoading");
|
|
30
|
+
const CreateEnvironmentModal_1 = __importDefault(require("../modals/CreateEnvironmentModal"));
|
|
31
|
+
const EnvSelectPopover_1 = __importDefault(require("./EnvSelectPopover"));
|
|
32
|
+
const DashboardSelectPopover_1 = __importDefault(require("../components/DashboardSelectPopover"));
|
|
33
|
+
const OrgSelect_1 = __importDefault(require("../components/OrgSelect"));
|
|
31
34
|
function DashboardManager({ navigateToVirtualTableManager: navigateToVirtualTableManager, containerStyle, }) {
|
|
32
|
-
const { state, dispatch, clientLoading, setClient, getToken, quillFetchWithToken, } = (0,
|
|
35
|
+
const { state, dispatch, clientLoading, setClient, getToken, quillFetchWithToken, eventTracking, } = (0, useAdmin_1.useAdmin)();
|
|
33
36
|
const parentRef = (0, react_1.useRef)(null);
|
|
34
37
|
const envSelectPopoverRef = (0, react_1.useRef)(null);
|
|
35
38
|
const dashboardSelectPopoverRef = (0, react_1.useRef)(null);
|
|
@@ -41,8 +44,12 @@ function DashboardManager({ navigateToVirtualTableManager: navigateToVirtualTabl
|
|
|
41
44
|
//FIXME: we don't want to lift up this state
|
|
42
45
|
const [userFilters, setUserFilters] = (0, react_1.useState)([]);
|
|
43
46
|
const [showCreateEnvironmentModal, setShowCreateEnvironmentModal] = (0, react_1.useState)(false);
|
|
44
|
-
const { data: dashboardConfig, reload: reloadDashboard } = (0, react_2.
|
|
47
|
+
const { data: dashboardConfig, reload: reloadDashboard } = (0, react_2.useDashboardInternal)(state.selectedDashboard, userFilters);
|
|
45
48
|
const { dashboards, isLoading: dashboardsLoading } = (0, react_2.useDashboards)();
|
|
49
|
+
(0, useLongLoading_1.useLongLoading)(dashboardsLoading, {
|
|
50
|
+
origin: 'DashboardManager',
|
|
51
|
+
loadDescription: 'Loading dashboards',
|
|
52
|
+
});
|
|
46
53
|
const { setSelectedDashboard } = (0, useDashboardManager_1.useDashboardManager)();
|
|
47
54
|
// const [editMode, setEditMode] = useState(true);
|
|
48
55
|
const [autoPromoteVirtualTables, setAutoPromoteVirtualTables] = (0, react_1.useState)(true);
|
|
@@ -63,6 +70,15 @@ function DashboardManager({ navigateToVirtualTableManager: navigateToVirtualTabl
|
|
|
63
70
|
type: 'SET_ACTIVE_COMPONENT',
|
|
64
71
|
payload: 'Report',
|
|
65
72
|
});
|
|
73
|
+
eventTracking?.addBreadcrumb?.({
|
|
74
|
+
message: 'Clicked report in DashboardManager',
|
|
75
|
+
data: {
|
|
76
|
+
report: elem.id,
|
|
77
|
+
},
|
|
78
|
+
category: 'navigation',
|
|
79
|
+
level: 'info',
|
|
80
|
+
timestamp: Date.now(),
|
|
81
|
+
});
|
|
66
82
|
}, [dispatch]);
|
|
67
83
|
const hoverActions = (data) => {
|
|
68
84
|
return ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
@@ -86,7 +102,7 @@ function DashboardManager({ navigateToVirtualTableManager: navigateToVirtualTabl
|
|
|
86
102
|
gap: 4,
|
|
87
103
|
}, onClick: async (event) => {
|
|
88
104
|
event.stopPropagation();
|
|
89
|
-
if (await (0, Admin_1.deleteReport)(data.id, state, getToken)) {
|
|
105
|
+
if (await (0, Admin_1.deleteReport)(data.id, state, getToken, eventTracking)) {
|
|
90
106
|
reloadDashboard(undefined, false, {
|
|
91
107
|
report: { id: data.id },
|
|
92
108
|
action: 'delete',
|
|
@@ -160,11 +176,22 @@ function DashboardManager({ navigateToVirtualTableManager: navigateToVirtualTabl
|
|
|
160
176
|
}
|
|
161
177
|
catch (error) {
|
|
162
178
|
console.error('Promotion failed:', error);
|
|
179
|
+
eventTracking?.logError?.({
|
|
180
|
+
type: 'bug', // TODO: determine type
|
|
181
|
+
severity: 'high',
|
|
182
|
+
message: 'Error promoting dashboard',
|
|
183
|
+
errorMessage: error.message,
|
|
184
|
+
errorStack: error.stack,
|
|
185
|
+
errorData: {
|
|
186
|
+
caller: 'DashboardManager',
|
|
187
|
+
function: 'handlePromote',
|
|
188
|
+
},
|
|
189
|
+
});
|
|
163
190
|
alert('Could not promote this dashboard.');
|
|
164
191
|
}
|
|
165
192
|
};
|
|
166
193
|
if (showCreateEnvironmentModal) {
|
|
167
|
-
return ((0, jsx_runtime_1.jsx)(
|
|
194
|
+
return ((0, jsx_runtime_1.jsx)(CreateEnvironmentModal_1.default, { showCreateEnvironmentModal: showCreateEnvironmentModal, setShowCreateEnvironmentModal: setShowCreateEnvironmentModal }));
|
|
168
195
|
}
|
|
169
196
|
return ((0, jsx_runtime_1.jsxs)("div", { style: containerStyle, children: [(state.activeComponent === 'Report Builder' ||
|
|
170
197
|
state.activeComponent === 'SQL Editor') && ((0, jsx_runtime_1.jsx)(ChartQueryBuilder_1.default, { activeComponent: state.activeComponent, destinationDashboard: state.selectedDashboard ??
|
|
@@ -234,14 +261,14 @@ function DashboardManager({ navigateToVirtualTableManager: navigateToVirtualTabl
|
|
|
234
261
|
flexDirection: 'row',
|
|
235
262
|
alignItems: 'flex-end',
|
|
236
263
|
marginRight: 12,
|
|
237
|
-
}, children: [(0, jsx_runtime_1.jsx)("div", { style: { display: 'flex', flexDirection: 'column' }, ref: envSelectPopoverRef, children: (0, jsx_runtime_1.jsx)(
|
|
264
|
+
}, children: [(0, jsx_runtime_1.jsx)("div", { style: { display: 'flex', flexDirection: 'column' }, ref: envSelectPopoverRef, children: (0, jsx_runtime_1.jsx)(EnvSelectPopover_1.default, { clients: state.clients, client: state.client, setClient: (client) => {
|
|
238
265
|
setSelectedDashboard(null);
|
|
239
266
|
setClient(client, true);
|
|
240
267
|
}, onSelectedEditEnvironment: () => {
|
|
241
268
|
setEditEnvironmentModalIsOpen(true);
|
|
242
269
|
}, onCreateNewEnvironment: () => {
|
|
243
270
|
setShowCreateEnvironmentModal(true);
|
|
244
|
-
}, theme: state.theme, parentRef: envSelectPopoverRef, isLoading: clientLoading }) }), (0, jsx_runtime_1.jsx)("div", { style: { display: 'flex', flexDirection: 'column' }, ref: dashboardSelectPopoverRef, children: (0, jsx_runtime_1.jsx)(
|
|
271
|
+
}, theme: state.theme, parentRef: envSelectPopoverRef, isLoading: clientLoading }) }), (0, jsx_runtime_1.jsx)("div", { style: { display: 'flex', flexDirection: 'column' }, ref: dashboardSelectPopoverRef, children: (0, jsx_runtime_1.jsx)(DashboardSelectPopover_1.default, { dashboards: dashboards?.filter((d) => d.name !== constants_1.SAVED_QUERIES_DASHBOARD)?.length
|
|
245
272
|
? dashboards
|
|
246
273
|
.map((elem) => {
|
|
247
274
|
return elem.name;
|
|
@@ -265,7 +292,7 @@ function DashboardManager({ navigateToVirtualTableManager: navigateToVirtualTabl
|
|
|
265
292
|
}
|
|
266
293
|
setEditFilterModalIsOpen(true);
|
|
267
294
|
}, parentRef: dashboardSelectPopoverRef, isLoading: clientLoading || dashboardsLoading }) }), state.client?.name !== undefined &&
|
|
268
|
-
!state.databaseTypeMismatch.show && ((0, jsx_runtime_1.jsx)(
|
|
295
|
+
!state.databaseTypeMismatch.show && ((0, jsx_runtime_1.jsx)(OrgSelect_1.default, { isLoading: clientLoading }))] }), !!(dashboards?.filter((d) => d.name !== constants_1.SAVED_QUERIES_DASHBOARD)
|
|
269
296
|
?.length && !(clientLoading || dashboardsLoading)) && ((0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'row', gap: 12 }, children: [(0, jsx_runtime_1.jsx)(primitives_1.SecondaryButtonPrimitive, { onClick: () => {
|
|
270
297
|
if (!state.selectedDashboard) {
|
|
271
298
|
return;
|
|
@@ -274,6 +301,12 @@ function DashboardManager({ navigateToVirtualTableManager: navigateToVirtualTabl
|
|
|
274
301
|
type: 'SET_ACTIVE_COMPONENT',
|
|
275
302
|
payload: 'CodePreview',
|
|
276
303
|
});
|
|
304
|
+
eventTracking?.addBreadcrumb?.({
|
|
305
|
+
message: 'Opened embed preview in DashboardManager',
|
|
306
|
+
category: 'navigation',
|
|
307
|
+
level: 'info',
|
|
308
|
+
timestamp: Date.now(),
|
|
309
|
+
});
|
|
277
310
|
}, label: "Embed Preview" }), (0, jsx_runtime_1.jsx)(PopoverPrimitive_1.Popover, { content: (0, jsx_runtime_1.jsxs)("div", { style: {
|
|
278
311
|
display: 'flex',
|
|
279
312
|
flexDirection: 'column',
|
|
@@ -287,6 +320,12 @@ function DashboardManager({ navigateToVirtualTableManager: navigateToVirtualTabl
|
|
|
287
320
|
type: 'SET_ACTIVE_COMPONENT',
|
|
288
321
|
payload: 'Report Builder',
|
|
289
322
|
});
|
|
323
|
+
eventTracking?.addBreadcrumb?.({
|
|
324
|
+
message: 'Opened report builder in DashboardManager',
|
|
325
|
+
category: 'navigation',
|
|
326
|
+
level: 'info',
|
|
327
|
+
timestamp: Date.now(),
|
|
328
|
+
});
|
|
290
329
|
}, label: "Report Builder \u2197" }), (0, jsx_runtime_1.jsx)(primitives_1.SecondaryButtonPrimitive, { onClick: () => {
|
|
291
330
|
if (!state.selectedDashboard) {
|
|
292
331
|
return;
|
|
@@ -295,6 +334,12 @@ function DashboardManager({ navigateToVirtualTableManager: navigateToVirtualTabl
|
|
|
295
334
|
type: 'SET_ACTIVE_COMPONENT',
|
|
296
335
|
payload: 'SQL Editor',
|
|
297
336
|
});
|
|
337
|
+
eventTracking?.addBreadcrumb?.({
|
|
338
|
+
message: 'Opened SQL editor in DashboardManager',
|
|
339
|
+
category: 'navigation',
|
|
340
|
+
level: 'info',
|
|
341
|
+
timestamp: Date.now(),
|
|
342
|
+
});
|
|
298
343
|
}, label: "SQL Editor \u2197" }), (0, jsx_runtime_1.jsx)(primitives_1.SecondaryButtonPrimitive, { onClick: () => {
|
|
299
344
|
if (!state.selectedDashboard) {
|
|
300
345
|
return;
|
|
@@ -303,6 +348,12 @@ function DashboardManager({ navigateToVirtualTableManager: navigateToVirtualTabl
|
|
|
303
348
|
type: 'SET_ACTIVE_COMPONENT',
|
|
304
349
|
payload: 'SavedQueries',
|
|
305
350
|
});
|
|
351
|
+
eventTracking?.addBreadcrumb?.({
|
|
352
|
+
message: 'Opened saved queries in DashboardManager',
|
|
353
|
+
category: 'navigation',
|
|
354
|
+
level: 'info',
|
|
355
|
+
timestamp: Date.now(),
|
|
356
|
+
});
|
|
306
357
|
}, label: "Saved Queries \u2197" })] }), trigger: (0, jsx_runtime_1.jsx)(primitives_1.ButtonPrimitive
|
|
307
358
|
// onClick={() => {
|
|
308
359
|
// if (!state.selectedDashboard) {
|
|
@@ -366,6 +417,15 @@ function DashboardManager({ navigateToVirtualTableManager: navigateToVirtualTabl
|
|
|
366
417
|
dashboardsLoading ||
|
|
367
418
|
dashboards?.filter((d) => d.name !== constants_1.SAVED_QUERIES_DASHBOARD)
|
|
368
419
|
.length ? ((0, jsx_runtime_1.jsx)("div", { style: { width: '100%', position: 'relative' }, children: (0, jsx_runtime_1.jsx)(InternalDashboard_1.InternalDashboard, { name: state.selectedDashboard ?? '', containerStyle: { padding: 25, width: '100%' }, onClickReport: handleClickReport, hoverActions: hoverActions, onUserFiltersUpdated: setUserFilters, parentLoading: clientLoading || dashboardsLoading, onManageDashboard: () => {
|
|
420
|
+
eventTracking?.addBreadcrumb?.({
|
|
421
|
+
message: 'Opened manage dashboard in DashboardManager',
|
|
422
|
+
data: {
|
|
423
|
+
dashboard: state.selectedDashboard,
|
|
424
|
+
},
|
|
425
|
+
category: 'navigation',
|
|
426
|
+
level: 'info',
|
|
427
|
+
timestamp: Date.now(),
|
|
428
|
+
});
|
|
369
429
|
setEditFilterModalIsOpen(true);
|
|
370
430
|
} }) })) : null] }), !clientLoading && !dashboardsLoading && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(EditEnvironmentModal_1.EditEnvironmentModal, { isOpen: editEnvironmentModalIsOpen, setIsOpen: setEditEnvironmentModalIsOpen, onSave: async () => {
|
|
371
431
|
await reloadDashboard(state.selectedDashboard ?? undefined);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnvSelectPopover.d.ts","sourceRoot":"","sources":["../../../src/public_components/EnvSelectPopover.tsx"],"names":[],"mappings":"AAMA,UAAU,qBAAqB;IAC7B,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,SAAS,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IACjC,MAAM,EAAE,GAAG,CAAC;IACZ,KAAK,EAAE,GAAG,CAAC;IACX,yBAAyB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1D,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC3C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,sBAAsB,CAAC,EAAE,MAAM,IAAI,CAAC;CACrC;AAED,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,OAAO,EACP,SAAS,EACT,MAAM,EACN,KAAK,EACL,yBAAyB,EACzB,SAAS,EACT,SAAS,EACT,sBAAsB,GACvB,EAAE,qBAAqB,
|
|
1
|
+
{"version":3,"file":"EnvSelectPopover.d.ts","sourceRoot":"","sources":["../../../src/public_components/EnvSelectPopover.tsx"],"names":[],"mappings":"AAMA,UAAU,qBAAqB;IAC7B,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,SAAS,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IACjC,MAAM,EAAE,GAAG,CAAC;IACZ,KAAK,EAAE,GAAG,CAAC;IACX,yBAAyB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1D,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC3C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,sBAAsB,CAAC,EAAE,MAAM,IAAI,CAAC;CACrC;AAED,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,OAAO,EACP,SAAS,EACT,MAAM,EACN,KAAK,EACL,yBAAyB,EACzB,SAAS,EACT,SAAS,EACT,sBAAsB,GACvB,EAAE,qBAAqB,2CAsQvB"}
|
|
@@ -6,13 +6,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.default = EnvSelectPopover;
|
|
7
7
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
8
|
const react_1 = require("react");
|
|
9
|
-
const
|
|
9
|
+
const useAdmin_1 = require("../hooks/useAdmin");
|
|
10
10
|
const OrgSelect_1 = require("../components/OrgSelect");
|
|
11
11
|
const MiniButtonPrimitive_1 = __importDefault(require("../primitives/MiniButtonPrimitive"));
|
|
12
12
|
const UiComponents_1 = require("../components/UiComponents");
|
|
13
13
|
const QuillMultiSelectWithCombo_1 = require("../components/QuillMultiSelectWithCombo");
|
|
14
14
|
function EnvSelectPopover({ clients, setClient, client, theme, onSelectedEditEnvironment, parentRef, isLoading, onCreateNewEnvironment, }) {
|
|
15
|
-
const { state, dispatch } = (0,
|
|
15
|
+
const { state, dispatch, eventTracking } = (0, useAdmin_1.useAdmin)();
|
|
16
16
|
const [isOpen, setIsOpen] = (0, react_1.useState)(false);
|
|
17
17
|
const [searchQuery, setSearchQuery] = (0, react_1.useState)('');
|
|
18
18
|
const filteredClients = (0, react_1.useMemo)(() => {
|
|
@@ -26,6 +26,15 @@ function EnvSelectPopover({ clients, setClient, client, theme, onSelectedEditEnv
|
|
|
26
26
|
dispatch({ type: 'SET_ACTIVE_QUERY', payload: '' });
|
|
27
27
|
dispatch({ type: 'SET_ACTIVE_EDIT_ITEM', payload: null });
|
|
28
28
|
}
|
|
29
|
+
eventTracking?.addBreadcrumb?.({
|
|
30
|
+
message: 'Set client in EnvSelectPopover',
|
|
31
|
+
data: {
|
|
32
|
+
clientId: selectedClient._id || selectedClient.id,
|
|
33
|
+
},
|
|
34
|
+
category: 'navigation',
|
|
35
|
+
level: 'info',
|
|
36
|
+
timestamp: Date.now(),
|
|
37
|
+
});
|
|
29
38
|
setClient(selectedClient);
|
|
30
39
|
setIsOpen(false);
|
|
31
40
|
};
|
|
@@ -90,7 +99,9 @@ function EnvSelectPopover({ clients, setClient, client, theme, onSelectedEditEnv
|
|
|
90
99
|
boxSizing: 'border-box',
|
|
91
100
|
fontSize: 14,
|
|
92
101
|
maxHeight: '50vh',
|
|
93
|
-
}, setIsOpen: setIsOpen, onClick: () => { }, children: !isLoading ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(QuillMultiSelectWithCombo_1.ListboxTextInput, { id: "quill-search-bar", placeholder: "Search", value: searchQuery, onChange:
|
|
102
|
+
}, setIsOpen: setIsOpen, onClick: () => { }, children: !isLoading ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(QuillMultiSelectWithCombo_1.ListboxTextInput, { id: "quill-search-bar", placeholder: "Search", value: searchQuery, onChange: (e) => {
|
|
103
|
+
setSearchQuery(e);
|
|
104
|
+
}, width: 180 }), (0, jsx_runtime_1.jsx)("div", { style: {
|
|
94
105
|
height: 9,
|
|
95
106
|
width: 230,
|
|
96
107
|
borderTop: `1px solid ${state.theme?.borderColor ?? '#e7e7e7'}`,
|
|
@@ -99,6 +110,15 @@ function EnvSelectPopover({ clients, setClient, client, theme, onSelectedEditEnv
|
|
|
99
110
|
: undefined, item: item.name, isSelected: client._id === item._id, hoverActions: onSelectedEditEnvironment
|
|
100
111
|
? (item) => ((0, jsx_runtime_1.jsx)(MiniButtonPrimitive_1.default, { label: "Manage", onClick: () => {
|
|
101
112
|
onSelectedEditEnvironment(item);
|
|
113
|
+
eventTracking?.addBreadcrumb?.({
|
|
114
|
+
message: 'Opened manage environment in EnvSelectPopover',
|
|
115
|
+
data: {
|
|
116
|
+
environment: item,
|
|
117
|
+
},
|
|
118
|
+
category: 'navigation',
|
|
119
|
+
level: 'info',
|
|
120
|
+
timestamp: Date.now(),
|
|
121
|
+
});
|
|
102
122
|
setIsOpen(false);
|
|
103
123
|
}, style: {
|
|
104
124
|
marginRight: -8,
|
|
@@ -108,7 +128,15 @@ function EnvSelectPopover({ clients, setClient, client, theme, onSelectedEditEnv
|
|
|
108
128
|
color: theme.secondaryTextColor,
|
|
109
129
|
backgroundColor: theme.backgroundColor,
|
|
110
130
|
} }))
|
|
111
|
-
: undefined }, item._id))), (0, jsx_runtime_1.jsx)("div", { className: 'quill-list-select', style: { paddingBottom: 6, cursor: 'pointer' }, children: (0, jsx_runtime_1.jsxs)("a", { onClick:
|
|
131
|
+
: undefined }, item._id))), (0, jsx_runtime_1.jsx)("div", { className: 'quill-list-select', style: { paddingBottom: 6, cursor: 'pointer' }, children: (0, jsx_runtime_1.jsxs)("a", { onClick: () => {
|
|
132
|
+
eventTracking?.addBreadcrumb?.({
|
|
133
|
+
message: 'Opened create new environment in EnvSelectPopover',
|
|
134
|
+
category: 'navigation',
|
|
135
|
+
level: 'info',
|
|
136
|
+
timestamp: Date.now(),
|
|
137
|
+
});
|
|
138
|
+
onCreateNewEnvironment?.();
|
|
139
|
+
}, style: {
|
|
112
140
|
height: 42,
|
|
113
141
|
width: 216,
|
|
114
142
|
borderRadius: 6,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VirtualTableManager.d.ts","sourceRoot":"","sources":["../../../src/public_components/VirtualTableManager.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAwC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"VirtualTableManager.d.ts","sourceRoot":"","sources":["../../../src/public_components/VirtualTableManager.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAwC,MAAM,OAAO,CAAC;AA6C5E,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAC1C,cAAc,EACd,YAAY,GACb,EAAE;IACD,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,2CAukCA"}
|
|
@@ -3,13 +3,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getDuplicateColumns = void 0;
|
|
7
6
|
exports.default = VirtualTableManager;
|
|
8
7
|
const react_1 = require("react");
|
|
9
8
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
10
9
|
const react_2 = require("react");
|
|
11
10
|
const primitives_1 = require("../primitives");
|
|
12
|
-
const
|
|
11
|
+
const useAdmin_1 = require("../hooks/useAdmin");
|
|
13
12
|
const components_1 = require("../components");
|
|
14
13
|
const Admin_1 = require("../Admin");
|
|
15
14
|
const CreateEditVirtualTable_1 = __importDefault(require("../forms/virtual_tables/CreateEditVirtualTable"));
|
|
@@ -30,23 +29,8 @@ const tenants_1 = require("../utils/tenants");
|
|
|
30
29
|
const useDatabaseSchema_1 = require("../hooks/useDatabaseSchema");
|
|
31
30
|
const InputLabel_1 = __importDefault(require("../components/InputLabel"));
|
|
32
31
|
const useDashboardManager_1 = require("../hooks/useDashboardManager");
|
|
33
|
-
const
|
|
34
|
-
const
|
|
35
|
-
if (!columns) {
|
|
36
|
-
return [];
|
|
37
|
-
}
|
|
38
|
-
const columnCount = columns?.reduce((acc, curr) => {
|
|
39
|
-
if (acc[curr.field]) {
|
|
40
|
-
acc[curr.field] += 1;
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
acc[curr.field] = 1;
|
|
44
|
-
}
|
|
45
|
-
return acc;
|
|
46
|
-
}, {});
|
|
47
|
-
return Object.keys(columnCount).filter((column) => columnCount[column] > 1);
|
|
48
|
-
};
|
|
49
|
-
exports.getDuplicateColumns = getDuplicateColumns;
|
|
32
|
+
const CreateEnvironmentModal_1 = __importDefault(require("../modals/CreateEnvironmentModal"));
|
|
33
|
+
const columnProcessing_1 = require("../utils/columnProcessing");
|
|
50
34
|
function VirtualTableManager({ containerStyle, virtualTable, }) {
|
|
51
35
|
const { data: tables, isLoading: areTablesLoading, reloadAll, refreshSome, loadingTables, } = (0, react_3.useVirtualTables)();
|
|
52
36
|
const { reloadFilteredReports } = (0, react_3.useReports)();
|
|
@@ -72,7 +56,7 @@ function VirtualTableManager({ containerStyle, virtualTable, }) {
|
|
|
72
56
|
const [showCreateEnvironmentModal, setShowCreateEnvironmentModal] = (0, react_2.useState)(false);
|
|
73
57
|
const parentRef = (0, react_2.useRef)(null);
|
|
74
58
|
const envHeaderRef = (0, react_2.useRef)(null);
|
|
75
|
-
const { state, dispatch, clientLoading, setClient, getToken, quillFetchWithToken, } = (0,
|
|
59
|
+
const { state, dispatch, clientLoading, setClient, getToken, quillFetchWithToken, eventTracking, } = (0, useAdmin_1.useAdmin)();
|
|
76
60
|
const closeEditModal = () => {
|
|
77
61
|
setEditModalIsOpen(false);
|
|
78
62
|
setEditName('');
|
|
@@ -88,6 +72,16 @@ function VirtualTableManager({ containerStyle, virtualTable, }) {
|
|
|
88
72
|
setEditError(table.broken ? (table.error ?? 'Invalid query') : undefined);
|
|
89
73
|
setCustomFieldInfo(table.customFieldInfo);
|
|
90
74
|
!suppressModal && setEditModalIsOpen(true);
|
|
75
|
+
eventTracking?.addBreadcrumb?.({
|
|
76
|
+
message: 'Clicked table cell in VirtualTableManager',
|
|
77
|
+
data: {
|
|
78
|
+
table: table.name,
|
|
79
|
+
suppressModal: suppressModal,
|
|
80
|
+
},
|
|
81
|
+
category: 'interaction',
|
|
82
|
+
level: 'info',
|
|
83
|
+
timestamp: Date.now(),
|
|
84
|
+
});
|
|
91
85
|
};
|
|
92
86
|
const reloadTables = async (tables) => {
|
|
93
87
|
const tempClient = {
|
|
@@ -158,7 +152,7 @@ function VirtualTableManager({ containerStyle, virtualTable, }) {
|
|
|
158
152
|
return;
|
|
159
153
|
}
|
|
160
154
|
// determine if there are duplicate names if there are then alert the user
|
|
161
|
-
duplicateColumns = (0,
|
|
155
|
+
duplicateColumns = (0, columnProcessing_1.getDuplicateColumns)(columns);
|
|
162
156
|
if (duplicateColumns.length > 0) {
|
|
163
157
|
alert(`Ambiguous column names found. Either use aliases or remove the column to make every column name unique: \n\n${duplicateColumns.join('\n')}`);
|
|
164
158
|
return;
|
|
@@ -219,7 +213,7 @@ function VirtualTableManager({ containerStyle, virtualTable, }) {
|
|
|
219
213
|
return;
|
|
220
214
|
}
|
|
221
215
|
// determine if there are duplicate names if there are then alert the user
|
|
222
|
-
duplicateColumns = (0,
|
|
216
|
+
duplicateColumns = (0, columnProcessing_1.getDuplicateColumns)(columns);
|
|
223
217
|
if (duplicateColumns.length > 0) {
|
|
224
218
|
alert(`Ambiguous column names found. Either use aliases or remove the column to make every column name unique: \n\n${duplicateColumns.join('\n')}`);
|
|
225
219
|
return;
|
|
@@ -264,6 +258,17 @@ function VirtualTableManager({ containerStyle, virtualTable, }) {
|
|
|
264
258
|
setEditQueryView(false);
|
|
265
259
|
}
|
|
266
260
|
catch (e) {
|
|
261
|
+
eventTracking?.logError?.({
|
|
262
|
+
type: 'bug', // TODO: determine type
|
|
263
|
+
severity: 'high',
|
|
264
|
+
message: 'Error submitting virtual table',
|
|
265
|
+
errorMessage: e.message,
|
|
266
|
+
errorStack: e.stack,
|
|
267
|
+
errorData: {
|
|
268
|
+
caller: 'VirtualTableManager',
|
|
269
|
+
function: 'handleModalSubmit',
|
|
270
|
+
},
|
|
271
|
+
});
|
|
267
272
|
console.error(e);
|
|
268
273
|
}
|
|
269
274
|
};
|
|
@@ -291,6 +296,15 @@ function VirtualTableManager({ containerStyle, virtualTable, }) {
|
|
|
291
296
|
alert(`This table is referenced in the following dashboard filter${filtersIsPlural}.\n\n${referencedFilterInfo.join('\n')} \n\nPlease delete those filters before deleting this table.`);
|
|
292
297
|
return;
|
|
293
298
|
}
|
|
299
|
+
eventTracking?.addBreadcrumb?.({
|
|
300
|
+
message: 'Confirmed delete table in VirtualTableManager',
|
|
301
|
+
data: {
|
|
302
|
+
table: name,
|
|
303
|
+
},
|
|
304
|
+
category: 'interaction',
|
|
305
|
+
level: 'info',
|
|
306
|
+
timestamp: Date.now(),
|
|
307
|
+
});
|
|
294
308
|
const response = await (0, dataEditor_1.deleteVirtualTable)(id, state, getToken);
|
|
295
309
|
await reloadTables();
|
|
296
310
|
return response;
|
|
@@ -306,7 +320,7 @@ function VirtualTableManager({ containerStyle, virtualTable, }) {
|
|
|
306
320
|
}
|
|
307
321
|
};
|
|
308
322
|
if (showCreateEnvironmentModal) {
|
|
309
|
-
return ((0, jsx_runtime_1.jsx)(
|
|
323
|
+
return ((0, jsx_runtime_1.jsx)(CreateEnvironmentModal_1.default, { showCreateEnvironmentModal: showCreateEnvironmentModal, setShowCreateEnvironmentModal: setShowCreateEnvironmentModal }));
|
|
310
324
|
}
|
|
311
325
|
return ((0, jsx_runtime_1.jsx)("div", { style: { ...containerStyle }, children: (0, jsx_runtime_1.jsxs)("div", { style: {
|
|
312
326
|
minHeight: '100%',
|
|
@@ -355,6 +369,12 @@ function VirtualTableManager({ containerStyle, virtualTable, }) {
|
|
|
355
369
|
flexDirection: 'row',
|
|
356
370
|
gap: 8,
|
|
357
371
|
}, children: [(0, jsx_runtime_1.jsx)(primitives_1.SecondaryButtonPrimitive, { onClick: () => {
|
|
372
|
+
eventTracking?.addBreadcrumb?.({
|
|
373
|
+
message: 'Clicked refresh tables button in VirtualTableManager',
|
|
374
|
+
category: 'interaction',
|
|
375
|
+
level: 'info',
|
|
376
|
+
timestamp: Date.now(),
|
|
377
|
+
});
|
|
358
378
|
reloadTables(tables);
|
|
359
379
|
}, label: "Refresh Tables" }), (0, jsx_runtime_1.jsx)(primitives_1.ButtonPrimitive, { onClick: () => {
|
|
360
380
|
setEditName('');
|
|
@@ -362,6 +382,12 @@ function VirtualTableManager({ containerStyle, virtualTable, }) {
|
|
|
362
382
|
setEditVirtualTableId('');
|
|
363
383
|
setInitialVirtualTable(undefined);
|
|
364
384
|
setEditQueryView(true);
|
|
385
|
+
eventTracking?.addBreadcrumb?.({
|
|
386
|
+
message: 'Clicked add virtual table button in VirtualTableManager',
|
|
387
|
+
category: 'interaction',
|
|
388
|
+
level: 'info',
|
|
389
|
+
timestamp: Date.now(),
|
|
390
|
+
});
|
|
365
391
|
}, label: "Add Virtual Table +" })] }))] }) })), clientLoading || areTablesLoading ? ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
366
392
|
display: 'grid',
|
|
367
393
|
gridGap: 24,
|
|
@@ -380,6 +406,12 @@ function VirtualTableManager({ containerStyle, virtualTable, }) {
|
|
|
380
406
|
overflow: 'hidden',
|
|
381
407
|
}, children: (0, jsx_runtime_1.jsxs)("svg", { width: "100%", height: "100%", xmlns: "http://www.w3.org/2000/svg", xmlnsXlink: "http://www.w3.org/1999/xlink", children: [(0, jsx_runtime_1.jsx)("rect", { width: "100%", height: "100%", fill: '#F9F9FA' }), (0, jsx_runtime_1.jsx)("defs", { fill: '#F9F9FA', children: (0, jsx_runtime_1.jsxs)("linearGradient", { id: "skeletonGradient", x1: "0%", y1: "0%", x2: "10%", y2: "0%", gradientUnits: "userSpaceOnUse", children: [(0, jsx_runtime_1.jsx)("stop", { offset: "0%", stopColor: "rgba(255,255,255,0)" }), (0, jsx_runtime_1.jsx)("stop", { offset: "50%", stopColor: "#FEFEFE" }), (0, jsx_runtime_1.jsx)("stop", { offset: "100%", stopColor: "rgba(255,255,255,0)" }), (0, jsx_runtime_1.jsx)("animate", { attributeName: "x1", from: "-100%", to: "100%", dur: "2s", repeatCount: "indefinite" }), (0, jsx_runtime_1.jsx)("animate", { attributeName: "x2", from: "-50%", to: "150%", dur: "2s", repeatCount: "indefinite" })] }) }), (0, jsx_runtime_1.jsx)("rect", { width: "50%", height: "100%", fill: "url(#skeletonGradient)", children: (0, jsx_runtime_1.jsx)("animate", { attributeName: "x", from: "-100%", to: "100%", dur: "2s", repeatCount: "indefinite" }) })] }) }) }, i))) }, 'edit-view-query')) : state.databaseTypeMismatch.show ? ((0, jsx_runtime_1.jsx)(DatabaseMismatchCard_1.default, { environmentName: state.client.name, environmentDatabaseType: state.client.databaseType, backendDatabaseType: state.databaseTypeMismatch.backendDatabaseType })) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [!editQueryView ? (tables && tables.length === 0 ? ((0, jsx_runtime_1.jsx)(EmptyVirtualTablesComponent_1.default, { onClick: () => {
|
|
382
408
|
setEditQueryView(true);
|
|
409
|
+
eventTracking?.addBreadcrumb?.({
|
|
410
|
+
message: 'Clicked EmptyVirtualTablesComponent in VirtualTableManager',
|
|
411
|
+
category: 'interaction',
|
|
412
|
+
level: 'info',
|
|
413
|
+
timestamp: Date.now(),
|
|
414
|
+
});
|
|
383
415
|
} })) : ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
384
416
|
display: 'grid',
|
|
385
417
|
gridGap: 24,
|
|
@@ -393,6 +425,12 @@ function VirtualTableManager({ containerStyle, virtualTable, }) {
|
|
|
393
425
|
}, children: tables && tables?.length ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [tables.map((table) => ((0, jsx_runtime_1.jsx)(Admin_1.TableCell, { table: table, clickTableCellHeader: clickTableCell, clickTableCellBody: () => {
|
|
394
426
|
clickTableCell(table, true);
|
|
395
427
|
setEditQueryView(true);
|
|
428
|
+
eventTracking?.addBreadcrumb?.({
|
|
429
|
+
message: 'Clicked table body in VirtualTableManager',
|
|
430
|
+
category: 'interaction',
|
|
431
|
+
level: 'info',
|
|
432
|
+
timestamp: Date.now(),
|
|
433
|
+
});
|
|
396
434
|
}, isLoading: loadingTables[table._id], reloadAction: (table) => reloadTables([table]), hoverActions: (table) => ((0, jsx_runtime_1.jsxs)("div", { style: {
|
|
397
435
|
display: 'flex',
|
|
398
436
|
flexDirection: 'row',
|
|
@@ -411,6 +449,15 @@ function VirtualTableManager({ containerStyle, virtualTable, }) {
|
|
|
411
449
|
border: `0 solid ${state.theme?.borderColor ?? '#e7e7e7'}`,
|
|
412
450
|
}, onClick: (event) => {
|
|
413
451
|
event.stopPropagation();
|
|
452
|
+
eventTracking?.addBreadcrumb?.({
|
|
453
|
+
message: 'Clicked edit query button in VirtualTableManager Table Cell',
|
|
454
|
+
data: {
|
|
455
|
+
table: table.name,
|
|
456
|
+
},
|
|
457
|
+
category: 'interaction',
|
|
458
|
+
level: 'info',
|
|
459
|
+
timestamp: Date.now(),
|
|
460
|
+
});
|
|
414
461
|
clickTableCell(table, true);
|
|
415
462
|
setEditQueryView(true);
|
|
416
463
|
}, className: "secondary-button-quill", children: [(0, jsx_runtime_1.jsx)("style", { children: `.secondary-button-quill { background: white } .secondary-button-quill:hover { background: #F4F4F5 }` }), (0, jsx_runtime_1.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", height: 12, width: 12, style: {
|
|
@@ -430,6 +477,15 @@ function VirtualTableManager({ containerStyle, virtualTable, }) {
|
|
|
430
477
|
border: `0 solid ${state.theme?.borderColor ?? '#e7e7e7'}`,
|
|
431
478
|
}, onClick: (event) => {
|
|
432
479
|
event.stopPropagation();
|
|
480
|
+
eventTracking?.addBreadcrumb?.({
|
|
481
|
+
message: 'Clicked table settings in VirtualTableManager Table Cell',
|
|
482
|
+
data: {
|
|
483
|
+
table: table.name,
|
|
484
|
+
},
|
|
485
|
+
category: 'interaction',
|
|
486
|
+
level: 'info',
|
|
487
|
+
timestamp: Date.now(),
|
|
488
|
+
});
|
|
433
489
|
clickTableCell(table);
|
|
434
490
|
}, className: "secondary-button-quill", children: (0, jsx_runtime_1.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", height: 16, width: 16, style: {
|
|
435
491
|
marginLeft: 'auto',
|
|
@@ -454,6 +510,15 @@ function VirtualTableManager({ containerStyle, virtualTable, }) {
|
|
|
454
510
|
border: `0 solid ${state.theme?.borderColor ?? '#e7e7e7'}`,
|
|
455
511
|
}, className: "secondary-button-quill", onClick: (event) => {
|
|
456
512
|
event.stopPropagation();
|
|
513
|
+
eventTracking?.addBreadcrumb?.({
|
|
514
|
+
message: 'Clicked refresh table button in VirtualTableManager Table Cell',
|
|
515
|
+
data: {
|
|
516
|
+
table: table.name,
|
|
517
|
+
},
|
|
518
|
+
category: 'interaction',
|
|
519
|
+
level: 'info',
|
|
520
|
+
timestamp: Date.now(),
|
|
521
|
+
});
|
|
457
522
|
reloadTables([table]);
|
|
458
523
|
}, children: [(0, jsx_runtime_1.jsx)("style", { children: `.secondary-button-quill { background: white } .secondary-button-quill:hover { background: #F4F4F5 }` }), (0, jsx_runtime_1.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "currentColor", viewBox: "0 0 16 16", strokeWidth: 1.5, height: 16, width: 16, style: {
|
|
459
524
|
marginLeft: 'auto',
|
|
@@ -472,6 +537,15 @@ function VirtualTableManager({ containerStyle, virtualTable, }) {
|
|
|
472
537
|
alignItems: 'center',
|
|
473
538
|
}, onClick: (event) => {
|
|
474
539
|
event.stopPropagation();
|
|
540
|
+
eventTracking?.addBreadcrumb?.({
|
|
541
|
+
message: 'Clicked delete table button in VirtualTableManager Table Cell',
|
|
542
|
+
data: {
|
|
543
|
+
table: table.name,
|
|
544
|
+
},
|
|
545
|
+
category: 'interaction',
|
|
546
|
+
level: 'info',
|
|
547
|
+
timestamp: Date.now(),
|
|
548
|
+
});
|
|
475
549
|
deleteVirtualTable(table._id, table.name, table.name);
|
|
476
550
|
}, className: "secondary-button-quill", children: [(0, jsx_runtime_1.jsx)("style", { children: `.secondary-button-quill { background: white } .secondary-button-quill:hover { background: #F4F4F5 }` }), (0, jsx_runtime_1.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 20 20", fill: "currentColor", height: 14, width: 14, style: {
|
|
477
551
|
marginLeft: 'auto',
|
|
@@ -508,7 +582,7 @@ function EditAddViewModal({ viewName, viewQuery, viewOwnerTenantFields, viewId,
|
|
|
508
582
|
const [tableData, setTableData] = (0, react_2.useState)(undefined);
|
|
509
583
|
const [errorInfo, setErrorInfo] = (0, react_2.useState)({ show: false, message: '' });
|
|
510
584
|
const clientIsSingleTenant = (0, react_2.useMemo)(() => (0, tenants_1.onlySingleDatabaseTenant)(state.client), [state.client]);
|
|
511
|
-
const { getToken } = (0,
|
|
585
|
+
const { getToken, eventTracking } = (0, useAdmin_1.useAdmin)();
|
|
512
586
|
(0, react_2.useEffect)(() => {
|
|
513
587
|
setCustomFieldQuery(customFieldInfo?.query || '');
|
|
514
588
|
setCustomFieldType(customFieldInfo?.type || 'eav');
|
|
@@ -630,7 +704,7 @@ function EditAddViewModal({ viewName, viewQuery, viewOwnerTenantFields, viewId,
|
|
|
630
704
|
}
|
|
631
705
|
setErrorInfo({ show: false, message: '' });
|
|
632
706
|
setRunQueryButtonLoading(true);
|
|
633
|
-
const getSqlResults = await (0, ConnectionClient_1.getVirtualTableData)(state.client._id, customFieldQuery, state.client.databaseType, state.queryEndpoint, getToken, state.queryHeaders);
|
|
707
|
+
const getSqlResults = await (0, ConnectionClient_1.getVirtualTableData)(state.client._id, customFieldQuery, state.client.databaseType, state.queryEndpoint, getToken, eventTracking, state.queryHeaders);
|
|
634
708
|
if (!getSqlResults.success) {
|
|
635
709
|
setErrorInfo({
|
|
636
710
|
show: true,
|
|
@@ -8,10 +8,11 @@ const react_1 = require("react");
|
|
|
8
8
|
const react_2 = require("@testing-library/react");
|
|
9
9
|
require("@testing-library/jest-dom");
|
|
10
10
|
const CreateEnvironment_1 = __importDefault(require("../CreateEnvironment"));
|
|
11
|
-
const
|
|
11
|
+
const useAdmin_1 = require("../../hooks/useAdmin");
|
|
12
12
|
const dataFetcher_1 = require("../../utils/dataFetcher");
|
|
13
13
|
const dotenv_1 = __importDefault(require("dotenv"));
|
|
14
14
|
const path_1 = __importDefault(require("path"));
|
|
15
|
+
const Provider_1 = require("../../models/Provider");
|
|
15
16
|
// Load environment variables from .env.local
|
|
16
17
|
dotenv_1.default.config({ path: path_1.default.resolve(__dirname, '../../../.env.local') });
|
|
17
18
|
// Mock necessary modules
|
|
@@ -233,6 +234,33 @@ const testDatabases = [
|
|
|
233
234
|
},
|
|
234
235
|
virtualTableQuery: 'SELECT amount, customer_id FROM `transactions`.`transactions`;',
|
|
235
236
|
},
|
|
237
|
+
{
|
|
238
|
+
databaseType: 'Databricks',
|
|
239
|
+
databaseLabel: 'Databricks',
|
|
240
|
+
databaseConnectionString: null,
|
|
241
|
+
databaseCredentials: {
|
|
242
|
+
host: process.env.TEST_DATABRICKS_HOST,
|
|
243
|
+
path: process.env.TEST_DATABRICKS_PATH,
|
|
244
|
+
token: process.env.TEST_DATABRICKS_TOKEN,
|
|
245
|
+
database: null,
|
|
246
|
+
user: null,
|
|
247
|
+
password: null,
|
|
248
|
+
port: null,
|
|
249
|
+
warehouse: null,
|
|
250
|
+
},
|
|
251
|
+
jsonString: null,
|
|
252
|
+
schemaName: 'default',
|
|
253
|
+
tenant: {
|
|
254
|
+
name: 'Test Tenant',
|
|
255
|
+
tenantField: 'customer_id',
|
|
256
|
+
tenantTable: 'default.customers',
|
|
257
|
+
idField: 'id',
|
|
258
|
+
nameField: 'name',
|
|
259
|
+
tagField: 'id',
|
|
260
|
+
defaultTenant: 'John Doe',
|
|
261
|
+
},
|
|
262
|
+
virtualTableQuery: 'SELECT * FROM default.transactions;',
|
|
263
|
+
},
|
|
236
264
|
];
|
|
237
265
|
describe('CreateEnvironment', () => {
|
|
238
266
|
const mockOnOnboardComplete = jest.fn();
|
|
@@ -247,9 +275,10 @@ describe('CreateEnvironment', () => {
|
|
|
247
275
|
// mockQuillFetch = jest.fn((args) => quillFetch(args));
|
|
248
276
|
mockState = {
|
|
249
277
|
queryEndpoint: 'http://localhost:8080/cloud',
|
|
250
|
-
|
|
278
|
+
clerkOrgId: 'test-domain',
|
|
279
|
+
theme: Provider_1.defaultTheme,
|
|
251
280
|
};
|
|
252
|
-
|
|
281
|
+
useAdmin_1.useAdmin.mockReturnValue({
|
|
253
282
|
state: mockState,
|
|
254
283
|
setClient: mockSetClient,
|
|
255
284
|
dispatch: mockDispatch,
|
|
@@ -376,6 +405,16 @@ describe('CreateEnvironment', () => {
|
|
|
376
405
|
.querySelector('input'), { target: { value: database.databaseCredentials.warehouse } });
|
|
377
406
|
});
|
|
378
407
|
}
|
|
408
|
+
if (database.databaseCredentials?.path) {
|
|
409
|
+
await (0, react_1.act)(async () => {
|
|
410
|
+
react_2.fireEvent.change(react_2.screen.getByTestId('quill-input-path').querySelector('input'), { target: { value: database.databaseCredentials.path } });
|
|
411
|
+
});
|
|
412
|
+
}
|
|
413
|
+
if (database.databaseCredentials?.token) {
|
|
414
|
+
await (0, react_1.act)(async () => {
|
|
415
|
+
react_2.fireEvent.change(react_2.screen.getByTestId('quill-input-token').querySelector('input'), { target: { value: database.databaseCredentials.token } });
|
|
416
|
+
});
|
|
417
|
+
}
|
|
379
418
|
// Verify Connect button is enabled
|
|
380
419
|
expect(react_2.screen.getByTestId('quill-connect-button').querySelector('button')
|
|
381
420
|
.className).not.toContain('quill-button-disabled');
|
|
@@ -448,7 +487,7 @@ describe('CreateEnvironment', () => {
|
|
|
448
487
|
newClient = JSON.parse(element.getAttribute('data-new-client') || '{}');
|
|
449
488
|
// Verify database schema was set
|
|
450
489
|
expect(environmentDetails.databaseSchema).toBeInstanceOf(Array);
|
|
451
|
-
// Client should have databaseType, schemaNames (non empty array), and
|
|
490
|
+
// Client should have databaseType, schemaNames (non empty array), and clerkOrgId
|
|
452
491
|
expect(newClient.schemaNames).toBeInstanceOf(Array);
|
|
453
492
|
expect(newClient.schemaNames.length).toBeGreaterThan(0);
|
|
454
493
|
expect(newClient.databaseType).toBe(database.databaseType);
|