mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-19 06:06:01 +00:00
chart initial import
This commit is contained in:
56
packages/web/src/tabs/ChartTab.svelte
Normal file
56
packages/web/src/tabs/ChartTab.svelte
Normal file
@@ -0,0 +1,56 @@
|
||||
<script lang="ts">
|
||||
import _ from 'lodash';
|
||||
import ChartEditor from '../charts/ChartEditor.svelte';
|
||||
|
||||
import ErrorInfo from '../elements/ErrorInfo.svelte';
|
||||
|
||||
import LoadingInfo from '../elements/LoadingInfo.svelte';
|
||||
|
||||
import useEditorData from '../query/useEditorData';
|
||||
import createUndoReducer from '../utility/createUndoReducer';
|
||||
|
||||
export let tabid;
|
||||
export let conid;
|
||||
export let database;
|
||||
|
||||
export function getData() {
|
||||
return $editorState.value || '';
|
||||
}
|
||||
|
||||
const { editorState, editorValue, setEditorData } = useEditorData({
|
||||
tabid,
|
||||
onInitialData: value => {
|
||||
dispatchModel({ type: 'reset', value });
|
||||
},
|
||||
});
|
||||
|
||||
const [modelState, dispatchModel] = createUndoReducer({
|
||||
tables: [],
|
||||
references: [],
|
||||
columns: [],
|
||||
});
|
||||
|
||||
$: setEditorData($modelState.value);
|
||||
|
||||
const setConfig = config =>
|
||||
// @ts-ignore
|
||||
dispatchModel({
|
||||
type: 'compute',
|
||||
compute: v => ({ ...v, config: _.isFunction(config) ? config(v.config) : config }),
|
||||
});
|
||||
</script>
|
||||
|
||||
{#if $editorState.isLoading}
|
||||
<LoadingInfo wrapper message="Loading data" />
|
||||
{:else if $editorState.errorMessage}
|
||||
<ErrorInfo message={$editorState.errorMessage} />
|
||||
{:else}
|
||||
<ChartEditor
|
||||
data={$modelState.value && $modelState.value.data}
|
||||
config={$modelState.value ? $modelState.value.config || {} : {}}
|
||||
{setConfig}
|
||||
sql={$modelState.value && $modelState.value.sql}
|
||||
{conid}
|
||||
{database}
|
||||
/>
|
||||
{/if}
|
||||
@@ -7,7 +7,7 @@ import * as ShellTab from './ShellTab.svelte';
|
||||
import * as ArchiveFileTab from './ArchiveFileTab.svelte';
|
||||
import * as FreeTableTab from './FreeTableTab.svelte';
|
||||
// import PluginTab from './PluginTab';
|
||||
// import ChartTab from './ChartTab';
|
||||
import * as ChartTab from './ChartTab.svelte';
|
||||
import * as MarkdownEditorTab from './MarkdownEditorTab.svelte';
|
||||
// import MarkdownViewTab from './MarkdownViewTab';
|
||||
// import MarkdownPreviewTab from './MarkdownPreviewTab';
|
||||
@@ -24,7 +24,7 @@ export default {
|
||||
ArchiveFileTab,
|
||||
FreeTableTab,
|
||||
// PluginTab,
|
||||
// ChartTab,
|
||||
ChartTab,
|
||||
MarkdownEditorTab,
|
||||
// MarkdownViewTab,
|
||||
// MarkdownPreviewTab,
|
||||
|
||||
Reference in New Issue
Block a user