@vessel-dsp/core 0.6.0 → 0.6.1
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/editor/commands.d.ts +48 -0
- package/dist/editor/commands.d.ts.map +1 -0
- package/{src/editor/commands.ts → dist/editor/commands.js} +44 -91
- package/dist/editor/commands.js.map +1 -0
- package/dist/editor/factory.d.ts +10 -0
- package/dist/editor/factory.d.ts.map +1 -0
- package/{src/editor/factory.ts → dist/editor/factory.js} +11 -27
- package/dist/editor/factory.js.map +1 -0
- package/dist/editor/history.d.ts +29 -0
- package/dist/editor/history.d.ts.map +1 -0
- package/{src/editor/history.ts → dist/editor/history.js} +12 -42
- package/dist/editor/history.js.map +1 -0
- package/{src/editor/index.ts → dist/editor/index.d.ts} +1 -3
- package/dist/editor/index.d.ts.map +1 -0
- package/dist/editor/index.js +5 -0
- package/dist/editor/index.js.map +1 -0
- package/dist/editor/layout.d.ts +8 -0
- package/dist/editor/layout.d.ts.map +1 -0
- package/{src/editor/layout.ts → dist/editor/layout.js} +36 -90
- package/dist/editor/layout.js.map +1 -0
- package/dist/formats/circuit-json/serializer.d.ts +86 -0
- package/dist/formats/circuit-json/serializer.d.ts.map +1 -0
- package/{src/formats/circuit-json/serializer.ts → dist/formats/circuit-json/serializer.js} +114 -414
- package/dist/formats/circuit-json/serializer.js.map +1 -0
- package/dist/formats/document.d.ts +64 -0
- package/dist/formats/document.d.ts.map +1 -0
- package/{src/formats/document.ts → dist/formats/document.js} +43 -159
- package/dist/formats/document.js.map +1 -0
- package/dist/formats/interchange/parser.d.ts +3 -0
- package/dist/formats/interchange/parser.d.ts.map +1 -0
- package/{src/formats/interchange/parser.ts → dist/formats/interchange/parser.js} +157 -463
- package/dist/formats/interchange/parser.js.map +1 -0
- package/dist/formats/interchange/serializer.d.ts +9 -0
- package/dist/formats/interchange/serializer.d.ts.map +1 -0
- package/{src/formats/interchange/serializer.ts → dist/formats/interchange/serializer.js} +84 -186
- package/dist/formats/interchange/serializer.js.map +1 -0
- package/dist/formats/ltspice/catalog.d.ts +19 -0
- package/dist/formats/ltspice/catalog.d.ts.map +1 -0
- package/{src/formats/ltspice/catalog.ts → dist/formats/ltspice/catalog.js} +18 -52
- package/dist/formats/ltspice/catalog.js.map +1 -0
- package/dist/formats/ltspice/encoding.d.ts +2 -0
- package/dist/formats/ltspice/encoding.d.ts.map +1 -0
- package/{src/formats/ltspice/encoding.ts → dist/formats/ltspice/encoding.js} +17 -41
- package/dist/formats/ltspice/encoding.js.map +1 -0
- package/dist/formats/ltspice/parser.d.ts +3 -0
- package/dist/formats/ltspice/parser.d.ts.map +1 -0
- package/{src/formats/ltspice/parser.ts → dist/formats/ltspice/parser.js} +39 -141
- package/dist/formats/ltspice/parser.js.map +1 -0
- package/dist/formats/ltspice/serializer.d.ts +7 -0
- package/dist/formats/ltspice/serializer.d.ts.map +1 -0
- package/{src/formats/ltspice/serializer.ts → dist/formats/ltspice/serializer.js} +18 -45
- package/dist/formats/ltspice/serializer.js.map +1 -0
- package/dist/formats/schx/catalog.d.ts +19 -0
- package/dist/formats/schx/catalog.d.ts.map +1 -0
- package/{src/formats/schx/catalog.ts → dist/formats/schx/catalog.js} +48 -101
- package/dist/formats/schx/catalog.js.map +1 -0
- package/dist/formats/schx/parser.d.ts +3 -0
- package/dist/formats/schx/parser.d.ts.map +1 -0
- package/{src/formats/schx/parser.ts → dist/formats/schx/parser.js} +31 -86
- package/dist/formats/schx/parser.js.map +1 -0
- package/dist/formats/schx/runtime-descriptors.d.ts +3 -0
- package/dist/formats/schx/runtime-descriptors.d.ts.map +1 -0
- package/{src/formats/schx/runtime-descriptors.ts → dist/formats/schx/runtime-descriptors.js} +36 -123
- package/dist/formats/schx/runtime-descriptors.js.map +1 -0
- package/dist/formats/schx/serializer.d.ts +5 -0
- package/dist/formats/schx/serializer.d.ts.map +1 -0
- package/{src/formats/schx/serializer.ts → dist/formats/schx/serializer.js} +17 -42
- package/dist/formats/schx/serializer.js.map +1 -0
- package/dist/formats/schx/transforms.d.ts +4 -0
- package/dist/formats/schx/transforms.d.ts.map +1 -0
- package/{src/formats/schx/transforms.ts → dist/formats/schx/transforms.js} +6 -10
- package/dist/formats/schx/transforms.js.map +1 -0
- package/dist/formats/spice/parser.d.ts +3 -0
- package/dist/formats/spice/parser.d.ts.map +1 -0
- package/{src/formats/spice/parser.ts → dist/formats/spice/parser.js} +50 -96
- package/dist/formats/spice/parser.js.map +1 -0
- package/dist/formats/spice/serializer.d.ts +3 -0
- package/dist/formats/spice/serializer.d.ts.map +1 -0
- package/{src/formats/spice/serializer.ts → dist/formats/spice/serializer.js} +8 -13
- package/dist/formats/spice/serializer.js.map +1 -0
- package/dist/index.d.ts +47 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +32 -0
- package/dist/index.js.map +1 -0
- package/dist/model/connectivity.d.ts +16 -0
- package/dist/model/connectivity.d.ts.map +1 -0
- package/{src/model/connectivity.ts → dist/model/connectivity.js} +28 -63
- package/dist/model/connectivity.js.map +1 -0
- package/dist/model/netlist.d.ts +24 -0
- package/dist/model/netlist.d.ts.map +1 -0
- package/{src/model/netlist.ts → dist/model/netlist.js} +42 -110
- package/dist/model/netlist.js.map +1 -0
- package/dist/model/properties.d.ts +9 -0
- package/dist/model/properties.d.ts.map +1 -0
- package/{src/model/properties.ts → dist/model/properties.js} +10 -18
- package/dist/model/properties.js.map +1 -0
- package/dist/model/quantity.d.ts +3 -0
- package/dist/model/quantity.d.ts.map +1 -0
- package/{src/model/quantity.ts → dist/model/quantity.js} +7 -30
- package/dist/model/quantity.js.map +1 -0
- package/{src/model/types.ts → dist/model/types.d.ts} +17 -196
- package/dist/model/types.d.ts.map +1 -0
- package/dist/model/types.js +10 -0
- package/dist/model/types.js.map +1 -0
- package/dist/model/validation.d.ts +32 -0
- package/dist/model/validation.d.ts.map +1 -0
- package/{src/model/validation.ts → dist/model/validation.js} +172 -653
- package/dist/model/validation.js.map +1 -0
- package/dist/model/wires.d.ts +3 -0
- package/dist/model/wires.d.ts.map +1 -0
- package/{src/model/wires.ts → dist/model/wires.js} +10 -16
- package/dist/model/wires.js.map +1 -0
- package/dist/panel/extract.d.ts +5 -0
- package/dist/panel/extract.d.ts.map +1 -0
- package/{src/panel/extract.ts → dist/panel/extract.js} +146 -235
- package/dist/panel/extract.js.map +1 -0
- package/dist/panel/index.d.ts +6 -0
- package/dist/panel/index.d.ts.map +1 -0
- package/dist/panel/index.js +5 -0
- package/dist/panel/index.js.map +1 -0
- package/dist/panel/knobs.d.ts +7 -0
- package/dist/panel/knobs.d.ts.map +1 -0
- package/{src/panel/knobs.ts → dist/panel/knobs.js} +7 -18
- package/dist/panel/knobs.js.map +1 -0
- package/dist/panel/protocol.d.ts +9 -0
- package/dist/panel/protocol.d.ts.map +1 -0
- package/{src/panel/protocol.ts → dist/panel/protocol.js} +10 -26
- package/dist/panel/protocol.js.map +1 -0
- package/{src/panel/types.ts → dist/panel/types.d.ts} +50 -89
- package/dist/panel/types.d.ts.map +1 -0
- package/dist/panel/types.js +2 -0
- package/dist/panel/types.js.map +1 -0
- package/dist/preview/bounds.d.ts +12 -0
- package/dist/preview/bounds.d.ts.map +1 -0
- package/{src/preview/bounds.ts → dist/preview/bounds.js} +15 -29
- package/dist/preview/bounds.js.map +1 -0
- package/dist/preview/box-layout.d.ts +4 -0
- package/dist/preview/box-layout.d.ts.map +1 -0
- package/{src/preview/box-layout.ts → dist/preview/box-layout.js} +2 -6
- package/dist/preview/box-layout.js.map +1 -0
- package/dist/preview/colors.d.ts +3 -0
- package/dist/preview/colors.d.ts.map +1 -0
- package/{src/preview/colors.ts → dist/preview/colors.js} +3 -5
- package/dist/preview/colors.js.map +1 -0
- package/dist/preview/hanging.d.ts +8 -0
- package/dist/preview/hanging.d.ts.map +1 -0
- package/{src/preview/hanging.ts → dist/preview/hanging.js} +9 -28
- package/dist/preview/hanging.js.map +1 -0
- package/dist/preview/junctions.d.ts +3 -0
- package/dist/preview/junctions.d.ts.map +1 -0
- package/{src/preview/junctions.ts → dist/preview/junctions.js} +9 -24
- package/dist/preview/junctions.js.map +1 -0
- package/dist/preview/label-layout.d.ts +12 -0
- package/dist/preview/label-layout.d.ts.map +1 -0
- package/{src/preview/label-layout.ts → dist/preview/label-layout.js} +15 -36
- package/dist/preview/label-layout.js.map +1 -0
- package/dist/preview/ports.d.ts +17 -0
- package/dist/preview/ports.d.ts.map +1 -0
- package/{src/preview/ports.ts → dist/preview/ports.js} +10 -37
- package/dist/preview/ports.js.map +1 -0
- package/dist/preview/renderable-wires.d.ts +3 -0
- package/dist/preview/renderable-wires.d.ts.map +1 -0
- package/{src/preview/renderable-wires.ts → dist/preview/renderable-wires.js} +12 -29
- package/dist/preview/renderable-wires.js.map +1 -0
- package/dist/preview/routing.d.ts +4 -0
- package/dist/preview/routing.d.ts.map +1 -0
- package/dist/preview/routing.js +13 -0
- package/dist/preview/routing.js.map +1 -0
- package/dist/preview/snap.d.ts +9 -0
- package/dist/preview/snap.d.ts.map +1 -0
- package/{src/preview/snap.ts → dist/preview/snap.js} +9 -31
- package/dist/preview/snap.js.map +1 -0
- package/dist/preview/symbols/svg-content.d.ts +7 -0
- package/dist/preview/symbols/svg-content.d.ts.map +1 -0
- package/{src/preview/symbols/svg-content.ts → dist/preview/symbols/svg-content.js} +3 -6
- package/dist/preview/symbols/svg-content.js.map +1 -0
- package/dist/preview/symbols.d.ts +7 -0
- package/dist/preview/symbols.d.ts.map +1 -0
- package/{src/preview/symbols.ts → dist/preview/symbols.js} +18 -43
- package/dist/preview/symbols.js.map +1 -0
- package/dist/preview/wire-chains.d.ts +4 -0
- package/dist/preview/wire-chains.d.ts.map +1 -0
- package/{src/preview/wire-chains.ts → dist/preview/wire-chains.js} +37 -37
- package/dist/preview/wire-chains.js.map +1 -0
- package/package.json +3 -3
- package/src/index.ts +0 -255
- package/src/panel/index.ts +0 -39
- package/src/preview/routing.ts +0 -15
- package/src/preview/symbols/analog-switch.svg +0 -17
- package/src/preview/symbols/battery.svg +0 -16
- package/src/preview/symbols/bbd.svg +0 -21
- package/src/preview/symbols/bjt-npn.svg +0 -16
- package/src/preview/symbols/bjt-pnp.svg +0 -17
- package/src/preview/symbols/capacitor-electrolytic.svg +0 -13
- package/src/preview/symbols/capacitor.svg +0 -12
- package/src/preview/symbols/current-source.svg +0 -14
- package/src/preview/symbols/delay-ic.svg +0 -22
- package/src/preview/symbols/diode-schottky.svg +0 -12
- package/src/preview/symbols/diode-zener.svg +0 -12
- package/src/preview/symbols/diode.svg +0 -13
- package/src/preview/symbols/flipflop.svg +0 -20
- package/src/preview/symbols/ground.svg +0 -12
- package/src/preview/symbols/ic-block.svg +0 -20
- package/src/preview/symbols/ic.svg +0 -19
- package/src/preview/symbols/inductor.svg +0 -11
- package/src/preview/symbols/jack-input.svg +0 -16
- package/src/preview/symbols/jack-output.svg +0 -16
- package/src/preview/symbols/jfet-junction-n.svg +0 -17
- package/src/preview/symbols/jfet-n.svg +0 -17
- package/src/preview/symbols/jfet-p.svg +0 -17
- package/src/preview/symbols/label.svg +0 -8
- package/src/preview/symbols/led.svg +0 -18
- package/src/preview/symbols/mosfet-n.svg +0 -21
- package/src/preview/symbols/mosfet-p.svg +0 -21
- package/src/preview/symbols/named-wire.svg +0 -11
- package/src/preview/symbols/opamp.svg +0 -21
- package/src/preview/symbols/optocoupler.svg +0 -30
- package/src/preview/symbols/ota.svg +0 -20
- package/src/preview/symbols/pentode.svg +0 -25
- package/src/preview/symbols/photoresistor.svg +0 -19
- package/src/preview/symbols/port.svg +0 -8
- package/src/preview/symbols/potentiometer.svg +0 -15
- package/src/preview/symbols/power-amp.svg +0 -20
- package/src/preview/symbols/rail.svg +0 -11
- package/src/preview/symbols/regulator.svg +0 -13
- package/src/preview/symbols/relay.svg +0 -20
- package/src/preview/symbols/resistor.svg +0 -11
- package/src/preview/symbols/switch-3pdt.svg +0 -32
- package/src/preview/symbols/switch-rotary.svg +0 -23
- package/src/preview/symbols/switch-spdt.svg +0 -16
- package/src/preview/symbols/switch-spst.svg +0 -14
- package/src/preview/symbols/switch-toggle.svg +0 -14
- package/src/preview/symbols/transformer.svg +0 -17
- package/src/preview/symbols/triode.svg +0 -17
- package/src/preview/symbols/tube-diode.svg +0 -13
- package/src/preview/symbols/unsupported.svg +0 -8
- package/src/preview/symbols/variable-resistor.svg +0 -13
- package/src/preview/symbols/voltage-source.svg +0 -15
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { CircuitDocument, ComponentKind, Point } from '../model/types';
|
|
2
|
+
export type DocumentCommand = Readonly<{
|
|
3
|
+
type: 'delete-component';
|
|
4
|
+
componentId: string;
|
|
5
|
+
}> | Readonly<{
|
|
6
|
+
type: 'rename-component';
|
|
7
|
+
componentId: string;
|
|
8
|
+
newName: string;
|
|
9
|
+
}> | Readonly<{
|
|
10
|
+
type: 'set-property';
|
|
11
|
+
componentId: string;
|
|
12
|
+
propertyName: string;
|
|
13
|
+
value: string;
|
|
14
|
+
}> | Readonly<{
|
|
15
|
+
type: 'remove-property';
|
|
16
|
+
componentId: string;
|
|
17
|
+
propertyName: string;
|
|
18
|
+
}> | Readonly<{
|
|
19
|
+
type: 'move-component';
|
|
20
|
+
componentId: string;
|
|
21
|
+
origin: Point;
|
|
22
|
+
}> | Readonly<{
|
|
23
|
+
type: 'delete-wire';
|
|
24
|
+
wireId: string;
|
|
25
|
+
}> | Readonly<{
|
|
26
|
+
type: 'delete-wires';
|
|
27
|
+
wireIds: readonly string[];
|
|
28
|
+
}> | Readonly<{
|
|
29
|
+
type: 'add-wire';
|
|
30
|
+
from: Point;
|
|
31
|
+
to: Point;
|
|
32
|
+
}> | Readonly<{
|
|
33
|
+
type: 'split-wire';
|
|
34
|
+
wireId: string;
|
|
35
|
+
at: Point;
|
|
36
|
+
}> | Readonly<{
|
|
37
|
+
type: 'merge-wires';
|
|
38
|
+
at: Point;
|
|
39
|
+
}> | Readonly<{
|
|
40
|
+
type: 'tidy-layout';
|
|
41
|
+
}> | Readonly<{
|
|
42
|
+
type: 'add-component';
|
|
43
|
+
kind: ComponentKind;
|
|
44
|
+
origin: Point;
|
|
45
|
+
sourceTypeName?: string | null;
|
|
46
|
+
}>;
|
|
47
|
+
export declare function applyDocumentCommand(doc: CircuitDocument, command: DocumentCommand): CircuitDocument;
|
|
48
|
+
//# sourceMappingURL=commands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/editor/commands.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAa,aAAa,EAAE,KAAK,EAAiB,MAAM,gBAAgB,CAAC;AAKtG,MAAM,MAAM,eAAe,GACrB,QAAQ,CAAC;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,GAC3D,QAAQ,CAAC;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,GAC5E,QAAQ,CAAC;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,GAC5F,QAAQ,CAAC;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC,GAChF,QAAQ,CAAC;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,KAAK,CAAA;CAAE,CAAC,GACxE,QAAQ,CAAC;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,GACjD,QAAQ,CAAC;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAAC,GAC9D,QAAQ,CAAC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,KAAK,CAAC;IAAC,EAAE,EAAE,KAAK,CAAA;CAAE,CAAC,GACtD,QAAQ,CAAC;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,KAAK,CAAA;CAAE,CAAC,GAC3D,QAAQ,CAAC;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,EAAE,EAAE,KAAK,CAAA;CAAE,CAAC,GAC5C,QAAQ,CAAC;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,CAAC,GACjC,QAAQ,CAAC;IACP,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,KAAK,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC,CAAC,CAAC;AAEP,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,eAAe,EAAE,OAAO,EAAE,eAAe,GAAG,eAAe,CA2BpG"}
|
|
@@ -1,29 +1,8 @@
|
|
|
1
|
-
import { parseQuantity } from '../model/quantity';
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
export type DocumentCommand =
|
|
8
|
-
| Readonly<{ type: 'delete-component'; componentId: string }>
|
|
9
|
-
| Readonly<{ type: 'rename-component'; componentId: string; newName: string }>
|
|
10
|
-
| Readonly<{ type: 'set-property'; componentId: string; propertyName: string; value: string }>
|
|
11
|
-
| Readonly<{ type: 'remove-property'; componentId: string; propertyName: string }>
|
|
12
|
-
| Readonly<{ type: 'move-component'; componentId: string; origin: Point }>
|
|
13
|
-
| Readonly<{ type: 'delete-wire'; wireId: string }>
|
|
14
|
-
| Readonly<{ type: 'delete-wires'; wireIds: readonly string[] }>
|
|
15
|
-
| Readonly<{ type: 'add-wire'; from: Point; to: Point }>
|
|
16
|
-
| Readonly<{ type: 'split-wire'; wireId: string; at: Point }>
|
|
17
|
-
| Readonly<{ type: 'merge-wires'; at: Point }>
|
|
18
|
-
| Readonly<{ type: 'tidy-layout' }>
|
|
19
|
-
| Readonly<{
|
|
20
|
-
type: 'add-component';
|
|
21
|
-
kind: ComponentKind;
|
|
22
|
-
origin: Point;
|
|
23
|
-
sourceTypeName?: string | null;
|
|
24
|
-
}>;
|
|
25
|
-
|
|
26
|
-
export function applyDocumentCommand(doc: CircuitDocument, command: DocumentCommand): CircuitDocument {
|
|
1
|
+
import { parseQuantity } from '../model/quantity.js';
|
|
2
|
+
import { isParsedQuantity } from '../model/properties.js';
|
|
3
|
+
import { buildComponent } from './factory.js';
|
|
4
|
+
import { tidyDocumentLayout } from './layout.js';
|
|
5
|
+
export function applyDocumentCommand(doc, command) {
|
|
27
6
|
switch (command.type) {
|
|
28
7
|
case 'delete-component':
|
|
29
8
|
return deleteComponent(doc, command.componentId);
|
|
@@ -51,31 +30,23 @@ export function applyDocumentCommand(doc: CircuitDocument, command: DocumentComm
|
|
|
51
30
|
return addComponent(doc, command.kind, command.origin, command.sourceTypeName ?? null);
|
|
52
31
|
}
|
|
53
32
|
}
|
|
54
|
-
|
|
55
|
-
function addComponent(
|
|
56
|
-
doc: CircuitDocument,
|
|
57
|
-
kind: ComponentKind,
|
|
58
|
-
origin: Point,
|
|
59
|
-
sourceTypeName: string | null,
|
|
60
|
-
): CircuitDocument {
|
|
33
|
+
function addComponent(doc, kind, origin, sourceTypeName) {
|
|
61
34
|
const existingIds = new Set(doc.components.map((c) => c.id));
|
|
62
35
|
const component = buildComponent({ kind, origin, sourceTypeName, existingIds });
|
|
63
36
|
return { ...doc, components: [...doc.components, component] };
|
|
64
37
|
}
|
|
65
|
-
|
|
66
|
-
function moveComponent(doc: CircuitDocument, componentId: string, origin: Point): CircuitDocument {
|
|
38
|
+
function moveComponent(doc, componentId, origin) {
|
|
67
39
|
const target = doc.components.find((c) => c.id === componentId);
|
|
68
40
|
if (target === undefined || (target.origin.x === origin.x && target.origin.y === origin.y)) {
|
|
69
41
|
return doc;
|
|
70
42
|
}
|
|
71
43
|
const dx = origin.x - target.origin.x;
|
|
72
44
|
const dy = origin.y - target.origin.y;
|
|
73
|
-
const terminalMoves = new Map
|
|
45
|
+
const terminalMoves = new Map();
|
|
74
46
|
for (const terminal of target.terminals) {
|
|
75
47
|
const newPosition = { x: terminal.position.x + dx, y: terminal.position.y + dy };
|
|
76
48
|
terminalMoves.set(pointKey(terminal.position), newPosition);
|
|
77
49
|
}
|
|
78
|
-
|
|
79
50
|
const components = doc.components.map((c) => {
|
|
80
51
|
if (c.id !== componentId) {
|
|
81
52
|
return c;
|
|
@@ -86,7 +57,6 @@ function moveComponent(doc: CircuitDocument, componentId: string, origin: Point)
|
|
|
86
57
|
}));
|
|
87
58
|
return { ...c, origin, terminals };
|
|
88
59
|
});
|
|
89
|
-
|
|
90
60
|
const wires = doc.wires.map((w) => {
|
|
91
61
|
const newA = terminalMoves.get(pointKey(w.endpoints[0]));
|
|
92
62
|
const newB = terminalMoves.get(pointKey(w.endpoints[1]));
|
|
@@ -95,34 +65,29 @@ function moveComponent(doc: CircuitDocument, componentId: string, origin: Point)
|
|
|
95
65
|
}
|
|
96
66
|
return {
|
|
97
67
|
...w,
|
|
98
|
-
endpoints: [newA ?? w.endpoints[0], newB ?? w.endpoints[1]]
|
|
68
|
+
endpoints: [newA ?? w.endpoints[0], newB ?? w.endpoints[1]],
|
|
99
69
|
};
|
|
100
70
|
});
|
|
101
|
-
|
|
102
71
|
return { ...doc, components, wires };
|
|
103
72
|
}
|
|
104
|
-
|
|
105
|
-
function pointKey(p: Point): string {
|
|
73
|
+
function pointKey(p) {
|
|
106
74
|
return `${p.x},${p.y}`;
|
|
107
75
|
}
|
|
108
|
-
|
|
109
|
-
function deleteComponent(doc: CircuitDocument, componentId: string): CircuitDocument {
|
|
76
|
+
function deleteComponent(doc, componentId) {
|
|
110
77
|
const components = doc.components.filter((c) => c.id !== componentId);
|
|
111
78
|
if (components.length === doc.components.length) {
|
|
112
79
|
return doc;
|
|
113
80
|
}
|
|
114
81
|
return { ...doc, components };
|
|
115
82
|
}
|
|
116
|
-
|
|
117
|
-
function deleteWire(doc: CircuitDocument, wireId: string): CircuitDocument {
|
|
83
|
+
function deleteWire(doc, wireId) {
|
|
118
84
|
const wires = doc.wires.filter((w) => w.id !== wireId);
|
|
119
85
|
if (wires.length === doc.wires.length) {
|
|
120
86
|
return doc;
|
|
121
87
|
}
|
|
122
88
|
return { ...doc, wires };
|
|
123
89
|
}
|
|
124
|
-
|
|
125
|
-
function deleteWires(doc: CircuitDocument, wireIds: readonly string[]): CircuitDocument {
|
|
90
|
+
function deleteWires(doc, wireIds) {
|
|
126
91
|
if (wireIds.length === 0) {
|
|
127
92
|
return doc;
|
|
128
93
|
}
|
|
@@ -133,17 +98,15 @@ function deleteWires(doc: CircuitDocument, wireIds: readonly string[]): CircuitD
|
|
|
133
98
|
}
|
|
134
99
|
return { ...doc, wires };
|
|
135
100
|
}
|
|
136
|
-
|
|
137
|
-
function addWire(doc: CircuitDocument, from: Point, to: Point): CircuitDocument {
|
|
101
|
+
function addWire(doc, from, to) {
|
|
138
102
|
if (from.x === to.x && from.y === to.y) {
|
|
139
103
|
return doc;
|
|
140
104
|
}
|
|
141
105
|
const id = uniqueWireId(doc);
|
|
142
|
-
const wire = { id, endpoints: [from, to]
|
|
106
|
+
const wire = { id, endpoints: [from, to] };
|
|
143
107
|
return { ...doc, wires: [...doc.wires, wire] };
|
|
144
108
|
}
|
|
145
|
-
|
|
146
|
-
function splitWire(doc: CircuitDocument, wireId: string, at: Point): CircuitDocument {
|
|
109
|
+
function splitWire(doc, wireId, at) {
|
|
147
110
|
const target = doc.wires.find((w) => w.id === wireId);
|
|
148
111
|
if (target === undefined) {
|
|
149
112
|
return doc;
|
|
@@ -159,15 +122,14 @@ function splitWire(doc: CircuitDocument, wireId: string, at: Point): CircuitDocu
|
|
|
159
122
|
taken.add(firstId);
|
|
160
123
|
const secondId = uniqueWireIdFromSet(taken);
|
|
161
124
|
const replacement = [
|
|
162
|
-
{ id: firstId, endpoints: [a, snapped]
|
|
163
|
-
{ id: secondId, endpoints: [snapped, b]
|
|
125
|
+
{ id: firstId, endpoints: [a, snapped] },
|
|
126
|
+
{ id: secondId, endpoints: [snapped, b] },
|
|
164
127
|
];
|
|
165
128
|
const wires = doc.wires.flatMap((w) => (w.id === wireId ? replacement : [w]));
|
|
166
129
|
return { ...doc, wires };
|
|
167
130
|
}
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
const meeting: typeof doc.wires[number][] = [];
|
|
131
|
+
function mergeWires(doc, at) {
|
|
132
|
+
const meeting = [];
|
|
171
133
|
for (const wire of doc.wires) {
|
|
172
134
|
if (pointEquals(wire.endpoints[0], at) || pointEquals(wire.endpoints[1], at)) {
|
|
173
135
|
meeting.push(wire);
|
|
@@ -185,12 +147,13 @@ function mergeWires(doc: CircuitDocument, at: Point): CircuitDocument {
|
|
|
185
147
|
}
|
|
186
148
|
// Reject if another wire's body crosses the corner — that's a T-junction.
|
|
187
149
|
for (const wire of doc.wires) {
|
|
188
|
-
if (wire === meeting[0] || wire === meeting[1])
|
|
150
|
+
if (wire === meeting[0] || wire === meeting[1])
|
|
151
|
+
continue;
|
|
189
152
|
if (pointOnSegmentInterior(at, wire.endpoints[0], wire.endpoints[1])) {
|
|
190
153
|
return doc;
|
|
191
154
|
}
|
|
192
155
|
}
|
|
193
|
-
const [w1, w2] = meeting
|
|
156
|
+
const [w1, w2] = meeting;
|
|
194
157
|
const outer1 = pointEquals(w1.endpoints[0], at) ? w1.endpoints[1] : w1.endpoints[0];
|
|
195
158
|
const outer2 = pointEquals(w2.endpoints[0], at) ? w2.endpoints[1] : w2.endpoints[0];
|
|
196
159
|
if (pointEquals(outer1, outer2)) {
|
|
@@ -202,15 +165,14 @@ function mergeWires(doc: CircuitDocument, at: Point): CircuitDocument {
|
|
|
202
165
|
taken.delete(w1.id);
|
|
203
166
|
taken.delete(w2.id);
|
|
204
167
|
const newId = uniqueWireIdFromSet(taken);
|
|
205
|
-
const replacement = { id: newId, endpoints: [outer1, outer2]
|
|
168
|
+
const replacement = { id: newId, endpoints: [outer1, outer2] };
|
|
206
169
|
const seen = new Set([w1.id, w2.id]);
|
|
207
170
|
const wires = doc.wires
|
|
208
171
|
.filter((w) => !seen.has(w.id))
|
|
209
172
|
.concat([replacement]);
|
|
210
173
|
return { ...doc, wires };
|
|
211
174
|
}
|
|
212
|
-
|
|
213
|
-
function projectOntoSegment(p: Point, a: Point, b: Point): Point {
|
|
175
|
+
function projectOntoSegment(p, a, b) {
|
|
214
176
|
const dx = b.x - a.x;
|
|
215
177
|
const dy = b.y - a.y;
|
|
216
178
|
if (dx === 0 && dy === 0) {
|
|
@@ -223,39 +185,38 @@ function projectOntoSegment(p: Point, a: Point, b: Point): Point {
|
|
|
223
185
|
y: Math.round(a.y + clamped * dy),
|
|
224
186
|
};
|
|
225
187
|
}
|
|
226
|
-
|
|
227
|
-
function pointEquals(a: Point, b: Point): boolean {
|
|
188
|
+
function pointEquals(a, b) {
|
|
228
189
|
return a.x === b.x && a.y === b.y;
|
|
229
190
|
}
|
|
230
|
-
|
|
231
|
-
function pointOnSegmentInterior(p: Point, a: Point, b: Point): boolean {
|
|
191
|
+
function pointOnSegmentInterior(p, a, b) {
|
|
232
192
|
const cross = (p.x - a.x) * (b.y - a.y) - (p.y - a.y) * (b.x - a.x);
|
|
233
|
-
if (cross !== 0)
|
|
193
|
+
if (cross !== 0)
|
|
194
|
+
return false;
|
|
234
195
|
const minX = Math.min(a.x, b.x);
|
|
235
196
|
const maxX = Math.max(a.x, b.x);
|
|
236
197
|
const minY = Math.min(a.y, b.y);
|
|
237
198
|
const maxY = Math.max(a.y, b.y);
|
|
238
|
-
if (minX === maxX && minY === maxY)
|
|
199
|
+
if (minX === maxX && minY === maxY)
|
|
200
|
+
return false;
|
|
239
201
|
const inX = p.x > minX && p.x < maxX;
|
|
240
202
|
const inY = p.y > minY && p.y < maxY;
|
|
241
|
-
if (minX === maxX)
|
|
242
|
-
|
|
203
|
+
if (minX === maxX)
|
|
204
|
+
return inY;
|
|
205
|
+
if (minY === maxY)
|
|
206
|
+
return inX;
|
|
243
207
|
return inX && inY;
|
|
244
208
|
}
|
|
245
|
-
|
|
246
|
-
function uniqueWireId(doc: CircuitDocument): string {
|
|
209
|
+
function uniqueWireId(doc) {
|
|
247
210
|
return uniqueWireIdFromSet(new Set(doc.wires.map((w) => w.id)));
|
|
248
211
|
}
|
|
249
|
-
|
|
250
|
-
function uniqueWireIdFromSet(taken: Set<string>): string {
|
|
212
|
+
function uniqueWireIdFromSet(taken) {
|
|
251
213
|
let n = taken.size + 1;
|
|
252
214
|
while (taken.has(`wire-${n}`)) {
|
|
253
215
|
n += 1;
|
|
254
216
|
}
|
|
255
217
|
return `wire-${n}`;
|
|
256
218
|
}
|
|
257
|
-
|
|
258
|
-
function renameComponent(doc: CircuitDocument, componentId: string, newName: string): CircuitDocument {
|
|
219
|
+
function renameComponent(doc, componentId, newName) {
|
|
259
220
|
const trimmed = newName.trim();
|
|
260
221
|
if (trimmed.length === 0) {
|
|
261
222
|
return doc;
|
|
@@ -270,13 +231,7 @@ function renameComponent(doc: CircuitDocument, componentId: string, newName: str
|
|
|
270
231
|
});
|
|
271
232
|
return changed ? { ...doc, components } : doc;
|
|
272
233
|
}
|
|
273
|
-
|
|
274
|
-
function setProperty(
|
|
275
|
-
doc: CircuitDocument,
|
|
276
|
-
componentId: string,
|
|
277
|
-
propertyName: string,
|
|
278
|
-
rawValue: string,
|
|
279
|
-
): CircuitDocument {
|
|
234
|
+
function setProperty(doc, componentId, propertyName, rawValue) {
|
|
280
235
|
const trimmedName = propertyName.trim();
|
|
281
236
|
if (trimmedName.length === 0) {
|
|
282
237
|
return doc;
|
|
@@ -286,7 +241,7 @@ function setProperty(
|
|
|
286
241
|
if (c.id !== componentId) {
|
|
287
242
|
return c;
|
|
288
243
|
}
|
|
289
|
-
const next
|
|
244
|
+
const next = nextValue(c, trimmedName, rawValue);
|
|
290
245
|
if (propertyEquals(c.properties[trimmedName], next)) {
|
|
291
246
|
return c;
|
|
292
247
|
}
|
|
@@ -295,8 +250,7 @@ function setProperty(
|
|
|
295
250
|
});
|
|
296
251
|
return changed ? { ...doc, components } : doc;
|
|
297
252
|
}
|
|
298
|
-
|
|
299
|
-
function removeProperty(doc: CircuitDocument, componentId: string, propertyName: string): CircuitDocument {
|
|
253
|
+
function removeProperty(doc, componentId, propertyName) {
|
|
300
254
|
let changed = false;
|
|
301
255
|
const components = doc.components.map((c) => {
|
|
302
256
|
if (c.id !== componentId || c.properties[propertyName] === undefined) {
|
|
@@ -308,8 +262,7 @@ function removeProperty(doc: CircuitDocument, componentId: string, propertyName:
|
|
|
308
262
|
});
|
|
309
263
|
return changed ? { ...doc, components } : doc;
|
|
310
264
|
}
|
|
311
|
-
|
|
312
|
-
function nextValue(component: Component, propertyName: string, rawValue: string): PropertyValue {
|
|
265
|
+
function nextValue(component, propertyName, rawValue) {
|
|
313
266
|
const existing = component.properties[propertyName];
|
|
314
267
|
const existingWasQuantity = isParsedQuantity(existing);
|
|
315
268
|
if (existingWasQuantity) {
|
|
@@ -325,8 +278,7 @@ function nextValue(component: Component, propertyName: string, rawValue: string)
|
|
|
325
278
|
}
|
|
326
279
|
return rawValue;
|
|
327
280
|
}
|
|
328
|
-
|
|
329
|
-
function propertyEquals(a: PropertyValue | undefined, b: PropertyValue): boolean {
|
|
281
|
+
function propertyEquals(a, b) {
|
|
330
282
|
if (a === undefined) {
|
|
331
283
|
return false;
|
|
332
284
|
}
|
|
@@ -342,3 +294,4 @@ function propertyEquals(a: PropertyValue | undefined, b: PropertyValue): boolean
|
|
|
342
294
|
}
|
|
343
295
|
return false;
|
|
344
296
|
}
|
|
297
|
+
//# sourceMappingURL=commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/editor/commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Component, ComponentKind, Point } from '../model/types';
|
|
2
|
+
export type CreateComponentArgs = Readonly<{
|
|
3
|
+
kind: ComponentKind;
|
|
4
|
+
origin: Point;
|
|
5
|
+
sourceTypeName?: string | null;
|
|
6
|
+
existingIds?: ReadonlySet<string>;
|
|
7
|
+
name?: string;
|
|
8
|
+
}>;
|
|
9
|
+
export declare function buildComponent(args: CreateComponentArgs): Component;
|
|
10
|
+
//# sourceMappingURL=factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/editor/factory.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEtE,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC;IACvC,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,KAAK,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC,CAAC;AAEH,wBAAgB,cAAc,CAAC,IAAI,EAAE,mBAAmB,GAAG,SAAS,CAkBnE"}
|
|
@@ -1,16 +1,6 @@
|
|
|
1
|
-
import { defaultDefForKind, lookupSchxDef
|
|
2
|
-
import { mapTerminal } from '../formats/schx/transforms';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
export type CreateComponentArgs = Readonly<{
|
|
6
|
-
kind: ComponentKind;
|
|
7
|
-
origin: Point;
|
|
8
|
-
sourceTypeName?: string | null;
|
|
9
|
-
existingIds?: ReadonlySet<string>;
|
|
10
|
-
name?: string;
|
|
11
|
-
}>;
|
|
12
|
-
|
|
13
|
-
export function buildComponent(args: CreateComponentArgs): Component {
|
|
1
|
+
import { defaultDefForKind, lookupSchxDef } from '../formats/schx/catalog.js';
|
|
2
|
+
import { mapTerminal } from '../formats/schx/transforms.js';
|
|
3
|
+
export function buildComponent(args) {
|
|
14
4
|
const def = resolveDef(args.kind, args.sourceTypeName ?? null);
|
|
15
5
|
const terminals = def.terminals.map((t) => ({
|
|
16
6
|
name: t.name,
|
|
@@ -29,8 +19,7 @@ export function buildComponent(args: CreateComponentArgs): Component {
|
|
|
29
19
|
sourceTypeName: args.sourceTypeName ?? null,
|
|
30
20
|
};
|
|
31
21
|
}
|
|
32
|
-
|
|
33
|
-
function defaultPropertiesForKind(kind: ComponentKind): Readonly<Record<string, string>> {
|
|
22
|
+
function defaultPropertiesForKind(kind) {
|
|
34
23
|
// Labels are pure annotation — without a Text property they render their
|
|
35
24
|
// auto-generated id (e.g. "LBL1") which is confusing. Seed Text so the
|
|
36
25
|
// Inspector has something editable the moment the label lands.
|
|
@@ -39,8 +28,7 @@ function defaultPropertiesForKind(kind: ComponentKind): Readonly<Record<string,
|
|
|
39
28
|
}
|
|
40
29
|
return {};
|
|
41
30
|
}
|
|
42
|
-
|
|
43
|
-
function resolveDef(kind: ComponentKind, sourceTypeName: string | null): SchxComponentDef {
|
|
31
|
+
function resolveDef(kind, sourceTypeName) {
|
|
44
32
|
const short = shortName(sourceTypeName);
|
|
45
33
|
if (short !== null) {
|
|
46
34
|
const byShort = lookupSchxDef(short);
|
|
@@ -58,8 +46,7 @@ function resolveDef(kind: ComponentKind, sourceTypeName: string | null): SchxCom
|
|
|
58
46
|
}
|
|
59
47
|
return FALLBACK_DEF;
|
|
60
48
|
}
|
|
61
|
-
|
|
62
|
-
function shortName(fullType: string | null): string | null {
|
|
49
|
+
function shortName(fullType) {
|
|
63
50
|
if (fullType === null) {
|
|
64
51
|
return null;
|
|
65
52
|
}
|
|
@@ -69,8 +56,7 @@ function shortName(fullType: string | null): string | null {
|
|
|
69
56
|
}
|
|
70
57
|
return fullType;
|
|
71
58
|
}
|
|
72
|
-
|
|
73
|
-
const ID_PREFIX: Readonly<Record<ComponentKind, string>> = {
|
|
59
|
+
const ID_PREFIX = {
|
|
74
60
|
resistor: 'R',
|
|
75
61
|
capacitor: 'C',
|
|
76
62
|
inductor: 'L',
|
|
@@ -107,8 +93,7 @@ const ID_PREFIX: Readonly<Record<ComponentKind, string>> = {
|
|
|
107
93
|
port: 'P',
|
|
108
94
|
unsupported: 'X',
|
|
109
95
|
};
|
|
110
|
-
|
|
111
|
-
function uniqueId(kind: ComponentKind, existing: ReadonlySet<string>): string {
|
|
96
|
+
function uniqueId(kind, existing) {
|
|
112
97
|
const prefix = ID_PREFIX[kind];
|
|
113
98
|
let n = 1;
|
|
114
99
|
while (existing.has(`${prefix}${n}`)) {
|
|
@@ -116,15 +101,13 @@ function uniqueId(kind: ComponentKind, existing: ReadonlySet<string>): string {
|
|
|
116
101
|
}
|
|
117
102
|
return `${prefix}${n}`;
|
|
118
103
|
}
|
|
119
|
-
|
|
120
|
-
const FALLBACK_DEF: SchxComponentDef = {
|
|
104
|
+
const FALLBACK_DEF = {
|
|
121
105
|
shortType: 'Unknown',
|
|
122
106
|
kind: 'unsupported',
|
|
123
107
|
terminals: [],
|
|
124
108
|
quantityProps: [],
|
|
125
109
|
};
|
|
126
|
-
|
|
127
|
-
const EDITOR_DEFAULT_DEFS: Partial<Record<ComponentKind, SchxComponentDef>> = {
|
|
110
|
+
const EDITOR_DEFAULT_DEFS = {
|
|
128
111
|
led: {
|
|
129
112
|
shortType: 'LED',
|
|
130
113
|
kind: 'led',
|
|
@@ -146,3 +129,4 @@ const EDITOR_DEFAULT_DEFS: Partial<Record<ComponentKind, SchxComponentDef>> = {
|
|
|
146
129
|
quantityProps: [],
|
|
147
130
|
},
|
|
148
131
|
};
|
|
132
|
+
//# sourceMappingURL=factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/editor/factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { CircuitDocument } from '../model/types';
|
|
2
|
+
import { type DocumentCommand } from './commands';
|
|
3
|
+
export type EditorState = Readonly<{
|
|
4
|
+
document: CircuitDocument;
|
|
5
|
+
selectedId: string | null;
|
|
6
|
+
selectedWireId: string | null;
|
|
7
|
+
past: readonly CircuitDocument[];
|
|
8
|
+
future: readonly CircuitDocument[];
|
|
9
|
+
}>;
|
|
10
|
+
export type EditorCommand = DocumentCommand | Readonly<{
|
|
11
|
+
type: 'replace-document';
|
|
12
|
+
document: CircuitDocument;
|
|
13
|
+
}> | Readonly<{
|
|
14
|
+
type: 'select';
|
|
15
|
+
componentId: string | null;
|
|
16
|
+
}> | Readonly<{
|
|
17
|
+
type: 'select-wire';
|
|
18
|
+
wireId: string | null;
|
|
19
|
+
}> | Readonly<{
|
|
20
|
+
type: 'undo';
|
|
21
|
+
}> | Readonly<{
|
|
22
|
+
type: 'redo';
|
|
23
|
+
}>;
|
|
24
|
+
export declare function createEditorState(document: CircuitDocument): EditorState;
|
|
25
|
+
export declare function applyEditorCommand(state: EditorState, command: EditorCommand): EditorState;
|
|
26
|
+
export declare function canUndo(state: EditorState): boolean;
|
|
27
|
+
export declare function canRedo(state: EditorState): boolean;
|
|
28
|
+
export declare function resetEditorState(document: CircuitDocument): EditorState;
|
|
29
|
+
//# sourceMappingURL=history.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/editor/history.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAwB,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAExE,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC;IAC/B,QAAQ,EAAE,eAAe,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,IAAI,EAAE,SAAS,eAAe,EAAE,CAAC;IACjC,MAAM,EAAE,SAAS,eAAe,EAAE,CAAC;CACtC,CAAC,CAAC;AAEH,MAAM,MAAM,aAAa,GACnB,eAAe,GACf,QAAQ,CAAC;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,QAAQ,EAAE,eAAe,CAAA;CAAE,CAAC,GACjE,QAAQ,CAAC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,GACxD,QAAQ,CAAC;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,GACxD,QAAQ,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GAC1B,QAAQ,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAIjC,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,eAAe,GAAG,WAAW,CAQxE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,GAAG,WAAW,CAqB1F;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAEnD;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAEnD;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,eAAe,GAAG,WAAW,CAEvE"}
|
|
@@ -1,25 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { applyDocumentCommand, type DocumentCommand } from './commands';
|
|
3
|
-
|
|
4
|
-
export type EditorState = Readonly<{
|
|
5
|
-
document: CircuitDocument;
|
|
6
|
-
selectedId: string | null;
|
|
7
|
-
selectedWireId: string | null;
|
|
8
|
-
past: readonly CircuitDocument[];
|
|
9
|
-
future: readonly CircuitDocument[];
|
|
10
|
-
}>;
|
|
11
|
-
|
|
12
|
-
export type EditorCommand =
|
|
13
|
-
| DocumentCommand
|
|
14
|
-
| Readonly<{ type: 'replace-document'; document: CircuitDocument }>
|
|
15
|
-
| Readonly<{ type: 'select'; componentId: string | null }>
|
|
16
|
-
| Readonly<{ type: 'select-wire'; wireId: string | null }>
|
|
17
|
-
| Readonly<{ type: 'undo' }>
|
|
18
|
-
| Readonly<{ type: 'redo' }>;
|
|
19
|
-
|
|
1
|
+
import { applyDocumentCommand } from './commands.js';
|
|
20
2
|
const HISTORY_LIMIT = 200;
|
|
21
|
-
|
|
22
|
-
export function createEditorState(document: CircuitDocument): EditorState {
|
|
3
|
+
export function createEditorState(document) {
|
|
23
4
|
return {
|
|
24
5
|
document,
|
|
25
6
|
selectedId: null,
|
|
@@ -28,8 +9,7 @@ export function createEditorState(document: CircuitDocument): EditorState {
|
|
|
28
9
|
future: [],
|
|
29
10
|
};
|
|
30
11
|
}
|
|
31
|
-
|
|
32
|
-
export function applyEditorCommand(state: EditorState, command: EditorCommand): EditorState {
|
|
12
|
+
export function applyEditorCommand(state, command) {
|
|
33
13
|
switch (command.type) {
|
|
34
14
|
case 'select':
|
|
35
15
|
if (state.selectedId === command.componentId && state.selectedWireId === null) {
|
|
@@ -51,20 +31,16 @@ export function applyEditorCommand(state: EditorState, command: EditorCommand):
|
|
|
51
31
|
return applyAndPush(state, command);
|
|
52
32
|
}
|
|
53
33
|
}
|
|
54
|
-
|
|
55
|
-
export function canUndo(state: EditorState): boolean {
|
|
34
|
+
export function canUndo(state) {
|
|
56
35
|
return state.past.length > 0;
|
|
57
36
|
}
|
|
58
|
-
|
|
59
|
-
export function canRedo(state: EditorState): boolean {
|
|
37
|
+
export function canRedo(state) {
|
|
60
38
|
return state.future.length > 0;
|
|
61
39
|
}
|
|
62
|
-
|
|
63
|
-
export function resetEditorState(document: CircuitDocument): EditorState {
|
|
40
|
+
export function resetEditorState(document) {
|
|
64
41
|
return createEditorState(document);
|
|
65
42
|
}
|
|
66
|
-
|
|
67
|
-
function applyAndPush(state: EditorState, command: DocumentCommand): EditorState {
|
|
43
|
+
function applyAndPush(state, command) {
|
|
68
44
|
const nextDocument = applyDocumentCommand(state.document, command);
|
|
69
45
|
if (nextDocument === state.document) {
|
|
70
46
|
return state;
|
|
@@ -82,8 +58,7 @@ function applyAndPush(state: EditorState, command: DocumentCommand): EditorState
|
|
|
82
58
|
future: [],
|
|
83
59
|
};
|
|
84
60
|
}
|
|
85
|
-
|
|
86
|
-
function replaceDocument(state: EditorState, document: CircuitDocument): EditorState {
|
|
61
|
+
function replaceDocument(state, document) {
|
|
87
62
|
if (document === state.document) {
|
|
88
63
|
return state;
|
|
89
64
|
}
|
|
@@ -96,11 +71,7 @@ function replaceDocument(state: EditorState, document: CircuitDocument): EditorS
|
|
|
96
71
|
future: [],
|
|
97
72
|
};
|
|
98
73
|
}
|
|
99
|
-
|
|
100
|
-
function wireSelectionAfterCommand(
|
|
101
|
-
selectedWireId: string | null,
|
|
102
|
-
command: DocumentCommand,
|
|
103
|
-
): string | null {
|
|
74
|
+
function wireSelectionAfterCommand(selectedWireId, command) {
|
|
104
75
|
if (selectedWireId === null) {
|
|
105
76
|
return null;
|
|
106
77
|
}
|
|
@@ -112,8 +83,7 @@ function wireSelectionAfterCommand(
|
|
|
112
83
|
}
|
|
113
84
|
return selectedWireId;
|
|
114
85
|
}
|
|
115
|
-
|
|
116
|
-
function undo(state: EditorState): EditorState {
|
|
86
|
+
function undo(state) {
|
|
117
87
|
const previous = state.past[state.past.length - 1];
|
|
118
88
|
if (previous === undefined) {
|
|
119
89
|
return state;
|
|
@@ -126,8 +96,7 @@ function undo(state: EditorState): EditorState {
|
|
|
126
96
|
future: [state.document, ...state.future],
|
|
127
97
|
};
|
|
128
98
|
}
|
|
129
|
-
|
|
130
|
-
function redo(state: EditorState): EditorState {
|
|
99
|
+
function redo(state) {
|
|
131
100
|
const next = state.future[0];
|
|
132
101
|
if (next === undefined) {
|
|
133
102
|
return state;
|
|
@@ -140,3 +109,4 @@ function redo(state: EditorState): EditorState {
|
|
|
140
109
|
future: state.future.slice(1),
|
|
141
110
|
};
|
|
142
111
|
}
|
|
112
|
+
//# sourceMappingURL=history.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/editor/history.ts"],"names":[],"mappings":"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"}
|