circuitscript 0.1.19 → 0.1.20
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/cjs/graph.js +23 -2
- package/dist/cjs/layout.js +3 -0
- package/dist/esm/graph.js +23 -2
- package/dist/esm/layout.js +4 -0
- package/dist/types/layout.d.ts +2 -0
- package/package.json +1 -1
package/dist/cjs/graph.js
CHANGED
|
@@ -51,6 +51,7 @@ class NetGraph {
|
|
|
51
51
|
const baseFrame = new layout_js_1.RenderFrame(new Frame_js_1.Frame(Frame_js_1.FixedFrameIds.BaseFrame));
|
|
52
52
|
const frameStack = [baseFrame];
|
|
53
53
|
const containerFrames = [baseFrame];
|
|
54
|
+
const nodeFrames = new Map();
|
|
54
55
|
sequence.forEach((sequenceStep, index) => {
|
|
55
56
|
const action = sequenceStep[0];
|
|
56
57
|
let tmpComponent;
|
|
@@ -60,6 +61,10 @@ class NetGraph {
|
|
|
60
61
|
this.print(...sequenceStep);
|
|
61
62
|
const [, component, pin] = sequenceStep;
|
|
62
63
|
const tmpInstanceName = component.instanceName;
|
|
64
|
+
if (action === ExecutionScope_js_1.SequenceAction.At) {
|
|
65
|
+
previousNode = null;
|
|
66
|
+
previousPin = null;
|
|
67
|
+
}
|
|
63
68
|
if (!graph.hasNode(tmpInstanceName)) {
|
|
64
69
|
this.print('create instance', tmpInstanceName);
|
|
65
70
|
const { displayProp = null } = component;
|
|
@@ -83,8 +88,15 @@ class NetGraph {
|
|
|
83
88
|
tmpComponent = new layout_js_1.RenderComponent(component, useWidth, useHeight);
|
|
84
89
|
tmpComponent.symbol = tmpSymbol;
|
|
85
90
|
graph.setNode(tmpInstanceName, [RenderItemType.Component, tmpComponent, index]);
|
|
86
|
-
|
|
87
|
-
|
|
91
|
+
let useFrame = frameStack[frameStack.length - 1];
|
|
92
|
+
if (nodeFrames.has(previousNode)) {
|
|
93
|
+
const previousNodeFrame = nodeFrames.get(previousNode);
|
|
94
|
+
if (previousNodeFrame !== useFrame) {
|
|
95
|
+
useFrame = previousNodeFrame;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
useFrame && useFrame.innerItems.push(tmpComponent);
|
|
99
|
+
nodeFrames.set(tmpInstanceName, useFrame);
|
|
88
100
|
}
|
|
89
101
|
if (action === ExecutionScope_js_1.SequenceAction.To && previousNode && previousPin) {
|
|
90
102
|
this.setGraphEdge(graph, previousNode, tmpInstanceName, makeEdgeValue(previousNode, previousPin, tmpInstanceName, pin, index));
|
|
@@ -116,6 +128,7 @@ class NetGraph {
|
|
|
116
128
|
wire.netName = useNet.toString();
|
|
117
129
|
const wireName = getWireName(wire.id);
|
|
118
130
|
graph.setNode(wireName, [RenderItemType.Wire, wire, index]);
|
|
131
|
+
let tmpPreviousNode = previousNode;
|
|
119
132
|
this.setGraphEdge(graph, previousNode, wireName, makeEdgeValue(previousNode, previousPin, wireName, 0, index));
|
|
120
133
|
previousNode = wireName;
|
|
121
134
|
previousPin = 1;
|
|
@@ -132,6 +145,14 @@ class NetGraph {
|
|
|
132
145
|
}
|
|
133
146
|
return tmp;
|
|
134
147
|
});
|
|
148
|
+
let useFrame = frameStack[frameStack.length - 1];
|
|
149
|
+
if (nodeFrames.has(tmpPreviousNode)) {
|
|
150
|
+
const previousNodeFrame = nodeFrames.get(tmpPreviousNode);
|
|
151
|
+
if (previousNodeFrame !== useFrame) {
|
|
152
|
+
useFrame = previousNodeFrame;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
nodeFrames.set(wireName, useFrame);
|
|
135
156
|
this.print(ExecutionScope_js_1.SequenceAction.Wire, wireId, JSON.stringify(wireSegmentsInfo));
|
|
136
157
|
break;
|
|
137
158
|
}
|
package/dist/cjs/layout.js
CHANGED
|
@@ -1241,6 +1241,8 @@ class RenderFrame extends RenderObject {
|
|
|
1241
1241
|
this.containsTitle = false;
|
|
1242
1242
|
this.frame = frame;
|
|
1243
1243
|
this.renderType = type;
|
|
1244
|
+
this.frameId = RenderFrame.FrameIdCounter;
|
|
1245
|
+
RenderFrame.FrameIdCounter++;
|
|
1244
1246
|
}
|
|
1245
1247
|
toString() {
|
|
1246
1248
|
let name = "";
|
|
@@ -1255,6 +1257,7 @@ class RenderFrame extends RenderObject {
|
|
|
1255
1257
|
}
|
|
1256
1258
|
}
|
|
1257
1259
|
exports.RenderFrame = RenderFrame;
|
|
1260
|
+
RenderFrame.FrameIdCounter = 0;
|
|
1258
1261
|
var RenderFrameType;
|
|
1259
1262
|
(function (RenderFrameType) {
|
|
1260
1263
|
RenderFrameType[RenderFrameType["Container"] = 1] = "Container";
|
package/dist/esm/graph.js
CHANGED
|
@@ -26,6 +26,7 @@ export class NetGraph {
|
|
|
26
26
|
const baseFrame = new RenderFrame(new Frame(FixedFrameIds.BaseFrame));
|
|
27
27
|
const frameStack = [baseFrame];
|
|
28
28
|
const containerFrames = [baseFrame];
|
|
29
|
+
const nodeFrames = new Map();
|
|
29
30
|
sequence.forEach((sequenceStep, index) => {
|
|
30
31
|
const action = sequenceStep[0];
|
|
31
32
|
let tmpComponent;
|
|
@@ -35,6 +36,10 @@ export class NetGraph {
|
|
|
35
36
|
this.print(...sequenceStep);
|
|
36
37
|
const [, component, pin] = sequenceStep;
|
|
37
38
|
const tmpInstanceName = component.instanceName;
|
|
39
|
+
if (action === SequenceAction.At) {
|
|
40
|
+
previousNode = null;
|
|
41
|
+
previousPin = null;
|
|
42
|
+
}
|
|
38
43
|
if (!graph.hasNode(tmpInstanceName)) {
|
|
39
44
|
this.print('create instance', tmpInstanceName);
|
|
40
45
|
const { displayProp = null } = component;
|
|
@@ -58,8 +63,15 @@ export class NetGraph {
|
|
|
58
63
|
tmpComponent = new RenderComponent(component, useWidth, useHeight);
|
|
59
64
|
tmpComponent.symbol = tmpSymbol;
|
|
60
65
|
graph.setNode(tmpInstanceName, [RenderItemType.Component, tmpComponent, index]);
|
|
61
|
-
|
|
62
|
-
|
|
66
|
+
let useFrame = frameStack[frameStack.length - 1];
|
|
67
|
+
if (nodeFrames.has(previousNode)) {
|
|
68
|
+
const previousNodeFrame = nodeFrames.get(previousNode);
|
|
69
|
+
if (previousNodeFrame !== useFrame) {
|
|
70
|
+
useFrame = previousNodeFrame;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
useFrame && useFrame.innerItems.push(tmpComponent);
|
|
74
|
+
nodeFrames.set(tmpInstanceName, useFrame);
|
|
63
75
|
}
|
|
64
76
|
if (action === SequenceAction.To && previousNode && previousPin) {
|
|
65
77
|
this.setGraphEdge(graph, previousNode, tmpInstanceName, makeEdgeValue(previousNode, previousPin, tmpInstanceName, pin, index));
|
|
@@ -91,6 +103,7 @@ export class NetGraph {
|
|
|
91
103
|
wire.netName = useNet.toString();
|
|
92
104
|
const wireName = getWireName(wire.id);
|
|
93
105
|
graph.setNode(wireName, [RenderItemType.Wire, wire, index]);
|
|
106
|
+
let tmpPreviousNode = previousNode;
|
|
94
107
|
this.setGraphEdge(graph, previousNode, wireName, makeEdgeValue(previousNode, previousPin, wireName, 0, index));
|
|
95
108
|
previousNode = wireName;
|
|
96
109
|
previousPin = 1;
|
|
@@ -107,6 +120,14 @@ export class NetGraph {
|
|
|
107
120
|
}
|
|
108
121
|
return tmp;
|
|
109
122
|
});
|
|
123
|
+
let useFrame = frameStack[frameStack.length - 1];
|
|
124
|
+
if (nodeFrames.has(tmpPreviousNode)) {
|
|
125
|
+
const previousNodeFrame = nodeFrames.get(tmpPreviousNode);
|
|
126
|
+
if (previousNodeFrame !== useFrame) {
|
|
127
|
+
useFrame = previousNodeFrame;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
nodeFrames.set(wireName, useFrame);
|
|
110
131
|
this.print(SequenceAction.Wire, wireId, JSON.stringify(wireSegmentsInfo));
|
|
111
132
|
break;
|
|
112
133
|
}
|
package/dist/esm/layout.js
CHANGED
|
@@ -1219,6 +1219,7 @@ export class RenderText extends RenderObject {
|
|
|
1219
1219
|
}
|
|
1220
1220
|
}
|
|
1221
1221
|
export class RenderFrame extends RenderObject {
|
|
1222
|
+
static FrameIdCounter = 0;
|
|
1222
1223
|
bounds = null;
|
|
1223
1224
|
frame;
|
|
1224
1225
|
innerItems = [];
|
|
@@ -1233,10 +1234,13 @@ export class RenderFrame extends RenderObject {
|
|
|
1233
1234
|
subgraphId = "";
|
|
1234
1235
|
renderType;
|
|
1235
1236
|
containsTitle = false;
|
|
1237
|
+
frameId;
|
|
1236
1238
|
constructor(frame, type = RenderFrameType.Container) {
|
|
1237
1239
|
super();
|
|
1238
1240
|
this.frame = frame;
|
|
1239
1241
|
this.renderType = type;
|
|
1242
|
+
this.frameId = RenderFrame.FrameIdCounter;
|
|
1243
|
+
RenderFrame.FrameIdCounter++;
|
|
1240
1244
|
}
|
|
1241
1245
|
toString() {
|
|
1242
1246
|
let name = "";
|
package/dist/types/layout.d.ts
CHANGED
|
@@ -107,6 +107,7 @@ export declare class RenderText extends RenderObject {
|
|
|
107
107
|
constructor(text: string);
|
|
108
108
|
}
|
|
109
109
|
export declare class RenderFrame extends RenderObject {
|
|
110
|
+
static FrameIdCounter: number;
|
|
110
111
|
bounds: BoundBox | null;
|
|
111
112
|
frame: Frame;
|
|
112
113
|
innerItems: (RenderComponent | RenderFrame | RenderText)[];
|
|
@@ -121,6 +122,7 @@ export declare class RenderFrame extends RenderObject {
|
|
|
121
122
|
subgraphId: string;
|
|
122
123
|
renderType: RenderFrameType;
|
|
123
124
|
containsTitle: boolean;
|
|
125
|
+
frameId: number;
|
|
124
126
|
constructor(frame: Frame, type?: RenderFrameType);
|
|
125
127
|
toString(): string;
|
|
126
128
|
}
|