diff --git a/packages/datalib/src/PerspectiveConfig.ts b/packages/datalib/src/PerspectiveConfig.ts index 14a82f70f..6d298dd81 100644 --- a/packages/datalib/src/PerspectiveConfig.ts +++ b/packages/datalib/src/PerspectiveConfig.ts @@ -66,6 +66,11 @@ export interface PerspectiveNodeConfig { filters: { [uniqueName: string]: string }; isAutoGenerated?: true | undefined; + + position: { + x: number; + y: number; + }; } export interface PerspectiveReferenceConfig { diff --git a/packages/web/src/perspectives/PerspectiveDesigner.svelte b/packages/web/src/perspectives/PerspectiveDesigner.svelte new file mode 100644 index 000000000..24a0c12b1 --- /dev/null +++ b/packages/web/src/perspectives/PerspectiveDesigner.svelte @@ -0,0 +1,82 @@ + + + diff --git a/packages/web/src/perspectives/PerspectiveView.svelte b/packages/web/src/perspectives/PerspectiveView.svelte index 33f304884..cedf1c7ba 100644 --- a/packages/web/src/perspectives/PerspectiveView.svelte +++ b/packages/web/src/perspectives/PerspectiveView.svelte @@ -55,6 +55,8 @@ import SearchInput from '../elements/SearchInput.svelte'; import CloseSearchButton from '../buttons/CloseSearchButton.svelte'; import { useMultipleDatabaseInfo } from '../utility/useMultipleDatabaseInfo'; + import VerticalSplitter from '../elements/VerticalSplitter.svelte'; + import PerspectiveDesigner from './PerspectiveDesigner.svelte'; const dbg = debug('dbgate:PerspectiveView'); @@ -94,7 +96,14 @@ }); } - $: dbInfos = useMultipleDatabaseInfo(extractPerspectiveDatabases({ conid, database }, config)); + let perspectiveDatabases = extractPerspectiveDatabases({ conid, database }, config); + $: { + const newDatabases = extractPerspectiveDatabases({ conid, database }, config); + if (stableStringify(newDatabases) != stableStringify(newDatabases)) { + perspectiveDatabases = newDatabases; + } + } + $: dbInfos = useMultipleDatabaseInfo(perspectiveDatabases); $: rootObject = config?.nodes?.find(x => x.designerId == config?.rootDesignerId); $: tableInfo = useTableInfo({ conid, database, ...rootObject }); $: viewInfo = useViewInfo({ conid, database, ...rootObject }); @@ -139,7 +148,14 @@ - + + + + + + + + diff --git a/packages/web/src/tabs/PerspectiveTab.svelte b/packages/web/src/tabs/PerspectiveTab.svelte index e4a53bdc5..171052e63 100644 --- a/packages/web/src/tabs/PerspectiveTab.svelte +++ b/packages/web/src/tabs/PerspectiveTab.svelte @@ -107,8 +107,6 @@ cache.clear(); loadedCounts.set({}); } - - $: console.log('PERSPECTIVE', $modelState.value);