@procaaso/alphinity-ui-components 1.0.5 → 1.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +115 -66
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +22 -3
- package/dist/index.d.ts +22 -3
- package/dist/index.js +113 -66
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -1106,11 +1106,30 @@ declare const exampleDiagram: Diagram;
|
|
|
1106
1106
|
*/
|
|
1107
1107
|
declare const mockSymbolLibrary: Record<string, SymbolDefinition>;
|
|
1108
1108
|
/**
|
|
1109
|
-
*
|
|
1109
|
+
* Register a custom symbol definition
|
|
1110
|
+
* @param symbol - The symbol definition to register
|
|
1111
|
+
* @example
|
|
1112
|
+
* registerSymbol({
|
|
1113
|
+
* id: 'my-custom-valve',
|
|
1114
|
+
* name: 'My Custom Valve',
|
|
1115
|
+
* category: 'valve',
|
|
1116
|
+
* viewBox: { x: 0, y: 0, width: 100, height: 100 },
|
|
1117
|
+
* ports: [...],
|
|
1118
|
+
* svgContent: '...',
|
|
1119
|
+
* });
|
|
1120
|
+
*/
|
|
1121
|
+
declare function registerSymbol(symbol: SymbolDefinition): void;
|
|
1122
|
+
/**
|
|
1123
|
+
* Register multiple custom symbols at once
|
|
1124
|
+
* @param symbols - Array of symbol definitions or a record of symbols
|
|
1125
|
+
*/
|
|
1126
|
+
declare function registerSymbols(symbols: SymbolDefinition[] | Record<string, SymbolDefinition>): void;
|
|
1127
|
+
/**
|
|
1128
|
+
* Get symbol definition by ID (checks both mock library and custom symbols)
|
|
1110
1129
|
*/
|
|
1111
1130
|
declare function getSymbolDefinition(symbolId: string): SymbolDefinition | undefined;
|
|
1112
1131
|
/**
|
|
1113
|
-
* Get all available symbol IDs
|
|
1132
|
+
* Get all available symbol IDs (includes both mock library and custom symbols)
|
|
1114
1133
|
*/
|
|
1115
1134
|
declare function getAvailableSymbols(): string[];
|
|
1116
1135
|
|
|
@@ -1177,4 +1196,4 @@ interface SimulationOptions {
|
|
|
1177
1196
|
*/
|
|
1178
1197
|
declare function useSimulation(telemetry: TelemetryMap, updateTelemetryBatch: (updates: Array<any>) => void, options?: SimulationOptions): void;
|
|
1179
1198
|
|
|
1180
|
-
export { type AnchorType, Button, type ButtonProps, CardHeader, CardUnit, CardValue, CircularGauge, type CircularGaugeProps, ControlPanel, type ControlPanelProps, DEFAULT_THRESHOLDS, DashboardCard, type DataBinding, type Diagram, type DiagramMetadata, type DisplayMode, DisplayModeToggle, type DragPoint, type DragState, EquipmentIndicator, type EquipmentIndicatorProps, EquipmentIndicatorWithSparkline, type EquipmentIndicatorWithSparklineProps, FixedSVGContainer, FooterPanel, FullscreenContainer, FullscreenWorkspace, type FullscreenWorkspaceProps, type FullscreenWorkspaceTab, type KeyboardShortcutsOptions, LeftPanel, LeftToggleButton, LegacyValueEntry, type LegacyValueEntryProps, type ModeConfig, NodeConfigPanel, type NodeConfigPanelProps, type NodeInstance, type Overlay, type OverlayContent, type OverlayTheme, type OverlayType, PIDCanvas, type PIDCanvasControls, type PIDCanvasFeatures, type PIDCanvasProps, PanelContent, PanelTabs, type PipeEdge, type PipeStyle, type Point, type PortDefinition, type PortInstance, type PortType, RightPanel, RightToggleButton, SVGArea, SVGLockedOverlay, type SVGLockedOverlayProps, ScrollableSVGWrapper, type SelectionState, Selector, type SelectorOption, type SelectorProps, type SimulationOptions, Sparkline, type SparklineProps, StatusIndicator, type StatusIndicatorProps, type SymbolCategory, type SymbolDefinition, SymbolLibrary, type SymbolLibraryProps, type SymbolMetadata, type TelemetryBinding, type TelemetryMap, type TelemetryStatus$1 as TelemetryStatus, type TelemetryValue, ThemeProvider, ThemeToggle, type ThemeToggleProps, type Thresholds, type Transform, TrendLine, type TrendLineProps, type UseDragOptions, type UseDragResult, type UseSelectionOptions, type UseSelectionResult, type UseTelemetryOptions, type UseTelemetryResult, type UseTelemetryStatusOptions, type UseViewBoxOptions, type UseViewBoxResult, ValueEntry, type ValueEntryProps, type ViewBox, ZoomButton, ZoomControls, calculateThresholdStatus, exampleDiagram, exportDiagram, generateRoutePoints, getAvailableSymbols, getPortWorldPosition, getSymbolDefinition, importDiagram, mockSymbolLibrary, nodeHasPort, overlayStyles, useDrag, useKeyboardShortcuts, useSelection, useSimulation, useTelemetry, useTelemetryStatus, useTheme, useViewBox, validateDiagram };
|
|
1199
|
+
export { type AnchorType, Button, type ButtonProps, CardHeader, CardUnit, CardValue, CircularGauge, type CircularGaugeProps, ControlPanel, type ControlPanelProps, DEFAULT_THRESHOLDS, DashboardCard, type DataBinding, type Diagram, type DiagramMetadata, type DisplayMode, DisplayModeToggle, type DragPoint, type DragState, EquipmentIndicator, type EquipmentIndicatorProps, EquipmentIndicatorWithSparkline, type EquipmentIndicatorWithSparklineProps, FixedSVGContainer, FooterPanel, FullscreenContainer, FullscreenWorkspace, type FullscreenWorkspaceProps, type FullscreenWorkspaceTab, type KeyboardShortcutsOptions, LeftPanel, LeftToggleButton, LegacyValueEntry, type LegacyValueEntryProps, type ModeConfig, NodeConfigPanel, type NodeConfigPanelProps, type NodeInstance, type Overlay, type OverlayContent, type OverlayTheme, type OverlayType, PIDCanvas, type PIDCanvasControls, type PIDCanvasFeatures, type PIDCanvasProps, PanelContent, PanelTabs, type PipeEdge, type PipeStyle, type Point, type PortDefinition, type PortInstance, type PortType, RightPanel, RightToggleButton, SVGArea, SVGLockedOverlay, type SVGLockedOverlayProps, ScrollableSVGWrapper, type SelectionState, Selector, type SelectorOption, type SelectorProps, type SimulationOptions, Sparkline, type SparklineProps, StatusIndicator, type StatusIndicatorProps, type SymbolCategory, type SymbolDefinition, SymbolLibrary, type SymbolLibraryProps, type SymbolMetadata, type TelemetryBinding, type TelemetryMap, type TelemetryStatus$1 as TelemetryStatus, type TelemetryValue, ThemeProvider, ThemeToggle, type ThemeToggleProps, type Thresholds, type Transform, TrendLine, type TrendLineProps, type UseDragOptions, type UseDragResult, type UseSelectionOptions, type UseSelectionResult, type UseTelemetryOptions, type UseTelemetryResult, type UseTelemetryStatusOptions, type UseViewBoxOptions, type UseViewBoxResult, ValueEntry, type ValueEntryProps, type ViewBox, ZoomButton, ZoomControls, calculateThresholdStatus, exampleDiagram, exportDiagram, generateRoutePoints, getAvailableSymbols, getPortWorldPosition, getSymbolDefinition, importDiagram, mockSymbolLibrary, nodeHasPort, overlayStyles, registerSymbol, registerSymbols, useDrag, useKeyboardShortcuts, useSelection, useSimulation, useTelemetry, useTelemetryStatus, useTheme, useViewBox, validateDiagram };
|
package/dist/index.d.ts
CHANGED
|
@@ -1106,11 +1106,30 @@ declare const exampleDiagram: Diagram;
|
|
|
1106
1106
|
*/
|
|
1107
1107
|
declare const mockSymbolLibrary: Record<string, SymbolDefinition>;
|
|
1108
1108
|
/**
|
|
1109
|
-
*
|
|
1109
|
+
* Register a custom symbol definition
|
|
1110
|
+
* @param symbol - The symbol definition to register
|
|
1111
|
+
* @example
|
|
1112
|
+
* registerSymbol({
|
|
1113
|
+
* id: 'my-custom-valve',
|
|
1114
|
+
* name: 'My Custom Valve',
|
|
1115
|
+
* category: 'valve',
|
|
1116
|
+
* viewBox: { x: 0, y: 0, width: 100, height: 100 },
|
|
1117
|
+
* ports: [...],
|
|
1118
|
+
* svgContent: '...',
|
|
1119
|
+
* });
|
|
1120
|
+
*/
|
|
1121
|
+
declare function registerSymbol(symbol: SymbolDefinition): void;
|
|
1122
|
+
/**
|
|
1123
|
+
* Register multiple custom symbols at once
|
|
1124
|
+
* @param symbols - Array of symbol definitions or a record of symbols
|
|
1125
|
+
*/
|
|
1126
|
+
declare function registerSymbols(symbols: SymbolDefinition[] | Record<string, SymbolDefinition>): void;
|
|
1127
|
+
/**
|
|
1128
|
+
* Get symbol definition by ID (checks both mock library and custom symbols)
|
|
1110
1129
|
*/
|
|
1111
1130
|
declare function getSymbolDefinition(symbolId: string): SymbolDefinition | undefined;
|
|
1112
1131
|
/**
|
|
1113
|
-
* Get all available symbol IDs
|
|
1132
|
+
* Get all available symbol IDs (includes both mock library and custom symbols)
|
|
1114
1133
|
*/
|
|
1115
1134
|
declare function getAvailableSymbols(): string[];
|
|
1116
1135
|
|
|
@@ -1177,4 +1196,4 @@ interface SimulationOptions {
|
|
|
1177
1196
|
*/
|
|
1178
1197
|
declare function useSimulation(telemetry: TelemetryMap, updateTelemetryBatch: (updates: Array<any>) => void, options?: SimulationOptions): void;
|
|
1179
1198
|
|
|
1180
|
-
export { type AnchorType, Button, type ButtonProps, CardHeader, CardUnit, CardValue, CircularGauge, type CircularGaugeProps, ControlPanel, type ControlPanelProps, DEFAULT_THRESHOLDS, DashboardCard, type DataBinding, type Diagram, type DiagramMetadata, type DisplayMode, DisplayModeToggle, type DragPoint, type DragState, EquipmentIndicator, type EquipmentIndicatorProps, EquipmentIndicatorWithSparkline, type EquipmentIndicatorWithSparklineProps, FixedSVGContainer, FooterPanel, FullscreenContainer, FullscreenWorkspace, type FullscreenWorkspaceProps, type FullscreenWorkspaceTab, type KeyboardShortcutsOptions, LeftPanel, LeftToggleButton, LegacyValueEntry, type LegacyValueEntryProps, type ModeConfig, NodeConfigPanel, type NodeConfigPanelProps, type NodeInstance, type Overlay, type OverlayContent, type OverlayTheme, type OverlayType, PIDCanvas, type PIDCanvasControls, type PIDCanvasFeatures, type PIDCanvasProps, PanelContent, PanelTabs, type PipeEdge, type PipeStyle, type Point, type PortDefinition, type PortInstance, type PortType, RightPanel, RightToggleButton, SVGArea, SVGLockedOverlay, type SVGLockedOverlayProps, ScrollableSVGWrapper, type SelectionState, Selector, type SelectorOption, type SelectorProps, type SimulationOptions, Sparkline, type SparklineProps, StatusIndicator, type StatusIndicatorProps, type SymbolCategory, type SymbolDefinition, SymbolLibrary, type SymbolLibraryProps, type SymbolMetadata, type TelemetryBinding, type TelemetryMap, type TelemetryStatus$1 as TelemetryStatus, type TelemetryValue, ThemeProvider, ThemeToggle, type ThemeToggleProps, type Thresholds, type Transform, TrendLine, type TrendLineProps, type UseDragOptions, type UseDragResult, type UseSelectionOptions, type UseSelectionResult, type UseTelemetryOptions, type UseTelemetryResult, type UseTelemetryStatusOptions, type UseViewBoxOptions, type UseViewBoxResult, ValueEntry, type ValueEntryProps, type ViewBox, ZoomButton, ZoomControls, calculateThresholdStatus, exampleDiagram, exportDiagram, generateRoutePoints, getAvailableSymbols, getPortWorldPosition, getSymbolDefinition, importDiagram, mockSymbolLibrary, nodeHasPort, overlayStyles, useDrag, useKeyboardShortcuts, useSelection, useSimulation, useTelemetry, useTelemetryStatus, useTheme, useViewBox, validateDiagram };
|
|
1199
|
+
export { type AnchorType, Button, type ButtonProps, CardHeader, CardUnit, CardValue, CircularGauge, type CircularGaugeProps, ControlPanel, type ControlPanelProps, DEFAULT_THRESHOLDS, DashboardCard, type DataBinding, type Diagram, type DiagramMetadata, type DisplayMode, DisplayModeToggle, type DragPoint, type DragState, EquipmentIndicator, type EquipmentIndicatorProps, EquipmentIndicatorWithSparkline, type EquipmentIndicatorWithSparklineProps, FixedSVGContainer, FooterPanel, FullscreenContainer, FullscreenWorkspace, type FullscreenWorkspaceProps, type FullscreenWorkspaceTab, type KeyboardShortcutsOptions, LeftPanel, LeftToggleButton, LegacyValueEntry, type LegacyValueEntryProps, type ModeConfig, NodeConfigPanel, type NodeConfigPanelProps, type NodeInstance, type Overlay, type OverlayContent, type OverlayTheme, type OverlayType, PIDCanvas, type PIDCanvasControls, type PIDCanvasFeatures, type PIDCanvasProps, PanelContent, PanelTabs, type PipeEdge, type PipeStyle, type Point, type PortDefinition, type PortInstance, type PortType, RightPanel, RightToggleButton, SVGArea, SVGLockedOverlay, type SVGLockedOverlayProps, ScrollableSVGWrapper, type SelectionState, Selector, type SelectorOption, type SelectorProps, type SimulationOptions, Sparkline, type SparklineProps, StatusIndicator, type StatusIndicatorProps, type SymbolCategory, type SymbolDefinition, SymbolLibrary, type SymbolLibraryProps, type SymbolMetadata, type TelemetryBinding, type TelemetryMap, type TelemetryStatus$1 as TelemetryStatus, type TelemetryValue, ThemeProvider, ThemeToggle, type ThemeToggleProps, type Thresholds, type Transform, TrendLine, type TrendLineProps, type UseDragOptions, type UseDragResult, type UseSelectionOptions, type UseSelectionResult, type UseTelemetryOptions, type UseTelemetryResult, type UseTelemetryStatusOptions, type UseViewBoxOptions, type UseViewBoxResult, ValueEntry, type ValueEntryProps, type ViewBox, ZoomButton, ZoomControls, calculateThresholdStatus, exampleDiagram, exportDiagram, generateRoutePoints, getAvailableSymbols, getPortWorldPosition, getSymbolDefinition, importDiagram, mockSymbolLibrary, nodeHasPort, overlayStyles, registerSymbol, registerSymbols, useDrag, useKeyboardShortcuts, useSelection, useSimulation, useTelemetry, useTelemetryStatus, useTheme, useViewBox, validateDiagram };
|
package/dist/index.js
CHANGED
|
@@ -1702,13 +1702,13 @@ var mockSymbolLibrary = {
|
|
|
1702
1702
|
id: "valve-gate",
|
|
1703
1703
|
name: "Gate Valve (Powered)",
|
|
1704
1704
|
category: "valve",
|
|
1705
|
-
viewBox: { x: 0, y: 0, width:
|
|
1705
|
+
viewBox: { x: 0, y: 0, width: 26, height: 26 },
|
|
1706
1706
|
ports: [
|
|
1707
|
-
{ id: "inlet", x: 0, y:
|
|
1708
|
-
{ id: "outlet", x:
|
|
1707
|
+
{ id: "inlet", x: 0, y: 18, type: "inlet", direction: "in" },
|
|
1708
|
+
{ id: "outlet", x: 26, y: 18, type: "outlet", direction: "out" }
|
|
1709
1709
|
],
|
|
1710
1710
|
svgContent: `
|
|
1711
|
-
<g>
|
|
1711
|
+
<g transform="scale(0.5)">
|
|
1712
1712
|
<!-- Actuator box -->
|
|
1713
1713
|
<rect x="16.74" y="0" width="18.02" height="18.02" fill="var(--symbol-fill, #edeeef)" stroke="var(--symbol-stroke, #666666)" pointer-events="all"/>
|
|
1714
1714
|
<!-- Actuator stem -->
|
|
@@ -1726,13 +1726,13 @@ var mockSymbolLibrary = {
|
|
|
1726
1726
|
id: "pump-positive-displacement",
|
|
1727
1727
|
name: "Positive Displacement Pump",
|
|
1728
1728
|
category: "pump",
|
|
1729
|
-
viewBox: { x: 0, y: 0, width:
|
|
1729
|
+
viewBox: { x: 0, y: 0, width: 28.125, height: 28.125 },
|
|
1730
1730
|
ports: [
|
|
1731
|
-
{ id: "inlet", x: 0, y:
|
|
1732
|
-
{ id: "outlet", x:
|
|
1731
|
+
{ id: "inlet", x: 0, y: 14.0625, type: "inlet", direction: "in" },
|
|
1732
|
+
{ id: "outlet", x: 28.125, y: 14.0625, type: "outlet", direction: "out" }
|
|
1733
1733
|
],
|
|
1734
1734
|
svgContent: `
|
|
1735
|
-
<g transform="scale(0.
|
|
1735
|
+
<g transform="scale(0.28125)">
|
|
1736
1736
|
<!-- Outer circle -->
|
|
1737
1737
|
<ellipse
|
|
1738
1738
|
cx="50"
|
|
@@ -1774,13 +1774,13 @@ var mockSymbolLibrary = {
|
|
|
1774
1774
|
id: "vannefold-bottom",
|
|
1775
1775
|
name: "Vannefold Block (Bottom)",
|
|
1776
1776
|
category: "valve",
|
|
1777
|
-
viewBox: { x: -0.
|
|
1777
|
+
viewBox: { x: -0.25, y: -0.25, width: 44, height: 33.892578 },
|
|
1778
1778
|
ports: [
|
|
1779
|
-
{ id: "bottom-inlet", x: 0, y:
|
|
1780
|
-
{ id: "top-outlet", x:
|
|
1779
|
+
{ id: "bottom-inlet", x: 0, y: 12.5, type: "control", direction: "in" },
|
|
1780
|
+
{ id: "top-outlet", x: 24, y: 32.5, type: "control", direction: "out" }
|
|
1781
1781
|
],
|
|
1782
1782
|
svgContent: `
|
|
1783
|
-
<g>
|
|
1783
|
+
<g transform="scale(0.5)">
|
|
1784
1784
|
<!-- Bottom inlet pipe -->
|
|
1785
1785
|
<path
|
|
1786
1786
|
d="M 3,29.785156 H 0 v -10 h 3 m 14,10 h 3 v -10 h -3 m -15,8 h 16 m -16,-6 h 16"
|
|
@@ -1838,13 +1838,13 @@ var mockSymbolLibrary = {
|
|
|
1838
1838
|
id: "vannefold-middle",
|
|
1839
1839
|
name: "Vannefold Block (Middle)",
|
|
1840
1840
|
category: "valve",
|
|
1841
|
-
viewBox: { x: -0.
|
|
1841
|
+
viewBox: { x: -0.25, y: -0.25, width: 47.5, height: 26.548828 },
|
|
1842
1842
|
ports: [
|
|
1843
|
-
{ id: "left-inlet", x: 0, y:
|
|
1844
|
-
{ id: "right-outlet", x:
|
|
1843
|
+
{ id: "left-inlet", x: 0, y: 13.65625, type: "control", direction: "in" },
|
|
1844
|
+
{ id: "right-outlet", x: 47.5, y: 13.65625, type: "control", direction: "out" }
|
|
1845
1845
|
],
|
|
1846
1846
|
svgContent: `
|
|
1847
|
-
<g>
|
|
1847
|
+
<g transform="scale(0.5)">
|
|
1848
1848
|
<!-- Left inlet pipe -->
|
|
1849
1849
|
<path
|
|
1850
1850
|
d="M 3,22.3125 H 0 v 10 H 3 m 14,-10 h 3 v 10 h -3 m -15,-8 h 16 m -16,6 h 16"
|
|
@@ -1893,13 +1893,13 @@ var mockSymbolLibrary = {
|
|
|
1893
1893
|
id: "vannefold-top",
|
|
1894
1894
|
name: "Vannefold Block (Top)",
|
|
1895
1895
|
category: "valve",
|
|
1896
|
-
viewBox: { x: -0.
|
|
1896
|
+
viewBox: { x: -0.25, y: -0.25, width: 47.5, height: 30.392578 },
|
|
1897
1897
|
ports: [
|
|
1898
|
-
{ id: "bottom-inlet", x: 0, y:
|
|
1899
|
-
{ id: "top-outlet", x:
|
|
1898
|
+
{ id: "bottom-inlet", x: 0, y: 17.5, type: "control", direction: "in" },
|
|
1899
|
+
{ id: "top-outlet", x: 24, y: 0, type: "control", direction: "out" }
|
|
1900
1900
|
],
|
|
1901
1901
|
svgContent: `
|
|
1902
|
-
<g>
|
|
1902
|
+
<g transform="scale(0.5)">
|
|
1903
1903
|
<!-- Bottom inlet pipe -->
|
|
1904
1904
|
<path
|
|
1905
1905
|
d="M 3,30 H 0 V 40 H 3 M 17,30 h 3 V 40 H 17 M 2,32 H 18 M 2,38 H 18"
|
|
@@ -1949,13 +1949,13 @@ var mockSymbolLibrary = {
|
|
|
1949
1949
|
id: "vannefold-top-top-inlet",
|
|
1950
1950
|
name: "Vannefold Block (Top, Top Inlet)",
|
|
1951
1951
|
category: "valve",
|
|
1952
|
-
viewBox: { x: 0, y: 0, width:
|
|
1952
|
+
viewBox: { x: 0, y: 0, width: 44, height: 33.788002 },
|
|
1953
1953
|
ports: [
|
|
1954
|
-
{ id: "top-inlet", x:
|
|
1955
|
-
{ id: "bottom-outlet", x: 0, y:
|
|
1954
|
+
{ id: "top-inlet", x: 23.5, y: 0, type: "control", direction: "in" },
|
|
1955
|
+
{ id: "bottom-outlet", x: 0, y: 21, type: "control", direction: "out" }
|
|
1956
1956
|
],
|
|
1957
1957
|
svgContent: `
|
|
1958
|
-
<g>
|
|
1958
|
+
<g transform="scale(0.5)">
|
|
1959
1959
|
<!-- Top inlet pipe flange -->
|
|
1960
1960
|
<path
|
|
1961
1961
|
d="M 52,3 V 1.3598666e-8 H 42 V 3 m 10,14 v 3 H 42 V 17 M 50,2 V 18 M 44,2 v 16"
|
|
@@ -2013,13 +2013,13 @@ var mockSymbolLibrary = {
|
|
|
2013
2013
|
id: "vannefold-left",
|
|
2014
2014
|
name: "Vannefold Block (Left)",
|
|
2015
2015
|
category: "valve",
|
|
2016
|
-
viewBox: { x: 0, y: 0, width:
|
|
2016
|
+
viewBox: { x: 0, y: 0, width: 33.892578, height: 44.25 },
|
|
2017
2017
|
ports: [
|
|
2018
|
-
{ id: "left-inlet", x: 0, y:
|
|
2019
|
-
{ id: "right-outlet", x:
|
|
2018
|
+
{ id: "left-inlet", x: 0, y: 20.75, type: "control", direction: "in" },
|
|
2019
|
+
{ id: "right-outlet", x: 21, y: 43.5, type: "control", direction: "out" }
|
|
2020
2020
|
],
|
|
2021
2021
|
svgContent: `
|
|
2022
|
-
<g>
|
|
2022
|
+
<g transform="scale(0.5)">
|
|
2023
2023
|
<!-- Left inlet pipe flange -->
|
|
2024
2024
|
<path
|
|
2025
2025
|
d="M 3,46.5 H 2.8789924e-8 v -10 H 3 m 14,10 h 3 v -10 h -3 m -15,8 h 16 m -16,-6 h 16"
|
|
@@ -2076,13 +2076,13 @@ var mockSymbolLibrary = {
|
|
|
2076
2076
|
id: "vannefold-right",
|
|
2077
2077
|
name: "Vannefold Block (Right)",
|
|
2078
2078
|
category: "valve",
|
|
2079
|
-
viewBox: { x: 0, y: 0, width:
|
|
2079
|
+
viewBox: { x: 0, y: 0, width: 33.892578, height: 44.25 },
|
|
2080
2080
|
ports: [
|
|
2081
|
-
{ id: "right-inlet", x:
|
|
2082
|
-
{ id: "left-outlet", x:
|
|
2081
|
+
{ id: "right-inlet", x: 33.892578, y: 20.75, type: "control", direction: "in" },
|
|
2082
|
+
{ id: "left-outlet", x: 12.392578, y: 43.75, type: "control", direction: "out" }
|
|
2083
2083
|
],
|
|
2084
2084
|
svgContent: `
|
|
2085
|
-
<g>
|
|
2085
|
+
<g transform="scale(0.5)">
|
|
2086
2086
|
<!-- Right inlet pipe flange -->
|
|
2087
2087
|
<path
|
|
2088
2088
|
d="m 63.785156,46.5 h 3 v -10 h -3 m -14,10 h -3 v -10 h 3 m 15,8 h -16 m 16,-6 h -16"
|
|
@@ -2139,16 +2139,16 @@ var mockSymbolLibrary = {
|
|
|
2139
2139
|
id: "pixer",
|
|
2140
2140
|
name: "Pixer",
|
|
2141
2141
|
category: "pump",
|
|
2142
|
-
viewBox: { x: 0, y: 0, width:
|
|
2142
|
+
viewBox: { x: 0, y: 0, width: 25.3125, height: 23.34375 },
|
|
2143
2143
|
ports: [
|
|
2144
|
-
{ id: "right-outlet", x:
|
|
2145
|
-
{ id: "left-outlet", x: 0, y:
|
|
2146
|
-
{ id: "left-inlet", x:
|
|
2147
|
-
{ id: "right-inlet", x: 0, y:
|
|
2148
|
-
{ id: "top-inlet", x:
|
|
2144
|
+
{ id: "right-outlet", x: 25.3125, y: 15.46875, type: "control", direction: "out" },
|
|
2145
|
+
{ id: "left-outlet", x: 0, y: 15.46875, type: "control", direction: "out" },
|
|
2146
|
+
{ id: "left-inlet", x: 25.3125, y: 9.84375, type: "control", direction: "in" },
|
|
2147
|
+
{ id: "right-inlet", x: 0, y: 9.84375, type: "control", direction: "in" },
|
|
2148
|
+
{ id: "top-inlet", x: 12.65625, y: 0, type: "control", direction: "in" }
|
|
2149
2149
|
],
|
|
2150
2150
|
svgContent: `
|
|
2151
|
-
<g transform="scale(0.
|
|
2151
|
+
<g transform="scale(0.0984375) translate(-195, -186)">
|
|
2152
2152
|
<!-- Top mounting flange -->
|
|
2153
2153
|
<rect
|
|
2154
2154
|
width="141.313"
|
|
@@ -2413,16 +2413,16 @@ var mockSymbolLibrary = {
|
|
|
2413
2413
|
id: "pixer-barb",
|
|
2414
2414
|
name: "Pixer (Hose Barb)",
|
|
2415
2415
|
category: "pump",
|
|
2416
|
-
viewBox: { x: 0, y: 0, width:
|
|
2416
|
+
viewBox: { x: 0, y: 0, width: 25.3125, height: 23.34375 },
|
|
2417
2417
|
ports: [
|
|
2418
|
-
{ id: "right-outlet", x:
|
|
2419
|
-
{ id: "left-outlet", x: 0, y:
|
|
2420
|
-
{ id: "left-inlet", x:
|
|
2421
|
-
{ id: "right-inlet", x: 0, y:
|
|
2422
|
-
{ id: "top-inlet", x:
|
|
2418
|
+
{ id: "right-outlet", x: 25.3125, y: 15.46875, type: "control", direction: "out" },
|
|
2419
|
+
{ id: "left-outlet", x: 0, y: 15.46875, type: "control", direction: "out" },
|
|
2420
|
+
{ id: "left-inlet", x: 25.3125, y: 9.84375, type: "control", direction: "in" },
|
|
2421
|
+
{ id: "right-inlet", x: 0, y: 9.84375, type: "control", direction: "in" },
|
|
2422
|
+
{ id: "top-inlet", x: 12.65625, y: 0, type: "control", direction: "in" }
|
|
2423
2423
|
],
|
|
2424
2424
|
svgContent: `
|
|
2425
|
-
<g transform="scale(0.
|
|
2425
|
+
<g transform="scale(0.0984375) translate(-195, -186)">
|
|
2426
2426
|
<!-- Hose barb ridges at top -->
|
|
2427
2427
|
<rect
|
|
2428
2428
|
width="20"
|
|
@@ -2704,15 +2704,15 @@ var mockSymbolLibrary = {
|
|
|
2704
2704
|
id: "vessel-balloon",
|
|
2705
2705
|
name: "Vessel",
|
|
2706
2706
|
category: "vessel",
|
|
2707
|
-
viewBox: { x: 0, y: 0, width:
|
|
2707
|
+
viewBox: { x: 0, y: 0, width: 25.3125, height: 45.5 },
|
|
2708
2708
|
ports: [
|
|
2709
|
-
{ id: "top", type: "inlet", x:
|
|
2710
|
-
{ id: "left", type: "inlet", x: 5, y:
|
|
2711
|
-
{ id: "right", type: "outlet", x:
|
|
2712
|
-
{ id: "bottom", type: "outlet", x:
|
|
2709
|
+
{ id: "top", type: "inlet", x: 12.65625, y: 0 },
|
|
2710
|
+
{ id: "left", type: "inlet", x: 2.5, y: 19.5 },
|
|
2711
|
+
{ id: "right", type: "outlet", x: 22.8125, y: 19.5 },
|
|
2712
|
+
{ id: "bottom", type: "outlet", x: 12.65625, y: 45.5 }
|
|
2713
2713
|
],
|
|
2714
2714
|
svgContent: `
|
|
2715
|
-
<g transform="scale(0.
|
|
2715
|
+
<g transform="scale(0.0984375) translate(-195, -100)">
|
|
2716
2716
|
<!-- Top opening nozzle -->
|
|
2717
2717
|
<rect
|
|
2718
2718
|
width="65"
|
|
@@ -2777,19 +2777,53 @@ var mockSymbolLibrary = {
|
|
|
2777
2777
|
tags: ["vessel", "storage", "tank", "balloon"]
|
|
2778
2778
|
}
|
|
2779
2779
|
},
|
|
2780
|
+
"hollow-fiber": {
|
|
2781
|
+
id: "hollow-fiber",
|
|
2782
|
+
name: "Hollow Fiber",
|
|
2783
|
+
category: "other",
|
|
2784
|
+
viewBox: { x: 0, y: 0, width: 30, height: 109 },
|
|
2785
|
+
ports: [
|
|
2786
|
+
{ id: "top-left", type: "outlet", x: 10, y: 2.75 },
|
|
2787
|
+
{ id: "top-right", type: "outlet", x: 24.5, y: 22.25 },
|
|
2788
|
+
{ id: "bottom-left", type: "inlet", x: 10, y: 106.25 },
|
|
2789
|
+
{ id: "bottom-right", type: "inlet", x: 24.5, y: 87.25 }
|
|
2790
|
+
],
|
|
2791
|
+
svgContent: `
|
|
2792
|
+
<g transform="scale(0.5)">
|
|
2793
|
+
<!-- Top left flange -->
|
|
2794
|
+
<rect x="10.5" y="0.5" width="20" height="10" rx="1.5" ry="1.5" fill="var(--symbol-fill, #eaeaea)" stroke="var(--symbol-stroke, #000000)" />
|
|
2795
|
+
|
|
2796
|
+
<!-- Top right flange -->
|
|
2797
|
+
<rect x="39.5" y="39.5" width="20" height="10" rx="1.5" ry="1.5" fill="var(--symbol-fill, #eaeaea)" stroke="var(--symbol-stroke, #000000)" />
|
|
2798
|
+
|
|
2799
|
+
<!-- Bottom left flange -->
|
|
2800
|
+
<rect x="10.5" y="207.5" width="20" height="10" rx="1.5" ry="1.5" fill="var(--symbol-fill, #eaeaea)" stroke="var(--symbol-stroke, #000000)" />
|
|
2801
|
+
|
|
2802
|
+
<!-- Bottom right flange -->
|
|
2803
|
+
<rect x="39.5" y="169.5" width="20" height="10" rx="1.5" ry="1.5" fill="var(--symbol-fill, #eaeaea)" stroke="var(--symbol-stroke, #000000)" />
|
|
2804
|
+
|
|
2805
|
+
<!-- Main vessel body -->
|
|
2806
|
+
<rect x="0.5" y="9.5" width="40" height="199.5" rx="6" ry="6" fill="var(--symbol-fill, #eaeaea)" stroke="var(--symbol-stroke, #000000)" />
|
|
2807
|
+
</g>
|
|
2808
|
+
`,
|
|
2809
|
+
metadata: {
|
|
2810
|
+
description: "Hollow fiber filter module with multiple inlet/outlet connections",
|
|
2811
|
+
tags: ["filter", "hollow-fiber", "filtration", "separation", "membrane"]
|
|
2812
|
+
}
|
|
2813
|
+
},
|
|
2780
2814
|
"psr-f": {
|
|
2781
2815
|
id: "psr-f",
|
|
2782
2816
|
name: "PSR F",
|
|
2783
2817
|
category: "instrument",
|
|
2784
|
-
viewBox: { x: 0, y: 0, width:
|
|
2818
|
+
viewBox: { x: 0, y: 0, width: 28.5, height: 28.5 },
|
|
2785
2819
|
ports: [
|
|
2786
|
-
{ id: "top", type: "signal", x:
|
|
2787
|
-
{ id: "right", type: "signal", x:
|
|
2788
|
-
{ id: "bottom", type: "signal", x:
|
|
2789
|
-
{ id: "left", type: "signal", x:
|
|
2820
|
+
{ id: "top", type: "signal", x: 14.25, y: 7.125 },
|
|
2821
|
+
{ id: "right", type: "signal", x: 21.375, y: 14.25 },
|
|
2822
|
+
{ id: "bottom", type: "signal", x: 14.25, y: 21.375 },
|
|
2823
|
+
{ id: "left", type: "signal", x: 7.125, y: 14.25 }
|
|
2790
2824
|
],
|
|
2791
2825
|
svgContent: `
|
|
2792
|
-
<g transform="scale(0.
|
|
2826
|
+
<g transform="scale(0.25) translate(28.5, 28.5)">
|
|
2793
2827
|
<!-- Circle background -->
|
|
2794
2828
|
<ellipse
|
|
2795
2829
|
cx="28.5"
|
|
@@ -2823,15 +2857,15 @@ var mockSymbolLibrary = {
|
|
|
2823
2857
|
id: "psr-p",
|
|
2824
2858
|
name: "PSR P",
|
|
2825
2859
|
category: "instrument",
|
|
2826
|
-
viewBox: { x: 0, y: 0, width:
|
|
2860
|
+
viewBox: { x: 0, y: 0, width: 28.5, height: 28.5 },
|
|
2827
2861
|
ports: [
|
|
2828
|
-
{ id: "top", type: "signal", x:
|
|
2829
|
-
{ id: "right", type: "signal", x:
|
|
2830
|
-
{ id: "bottom", type: "signal", x:
|
|
2831
|
-
{ id: "left", type: "signal", x:
|
|
2862
|
+
{ id: "top", type: "signal", x: 14.25, y: 7.125 },
|
|
2863
|
+
{ id: "right", type: "signal", x: 21.375, y: 14.25 },
|
|
2864
|
+
{ id: "bottom", type: "signal", x: 14.25, y: 21.375 },
|
|
2865
|
+
{ id: "left", type: "signal", x: 7.125, y: 14.25 }
|
|
2832
2866
|
],
|
|
2833
2867
|
svgContent: `
|
|
2834
|
-
<g transform="scale(0.
|
|
2868
|
+
<g transform="scale(0.25) translate(28.5, 28.5)">
|
|
2835
2869
|
<!-- Circle background -->
|
|
2836
2870
|
<ellipse
|
|
2837
2871
|
cx="28.5"
|
|
@@ -2862,11 +2896,22 @@ var mockSymbolLibrary = {
|
|
|
2862
2896
|
}
|
|
2863
2897
|
}
|
|
2864
2898
|
};
|
|
2899
|
+
var customSymbols = {};
|
|
2900
|
+
function registerSymbol(symbol) {
|
|
2901
|
+
customSymbols[symbol.id] = symbol;
|
|
2902
|
+
}
|
|
2903
|
+
function registerSymbols(symbols) {
|
|
2904
|
+
if (Array.isArray(symbols)) {
|
|
2905
|
+
symbols.forEach((symbol) => registerSymbol(symbol));
|
|
2906
|
+
} else {
|
|
2907
|
+
Object.values(symbols).forEach((symbol) => registerSymbol(symbol));
|
|
2908
|
+
}
|
|
2909
|
+
}
|
|
2865
2910
|
function getSymbolDefinition(symbolId) {
|
|
2866
|
-
return mockSymbolLibrary[symbolId];
|
|
2911
|
+
return customSymbols[symbolId] ?? mockSymbolLibrary[symbolId];
|
|
2867
2912
|
}
|
|
2868
2913
|
function getAvailableSymbols() {
|
|
2869
|
-
return Object.keys(mockSymbolLibrary);
|
|
2914
|
+
return [...Object.keys(customSymbols), ...Object.keys(mockSymbolLibrary)];
|
|
2870
2915
|
}
|
|
2871
2916
|
|
|
2872
2917
|
// src/components/PIDCanvas/NodeRenderer.tsx
|
|
@@ -6495,6 +6540,8 @@ export {
|
|
|
6495
6540
|
mockSymbolLibrary,
|
|
6496
6541
|
nodeHasPort,
|
|
6497
6542
|
overlayStyles,
|
|
6543
|
+
registerSymbol,
|
|
6544
|
+
registerSymbols,
|
|
6498
6545
|
useDrag,
|
|
6499
6546
|
useKeyboardShortcuts,
|
|
6500
6547
|
useSelection,
|