From 417079299f5f9b075d56ca4d504745bce3f9ae11 Mon Sep 17 00:00:00 2001 From: 2427021 <s.a.vink@students.uu.nl> Date: Wed, 27 Mar 2024 11:50:49 +0100 Subject: [PATCH] feat(visManager): settings components --- apps/web/src/app/app.tsx | 2 +- .../configuration/components.tsx} | 0 libs/shared/lib/vis/configuration/index.tsx | 43 +------------------ libs/shared/lib/vis/configuration/panel.tsx | 41 ++++++++++++++++++ .../visualizations/matrixvis/matrixvis.tsx | 4 +- .../nodelinkvis/nodelinkvis.tsx | 2 +- .../vis/visualizations/paohvis/paohvis.tsx | 2 +- .../visualizations/rawjsonvis/rawjsonvis.tsx | 2 +- .../vis/visualizations/tablevis/tablevis.tsx | 2 +- 9 files changed, 50 insertions(+), 48 deletions(-) rename libs/shared/lib/{components/configuration/index.tsx => vis/configuration/components.tsx} (100%) create mode 100644 libs/shared/lib/vis/configuration/panel.tsx diff --git a/apps/web/src/app/app.tsx b/apps/web/src/app/app.tsx index 9496ca0ec..1cd6e4a66 100644 --- a/apps/web/src/app/app.tsx +++ b/apps/web/src/app/app.tsx @@ -21,7 +21,7 @@ import { VisualizationPanel } from '@graphpolaris/shared/lib/vis'; import { QueryBuilder } from '@graphpolaris/shared/lib/querybuilder'; import DataViewer from '@graphpolaris/shared/lib/data-viewer'; import { useVisualizationManager } from '@graphpolaris/shared/lib/vis/manager'; -import ConfigPanel from '@graphpolaris/shared/lib/vis/configuration'; +import { ConfigPanel } from '@graphpolaris/shared/lib/vis/configuration'; // const Schema = React.lazy(() => import('@graphpolaris/shared/lib/schema/panel')); // const VisualizationPanel = React.lazy(() => import('@graphpolaris/shared/lib/vis')); // const QueryBuilder = React.lazy(() => import('@graphpolaris/shared/lib/querybuilder')); diff --git a/libs/shared/lib/components/configuration/index.tsx b/libs/shared/lib/vis/configuration/components.tsx similarity index 100% rename from libs/shared/lib/components/configuration/index.tsx rename to libs/shared/lib/vis/configuration/components.tsx diff --git a/libs/shared/lib/vis/configuration/index.tsx b/libs/shared/lib/vis/configuration/index.tsx index 77bd7d2c9..2f98579c7 100644 --- a/libs/shared/lib/vis/configuration/index.tsx +++ b/libs/shared/lib/vis/configuration/index.tsx @@ -1,41 +1,2 @@ -import React from 'react'; -import { Button } from '../../components'; -import { Delete } from '@mui/icons-material'; -import Input from '../../components/inputs'; -import { VISUALIZATION_TYPES, VisualizationManager } from '../manager'; - -type Props = { - manager: VisualizationManager; -}; - -export default function ConfigPanel({ manager }: Props) { - return ( - <div className="w-full h-full flex flex-col border"> - <div className="border-b border-secondary-200 py-2"> - <div className="flex justify-between items-center px-4 py-2"> - <span className="text-xs font-bold">Visualisation</span> - <Button - type="secondary" - variant="ghost" - size="xs" - iconComponent={<Delete />} - onClick={() => { - if (manager.active) manager.deleteVisualization(manager.active); - }} - /> - </div> - <div className="flex justify-between items-center px-4 py-1"> - <span className="text-xs font-normal">Type</span> - <div className="w-36"> - <Input type="dropdown" size="xs" options={VISUALIZATION_TYPES} value={manager.active} onChange={() => {}} /> - </div> - </div> - <div className="flex justify-between items-center px-4 py-1"> - <span className="text-xs font-normal">Name</span> - <input type="text" className="border rouded w-36" value={manager.active} onChange={() => {}} /> - </div> - </div> - {manager.active && <div className="border-b border-secondary-200 py-2">{manager.renderSettings()}</div>} - </div> - ); -} +export { ConfigPanel } from './panel'; +export { SettingsContainer, SettingsHeader } from './components'; diff --git a/libs/shared/lib/vis/configuration/panel.tsx b/libs/shared/lib/vis/configuration/panel.tsx new file mode 100644 index 000000000..fafdef91c --- /dev/null +++ b/libs/shared/lib/vis/configuration/panel.tsx @@ -0,0 +1,41 @@ +import React from 'react'; +import { Button } from '../../components'; +import { Delete } from '@mui/icons-material'; +import Input from '../../components/inputs'; +import { VISUALIZATION_TYPES, VisualizationManager } from '../manager'; + +type Props = { + manager: VisualizationManager; +}; + +export function ConfigPanel({ manager }: Props) { + return ( + <div className="w-full h-full flex flex-col border"> + <div className="border-b border-secondary-200 py-2"> + <div className="flex justify-between items-center px-4 py-2"> + <span className="text-xs font-bold">Visualisation</span> + <Button + type="secondary" + variant="ghost" + size="xs" + iconComponent={<Delete />} + onClick={() => { + if (manager.active) manager.deleteVisualization(manager.active); + }} + /> + </div> + <div className="flex justify-between items-center px-4 py-1"> + <span className="text-xs font-normal">Type</span> + <div className="w-36"> + <Input type="dropdown" size="xs" options={VISUALIZATION_TYPES} value={manager.active} onChange={() => {}} /> + </div> + </div> + <div className="flex justify-between items-center px-4 py-1"> + <span className="text-xs font-normal">Name</span> + <input type="text" className="border rouded w-36" value={manager.active} onChange={() => {}} /> + </div> + </div> + {manager.active && <div className="border-b border-secondary-200 py-2">{manager.renderSettings()}</div>} + </div> + ); +} diff --git a/libs/shared/lib/vis/visualizations/matrixvis/matrixvis.tsx b/libs/shared/lib/vis/visualizations/matrixvis/matrixvis.tsx index b0954e8aa..0491f9a81 100644 --- a/libs/shared/lib/vis/visualizations/matrixvis/matrixvis.tsx +++ b/libs/shared/lib/vis/visualizations/matrixvis/matrixvis.tsx @@ -6,7 +6,7 @@ import { MatrixPixi } from './components/MatrixPixi'; import { VisualizationPropTypes, VISComponentType } from '../../types'; import Input from '@graphpolaris/shared/lib/components/inputs'; import { GraphMetaData } from '@graphpolaris/shared/lib/data-access/statistics'; -import { SettingsContainer, SettingsHeader } from '@graphpolaris/shared/lib/components/configuration'; +import { SettingsContainer, SettingsHeader } from '@graphpolaris/shared/lib/vis/configuration'; export interface MatrixVisProps { marks: string; @@ -48,7 +48,7 @@ const MatrixSettings = ({ }) => { return ( <SettingsContainer> - <SettingsHeader name="JSON visualization" /> + <SettingsHeader name="Matrix visualization" /> <Input type="dropdown" label="Configure marks" diff --git a/libs/shared/lib/vis/visualizations/nodelinkvis/nodelinkvis.tsx b/libs/shared/lib/vis/visualizations/nodelinkvis/nodelinkvis.tsx index 1788afec5..1a019a0e6 100644 --- a/libs/shared/lib/vis/visualizations/nodelinkvis/nodelinkvis.tsx +++ b/libs/shared/lib/vis/visualizations/nodelinkvis/nodelinkvis.tsx @@ -7,7 +7,7 @@ import { ML, setShortestPathSource, setShortestPathTarget } from '../../../data- import { VisualizationPropTypes, VISComponentType } from '../../types'; import Input from '@graphpolaris/shared/lib/components/inputs'; import { GraphMetaData } from '@graphpolaris/shared/lib/data-access/statistics'; -import { SettingsContainer, SettingsHeader } from '@graphpolaris/shared/lib/components/configuration'; +import { SettingsContainer, SettingsHeader } from '@graphpolaris/shared/lib/vis/configuration'; export interface NodelinkVisProps { layout: string; diff --git a/libs/shared/lib/vis/visualizations/paohvis/paohvis.tsx b/libs/shared/lib/vis/visualizations/paohvis/paohvis.tsx index ba55bee18..c3a04c380 100644 --- a/libs/shared/lib/vis/visualizations/paohvis/paohvis.tsx +++ b/libs/shared/lib/vis/visualizations/paohvis/paohvis.tsx @@ -29,7 +29,7 @@ import MakePaohvisMenu from './components/MakePaohvisMenu'; import { RowLabelColumn } from './components/RowLabelColumn'; import { VISComponentType, VisualizationPropTypes } from '../../types'; import { GraphMetaData } from '@graphpolaris/shared/lib/data-access/statistics'; -import { SettingsContainer, SettingsHeader } from '@graphpolaris/shared/lib/components/configuration'; +import { SettingsContainer, SettingsHeader } from '@graphpolaris/shared/lib/vis/configuration'; type PaohvisViewModelState = { rowHeight: number; diff --git a/libs/shared/lib/vis/visualizations/rawjsonvis/rawjsonvis.tsx b/libs/shared/lib/vis/visualizations/rawjsonvis/rawjsonvis.tsx index 8009c5ffd..4bb5a18dc 100644 --- a/libs/shared/lib/vis/visualizations/rawjsonvis/rawjsonvis.tsx +++ b/libs/shared/lib/vis/visualizations/rawjsonvis/rawjsonvis.tsx @@ -2,7 +2,7 @@ import React, { useEffect } from 'react'; import ReactJSONView from 'react-json-view'; import { VisualizationPropTypes, VISComponentType } from '../../types'; import { GraphMetaData } from '@graphpolaris/shared/lib/data-access/statistics'; -import { SettingsContainer, SettingsHeader } from '@graphpolaris/shared/lib/components/configuration'; +import { SettingsContainer, SettingsHeader } from '@graphpolaris/shared/lib/vis/configuration'; export interface RawJSONVisProps {} diff --git a/libs/shared/lib/vis/visualizations/tablevis/tablevis.tsx b/libs/shared/lib/vis/visualizations/tablevis/tablevis.tsx index 4aa2c453f..75de93f52 100644 --- a/libs/shared/lib/vis/visualizations/tablevis/tablevis.tsx +++ b/libs/shared/lib/vis/visualizations/tablevis/tablevis.tsx @@ -4,7 +4,7 @@ import { SchemaAttribute } from '../../../schema'; import { VisualizationPropTypes, VISComponentType } from '../../types'; import Input from '@graphpolaris/shared/lib/components/inputs'; import { GraphMetaData } from '@graphpolaris/shared/lib/data-access/statistics'; -import { SettingsContainer, SettingsHeader } from '@graphpolaris/shared/lib/components/configuration'; +import { SettingsContainer, SettingsHeader } from '@graphpolaris/shared/lib/vis/configuration'; export type TableProps = { showBarplot: boolean; -- GitLab