@tscircuit/core 0.0.375 → 0.0.377
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.d.ts +2 -1
- package/dist/index.js +34 -3
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ import * as _tscircuit_layout from '@tscircuit/layout';
|
|
|
12
12
|
import { ConnectivityMap } from 'circuit-json-to-connectivity-map';
|
|
13
13
|
import { GraphicsObject } from 'graphics-debug';
|
|
14
14
|
|
|
15
|
-
declare const orderedRenderPhases: readonly ["ReactSubtreesRender", "InitializePortsFromChildren", "CreateNetsFromProps", "CreateTracesFromProps", "CreateTraceHintsFromProps", "SourceRender", "SourceParentAttachment", "PortMatching", "SourceTraceRender", "SourceAddConnectivityMapKey", "SchematicComponentRender", "SchematicPortRender", "SchematicLayout", "SchematicTraceRender", "PcbComponentRender", "PcbPrimitiveRender", "PcbFootprintLayout", "PcbPortRender", "PcbPortAttachment", "PcbLayout", "PcbComponentSizeCalculation", "PcbBoardAutoSize", "PcbTraceRender", "PcbTraceHintRender", "PcbRouteNetIslands", "PcbDesignRuleChecks", "CadModelRender", "PartsEngineRender"];
|
|
15
|
+
declare const orderedRenderPhases: readonly ["ReactSubtreesRender", "InitializePortsFromChildren", "CreateNetsFromProps", "CreateTracesFromProps", "CreateTraceHintsFromProps", "SourceRender", "SourceParentAttachment", "PortMatching", "OptimizeSelectorCache", "SourceTraceRender", "SourceAddConnectivityMapKey", "SchematicComponentRender", "SchematicPortRender", "SchematicLayout", "SchematicTraceRender", "PcbComponentRender", "PcbPrimitiveRender", "PcbFootprintLayout", "PcbPortRender", "PcbPortAttachment", "PcbLayout", "PcbComponentSizeCalculation", "PcbBoardAutoSize", "PcbTraceRender", "PcbTraceHintRender", "PcbRouteNetIslands", "PcbDesignRuleChecks", "CadModelRender", "PartsEngineRender"];
|
|
16
16
|
type RenderPhase = (typeof orderedRenderPhases)[number];
|
|
17
17
|
type RenderPhaseFn<K extends RenderPhase = RenderPhase> = `doInitial${K}` | `update${K}` | `remove${K}`;
|
|
18
18
|
type RenderPhaseStates = Record<RenderPhase, {
|
|
@@ -427,6 +427,7 @@ declare abstract class PrimitiveComponent<ZodProps extends ZodType = any> extend
|
|
|
427
427
|
doesSelectorMatch(selector: string): boolean;
|
|
428
428
|
getSubcircuit(): ISubcircuit;
|
|
429
429
|
getGroup(): IGroup | null;
|
|
430
|
+
doInitialOptimizeSelectorCache(): void;
|
|
430
431
|
_cachedSelectAllQueries: Map<string, PrimitiveComponent[]>;
|
|
431
432
|
selectAll(selectorRaw: string): PrimitiveComponent[];
|
|
432
433
|
_cachedSelectOneQueries: Map<string, PrimitiveComponent | null>;
|
package/dist/index.js
CHANGED
|
@@ -74,6 +74,7 @@ var orderedRenderPhases = [
|
|
|
74
74
|
"SourceRender",
|
|
75
75
|
"SourceParentAttachment",
|
|
76
76
|
"PortMatching",
|
|
77
|
+
"OptimizeSelectorCache",
|
|
77
78
|
"SourceTraceRender",
|
|
78
79
|
"SourceAddConnectivityMapKey",
|
|
79
80
|
"SchematicComponentRender",
|
|
@@ -709,7 +710,7 @@ var cssSelectPrimitiveComponentAdapterOnlySubcircuits = {
|
|
|
709
710
|
|
|
710
711
|
// lib/components/base-components/PrimitiveComponent/preprocessSelector.ts
|
|
711
712
|
var preprocessSelector = (selector) => {
|
|
712
|
-
return selector.replace(/ pin/g, " port").replace(/ subcircuit\./g, " group[isSubcircuit=true]").trim();
|
|
713
|
+
return selector.replace(/ pin/g, " port").replace(/ subcircuit\./g, " group[isSubcircuit=true]").replace(/([^ ])\>([^ ])/g, "$1 > $2").trim();
|
|
713
714
|
};
|
|
714
715
|
|
|
715
716
|
// lib/components/base-components/PrimitiveComponent/PrimitiveComponent.ts
|
|
@@ -1122,6 +1123,36 @@ var PrimitiveComponent2 = class extends Renderable {
|
|
|
1122
1123
|
if (this.isGroup) return this;
|
|
1123
1124
|
return this.parent?.getGroup?.() ?? null;
|
|
1124
1125
|
}
|
|
1126
|
+
doInitialOptimizeSelectorCache() {
|
|
1127
|
+
if (!this.isSubcircuit) return;
|
|
1128
|
+
const ports = this.selectAll("port");
|
|
1129
|
+
for (const port of ports) {
|
|
1130
|
+
const parentAliases = port.parent?.getNameAndAliases();
|
|
1131
|
+
const portAliases = port.getNameAndAliases();
|
|
1132
|
+
if (!parentAliases) continue;
|
|
1133
|
+
for (const parentAlias of parentAliases) {
|
|
1134
|
+
for (const portAlias of portAliases) {
|
|
1135
|
+
const selectors = [
|
|
1136
|
+
`.${parentAlias} > .${portAlias}`,
|
|
1137
|
+
`.${parentAlias} .${portAlias}`
|
|
1138
|
+
];
|
|
1139
|
+
for (const selector of selectors) {
|
|
1140
|
+
const ar = this._cachedSelectAllQueries.get(selector);
|
|
1141
|
+
if (ar) {
|
|
1142
|
+
ar.push(port);
|
|
1143
|
+
} else {
|
|
1144
|
+
this._cachedSelectAllQueries.set(selector, [port]);
|
|
1145
|
+
}
|
|
1146
|
+
}
|
|
1147
|
+
}
|
|
1148
|
+
}
|
|
1149
|
+
}
|
|
1150
|
+
for (const [selector, ports2] of this._cachedSelectAllQueries.entries()) {
|
|
1151
|
+
if (ports2.length === 1) {
|
|
1152
|
+
this._cachedSelectOneQueries.set(selector, ports2[0]);
|
|
1153
|
+
}
|
|
1154
|
+
}
|
|
1155
|
+
}
|
|
1125
1156
|
_cachedSelectAllQueries = /* @__PURE__ */ new Map();
|
|
1126
1157
|
selectAll(selectorRaw) {
|
|
1127
1158
|
if (this._cachedSelectAllQueries.has(selectorRaw)) {
|
|
@@ -7637,7 +7668,7 @@ import { identity as identity4 } from "transformation-matrix";
|
|
|
7637
7668
|
var package_default = {
|
|
7638
7669
|
name: "@tscircuit/core",
|
|
7639
7670
|
type: "module",
|
|
7640
|
-
version: "0.0.
|
|
7671
|
+
version: "0.0.376",
|
|
7641
7672
|
types: "dist/index.d.ts",
|
|
7642
7673
|
main: "dist/index.js",
|
|
7643
7674
|
module: "dist/index.js",
|
|
@@ -7672,7 +7703,6 @@ var package_default = {
|
|
|
7672
7703
|
"chokidar-cli": "^3.0.0",
|
|
7673
7704
|
"circuit-to-svg": "^0.0.113",
|
|
7674
7705
|
concurrently: "^9.1.2",
|
|
7675
|
-
"css-select": "^5.1.0",
|
|
7676
7706
|
debug: "^4.3.6",
|
|
7677
7707
|
"graphics-debug": "^0.0.4",
|
|
7678
7708
|
howfat: "^0.3.8",
|
|
@@ -7701,6 +7731,7 @@ var package_default = {
|
|
|
7701
7731
|
"circuit-json-to-connectivity-map": "^0.0.20",
|
|
7702
7732
|
"format-si-unit": "^0.0.3",
|
|
7703
7733
|
nanoid: "^5.0.7",
|
|
7734
|
+
"css-select": "^5.1.0",
|
|
7704
7735
|
"performance-now": "^2.1.0",
|
|
7705
7736
|
"react-reconciler": "^0.31.0",
|
|
7706
7737
|
"react-reconciler-18": "npm:react-reconciler@0.29.2",
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tscircuit/core",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.377",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"module": "dist/index.js",
|
|
@@ -36,7 +36,6 @@
|
|
|
36
36
|
"chokidar-cli": "^3.0.0",
|
|
37
37
|
"circuit-to-svg": "^0.0.113",
|
|
38
38
|
"concurrently": "^9.1.2",
|
|
39
|
-
"css-select": "^5.1.0",
|
|
40
39
|
"debug": "^4.3.6",
|
|
41
40
|
"graphics-debug": "^0.0.4",
|
|
42
41
|
"howfat": "^0.3.8",
|
|
@@ -65,6 +64,7 @@
|
|
|
65
64
|
"circuit-json-to-connectivity-map": "^0.0.20",
|
|
66
65
|
"format-si-unit": "^0.0.3",
|
|
67
66
|
"nanoid": "^5.0.7",
|
|
67
|
+
"css-select": "^5.1.0",
|
|
68
68
|
"performance-now": "^2.1.0",
|
|
69
69
|
"react-reconciler": "^0.31.0",
|
|
70
70
|
"react-reconciler-18": "npm:react-reconciler@0.29.2",
|