Upgrade react-flow-renderer
to version 10 (#4234)
This commit is contained in:
parent
6c91556a1c
commit
7f8d4db15c
6 changed files with 705 additions and 270 deletions
|
@ -72,7 +72,7 @@
|
|||
"react-dom": "^17.0.2",
|
||||
"react-dropzone": "^14.2.3",
|
||||
"react-error-boundary": "^3.1.4",
|
||||
"react-flow-renderer": "^9.7.4",
|
||||
"react-flow-renderer": "^10.3.17",
|
||||
"react-hook-form": "^6.15.8",
|
||||
"react-hook-form-v7": "npm:react-hook-form@^7.35.1",
|
||||
"react-i18next": "^12.0.0",
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { useState, MouseEvent as ReactMouseEvent } from "react";
|
||||
import type AuthenticationExecutionInfoRepresentation from "@keycloak/keycloak-admin-client/lib/defs/authenticationExecutionInfoRepresentation";
|
||||
import {
|
||||
Drawer,
|
||||
DrawerActions,
|
||||
|
@ -8,25 +8,29 @@ import {
|
|||
DrawerHead,
|
||||
DrawerPanelContent,
|
||||
} from "@patternfly/react-core";
|
||||
import { MouseEvent as ReactMouseEvent, useMemo, useState } from "react";
|
||||
import ReactFlow, {
|
||||
Node,
|
||||
Edge,
|
||||
Elements,
|
||||
Position,
|
||||
removeElements,
|
||||
MiniMap,
|
||||
Controls,
|
||||
Background,
|
||||
isNode,
|
||||
Controls,
|
||||
Edge,
|
||||
EdgeTypes,
|
||||
MiniMap,
|
||||
Node,
|
||||
NodeMouseHandler,
|
||||
NodeTypes,
|
||||
Position,
|
||||
ReactFlowInstance,
|
||||
useEdgesState,
|
||||
useNodesState,
|
||||
} from "react-flow-renderer";
|
||||
import { useUpdateEffect } from "../../utils/useUpdateEffect";
|
||||
|
||||
import type AuthenticationExecutionInfoRepresentation from "@keycloak/keycloak-admin-client/lib/defs/authenticationExecutionInfoRepresentation";
|
||||
import type { ExecutionList, ExpandableExecution } from "../execution-model";
|
||||
import { EndSubFlowNode, StartSubFlowNode } from "./diagram/SubFlowNode";
|
||||
import { ConditionalNode } from "./diagram/ConditionalNode";
|
||||
import { ButtonEdge } from "./diagram/ButtonEdge";
|
||||
import { getLayoutedElements } from "./diagram/auto-layout";
|
||||
import { providerConditionFilter } from "../FlowDetails";
|
||||
import { getLayoutedEdges, getLayoutedNodes } from "./diagram/auto-layout";
|
||||
import { ButtonEdge, ButtonEdges } from "./diagram/ButtonEdge";
|
||||
import { ConditionalNode } from "./diagram/ConditionalNode";
|
||||
import { EndSubFlowNode, StartSubFlowNode } from "./diagram/SubFlowNode";
|
||||
|
||||
import "./flow-diagram.css";
|
||||
|
||||
|
@ -34,7 +38,7 @@ type FlowDiagramProps = {
|
|||
executionList: ExecutionList;
|
||||
};
|
||||
|
||||
const createEdge = (fromNode: string, toNode: string) => ({
|
||||
const createEdge = (fromNode: string, toNode: string): Edge => ({
|
||||
id: `edge-${fromNode}-to-${toNode}`,
|
||||
type: "buttonEdge",
|
||||
source: fromNode,
|
||||
|
@ -50,7 +54,7 @@ const createEdge = (fromNode: string, toNode: string) => ({
|
|||
},
|
||||
});
|
||||
|
||||
const createNode = (ex: ExpandableExecution) => {
|
||||
const createNode = (ex: ExpandableExecution): Node => {
|
||||
let nodeType: string | undefined = undefined;
|
||||
if (ex.executionList) {
|
||||
nodeType = "startSubFlow";
|
||||
|
@ -68,50 +72,50 @@ const createNode = (ex: ExpandableExecution) => {
|
|||
};
|
||||
};
|
||||
|
||||
const renderParallelNodes = (
|
||||
const renderParallelNodes = (execution: ExpandableExecution): Node[] => [
|
||||
createNode(execution),
|
||||
];
|
||||
|
||||
const renderParallelEdges = (
|
||||
start: AuthenticationExecutionInfoRepresentation,
|
||||
execution: ExpandableExecution,
|
||||
end: AuthenticationExecutionInfoRepresentation
|
||||
) => {
|
||||
const elements: Elements = [];
|
||||
elements.push(createNode(execution));
|
||||
elements.push(createEdge(start.id!, execution.id!));
|
||||
elements.push(createEdge(execution.id!, end.id!));
|
||||
return elements;
|
||||
};
|
||||
): Edge[] => [
|
||||
createEdge(start.id!, execution.id!),
|
||||
createEdge(execution.id!, end.id!),
|
||||
];
|
||||
|
||||
const renderSequentialNodes = (
|
||||
const renderSequentialNodes = (execution: ExpandableExecution): Node[] => [
|
||||
createNode(execution),
|
||||
];
|
||||
|
||||
const renderSequentialEdges = (
|
||||
start: AuthenticationExecutionInfoRepresentation,
|
||||
execution: ExpandableExecution,
|
||||
end: AuthenticationExecutionInfoRepresentation,
|
||||
prefExecution: ExpandableExecution,
|
||||
isFirst: boolean,
|
||||
isLast: boolean
|
||||
) => {
|
||||
const elements: Elements = [];
|
||||
elements.push(createNode(execution));
|
||||
): Edge[] => {
|
||||
const edges: Edge[] = [];
|
||||
|
||||
if (isFirst) {
|
||||
elements.push(createEdge(start.id!, execution.id!));
|
||||
edges.push(createEdge(start.id!, execution.id!));
|
||||
} else {
|
||||
elements.push(createEdge(prefExecution.id!, execution.id!));
|
||||
edges.push(createEdge(prefExecution.id!, execution.id!));
|
||||
}
|
||||
|
||||
if (isLast) {
|
||||
elements.push(createEdge(execution.id!, end.id!));
|
||||
edges.push(createEdge(execution.id!, end.id!));
|
||||
}
|
||||
|
||||
return elements;
|
||||
return edges;
|
||||
};
|
||||
|
||||
const renderSubFlow = (
|
||||
execution: ExpandableExecution,
|
||||
start: AuthenticationExecutionInfoRepresentation,
|
||||
end: AuthenticationExecutionInfoRepresentation,
|
||||
prefExecution?: ExpandableExecution
|
||||
) => {
|
||||
const elements: Elements = [];
|
||||
const renderSubFlowNodes = (execution: ExpandableExecution): Node[] => {
|
||||
const nodes: Node[] = [];
|
||||
|
||||
elements.push({
|
||||
nodes.push({
|
||||
id: execution.id!,
|
||||
type: "startSubFlow",
|
||||
sourcePosition: Position.Right,
|
||||
|
@ -119,8 +123,10 @@ const renderSubFlow = (
|
|||
data: { label: execution.displayName! },
|
||||
position: { x: 0, y: 0 },
|
||||
});
|
||||
|
||||
const endSubFlowId = `flow-end-${execution.id}`;
|
||||
elements.push({
|
||||
|
||||
nodes.push({
|
||||
id: endSubFlowId,
|
||||
type: "endSubFlow",
|
||||
sourcePosition: Position.Right,
|
||||
|
@ -128,7 +134,21 @@ const renderSubFlow = (
|
|||
data: { label: execution.displayName! },
|
||||
position: { x: 0, y: 0 },
|
||||
});
|
||||
elements.push(
|
||||
|
||||
return nodes.concat(renderFlowNodes(execution.executionList || []));
|
||||
};
|
||||
|
||||
const renderSubFlowEdges = (
|
||||
execution: ExpandableExecution,
|
||||
start: AuthenticationExecutionInfoRepresentation,
|
||||
end: AuthenticationExecutionInfoRepresentation,
|
||||
prefExecution?: ExpandableExecution
|
||||
): Edge[] => {
|
||||
const edges: Edge[] = [];
|
||||
|
||||
const endSubFlowId = `flow-end-${execution.id}`;
|
||||
|
||||
edges.push(
|
||||
createEdge(
|
||||
prefExecution && prefExecution.requirement !== "ALTERNATIVE"
|
||||
? prefExecution.id!
|
||||
|
@ -136,38 +156,60 @@ const renderSubFlow = (
|
|||
execution.id!
|
||||
)
|
||||
);
|
||||
elements.push(createEdge(endSubFlowId, end.id!));
|
||||
edges.push(createEdge(endSubFlowId, end.id!));
|
||||
|
||||
return elements.concat(
|
||||
renderFlow(execution, execution.executionList || [], {
|
||||
return edges.concat(
|
||||
renderFlowEdges(execution, execution.executionList || [], {
|
||||
...execution,
|
||||
id: endSubFlowId,
|
||||
})
|
||||
);
|
||||
};
|
||||
|
||||
const renderFlow = (
|
||||
const renderFlowNodes = (executionList: ExpandableExecution[]): Node[] => {
|
||||
let elements: Node[] = [];
|
||||
|
||||
for (let index = 0; index < executionList.length; index++) {
|
||||
const execution = executionList[index];
|
||||
if (execution.executionList) {
|
||||
elements = elements.concat(renderSubFlowNodes(execution));
|
||||
} else {
|
||||
if (
|
||||
execution.requirement === "ALTERNATIVE" ||
|
||||
execution.requirement === "DISABLED"
|
||||
) {
|
||||
elements = elements.concat(renderParallelNodes(execution));
|
||||
} else {
|
||||
elements = elements.concat(renderSequentialNodes(execution));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return elements;
|
||||
};
|
||||
|
||||
const renderFlowEdges = (
|
||||
start: AuthenticationExecutionInfoRepresentation,
|
||||
executionList: ExpandableExecution[],
|
||||
end: AuthenticationExecutionInfoRepresentation
|
||||
) => {
|
||||
let elements: Elements = [];
|
||||
): Edge[] => {
|
||||
let elements: Edge[] = [];
|
||||
|
||||
for (let index = 0; index < executionList.length; index++) {
|
||||
const execution = executionList[index];
|
||||
if (execution.executionList) {
|
||||
elements = elements.concat(
|
||||
renderSubFlow(execution, start, end, executionList[index - 1])
|
||||
renderSubFlowEdges(execution, start, end, executionList[index - 1])
|
||||
);
|
||||
} else {
|
||||
if (
|
||||
execution.requirement === "ALTERNATIVE" ||
|
||||
execution.requirement === "DISABLED"
|
||||
) {
|
||||
elements = elements.concat(renderParallelNodes(start, execution, end));
|
||||
elements = elements.concat(renderParallelEdges(start, execution, end));
|
||||
} else {
|
||||
elements = elements.concat(
|
||||
renderSequentialNodes(
|
||||
renderSequentialEdges(
|
||||
start,
|
||||
execution,
|
||||
end,
|
||||
|
@ -183,10 +225,18 @@ const renderFlow = (
|
|||
return elements;
|
||||
};
|
||||
|
||||
export const FlowDiagram = ({
|
||||
executionList: { expandableList },
|
||||
}: FlowDiagramProps) => {
|
||||
let elements: Elements = [
|
||||
const nodeTypes: NodeTypes = {
|
||||
conditional: ConditionalNode,
|
||||
startSubFlow: StartSubFlowNode,
|
||||
endSubFlow: EndSubFlowNode,
|
||||
};
|
||||
|
||||
const edgeTypes: ButtonEdges = {
|
||||
buttonEdge: ButtonEdge,
|
||||
};
|
||||
|
||||
function renderNodes(expandableList: ExpandableExecution[]) {
|
||||
return getLayoutedNodes([
|
||||
{
|
||||
id: "start",
|
||||
sourcePosition: Position.Right,
|
||||
|
@ -203,27 +253,39 @@ export const FlowDiagram = ({
|
|||
position: { x: 0, y: 0 },
|
||||
className: "keycloak__authentication__output_node",
|
||||
},
|
||||
];
|
||||
...renderFlowNodes(expandableList),
|
||||
]);
|
||||
}
|
||||
|
||||
elements = elements.concat(
|
||||
renderFlow({ id: "start" }, expandableList, { id: "end" })
|
||||
function renderEdges(expandableList: ExpandableExecution[]): Edge[] {
|
||||
return getLayoutedEdges(
|
||||
renderFlowEdges({ id: "start" }, expandableList, {
|
||||
id: "end",
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
const onLoad = (reactFlowInstance: { fitView: () => void }) =>
|
||||
export const FlowDiagram = ({
|
||||
executionList: { expandableList },
|
||||
}: FlowDiagramProps) => {
|
||||
const [expandDrawer, setExpandDrawer] = useState(false);
|
||||
const initialNodes = useMemo(() => renderNodes(expandableList), []);
|
||||
const initialEdges = useMemo(() => renderEdges(expandableList), []);
|
||||
const [nodes, setNodes, onNodesChange] = useNodesState(initialNodes);
|
||||
const [edges, setEdges, onEdgesChange] = useEdgesState(initialEdges);
|
||||
|
||||
useUpdateEffect(() => {
|
||||
setNodes(renderNodes(expandableList));
|
||||
setEdges(renderEdges(expandableList));
|
||||
}, [expandableList]);
|
||||
|
||||
const onInit = (reactFlowInstance: ReactFlowInstance) =>
|
||||
reactFlowInstance.fitView();
|
||||
|
||||
const [layoutedElements, setElements] = useState(
|
||||
getLayoutedElements(elements)
|
||||
);
|
||||
const [expandDrawer, setExpandDrawer] = useState(false);
|
||||
|
||||
const onElementClick = (_event: ReactMouseEvent, element: Node | Edge) => {
|
||||
if (isNode(element)) setExpandDrawer(!expandDrawer);
|
||||
const onNodeClick: NodeMouseHandler = () => {
|
||||
setExpandDrawer(!expandDrawer);
|
||||
};
|
||||
|
||||
const onElementsRemove = (elementsToRemove: Elements) =>
|
||||
setElements((els) => removeElements(elementsToRemove, els));
|
||||
|
||||
return (
|
||||
<Drawer isExpanded={expandDrawer} onExpand={() => setExpandDrawer(true)}>
|
||||
<DrawerContent
|
||||
|
@ -240,18 +302,14 @@ export const FlowDiagram = ({
|
|||
>
|
||||
<DrawerContentBody>
|
||||
<ReactFlow
|
||||
nodeTypes={{
|
||||
conditional: ConditionalNode,
|
||||
startSubFlow: StartSubFlowNode,
|
||||
endSubFlow: EndSubFlowNode,
|
||||
}}
|
||||
edgeTypes={{
|
||||
buttonEdge: ButtonEdge,
|
||||
}}
|
||||
onElementClick={onElementClick}
|
||||
onElementsRemove={onElementsRemove}
|
||||
onLoad={onLoad}
|
||||
elements={layoutedElements}
|
||||
nodes={nodes}
|
||||
edges={edges}
|
||||
onNodesChange={onNodesChange}
|
||||
onEdgesChange={onEdgesChange}
|
||||
onInit={onInit}
|
||||
nodeTypes={nodeTypes}
|
||||
edgeTypes={edgeTypes as EdgeTypes}
|
||||
onNodeClick={onNodeClick}
|
||||
nodesConnectable={false}
|
||||
>
|
||||
<MiniMap />
|
||||
|
|
|
@ -1,25 +1,20 @@
|
|||
import { CSSProperties, MouseEvent as ReactMouseEvent } from "react";
|
||||
import { PlusIcon } from "@patternfly/react-icons";
|
||||
import { ComponentType, MouseEvent as ReactMouseEvent } from "react";
|
||||
import {
|
||||
ArrowHeadType,
|
||||
EdgeProps,
|
||||
getBezierPath,
|
||||
getEdgeCenter,
|
||||
getMarkerEnd,
|
||||
Position,
|
||||
MarkerType,
|
||||
} from "react-flow-renderer";
|
||||
|
||||
type ButtonEdgeProps = {
|
||||
id: string;
|
||||
sourceX: number;
|
||||
sourceY: number;
|
||||
sourcePosition?: Position;
|
||||
targetX: number;
|
||||
targetY: number;
|
||||
targetPosition?: Position;
|
||||
style: CSSProperties;
|
||||
arrowHeadType?: ArrowHeadType;
|
||||
markerEndId: string;
|
||||
selected: boolean;
|
||||
export type ButtonEdges = {
|
||||
[key: string]: ComponentType<ButtonEdgeProps>;
|
||||
};
|
||||
|
||||
export type ButtonEdgeProps = EdgeProps & {
|
||||
markerType?: MarkerType;
|
||||
markerEndId?: string;
|
||||
data: {
|
||||
onEdgeClick: (
|
||||
evt: ReactMouseEvent<HTMLButtonElement, MouseEvent>,
|
||||
|
@ -39,7 +34,7 @@ export const ButtonEdge = ({
|
|||
sourcePosition,
|
||||
targetPosition,
|
||||
style = {},
|
||||
arrowHeadType,
|
||||
markerType,
|
||||
markerEndId,
|
||||
selected,
|
||||
data: { onEdgeClick },
|
||||
|
@ -52,7 +47,7 @@ export const ButtonEdge = ({
|
|||
targetY,
|
||||
targetPosition,
|
||||
});
|
||||
const markerEnd = getMarkerEnd(arrowHeadType, markerEndId);
|
||||
const markerEnd = getMarkerEnd(markerType, markerEndId);
|
||||
const [edgeCenterX, edgeCenterY] = getEdgeCenter({
|
||||
sourceX,
|
||||
sourceY,
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { Elements, Position, isNode } from "react-flow-renderer";
|
||||
import { graphlib, layout } from "dagre";
|
||||
import { Edge, Node, Position } from "react-flow-renderer";
|
||||
|
||||
const dagreGraph = new graphlib.Graph();
|
||||
dagreGraph.setDefaultEdgeLabel(() => ({}));
|
||||
|
@ -7,35 +7,41 @@ dagreGraph.setDefaultEdgeLabel(() => ({}));
|
|||
const nodeWidth = 130;
|
||||
const nodeHeight = 28;
|
||||
|
||||
export const getLayoutedElements = (elements: Elements, direction = "LR") => {
|
||||
export const getLayoutedNodes = (nodes: Node[], direction = "LR"): Node[] => {
|
||||
const isHorizontal = direction === "LR";
|
||||
dagreGraph.setGraph({ rankdir: direction });
|
||||
|
||||
elements.forEach((element) => {
|
||||
if (isNode(element)) {
|
||||
dagreGraph.setNode(element.id, {
|
||||
width: nodeWidth,
|
||||
height: nodeHeight,
|
||||
});
|
||||
} else {
|
||||
dagreGraph.setEdge(element.source, element.target);
|
||||
}
|
||||
nodes.forEach((element) => {
|
||||
dagreGraph.setNode(element.id, {
|
||||
width: nodeWidth,
|
||||
height: nodeHeight,
|
||||
});
|
||||
});
|
||||
|
||||
layout(dagreGraph);
|
||||
|
||||
return elements.map((element) => {
|
||||
if (isNode(element)) {
|
||||
const nodeWithPosition = dagreGraph.node(element.id);
|
||||
element.targetPosition = isHorizontal ? Position.Left : Position.Top;
|
||||
element.sourcePosition = isHorizontal ? Position.Right : Position.Bottom;
|
||||
return nodes.map((node) => {
|
||||
const nodeWithPosition = dagreGraph.node(node.id);
|
||||
node.targetPosition = isHorizontal ? Position.Left : Position.Top;
|
||||
node.sourcePosition = isHorizontal ? Position.Right : Position.Bottom;
|
||||
|
||||
element.position = {
|
||||
x: nodeWithPosition.x - nodeWidth / 2 + Math.random() / 1000,
|
||||
y: nodeWithPosition.y - nodeHeight / 2,
|
||||
};
|
||||
}
|
||||
node.position = {
|
||||
x: nodeWithPosition.x - nodeWidth / 2 + Math.random() / 1000,
|
||||
y: nodeWithPosition.y - nodeHeight / 2,
|
||||
};
|
||||
|
||||
return element;
|
||||
return node;
|
||||
});
|
||||
};
|
||||
|
||||
export const getLayoutedEdges = (edges: Edge[], direction = "LR"): Edge[] => {
|
||||
dagreGraph.setGraph({ rankdir: direction });
|
||||
|
||||
edges.forEach((element) => {
|
||||
dagreGraph.setEdge(element.source, element.target);
|
||||
});
|
||||
|
||||
layout(dagreGraph);
|
||||
|
||||
return edges;
|
||||
};
|
||||
|
|
16
apps/admin-ui/src/utils/useUpdateEffect.ts
Normal file
16
apps/admin-ui/src/utils/useUpdateEffect.ts
Normal file
|
@ -0,0 +1,16 @@
|
|||
import { DependencyList, EffectCallback, useEffect, useRef } from "react";
|
||||
|
||||
/**
|
||||
* A `useEffect` hook that only triggers on updates, not on initial render.
|
||||
*/
|
||||
export function useUpdateEffect(effect: EffectCallback, deps?: DependencyList) {
|
||||
const didMount = useRef(false);
|
||||
|
||||
useEffect(() => {
|
||||
if (didMount.current) {
|
||||
return effect();
|
||||
}
|
||||
|
||||
didMount.current = true;
|
||||
}, deps);
|
||||
}
|
658
package-lock.json
generated
658
package-lock.json
generated
|
@ -151,7 +151,7 @@
|
|||
"react-dom": "^17.0.2",
|
||||
"react-dropzone": "^14.2.3",
|
||||
"react-error-boundary": "^3.1.4",
|
||||
"react-flow-renderer": "^9.7.4",
|
||||
"react-flow-renderer": "^10.3.17",
|
||||
"react-hook-form": "^6.15.8",
|
||||
"react-hook-form-v7": "npm:react-hook-form@^7.35.1",
|
||||
"react-i18next": "^12.0.0",
|
||||
|
@ -4444,6 +4444,228 @@
|
|||
"@types/chai": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/d3": {
|
||||
"version": "7.4.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3/-/d3-7.4.0.tgz",
|
||||
"integrity": "sha512-jIfNVK0ZlxcuRDKtRS/SypEyOQ6UHaFQBKv032X45VvxSJ6Yi5G9behy9h6tNTHTDGh5Vq+KbmBjUWLgY4meCA==",
|
||||
"dependencies": {
|
||||
"@types/d3-array": "*",
|
||||
"@types/d3-axis": "*",
|
||||
"@types/d3-brush": "*",
|
||||
"@types/d3-chord": "*",
|
||||
"@types/d3-color": "*",
|
||||
"@types/d3-contour": "*",
|
||||
"@types/d3-delaunay": "*",
|
||||
"@types/d3-dispatch": "*",
|
||||
"@types/d3-drag": "*",
|
||||
"@types/d3-dsv": "*",
|
||||
"@types/d3-ease": "*",
|
||||
"@types/d3-fetch": "*",
|
||||
"@types/d3-force": "*",
|
||||
"@types/d3-format": "*",
|
||||
"@types/d3-geo": "*",
|
||||
"@types/d3-hierarchy": "*",
|
||||
"@types/d3-interpolate": "*",
|
||||
"@types/d3-path": "*",
|
||||
"@types/d3-polygon": "*",
|
||||
"@types/d3-quadtree": "*",
|
||||
"@types/d3-random": "*",
|
||||
"@types/d3-scale": "*",
|
||||
"@types/d3-scale-chromatic": "*",
|
||||
"@types/d3-selection": "*",
|
||||
"@types/d3-shape": "*",
|
||||
"@types/d3-time": "*",
|
||||
"@types/d3-time-format": "*",
|
||||
"@types/d3-timer": "*",
|
||||
"@types/d3-transition": "*",
|
||||
"@types/d3-zoom": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/d3-array": {
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.0.4.tgz",
|
||||
"integrity": "sha512-nwvEkG9vYOc0Ic7G7kwgviY4AQlTfYGIZ0fqB7CQHXGyYM6nO7kJh5EguSNA3jfh4rq7Sb7eMVq8isuvg2/miQ=="
|
||||
},
|
||||
"node_modules/@types/d3-axis": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-3.0.2.tgz",
|
||||
"integrity": "sha512-uGC7DBh0TZrU/LY43Fd8Qr+2ja1FKmH07q2FoZFHo1eYl8aj87GhfVoY1saJVJiq24rp1+wpI6BvQJMKgQm8oA==",
|
||||
"dependencies": {
|
||||
"@types/d3-selection": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/d3-brush": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-3.0.2.tgz",
|
||||
"integrity": "sha512-2TEm8KzUG3N7z0TrSKPmbxByBx54M+S9lHoP2J55QuLU0VSQ9mE96EJSAOVNEqd1bbynMjeTS9VHmz8/bSw8rA==",
|
||||
"dependencies": {
|
||||
"@types/d3-selection": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/d3-chord": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-3.0.2.tgz",
|
||||
"integrity": "sha512-abT/iLHD3sGZwqMTX1TYCMEulr+wBd0SzyOQnjYNLp7sngdOHYtNkMRI5v3w5thoN+BWtlHVDx2Osvq6fxhZWw=="
|
||||
},
|
||||
"node_modules/@types/d3-color": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.0.tgz",
|
||||
"integrity": "sha512-HKuicPHJuvPgCD+np6Se9MQvS6OCbJmOjGvylzMJRlDwUXjKTTXs6Pwgk79O09Vj/ho3u1ofXnhFOaEWWPrlwA=="
|
||||
},
|
||||
"node_modules/@types/d3-contour": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-3.0.2.tgz",
|
||||
"integrity": "sha512-k6/bGDoAGJZnZWaKzeB+9glgXCYGvh6YlluxzBREiVo8f/X2vpTEdgPy9DN7Z2i42PZOZ4JDhVdlTSTSkLDPlQ==",
|
||||
"dependencies": {
|
||||
"@types/d3-array": "*",
|
||||
"@types/geojson": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/d3-delaunay": {
|
||||
"version": "6.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-6.0.1.tgz",
|
||||
"integrity": "sha512-tLxQ2sfT0p6sxdG75c6f/ekqxjyYR0+LwPrsO1mbC9YDBzPJhs2HbJJRrn8Ez1DBoHRo2yx7YEATI+8V1nGMnQ=="
|
||||
},
|
||||
"node_modules/@types/d3-dispatch": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.2.tgz",
|
||||
"integrity": "sha512-rxN6sHUXEZYCKV05MEh4z4WpPSqIw+aP7n9ZN6WYAAvZoEAghEK1WeVZMZcHRBwyaKflU43PCUAJNjFxCzPDjg=="
|
||||
},
|
||||
"node_modules/@types/d3-drag": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.2.tgz",
|
||||
"integrity": "sha512-qmODKEDvyKWVHcWWCOVcuVcOwikLVsyc4q4EBJMREsoQnR2Qoc2cZQUyFUPgO9q4S3qdSqJKBsuefv+h0Qy+tw==",
|
||||
"dependencies": {
|
||||
"@types/d3-selection": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/d3-dsv": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.1.tgz",
|
||||
"integrity": "sha512-76pBHCMTvPLt44wFOieouXcGXWOF0AJCceUvaFkxSZEu4VDUdv93JfpMa6VGNFs01FHfuP4a5Ou68eRG1KBfTw=="
|
||||
},
|
||||
"node_modules/@types/d3-ease": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.0.tgz",
|
||||
"integrity": "sha512-aMo4eaAOijJjA6uU+GIeW018dvy9+oH5Y2VPPzjjfxevvGQ/oRDs+tfYC9b50Q4BygRR8yE2QCLsrT0WtAVseA=="
|
||||
},
|
||||
"node_modules/@types/d3-fetch": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.2.tgz",
|
||||
"integrity": "sha512-gllwYWozWfbep16N9fByNBDTkJW/SyhH6SGRlXloR7WdtAaBui4plTP+gbUgiEot7vGw/ZZop1yDZlgXXSuzjA==",
|
||||
"dependencies": {
|
||||
"@types/d3-dsv": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/d3-force": {
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.4.tgz",
|
||||
"integrity": "sha512-q7xbVLrWcXvSBBEoadowIUJ7sRpS1yvgMWnzHJggFy5cUZBq2HZL5k/pBSm0GdYWS1vs5/EDwMjSKF55PDY4Aw=="
|
||||
},
|
||||
"node_modules/@types/d3-format": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.1.tgz",
|
||||
"integrity": "sha512-5KY70ifCCzorkLuIkDe0Z9YTf9RR2CjBX1iaJG+rgM/cPP+sO+q9YdQ9WdhQcgPj1EQiJ2/0+yUkkziTG6Lubg=="
|
||||
},
|
||||
"node_modules/@types/d3-geo": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.0.3.tgz",
|
||||
"integrity": "sha512-bK9uZJS3vuDCNeeXQ4z3u0E7OeJZXjUgzFdSOtNtMCJCLvDtWDwfpRVWlyt3y8EvRzI0ccOu9xlMVirawolSCw==",
|
||||
"dependencies": {
|
||||
"@types/geojson": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/d3-hierarchy": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.1.tgz",
|
||||
"integrity": "sha512-QwjxA3+YCKH3N1Rs3uSiSy1bdxlLB1uUiENXeJudBoAFvtDuswUxLcanoOaR2JYn1melDTuIXR8VhnVyI3yG/A=="
|
||||
},
|
||||
"node_modules/@types/d3-interpolate": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.1.tgz",
|
||||
"integrity": "sha512-jx5leotSeac3jr0RePOH1KdR9rISG91QIE4Q2PYTu4OymLTZfA3SrnURSLzKH48HmXVUru50b8nje4E79oQSQw==",
|
||||
"dependencies": {
|
||||
"@types/d3-color": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/d3-path": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.0.0.tgz",
|
||||
"integrity": "sha512-0g/A+mZXgFkQxN3HniRDbXMN79K3CdTpLsevj+PXiTcb2hVyvkZUBg37StmgCQkaD84cUJ4uaDAWq7UJOQy2Tg=="
|
||||
},
|
||||
"node_modules/@types/d3-polygon": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-3.0.0.tgz",
|
||||
"integrity": "sha512-D49z4DyzTKXM0sGKVqiTDTYr+DHg/uxsiWDAkNrwXYuiZVd9o9wXZIo+YsHkifOiyBkmSWlEngHCQme54/hnHw=="
|
||||
},
|
||||
"node_modules/@types/d3-quadtree": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.2.tgz",
|
||||
"integrity": "sha512-QNcK8Jguvc8lU+4OfeNx+qnVy7c0VrDJ+CCVFS9srBo2GL9Y18CnIxBdTF3v38flrGy5s1YggcoAiu6s4fLQIw=="
|
||||
},
|
||||
"node_modules/@types/d3-random": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.1.tgz",
|
||||
"integrity": "sha512-IIE6YTekGczpLYo/HehAy3JGF1ty7+usI97LqraNa8IiDur+L44d0VOjAvFQWJVdZOJHukUJw+ZdZBlgeUsHOQ=="
|
||||
},
|
||||
"node_modules/@types/d3-scale": {
|
||||
"version": "4.0.3",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.3.tgz",
|
||||
"integrity": "sha512-PATBiMCpvHJSMtZAMEhc2WyL+hnzarKzI6wAHYjhsonjWJYGq5BXTzQjv4l8m2jO183/4wZ90rKvSeT7o72xNQ==",
|
||||
"dependencies": {
|
||||
"@types/d3-time": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/d3-scale-chromatic": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz",
|
||||
"integrity": "sha512-dsoJGEIShosKVRBZB0Vo3C8nqSDqVGujJU6tPznsBJxNJNwMF8utmS83nvCBKQYPpjCzaaHcrf66iTRpZosLPw=="
|
||||
},
|
||||
"node_modules/@types/d3-selection": {
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.4.tgz",
|
||||
"integrity": "sha512-ZeykX7286BCyMg9sH5fIAORyCB6hcATPSRQpN47jwBA2bMbAT0s+EvtDP5r1FZYJ95R8QoEE1CKJX+n0/M5Vhg=="
|
||||
},
|
||||
"node_modules/@types/d3-shape": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.1.tgz",
|
||||
"integrity": "sha512-6Uh86YFF7LGg4PQkuO2oG6EMBRLuW9cbavUW46zkIO5kuS2PfTqo2o9SkgtQzguBHbLgNnU90UNsITpsX1My+A==",
|
||||
"dependencies": {
|
||||
"@types/d3-path": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/d3-time": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.0.tgz",
|
||||
"integrity": "sha512-sZLCdHvBUcNby1cB6Fd3ZBrABbjz3v1Vm90nysCQ6Vt7vd6e/h9Lt7SiJUoEX0l4Dzc7P5llKyhqSi1ycSf1Hg=="
|
||||
},
|
||||
"node_modules/@types/d3-time-format": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-4.0.0.tgz",
|
||||
"integrity": "sha512-yjfBUe6DJBsDin2BMIulhSHmr5qNR5Pxs17+oW4DoVPyVIXZ+m6bs7j1UVKP08Emv6jRmYrYqxYzO63mQxy1rw=="
|
||||
},
|
||||
"node_modules/@types/d3-timer": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.0.tgz",
|
||||
"integrity": "sha512-HNB/9GHqu7Fo8AQiugyJbv6ZxYz58wef0esl4Mv828w1ZKpAshw/uFWVDUcIB9KKFeFKoxS3cHY07FFgtTRZ1g=="
|
||||
},
|
||||
"node_modules/@types/d3-transition": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.3.tgz",
|
||||
"integrity": "sha512-/S90Od8Id1wgQNvIA8iFv9jRhCiZcGhPd2qX0bKF/PS+y0W5CrXKgIiELd2CvG1mlQrWK/qlYh3VxicqG1ZvgA==",
|
||||
"dependencies": {
|
||||
"@types/d3-selection": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/d3-zoom": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.2.tgz",
|
||||
"integrity": "sha512-t09DDJVBI6AkM7N8kuPsnq/3d/ehtRKBN1xSiYjjMCgbiw6HM6Ged5VhvswmhprfKyGvzeTEL/4WBaK9llWvlA==",
|
||||
"dependencies": {
|
||||
"@types/d3-interpolate": "*",
|
||||
"@types/d3-selection": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/dagre": {
|
||||
"version": "0.7.48",
|
||||
"dev": true,
|
||||
|
@ -4482,6 +4704,11 @@
|
|||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@types/geojson": {
|
||||
"version": "7946.0.10",
|
||||
"resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.10.tgz",
|
||||
"integrity": "sha512-Nmh0K3iWQJzniTuPRcJn5hxXkfB1T1pgB89SBig5PlJQU5yocazeu4jATJlaA0GYFKWMqDdvYemoSnF2pXgLVA=="
|
||||
},
|
||||
"node_modules/@types/gunzip-maybe": {
|
||||
"version": "1.4.0",
|
||||
"license": "MIT",
|
||||
|
@ -4489,14 +4716,6 @@
|
|||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/hoist-non-react-statics": {
|
||||
"version": "3.3.1",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@types/react": "*",
|
||||
"hoist-non-react-statics": "^3.3.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/istanbul-lib-coverage": {
|
||||
"version": "2.0.4",
|
||||
"dev": true,
|
||||
|
@ -4611,15 +4830,10 @@
|
|||
"@types/react": "^17"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/react-redux": {
|
||||
"version": "7.1.24",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@types/hoist-non-react-statics": "^3.3.0",
|
||||
"@types/react": "*",
|
||||
"hoist-non-react-statics": "^3.3.0",
|
||||
"redux": "^4.0.0"
|
||||
}
|
||||
"node_modules/@types/resize-observer-browser": {
|
||||
"version": "0.1.7",
|
||||
"resolved": "https://registry.npmjs.org/@types/resize-observer-browser/-/resize-observer-browser-0.1.7.tgz",
|
||||
"integrity": "sha512-G9eN0Sn0ii9PWQ3Vl72jDPgeJwRWhv2Qk/nQkJuWmRmOB4HX3/BhD5SE1dZs/hzPZL/WKnvF0RHdTSG54QJFyg=="
|
||||
},
|
||||
"node_modules/@types/resolve": {
|
||||
"version": "1.20.2",
|
||||
|
@ -6445,13 +6659,6 @@
|
|||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/clsx": {
|
||||
"version": "1.2.1",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/code-block-writer": {
|
||||
"version": "11.0.3",
|
||||
"resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-11.0.3.tgz",
|
||||
|
@ -9045,6 +9252,7 @@
|
|||
},
|
||||
"node_modules/fast-deep-equal": {
|
||||
"version": "3.1.3",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/fast-diff": {
|
||||
|
@ -9792,13 +10000,6 @@
|
|||
"minimalistic-crypto-utils": "^1.0.1"
|
||||
}
|
||||
},
|
||||
"node_modules/hoist-non-react-statics": {
|
||||
"version": "3.3.2",
|
||||
"license": "BSD-3-Clause",
|
||||
"dependencies": {
|
||||
"react-is": "^16.7.0"
|
||||
}
|
||||
},
|
||||
"node_modules/html-encoding-sniffer": {
|
||||
"version": "3.0.0",
|
||||
"dev": true,
|
||||
|
@ -12747,18 +12948,6 @@
|
|||
"react": "17.0.2"
|
||||
}
|
||||
},
|
||||
"node_modules/react-draggable": {
|
||||
"version": "4.4.5",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"clsx": "^1.1.1",
|
||||
"prop-types": "^15.8.1"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": ">= 16.3.0",
|
||||
"react-dom": ">= 16.3.0"
|
||||
}
|
||||
},
|
||||
"node_modules/react-dropzone": {
|
||||
"version": "14.2.3",
|
||||
"license": "MIT",
|
||||
|
@ -12789,24 +12978,26 @@
|
|||
}
|
||||
},
|
||||
"node_modules/react-flow-renderer": {
|
||||
"version": "9.7.4",
|
||||
"license": "MIT",
|
||||
"version": "10.3.17",
|
||||
"resolved": "https://registry.npmjs.org/react-flow-renderer/-/react-flow-renderer-10.3.17.tgz",
|
||||
"integrity": "sha512-bywiqVErlh5kCDqw3x0an5Ur3mT9j9CwJsDwmhmz4i1IgYM1a0SPqqEhClvjX+s5pU4nHjmVaGXWK96pwsiGcQ==",
|
||||
"deprecated": "react-flow-renderer has been renamed to reactflow, please use this package from now on https://reactflow.dev/docs/guides/migrate-to-v11/",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.16.7",
|
||||
"@babel/runtime": "^7.18.9",
|
||||
"@types/d3": "^7.4.0",
|
||||
"@types/resize-observer-browser": "^0.1.7",
|
||||
"classcat": "^5.0.3",
|
||||
"d3-drag": "^3.0.0",
|
||||
"d3-selection": "^3.0.0",
|
||||
"d3-zoom": "^3.0.0",
|
||||
"fast-deep-equal": "^3.1.3",
|
||||
"react-draggable": "^4.4.4",
|
||||
"react-redux": "^7.2.6",
|
||||
"redux": "^4.1.2"
|
||||
"zustand": "^3.7.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
"node": ">=14"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "16 || 17",
|
||||
"react-dom": "16 || 17"
|
||||
"react": "16 || 17 || 18",
|
||||
"react-dom": "16 || 17 || 18"
|
||||
}
|
||||
},
|
||||
"node_modules/react-hook-form": {
|
||||
|
@ -12849,33 +13040,6 @@
|
|||
"react": "^17.x"
|
||||
}
|
||||
},
|
||||
"node_modules/react-redux": {
|
||||
"version": "7.2.8",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.15.4",
|
||||
"@types/react-redux": "^7.1.20",
|
||||
"hoist-non-react-statics": "^3.3.2",
|
||||
"loose-envify": "^1.4.0",
|
||||
"prop-types": "^15.7.2",
|
||||
"react-is": "^17.0.2"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "^16.8.3 || ^17 || ^18"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"react-dom": {
|
||||
"optional": true
|
||||
},
|
||||
"react-native": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/react-redux/node_modules/react-is": {
|
||||
"version": "17.0.2",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/react-refresh": {
|
||||
"version": "0.14.0",
|
||||
"dev": true,
|
||||
|
@ -12961,13 +13125,6 @@
|
|||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/redux": {
|
||||
"version": "4.2.0",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.9.2"
|
||||
}
|
||||
},
|
||||
"node_modules/regenerate": {
|
||||
"version": "1.4.2",
|
||||
"dev": true,
|
||||
|
@ -16162,6 +16319,22 @@
|
|||
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"node_modules/zustand": {
|
||||
"version": "3.7.2",
|
||||
"resolved": "https://registry.npmjs.org/zustand/-/zustand-3.7.2.tgz",
|
||||
"integrity": "sha512-PIJDIZKtokhof+9+60cpockVOq05sJzHCriyvaLBmEJixseQ1a5Kdov6fWZfWOu5SK9c+FhH1jU0tntLxRJYMA==",
|
||||
"engines": {
|
||||
"node": ">=12.7.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": ">=16.8"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"react": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
|
@ -18768,6 +18941,228 @@
|
|||
"@types/chai": "*"
|
||||
}
|
||||
},
|
||||
"@types/d3": {
|
||||
"version": "7.4.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3/-/d3-7.4.0.tgz",
|
||||
"integrity": "sha512-jIfNVK0ZlxcuRDKtRS/SypEyOQ6UHaFQBKv032X45VvxSJ6Yi5G9behy9h6tNTHTDGh5Vq+KbmBjUWLgY4meCA==",
|
||||
"requires": {
|
||||
"@types/d3-array": "*",
|
||||
"@types/d3-axis": "*",
|
||||
"@types/d3-brush": "*",
|
||||
"@types/d3-chord": "*",
|
||||
"@types/d3-color": "*",
|
||||
"@types/d3-contour": "*",
|
||||
"@types/d3-delaunay": "*",
|
||||
"@types/d3-dispatch": "*",
|
||||
"@types/d3-drag": "*",
|
||||
"@types/d3-dsv": "*",
|
||||
"@types/d3-ease": "*",
|
||||
"@types/d3-fetch": "*",
|
||||
"@types/d3-force": "*",
|
||||
"@types/d3-format": "*",
|
||||
"@types/d3-geo": "*",
|
||||
"@types/d3-hierarchy": "*",
|
||||
"@types/d3-interpolate": "*",
|
||||
"@types/d3-path": "*",
|
||||
"@types/d3-polygon": "*",
|
||||
"@types/d3-quadtree": "*",
|
||||
"@types/d3-random": "*",
|
||||
"@types/d3-scale": "*",
|
||||
"@types/d3-scale-chromatic": "*",
|
||||
"@types/d3-selection": "*",
|
||||
"@types/d3-shape": "*",
|
||||
"@types/d3-time": "*",
|
||||
"@types/d3-time-format": "*",
|
||||
"@types/d3-timer": "*",
|
||||
"@types/d3-transition": "*",
|
||||
"@types/d3-zoom": "*"
|
||||
}
|
||||
},
|
||||
"@types/d3-array": {
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.0.4.tgz",
|
||||
"integrity": "sha512-nwvEkG9vYOc0Ic7G7kwgviY4AQlTfYGIZ0fqB7CQHXGyYM6nO7kJh5EguSNA3jfh4rq7Sb7eMVq8isuvg2/miQ=="
|
||||
},
|
||||
"@types/d3-axis": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-3.0.2.tgz",
|
||||
"integrity": "sha512-uGC7DBh0TZrU/LY43Fd8Qr+2ja1FKmH07q2FoZFHo1eYl8aj87GhfVoY1saJVJiq24rp1+wpI6BvQJMKgQm8oA==",
|
||||
"requires": {
|
||||
"@types/d3-selection": "*"
|
||||
}
|
||||
},
|
||||
"@types/d3-brush": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-3.0.2.tgz",
|
||||
"integrity": "sha512-2TEm8KzUG3N7z0TrSKPmbxByBx54M+S9lHoP2J55QuLU0VSQ9mE96EJSAOVNEqd1bbynMjeTS9VHmz8/bSw8rA==",
|
||||
"requires": {
|
||||
"@types/d3-selection": "*"
|
||||
}
|
||||
},
|
||||
"@types/d3-chord": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-3.0.2.tgz",
|
||||
"integrity": "sha512-abT/iLHD3sGZwqMTX1TYCMEulr+wBd0SzyOQnjYNLp7sngdOHYtNkMRI5v3w5thoN+BWtlHVDx2Osvq6fxhZWw=="
|
||||
},
|
||||
"@types/d3-color": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.0.tgz",
|
||||
"integrity": "sha512-HKuicPHJuvPgCD+np6Se9MQvS6OCbJmOjGvylzMJRlDwUXjKTTXs6Pwgk79O09Vj/ho3u1ofXnhFOaEWWPrlwA=="
|
||||
},
|
||||
"@types/d3-contour": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-3.0.2.tgz",
|
||||
"integrity": "sha512-k6/bGDoAGJZnZWaKzeB+9glgXCYGvh6YlluxzBREiVo8f/X2vpTEdgPy9DN7Z2i42PZOZ4JDhVdlTSTSkLDPlQ==",
|
||||
"requires": {
|
||||
"@types/d3-array": "*",
|
||||
"@types/geojson": "*"
|
||||
}
|
||||
},
|
||||
"@types/d3-delaunay": {
|
||||
"version": "6.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-6.0.1.tgz",
|
||||
"integrity": "sha512-tLxQ2sfT0p6sxdG75c6f/ekqxjyYR0+LwPrsO1mbC9YDBzPJhs2HbJJRrn8Ez1DBoHRo2yx7YEATI+8V1nGMnQ=="
|
||||
},
|
||||
"@types/d3-dispatch": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.2.tgz",
|
||||
"integrity": "sha512-rxN6sHUXEZYCKV05MEh4z4WpPSqIw+aP7n9ZN6WYAAvZoEAghEK1WeVZMZcHRBwyaKflU43PCUAJNjFxCzPDjg=="
|
||||
},
|
||||
"@types/d3-drag": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.2.tgz",
|
||||
"integrity": "sha512-qmODKEDvyKWVHcWWCOVcuVcOwikLVsyc4q4EBJMREsoQnR2Qoc2cZQUyFUPgO9q4S3qdSqJKBsuefv+h0Qy+tw==",
|
||||
"requires": {
|
||||
"@types/d3-selection": "*"
|
||||
}
|
||||
},
|
||||
"@types/d3-dsv": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.1.tgz",
|
||||
"integrity": "sha512-76pBHCMTvPLt44wFOieouXcGXWOF0AJCceUvaFkxSZEu4VDUdv93JfpMa6VGNFs01FHfuP4a5Ou68eRG1KBfTw=="
|
||||
},
|
||||
"@types/d3-ease": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.0.tgz",
|
||||
"integrity": "sha512-aMo4eaAOijJjA6uU+GIeW018dvy9+oH5Y2VPPzjjfxevvGQ/oRDs+tfYC9b50Q4BygRR8yE2QCLsrT0WtAVseA=="
|
||||
},
|
||||
"@types/d3-fetch": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.2.tgz",
|
||||
"integrity": "sha512-gllwYWozWfbep16N9fByNBDTkJW/SyhH6SGRlXloR7WdtAaBui4plTP+gbUgiEot7vGw/ZZop1yDZlgXXSuzjA==",
|
||||
"requires": {
|
||||
"@types/d3-dsv": "*"
|
||||
}
|
||||
},
|
||||
"@types/d3-force": {
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.4.tgz",
|
||||
"integrity": "sha512-q7xbVLrWcXvSBBEoadowIUJ7sRpS1yvgMWnzHJggFy5cUZBq2HZL5k/pBSm0GdYWS1vs5/EDwMjSKF55PDY4Aw=="
|
||||
},
|
||||
"@types/d3-format": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.1.tgz",
|
||||
"integrity": "sha512-5KY70ifCCzorkLuIkDe0Z9YTf9RR2CjBX1iaJG+rgM/cPP+sO+q9YdQ9WdhQcgPj1EQiJ2/0+yUkkziTG6Lubg=="
|
||||
},
|
||||
"@types/d3-geo": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.0.3.tgz",
|
||||
"integrity": "sha512-bK9uZJS3vuDCNeeXQ4z3u0E7OeJZXjUgzFdSOtNtMCJCLvDtWDwfpRVWlyt3y8EvRzI0ccOu9xlMVirawolSCw==",
|
||||
"requires": {
|
||||
"@types/geojson": "*"
|
||||
}
|
||||
},
|
||||
"@types/d3-hierarchy": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.1.tgz",
|
||||
"integrity": "sha512-QwjxA3+YCKH3N1Rs3uSiSy1bdxlLB1uUiENXeJudBoAFvtDuswUxLcanoOaR2JYn1melDTuIXR8VhnVyI3yG/A=="
|
||||
},
|
||||
"@types/d3-interpolate": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.1.tgz",
|
||||
"integrity": "sha512-jx5leotSeac3jr0RePOH1KdR9rISG91QIE4Q2PYTu4OymLTZfA3SrnURSLzKH48HmXVUru50b8nje4E79oQSQw==",
|
||||
"requires": {
|
||||
"@types/d3-color": "*"
|
||||
}
|
||||
},
|
||||
"@types/d3-path": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.0.0.tgz",
|
||||
"integrity": "sha512-0g/A+mZXgFkQxN3HniRDbXMN79K3CdTpLsevj+PXiTcb2hVyvkZUBg37StmgCQkaD84cUJ4uaDAWq7UJOQy2Tg=="
|
||||
},
|
||||
"@types/d3-polygon": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-3.0.0.tgz",
|
||||
"integrity": "sha512-D49z4DyzTKXM0sGKVqiTDTYr+DHg/uxsiWDAkNrwXYuiZVd9o9wXZIo+YsHkifOiyBkmSWlEngHCQme54/hnHw=="
|
||||
},
|
||||
"@types/d3-quadtree": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.2.tgz",
|
||||
"integrity": "sha512-QNcK8Jguvc8lU+4OfeNx+qnVy7c0VrDJ+CCVFS9srBo2GL9Y18CnIxBdTF3v38flrGy5s1YggcoAiu6s4fLQIw=="
|
||||
},
|
||||
"@types/d3-random": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.1.tgz",
|
||||
"integrity": "sha512-IIE6YTekGczpLYo/HehAy3JGF1ty7+usI97LqraNa8IiDur+L44d0VOjAvFQWJVdZOJHukUJw+ZdZBlgeUsHOQ=="
|
||||
},
|
||||
"@types/d3-scale": {
|
||||
"version": "4.0.3",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.3.tgz",
|
||||
"integrity": "sha512-PATBiMCpvHJSMtZAMEhc2WyL+hnzarKzI6wAHYjhsonjWJYGq5BXTzQjv4l8m2jO183/4wZ90rKvSeT7o72xNQ==",
|
||||
"requires": {
|
||||
"@types/d3-time": "*"
|
||||
}
|
||||
},
|
||||
"@types/d3-scale-chromatic": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz",
|
||||
"integrity": "sha512-dsoJGEIShosKVRBZB0Vo3C8nqSDqVGujJU6tPznsBJxNJNwMF8utmS83nvCBKQYPpjCzaaHcrf66iTRpZosLPw=="
|
||||
},
|
||||
"@types/d3-selection": {
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.4.tgz",
|
||||
"integrity": "sha512-ZeykX7286BCyMg9sH5fIAORyCB6hcATPSRQpN47jwBA2bMbAT0s+EvtDP5r1FZYJ95R8QoEE1CKJX+n0/M5Vhg=="
|
||||
},
|
||||
"@types/d3-shape": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.1.tgz",
|
||||
"integrity": "sha512-6Uh86YFF7LGg4PQkuO2oG6EMBRLuW9cbavUW46zkIO5kuS2PfTqo2o9SkgtQzguBHbLgNnU90UNsITpsX1My+A==",
|
||||
"requires": {
|
||||
"@types/d3-path": "*"
|
||||
}
|
||||
},
|
||||
"@types/d3-time": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.0.tgz",
|
||||
"integrity": "sha512-sZLCdHvBUcNby1cB6Fd3ZBrABbjz3v1Vm90nysCQ6Vt7vd6e/h9Lt7SiJUoEX0l4Dzc7P5llKyhqSi1ycSf1Hg=="
|
||||
},
|
||||
"@types/d3-time-format": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-4.0.0.tgz",
|
||||
"integrity": "sha512-yjfBUe6DJBsDin2BMIulhSHmr5qNR5Pxs17+oW4DoVPyVIXZ+m6bs7j1UVKP08Emv6jRmYrYqxYzO63mQxy1rw=="
|
||||
},
|
||||
"@types/d3-timer": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.0.tgz",
|
||||
"integrity": "sha512-HNB/9GHqu7Fo8AQiugyJbv6ZxYz58wef0esl4Mv828w1ZKpAshw/uFWVDUcIB9KKFeFKoxS3cHY07FFgtTRZ1g=="
|
||||
},
|
||||
"@types/d3-transition": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.3.tgz",
|
||||
"integrity": "sha512-/S90Od8Id1wgQNvIA8iFv9jRhCiZcGhPd2qX0bKF/PS+y0W5CrXKgIiELd2CvG1mlQrWK/qlYh3VxicqG1ZvgA==",
|
||||
"requires": {
|
||||
"@types/d3-selection": "*"
|
||||
}
|
||||
},
|
||||
"@types/d3-zoom": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.2.tgz",
|
||||
"integrity": "sha512-t09DDJVBI6AkM7N8kuPsnq/3d/ehtRKBN1xSiYjjMCgbiw6HM6Ged5VhvswmhprfKyGvzeTEL/4WBaK9llWvlA==",
|
||||
"requires": {
|
||||
"@types/d3-interpolate": "*",
|
||||
"@types/d3-selection": "*"
|
||||
}
|
||||
},
|
||||
"@types/dagre": {
|
||||
"version": "0.7.48",
|
||||
"dev": true
|
||||
|
@ -18800,19 +19195,17 @@
|
|||
"version": "5.0.2",
|
||||
"dev": true
|
||||
},
|
||||
"@types/geojson": {
|
||||
"version": "7946.0.10",
|
||||
"resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.10.tgz",
|
||||
"integrity": "sha512-Nmh0K3iWQJzniTuPRcJn5hxXkfB1T1pgB89SBig5PlJQU5yocazeu4jATJlaA0GYFKWMqDdvYemoSnF2pXgLVA=="
|
||||
},
|
||||
"@types/gunzip-maybe": {
|
||||
"version": "1.4.0",
|
||||
"requires": {
|
||||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"@types/hoist-non-react-statics": {
|
||||
"version": "3.3.1",
|
||||
"requires": {
|
||||
"@types/react": "*",
|
||||
"hoist-non-react-statics": "^3.3.0"
|
||||
}
|
||||
},
|
||||
"@types/istanbul-lib-coverage": {
|
||||
"version": "2.0.4",
|
||||
"dev": true
|
||||
|
@ -18906,14 +19299,10 @@
|
|||
"@types/react": "^17"
|
||||
}
|
||||
},
|
||||
"@types/react-redux": {
|
||||
"version": "7.1.24",
|
||||
"requires": {
|
||||
"@types/hoist-non-react-statics": "^3.3.0",
|
||||
"@types/react": "*",
|
||||
"hoist-non-react-statics": "^3.3.0",
|
||||
"redux": "^4.0.0"
|
||||
}
|
||||
"@types/resize-observer-browser": {
|
||||
"version": "0.1.7",
|
||||
"resolved": "https://registry.npmjs.org/@types/resize-observer-browser/-/resize-observer-browser-0.1.7.tgz",
|
||||
"integrity": "sha512-G9eN0Sn0ii9PWQ3Vl72jDPgeJwRWhv2Qk/nQkJuWmRmOB4HX3/BhD5SE1dZs/hzPZL/WKnvF0RHdTSG54QJFyg=="
|
||||
},
|
||||
"@types/resolve": {
|
||||
"version": "1.20.2",
|
||||
|
@ -19435,7 +19824,7 @@
|
|||
"react-dom": "^17.0.2",
|
||||
"react-dropzone": "^14.2.3",
|
||||
"react-error-boundary": "^3.1.4",
|
||||
"react-flow-renderer": "^9.7.4",
|
||||
"react-flow-renderer": "^10.3.17",
|
||||
"react-hook-form": "^6.15.8",
|
||||
"react-hook-form-v7": "npm:react-hook-form@^7.35.1",
|
||||
"react-i18next": "^12.0.0",
|
||||
|
@ -20518,9 +20907,6 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"clsx": {
|
||||
"version": "1.2.1"
|
||||
},
|
||||
"code-block-writer": {
|
||||
"version": "11.0.3",
|
||||
"resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-11.0.3.tgz",
|
||||
|
@ -22216,7 +22602,8 @@
|
|||
"dev": true
|
||||
},
|
||||
"fast-deep-equal": {
|
||||
"version": "3.1.3"
|
||||
"version": "3.1.3",
|
||||
"dev": true
|
||||
},
|
||||
"fast-diff": {
|
||||
"version": "1.2.0",
|
||||
|
@ -22714,12 +23101,6 @@
|
|||
"minimalistic-crypto-utils": "^1.0.1"
|
||||
}
|
||||
},
|
||||
"hoist-non-react-statics": {
|
||||
"version": "3.3.2",
|
||||
"requires": {
|
||||
"react-is": "^16.7.0"
|
||||
}
|
||||
},
|
||||
"html-encoding-sniffer": {
|
||||
"version": "3.0.0",
|
||||
"dev": true,
|
||||
|
@ -24717,13 +25098,6 @@
|
|||
"scheduler": "^0.20.2"
|
||||
}
|
||||
},
|
||||
"react-draggable": {
|
||||
"version": "4.4.5",
|
||||
"requires": {
|
||||
"clsx": "^1.1.1",
|
||||
"prop-types": "^15.8.1"
|
||||
}
|
||||
},
|
||||
"react-dropzone": {
|
||||
"version": "14.2.3",
|
||||
"requires": {
|
||||
|
@ -24739,16 +25113,18 @@
|
|||
}
|
||||
},
|
||||
"react-flow-renderer": {
|
||||
"version": "9.7.4",
|
||||
"version": "10.3.17",
|
||||
"resolved": "https://registry.npmjs.org/react-flow-renderer/-/react-flow-renderer-10.3.17.tgz",
|
||||
"integrity": "sha512-bywiqVErlh5kCDqw3x0an5Ur3mT9j9CwJsDwmhmz4i1IgYM1a0SPqqEhClvjX+s5pU4nHjmVaGXWK96pwsiGcQ==",
|
||||
"requires": {
|
||||
"@babel/runtime": "^7.16.7",
|
||||
"@babel/runtime": "^7.18.9",
|
||||
"@types/d3": "^7.4.0",
|
||||
"@types/resize-observer-browser": "^0.1.7",
|
||||
"classcat": "^5.0.3",
|
||||
"d3-drag": "^3.0.0",
|
||||
"d3-selection": "^3.0.0",
|
||||
"d3-zoom": "^3.0.0",
|
||||
"fast-deep-equal": "^3.1.3",
|
||||
"react-draggable": "^4.4.4",
|
||||
"react-redux": "^7.2.6",
|
||||
"redux": "^4.1.2"
|
||||
"zustand": "^3.7.2"
|
||||
}
|
||||
},
|
||||
"react-hook-form": {
|
||||
|
@ -24772,22 +25148,6 @@
|
|||
"prop-types": "^15.7.2"
|
||||
}
|
||||
},
|
||||
"react-redux": {
|
||||
"version": "7.2.8",
|
||||
"requires": {
|
||||
"@babel/runtime": "^7.15.4",
|
||||
"@types/react-redux": "^7.1.20",
|
||||
"hoist-non-react-statics": "^3.3.2",
|
||||
"loose-envify": "^1.4.0",
|
||||
"prop-types": "^15.7.2",
|
||||
"react-is": "^17.0.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"react-is": {
|
||||
"version": "17.0.2"
|
||||
}
|
||||
}
|
||||
},
|
||||
"react-refresh": {
|
||||
"version": "0.14.0",
|
||||
"dev": true
|
||||
|
@ -24845,12 +25205,6 @@
|
|||
"strip-indent": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"redux": {
|
||||
"version": "4.2.0",
|
||||
"requires": {
|
||||
"@babel/runtime": "^7.9.2"
|
||||
}
|
||||
},
|
||||
"regenerate": {
|
||||
"version": "1.4.2",
|
||||
"dev": true
|
||||
|
@ -26977,6 +27331,12 @@
|
|||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"zustand": {
|
||||
"version": "3.7.2",
|
||||
"resolved": "https://registry.npmjs.org/zustand/-/zustand-3.7.2.tgz",
|
||||
"integrity": "sha512-PIJDIZKtokhof+9+60cpockVOq05sJzHCriyvaLBmEJixseQ1a5Kdov6fWZfWOu5SK9c+FhH1jU0tntLxRJYMA==",
|
||||
"requires": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue