diff --git a/packages/web/src/charts/ChartCore.svelte b/packages/web/src/charts/ChartCore.svelte deleted file mode 100644 index 1fc893003..000000000 --- a/packages/web/src/charts/ChartCore.svelte +++ /dev/null @@ -1,87 +0,0 @@ - - - - - diff --git a/packages/web/src/charts/ChartEditor.svelte b/packages/web/src/charts/ChartEditor.svelte deleted file mode 100644 index aadf922b1..000000000 --- a/packages/web/src/charts/ChartEditor.svelte +++ /dev/null @@ -1,170 +0,0 @@ - - - - -
- - - - - - - - - {#if $configStore.chartType == 'line'} - - {/if} - - - - - - {#if availableColumnNames.length > 0} - ({ value: col, label: col }))} - /> - {/if} - - {#each availableColumnNames as col (col)} - - {#if config[`dataColumn_${col}`]} - - - {/if} - {/each} - - - -
- - - {#if errorLoadingColumns} - - {:else if errorLoadingData} - - {:else} - - {/if} - -
-
- - diff --git a/packages/web/src/charts/DataChart.svelte b/packages/web/src/charts/DataChart.svelte deleted file mode 100644 index 62d429b0a..000000000 --- a/packages/web/src/charts/DataChart.svelte +++ /dev/null @@ -1,198 +0,0 @@ - - - - -
- {#if chartData} - {#key `${$values.chartType}|${clientWidth}|${clientHeight}`} - - {/key} - {/if} -
- - diff --git a/packages/web/src/charts/chartDataLoader.ts b/packages/web/src/charts/chartDataLoader.ts deleted file mode 100644 index 440b8c956..000000000 --- a/packages/web/src/charts/chartDataLoader.ts +++ /dev/null @@ -1,133 +0,0 @@ -import type { Select } from 'dbgate-sqltree'; -import type { EngineDriver } from 'dbgate-types'; -import _ from 'lodash'; -import { apiCall } from '../utility/api'; - -export async function loadChartStructure(driver: EngineDriver, conid, database, sql) { - const select: Select = { - commandType: 'select', - selectAll: true, - topRecords: 1, - from: { - subQueryString: sql, - alias: 'subq', - }, - }; - - const resp = await apiCall('database-connections/sql-select', { conid, database, select }); - if (resp.errorMessage) throw new Error(resp.errorMessage); - return resp.columns.map(x => x.columnName); -} - -export async function loadChartData(driver: EngineDriver, conid, database, sql, config) { - const dataColumns = extractDataColumns(config); - const { labelColumn, truncateFrom, truncateLimit, showRelativeValues } = config; - if (!labelColumn || !dataColumns || dataColumns.length == 0) return null; - - const select: Select = { - commandType: 'select', - - columns: [ - { - exprType: 'column', - source: { alias: 'subq' }, - columnName: labelColumn, - alias: labelColumn, - }, - // @ts-ignore - ...dataColumns.map(columnName => ({ - exprType: 'call', - func: 'SUM', - args: [ - { - exprType: 'column', - columnName, - source: { alias: 'subq' }, - }, - ], - alias: columnName, - })), - ], - topRecords: truncateLimit || 100, - from: { - subQueryString: sql, - alias: 'subq', - }, - groupBy: [ - { - exprType: 'column', - source: { alias: 'subq' }, - columnName: labelColumn, - }, - ], - orderBy: [ - { - exprType: 'column', - source: { alias: 'subq' }, - columnName: labelColumn, - direction: truncateFrom == 'end' ? 'DESC' : 'ASC', - }, - ], - }; - - const resp = await apiCall('database-connections/sql-select', { conid, database, select }); - let { rows, columns, errorMessage } = resp; - if (errorMessage) { - throw new Error(errorMessage); - } - if (truncateFrom == 'end' && rows) { - rows = _.reverse([...rows]); - } - if (showRelativeValues) { - const maxValues = dataColumns.map(col => _.max(rows.map(row => row[col]))); - for (const [col, max] of _.zip(dataColumns, maxValues)) { - if (!max) continue; - if (!_.isNumber(max)) continue; - if (!(max > 0)) continue; - rows = rows.map(row => ({ - ...row, - [col]: (row[col] / max) * 100, - })); - // columns = columns.map((x) => { - // if (x.columnName == col) { - // return { columnName: `${col} %` }; - // } - // return x; - // }); - } - } - - console.log('Loaded chart data', { columns, rows }); - - return { - columns, - rows, - }; -} - -export function extractDataColumns(values) { - const dataColumns = []; - for (const key in values) { - if (key.startsWith('dataColumn_') && values[key]) { - dataColumns.push(key.substring('dataColumn_'.length)); - } - } - return dataColumns; -} -export function extractDataColumnColors(values, dataColumns) { - const res = {}; - for (const column of dataColumns) { - const color = values[`dataColumnColor_${column}`]; - if (color) res[column] = color; - } - return res; -} - -export function extractDataColumnLabels(values, dataColumns) { - const res = {}; - for (const column of dataColumns) { - const label = values[`dataColumnLabel_${column}`]; - if (label) res[column] = label; - } - return res; -} diff --git a/packages/web/src/tabs/ChartTab.svelte b/packages/web/src/tabs/ChartTab.svelte deleted file mode 100644 index b0efeec5c..000000000 --- a/packages/web/src/tabs/ChartTab.svelte +++ /dev/null @@ -1,118 +0,0 @@ - - - - -{#if $editorState.isLoading} - -{:else if $editorState.errorMessage} - -{:else} - -{/if} diff --git a/packages/web/src/tabs/ProfilerTab.svelte b/packages/web/src/tabs/ProfilerTab.svelte deleted file mode 100644 index 774f6d4de..000000000 --- a/packages/web/src/tabs/ProfilerTab.svelte +++ /dev/null @@ -1,250 +0,0 @@ - - - - - - {#if jslid} - - - {#key jslid} - - {/key} - - - {#if isLoadingChart} - - {:else} - - {/if} - - - {:else} - - {/if} - - - - - - - diff --git a/packages/web/src/tabs/index.js b/packages/web/src/tabs/index.js index e0baa54b8..c8ac250f1 100644 --- a/packages/web/src/tabs/index.js +++ b/packages/web/src/tabs/index.js @@ -6,7 +6,6 @@ import * as QueryTab from './QueryTab.svelte'; import * as ShellTab from './ShellTab.svelte'; import * as ArchiveFileTab from './ArchiveFileTab.svelte'; import * as PluginTab from './PluginTab.svelte'; -import * as ChartTab from './ChartTab.svelte'; import * as MarkdownEditorTab from './MarkdownEditorTab.svelte'; import * as MarkdownViewTab from './MarkdownViewTab.svelte'; import * as MarkdownPreviewTab from './MarkdownPreviewTab.svelte'; @@ -23,7 +22,6 @@ import * as QueryDataTab from './QueryDataTab.svelte'; import * as ConnectionTab from './ConnectionTab.svelte'; import * as MapTab from './MapTab.svelte'; import * as ServerSummaryTab from './ServerSummaryTab.svelte'; -import * as ProfilerTab from './ProfilerTab.svelte'; import * as ImportExportTab from './ImportExportTab.svelte'; import * as SqlObjectTab from './SqlObjectTab.svelte'; @@ -38,7 +36,6 @@ export default { ShellTab, ArchiveFileTab, PluginTab, - ChartTab, MarkdownEditorTab, MarkdownViewTab, MarkdownPreviewTab, @@ -55,7 +52,6 @@ export default { ConnectionTab, MapTab, ServerSummaryTab, - ProfilerTab, ImportExportTab, SqlObjectTab, ...protabs,