From 03864a99b3cff9d0904ca4642959c2669bacc9ac Mon Sep 17 00:00:00 2001
From: Leonardo <leomilho@gmail.com>
Date: Tue, 18 Jun 2024 17:39:09 +0200
Subject: [PATCH] feat(map_nodelink): added nodelink layer

---
 .../vis/visualizations/mapvis/MapSettings.tsx | 38 +++++++++++++++++++
 .../layers/nodelink-layer/NodeLinkLayer.tsx   |  3 ++
 .../lib/vis/visualizations/mapvis/mapvis.tsx  |  3 ++
 3 files changed, 44 insertions(+)

diff --git a/libs/shared/lib/vis/visualizations/mapvis/MapSettings.tsx b/libs/shared/lib/vis/visualizations/mapvis/MapSettings.tsx
index 8ffe587a1..42ceb19ae 100644
--- a/libs/shared/lib/vis/visualizations/mapvis/MapSettings.tsx
+++ b/libs/shared/lib/vis/visualizations/mapvis/MapSettings.tsx
@@ -4,6 +4,44 @@ import { layerSettings, layerTypes } from './components/layers';
 import { Input } from '../../..';
 import { VisualizationSettingsPropTypes } from '../../common';
 import { MapProps } from './mapvis';
+import { nodeColorHex } from '../nodelinkvis/components/utils';
+
+const DataLayerSettings = ({
+  layer,
+  settings,
+  graphMetadata,
+  updateSettings,
+}: VisualizationSettingsPropTypes<MapProps> & { layer: keyof typeof layerTypes }) => {
+  switch (layer) {
+    case 'nodelink':
+      return (
+        <>
+          {graphMetadata.nodes.labels.map((item, index) => (
+            <div className="flex m-1 items-center" key={item}>
+              <div className="w-3/4 mr-6">
+                <EntityPill title={item} />
+              </div>
+              <div className="w-1/2">
+                <div className={`h-5 w-5 border-2 border-sec-300`} style={{ backgroundColor: nodeColorHex(index + 1) }}></div>
+              </div>
+            </div>
+          ))}
+
+          <Input
+            label="Enable brushing"
+            type="boolean"
+            value={settings.enableBrushing}
+            onChange={(val) => {
+              console.log('update brush', val);
+              updateSettings({ enableBrushing: val as boolean });
+            }}
+          />
+        </>
+      );
+    default:
+      return;
+  }
+};
 
 export const MapSettings = ({ settings, graphMetadata, updateSettings }: VisualizationSettingsPropTypes<MapProps>) => {
   const DataLayerSettings = settings.layer && layerSettings?.[settings.layer];
diff --git a/libs/shared/lib/vis/visualizations/mapvis/components/layers/nodelink-layer/NodeLinkLayer.tsx b/libs/shared/lib/vis/visualizations/mapvis/components/layers/nodelink-layer/NodeLinkLayer.tsx
index 1a8a8626c..025c470cc 100644
--- a/libs/shared/lib/vis/visualizations/mapvis/components/layers/nodelink-layer/NodeLinkLayer.tsx
+++ b/libs/shared/lib/vis/visualizations/mapvis/components/layers/nodelink-layer/NodeLinkLayer.tsx
@@ -20,6 +20,9 @@ export class NodeLinkLayer extends CompositeLayer<LayerProps> {
     const brushingExtension = new BrushingExtension();
     const collisionFilter = new CollisionFilterExtension();
 
+    const brushingExtension = new BrushingExtension();
+    const collisionFilter = new CollisionFilterExtension();
+
     graph.metaData.nodes.labels.map((label: string) => {
       layers.push(
         new ScatterplotLayer({
diff --git a/libs/shared/lib/vis/visualizations/mapvis/mapvis.tsx b/libs/shared/lib/vis/visualizations/mapvis/mapvis.tsx
index e122e2b27..3effcce38 100644
--- a/libs/shared/lib/vis/visualizations/mapvis/mapvis.tsx
+++ b/libs/shared/lib/vis/visualizations/mapvis/mapvis.tsx
@@ -15,6 +15,7 @@ export type MapProps = {
   lat: string;
   lon: string;
   enableBrushing: boolean;
+  enableBrushing: boolean;
 };
 
 const settings: MapProps = {
@@ -23,6 +24,7 @@ const settings: MapProps = {
   lat: 'gp_latitude',
   lon: 'gp_longitude',
   enableBrushing: false,
+  enableBrushing: false,
 };
 
 const INITIAL_VIEW_STATE = {
@@ -105,6 +107,7 @@ export const MapVis = ({ data, settings, updateSettings, graphMetadata, handleSe
       name: 'New layer',
       type: layerType,
       config: settings,
+      config: settings,
       visible: true,
     });
   }, [settings.layer]);
-- 
GitLab