@skillpet/circuit 0.5.0

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.
Files changed (332) hide show
  1. package/README.md +131 -0
  2. package/dist/circuit.bundle.js +31103 -0
  3. package/dist/circuit.bundle.js.map +7 -0
  4. package/dist/circuit.bundle.min.js +273 -0
  5. package/dist/circuit.bundle.min.js.map +7 -0
  6. package/dist/circuit.esm.js +31069 -0
  7. package/dist/circuit.esm.js.map +7 -0
  8. package/dist/config.d.ts +26 -0
  9. package/dist/config.d.ts.map +1 -0
  10. package/dist/config.js +23 -0
  11. package/dist/config.js.map +1 -0
  12. package/dist/container.d.ts +32 -0
  13. package/dist/container.d.ts.map +1 -0
  14. package/dist/container.js +101 -0
  15. package/dist/container.js.map +1 -0
  16. package/dist/drawing-gradient.d.ts +13 -0
  17. package/dist/drawing-gradient.d.ts.map +1 -0
  18. package/dist/drawing-gradient.js +39 -0
  19. package/dist/drawing-gradient.js.map +1 -0
  20. package/dist/drawing-stack.d.ts +16 -0
  21. package/dist/drawing-stack.d.ts.map +1 -0
  22. package/dist/drawing-stack.js +32 -0
  23. package/dist/drawing-stack.js.map +1 -0
  24. package/dist/drawing-transition.d.ts +34 -0
  25. package/dist/drawing-transition.d.ts.map +1 -0
  26. package/dist/drawing-transition.js +181 -0
  27. package/dist/drawing-transition.js.map +1 -0
  28. package/dist/drawing.d.ts +117 -0
  29. package/dist/drawing.d.ts.map +1 -0
  30. package/dist/drawing.js +337 -0
  31. package/dist/drawing.js.map +1 -0
  32. package/dist/element-label.d.ts +54 -0
  33. package/dist/element-label.d.ts.map +1 -0
  34. package/dist/element-label.js +377 -0
  35. package/dist/element-label.js.map +1 -0
  36. package/dist/element-style.d.ts +34 -0
  37. package/dist/element-style.d.ts.map +1 -0
  38. package/dist/element-style.js +51 -0
  39. package/dist/element-style.js.map +1 -0
  40. package/dist/element.d.ts +114 -0
  41. package/dist/element.d.ts.map +1 -0
  42. package/dist/element.js +514 -0
  43. package/dist/element.js.map +1 -0
  44. package/dist/element2term.d.ts +25 -0
  45. package/dist/element2term.d.ts.map +1 -0
  46. package/dist/element2term.js +245 -0
  47. package/dist/element2term.js.map +1 -0
  48. package/dist/elements/cables.d.ts +22 -0
  49. package/dist/elements/cables.d.ts.map +1 -0
  50. package/dist/elements/cables.js +100 -0
  51. package/dist/elements/cables.js.map +1 -0
  52. package/dist/elements/capacitor.d.ts +23 -0
  53. package/dist/elements/capacitor.d.ts.map +1 -0
  54. package/dist/elements/capacitor.js +93 -0
  55. package/dist/elements/capacitor.js.map +1 -0
  56. package/dist/elements/compound.d.ts +41 -0
  57. package/dist/elements/compound.d.ts.map +1 -0
  58. package/dist/elements/compound.js +266 -0
  59. package/dist/elements/compound.js.map +1 -0
  60. package/dist/elements/connectors.d.ts +81 -0
  61. package/dist/elements/connectors.d.ts.map +1 -0
  62. package/dist/elements/connectors.js +578 -0
  63. package/dist/elements/connectors.js.map +1 -0
  64. package/dist/elements/crystal.d.ts +8 -0
  65. package/dist/elements/crystal.d.ts.map +1 -0
  66. package/dist/elements/crystal.js +31 -0
  67. package/dist/elements/crystal.js.map +1 -0
  68. package/dist/elements/diode-more.d.ts +36 -0
  69. package/dist/elements/diode-more.d.ts.map +1 -0
  70. package/dist/elements/diode-more.js +233 -0
  71. package/dist/elements/diode-more.js.map +1 -0
  72. package/dist/elements/diode.d.ts +14 -0
  73. package/dist/elements/diode.d.ts.map +1 -0
  74. package/dist/elements/diode.js +58 -0
  75. package/dist/elements/diode.js.map +1 -0
  76. package/dist/elements/element-compound.d.ts +16 -0
  77. package/dist/elements/element-compound.d.ts.map +1 -0
  78. package/dist/elements/element-compound.js +68 -0
  79. package/dist/elements/element-compound.js.map +1 -0
  80. package/dist/elements/element-drawing.d.ts +10 -0
  81. package/dist/elements/element-drawing.d.ts.map +1 -0
  82. package/dist/elements/element-drawing.js +16 -0
  83. package/dist/elements/element-drawing.js.map +1 -0
  84. package/dist/elements/ground.d.ts +6 -0
  85. package/dist/elements/ground.d.ts.map +1 -0
  86. package/dist/elements/ground.js +30 -0
  87. package/dist/elements/ground.js.map +1 -0
  88. package/dist/elements/ic.d.ts +169 -0
  89. package/dist/elements/ic.d.ts.map +1 -0
  90. package/dist/elements/ic.js +816 -0
  91. package/dist/elements/ic.js.map +1 -0
  92. package/dist/elements/image.d.ts +9 -0
  93. package/dist/elements/image.d.ts.map +1 -0
  94. package/dist/elements/image.js +27 -0
  95. package/dist/elements/image.js.map +1 -0
  96. package/dist/elements/inductor.d.ts +15 -0
  97. package/dist/elements/inductor.d.ts.map +1 -0
  98. package/dist/elements/inductor.js +111 -0
  99. package/dist/elements/inductor.js.map +1 -0
  100. package/dist/elements/line.d.ts +8 -0
  101. package/dist/elements/line.d.ts.map +1 -0
  102. package/dist/elements/line.js +14 -0
  103. package/dist/elements/line.js.map +1 -0
  104. package/dist/elements/lines-arc-labels.d.ts +223 -0
  105. package/dist/elements/lines-arc-labels.d.ts.map +1 -0
  106. package/dist/elements/lines-arc-labels.js +822 -0
  107. package/dist/elements/lines-arc-labels.js.map +1 -0
  108. package/dist/elements/lines-elements.d.ts +89 -0
  109. package/dist/elements/lines-elements.d.ts.map +1 -0
  110. package/dist/elements/lines-elements.js +271 -0
  111. package/dist/elements/lines-elements.js.map +1 -0
  112. package/dist/elements/misc-elements.d.ts +25 -0
  113. package/dist/elements/misc-elements.d.ts.map +1 -0
  114. package/dist/elements/misc-elements.js +160 -0
  115. package/dist/elements/misc-elements.js.map +1 -0
  116. package/dist/elements/oneterm.d.ts +29 -0
  117. package/dist/elements/oneterm.d.ts.map +1 -0
  118. package/dist/elements/oneterm.js +163 -0
  119. package/dist/elements/oneterm.js.map +1 -0
  120. package/dist/elements/opamp.d.ts +11 -0
  121. package/dist/elements/opamp.d.ts.map +1 -0
  122. package/dist/elements/opamp.js +72 -0
  123. package/dist/elements/opamp.js.map +1 -0
  124. package/dist/elements/outlets.d.ts +39 -0
  125. package/dist/elements/outlets.d.ts.map +1 -0
  126. package/dist/elements/outlets.js +285 -0
  127. package/dist/elements/outlets.js.map +1 -0
  128. package/dist/elements/resistor-more.d.ts +42 -0
  129. package/dist/elements/resistor-more.d.ts.map +1 -0
  130. package/dist/elements/resistor-more.js +171 -0
  131. package/dist/elements/resistor-more.js.map +1 -0
  132. package/dist/elements/resistor.d.ts +6 -0
  133. package/dist/elements/resistor.d.ts.map +1 -0
  134. package/dist/elements/resistor.js +22 -0
  135. package/dist/elements/resistor.js.map +1 -0
  136. package/dist/elements/source-v.d.ts +3 -0
  137. package/dist/elements/source-v.d.ts.map +1 -0
  138. package/dist/elements/source-v.js +3 -0
  139. package/dist/elements/source-v.js.map +1 -0
  140. package/dist/elements/sources.d.ts +111 -0
  141. package/dist/elements/sources.d.ts.map +1 -0
  142. package/dist/elements/sources.js +519 -0
  143. package/dist/elements/sources.js.map +1 -0
  144. package/dist/elements/switches.d.ts +66 -0
  145. package/dist/elements/switches.d.ts.map +1 -0
  146. package/dist/elements/switches.js +328 -0
  147. package/dist/elements/switches.js.map +1 -0
  148. package/dist/elements/transformer.d.ts +17 -0
  149. package/dist/elements/transformer.d.ts.map +1 -0
  150. package/dist/elements/transformer.js +184 -0
  151. package/dist/elements/transformer.js.map +1 -0
  152. package/dist/elements/transistors.d.ts +197 -0
  153. package/dist/elements/transistors.d.ts.map +1 -0
  154. package/dist/elements/transistors.js +1009 -0
  155. package/dist/elements/transistors.js.map +1 -0
  156. package/dist/elements/tubes.d.ts +70 -0
  157. package/dist/elements/tubes.d.ts.map +1 -0
  158. package/dist/elements/tubes.js +386 -0
  159. package/dist/elements/tubes.js.map +1 -0
  160. package/dist/elements/twoports.d.ts +47 -0
  161. package/dist/elements/twoports.d.ts.map +1 -0
  162. package/dist/elements/twoports.js +231 -0
  163. package/dist/elements/twoports.js.map +1 -0
  164. package/dist/elements/twoterm-extras.d.ts +50 -0
  165. package/dist/elements/twoterm-extras.d.ts.map +1 -0
  166. package/dist/elements/twoterm-extras.js +243 -0
  167. package/dist/elements/twoterm-extras.js.map +1 -0
  168. package/dist/elements/twoterm.d.ts +4 -0
  169. package/dist/elements/twoterm.d.ts.map +1 -0
  170. package/dist/elements/twoterm.js +4 -0
  171. package/dist/elements/twoterm.js.map +1 -0
  172. package/dist/geometry/point.d.ts +28 -0
  173. package/dist/geometry/point.d.ts.map +1 -0
  174. package/dist/geometry/point.js +99 -0
  175. package/dist/geometry/point.js.map +1 -0
  176. package/dist/geometry/roundcorners.d.ts +7 -0
  177. package/dist/geometry/roundcorners.d.ts.map +1 -0
  178. package/dist/geometry/roundcorners.js +64 -0
  179. package/dist/geometry/roundcorners.js.map +1 -0
  180. package/dist/geometry/transform.d.ts +14 -0
  181. package/dist/geometry/transform.d.ts.map +1 -0
  182. package/dist/geometry/transform.js +33 -0
  183. package/dist/geometry/transform.js.map +1 -0
  184. package/dist/geometry/util.d.ts +12 -0
  185. package/dist/geometry/util.d.ts.map +1 -0
  186. package/dist/geometry/util.js +36 -0
  187. package/dist/geometry/util.js.map +1 -0
  188. package/dist/index.cjs +31456 -0
  189. package/dist/index.cjs.map +7 -0
  190. package/dist/index.d.ts +77 -0
  191. package/dist/index.d.ts.map +1 -0
  192. package/dist/index.js +68 -0
  193. package/dist/index.js.map +1 -0
  194. package/dist/json/anchor-ref.d.ts +5 -0
  195. package/dist/json/anchor-ref.d.ts.map +1 -0
  196. package/dist/json/anchor-ref.js +35 -0
  197. package/dist/json/anchor-ref.js.map +1 -0
  198. package/dist/json/mount.d.ts +60 -0
  199. package/dist/json/mount.d.ts.map +1 -0
  200. package/dist/json/mount.js +369 -0
  201. package/dist/json/mount.js.map +1 -0
  202. package/dist/json/registry.d.ts +7 -0
  203. package/dist/json/registry.d.ts.map +1 -0
  204. package/dist/json/registry.js +323 -0
  205. package/dist/json/registry.js.map +1 -0
  206. package/dist/json/render.d.ts +59 -0
  207. package/dist/json/render.d.ts.map +1 -0
  208. package/dist/json/render.js +113 -0
  209. package/dist/json/render.js.map +1 -0
  210. package/dist/json/theme.d.ts +18 -0
  211. package/dist/json/theme.d.ts.map +1 -0
  212. package/dist/json/theme.js +57 -0
  213. package/dist/json/theme.js.map +1 -0
  214. package/dist/json/types.d.ts +42 -0
  215. package/dist/json/types.d.ts.map +1 -0
  216. package/dist/json/types.js +2 -0
  217. package/dist/json/types.js.map +1 -0
  218. package/dist/json/validate.d.ts +11 -0
  219. package/dist/json/validate.d.ts.map +1 -0
  220. package/dist/json/validate.js +77 -0
  221. package/dist/json/validate.js.map +1 -0
  222. package/dist/label-hint.d.ts +11 -0
  223. package/dist/label-hint.d.ts.map +1 -0
  224. package/dist/label-hint.js +2 -0
  225. package/dist/label-hint.js.map +1 -0
  226. package/dist/logic/and.d.ts +13 -0
  227. package/dist/logic/and.d.ts.map +1 -0
  228. package/dist/logic/and.js +63 -0
  229. package/dist/logic/and.js.map +1 -0
  230. package/dist/logic/bitfield.d.ts +32 -0
  231. package/dist/logic/bitfield.d.ts.map +1 -0
  232. package/dist/logic/bitfield.js +271 -0
  233. package/dist/logic/bitfield.js.map +1 -0
  234. package/dist/logic/buffer.d.ts +11 -0
  235. package/dist/logic/buffer.d.ts.map +1 -0
  236. package/dist/logic/buffer.js +46 -0
  237. package/dist/logic/buffer.js.map +1 -0
  238. package/dist/logic/extras.d.ts +36 -0
  239. package/dist/logic/extras.d.ts.map +1 -0
  240. package/dist/logic/extras.js +211 -0
  241. package/dist/logic/extras.js.map +1 -0
  242. package/dist/logic/kmap.d.ts +16 -0
  243. package/dist/logic/kmap.d.ts.map +1 -0
  244. package/dist/logic/kmap.js +163 -0
  245. package/dist/logic/kmap.js.map +1 -0
  246. package/dist/logic/or.d.ts +18 -0
  247. package/dist/logic/or.d.ts.map +1 -0
  248. package/dist/logic/or.js +117 -0
  249. package/dist/logic/or.js.map +1 -0
  250. package/dist/logic/timing.d.ts +44 -0
  251. package/dist/logic/timing.d.ts.map +1 -0
  252. package/dist/logic/timing.js +791 -0
  253. package/dist/logic/timing.js.map +1 -0
  254. package/dist/logic/tristate.d.ts +11 -0
  255. package/dist/logic/tristate.d.ts.map +1 -0
  256. package/dist/logic/tristate.js +48 -0
  257. package/dist/logic/tristate.js.map +1 -0
  258. package/dist/math-render.d.ts +9 -0
  259. package/dist/math-render.d.ts.map +1 -0
  260. package/dist/math-render.js +53 -0
  261. package/dist/math-render.js.map +1 -0
  262. package/dist/package-api.d.ts +20 -0
  263. package/dist/package-api.d.ts.map +1 -0
  264. package/dist/package-api.js +75 -0
  265. package/dist/package-api.js.map +1 -0
  266. package/dist/params.d.ts +6 -0
  267. package/dist/params.d.ts.map +1 -0
  268. package/dist/params.js +35 -0
  269. package/dist/params.js.map +1 -0
  270. package/dist/react/index.d.ts +22 -0
  271. package/dist/react/index.d.ts.map +1 -0
  272. package/dist/react/index.js +52 -0
  273. package/dist/react/index.js.map +1 -0
  274. package/dist/schemdraw-ts.bundle.js +30448 -0
  275. package/dist/schemdraw-ts.bundle.js.map +7 -0
  276. package/dist/segment.d.ts +267 -0
  277. package/dist/segment.d.ts.map +1 -0
  278. package/dist/segment.js +844 -0
  279. package/dist/segment.js.map +1 -0
  280. package/dist/style.d.ts +18 -0
  281. package/dist/style.d.ts.map +1 -0
  282. package/dist/style.js +230 -0
  283. package/dist/style.js.map +1 -0
  284. package/dist/subsystems/dsp.d.ts +65 -0
  285. package/dist/subsystems/dsp.d.ts.map +1 -0
  286. package/dist/subsystems/dsp.js +267 -0
  287. package/dist/subsystems/dsp.js.map +1 -0
  288. package/dist/subsystems/flow.d.ts +92 -0
  289. package/dist/subsystems/flow.d.ts.map +1 -0
  290. package/dist/subsystems/flow.js +315 -0
  291. package/dist/subsystems/flow.js.map +1 -0
  292. package/dist/subsystems/index.d.ts +22 -0
  293. package/dist/subsystems/index.d.ts.map +1 -0
  294. package/dist/subsystems/index.js +22 -0
  295. package/dist/subsystems/index.js.map +1 -0
  296. package/dist/subsystems/parsing.d.ts +41 -0
  297. package/dist/subsystems/parsing.d.ts.map +1 -0
  298. package/dist/subsystems/parsing.js +456 -0
  299. package/dist/subsystems/parsing.js.map +1 -0
  300. package/dist/subsystems/pictorial.d.ts +73 -0
  301. package/dist/subsystems/pictorial.d.ts.map +1 -0
  302. package/dist/subsystems/pictorial.js +469 -0
  303. package/dist/subsystems/pictorial.js.map +1 -0
  304. package/dist/svg/constants.d.ts +5 -0
  305. package/dist/svg/constants.d.ts.map +1 -0
  306. package/dist/svg/constants.js +5 -0
  307. package/dist/svg/constants.js.map +1 -0
  308. package/dist/svg/figure.d.ts +157 -0
  309. package/dist/svg/figure.d.ts.map +1 -0
  310. package/dist/svg/figure.js +634 -0
  311. package/dist/svg/figure.js.map +1 -0
  312. package/dist/svg/fmt.d.ts +2 -0
  313. package/dist/svg/fmt.d.ts.map +1 -0
  314. package/dist/svg/fmt.js +7 -0
  315. package/dist/svg/fmt.js.map +1 -0
  316. package/dist/svg/svg-style.d.ts +15 -0
  317. package/dist/svg/svg-style.d.ts.map +1 -0
  318. package/dist/svg/svg-style.js +46 -0
  319. package/dist/svg/svg-style.js.map +1 -0
  320. package/dist/types.d.ts +39 -0
  321. package/dist/types.d.ts.map +1 -0
  322. package/dist/types.js +21 -0
  323. package/dist/types.js.map +1 -0
  324. package/dist/version.d.ts +3 -0
  325. package/dist/version.d.ts.map +1 -0
  326. package/dist/version.js +3 -0
  327. package/dist/version.js.map +1 -0
  328. package/dist/vue/index.d.ts +43 -0
  329. package/dist/vue/index.d.ts.map +1 -0
  330. package/dist/vue/index.js +55 -0
  331. package/dist/vue/index.js.map +1 -0
  332. package/package.json +71 -0
@@ -0,0 +1,47 @@
1
+ import { ElementCompound } from "./element-compound.js";
2
+ import type { Element } from "../element.js";
3
+ export declare class ElementTwoport extends ElementCompound {
4
+ protected inputComponent: Element;
5
+ protected outputComponent: Element;
6
+ constructor(userParams?: Record<string, unknown>);
7
+ setup(): void;
8
+ }
9
+ export declare class TwoPort extends ElementTwoport {
10
+ constructor(userParams?: Record<string, unknown> & {
11
+ sign?: boolean;
12
+ arrow?: boolean;
13
+ reverse_output?: boolean;
14
+ });
15
+ setup(): void;
16
+ }
17
+ export declare class VoltageTransactor extends ElementTwoport {
18
+ constructor(userParams?: Record<string, unknown> & {
19
+ reverse_output?: boolean;
20
+ });
21
+ setup(): void;
22
+ }
23
+ export declare class TransimpedanceTransactor extends ElementTwoport {
24
+ constructor(userParams?: Record<string, unknown> & {
25
+ reverse_output?: boolean;
26
+ });
27
+ setup(): void;
28
+ }
29
+ export declare class CurrentTransactor extends ElementTwoport {
30
+ constructor(userParams?: Record<string, unknown> & {
31
+ reverse_output?: boolean;
32
+ });
33
+ setup(): void;
34
+ }
35
+ export declare class TransadmittanceTransactor extends ElementTwoport {
36
+ constructor(userParams?: Record<string, unknown> & {
37
+ reverse_output?: boolean;
38
+ });
39
+ setup(): void;
40
+ }
41
+ export declare class Nullor extends ElementTwoport {
42
+ constructor(userParams?: Record<string, unknown>);
43
+ }
44
+ export declare class VMCMPair extends ElementTwoport {
45
+ constructor(userParams?: Record<string, unknown>);
46
+ }
47
+ //# sourceMappingURL=twoports.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"twoports.d.ts","sourceRoot":"","sources":["../../src/elements/twoports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAoB7C,qBAAa,cAAe,SAAQ,eAAe;IACjD,SAAS,CAAC,cAAc,EAAG,OAAO,CAAC;IACnC,SAAS,CAAC,eAAe,EAAG,OAAO,CAAC;gBAExB,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;IAIpD,KAAK,IAAI,IAAI;CA6Fd;AAED,qBAAa,OAAQ,SAAQ,cAAc;gBAEvC,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;QACpC,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,cAAc,CAAC,EAAE,OAAO,CAAC;KACrB;IAWR,KAAK,IAAI,IAAI;CAwEd;AAED,qBAAa,iBAAkB,SAAQ,cAAc;gBAEjD,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;QAAE,cAAc,CAAC,EAAE,OAAO,CAAA;KAAO;IAazE,KAAK,IAAI,IAAI;CAmBd;AAED,qBAAa,wBAAyB,SAAQ,cAAc;gBAExD,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;QAAE,cAAc,CAAC,EAAE,OAAO,CAAA;KAAO;IAazE,KAAK,IAAI,IAAI;CAQd;AAED,qBAAa,iBAAkB,SAAQ,cAAc;gBAEjD,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;QAAE,cAAc,CAAC,EAAE,OAAO,CAAA;KAAO;IAazE,KAAK,IAAI,IAAI;CAQd;AAED,qBAAa,yBAA0B,SAAQ,cAAc;gBAEzD,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;QAAE,cAAc,CAAC,EAAE,OAAO,CAAA;KAAO;IAazE,KAAK,IAAI,IAAI;CAmBd;AAED,qBAAa,MAAO,SAAQ,cAAc;gBAC5B,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAQrD;AAED,qBAAa,QAAS,SAAQ,cAAc;gBAC9B,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAQrD"}
@@ -0,0 +1,231 @@
1
+ import { ElementCompound } from "./element-compound.js";
2
+ import { Line } from "./line.js";
3
+ import { Gap, Rect } from "./lines-elements.js";
4
+ import { SourceControlledV, SourceControlledI } from "./sources.js";
5
+ import { Nullator, Norator, VoltageMirror, CurrentMirror } from "./twoterm-extras.js";
6
+ import { CurrentLabelInline } from "./lines-arc-labels.js";
7
+ import { Segment, SegmentText } from "../segment.js";
8
+ const TP_ARROWLEN = 1;
9
+ const TP_TERMLEN = 0.5;
10
+ function absXY(el, name) {
11
+ const p = el.absanchors[name];
12
+ return [p.x, p.y];
13
+ }
14
+ export class ElementTwoport extends ElementCompound {
15
+ inputComponent;
16
+ outputComponent;
17
+ constructor(userParams = {}) {
18
+ super({ unit: userParams.unit ?? 1.5, ...userParams });
19
+ }
20
+ setup() {
21
+ const inputFactory = this.userParams._inputFactory;
22
+ const outputFactory = this.userParams._outputFactory;
23
+ const boxpadx = this.userParams.boxpadx ?? 0.2;
24
+ const boxpady = this.userParams.boxpady ?? 0.2;
25
+ const minw = this.userParams.minw ?? 0.5;
26
+ const terminals = this.userParams.terminals ?? true;
27
+ const tpWidth = this.userParams.width ?? 2.15;
28
+ const drawBox = this.userParams.box ?? true;
29
+ const boxfill = this.userParams.boxfill;
30
+ const boxlw = this.userParams.boxlw;
31
+ const boxls = this.userParams.boxls;
32
+ const inputEl = (inputFactory ?? (() => new Gap()))();
33
+ inputEl.down();
34
+ const outputEl = (outputFactory ?? (() => new Gap()))();
35
+ outputEl.down();
36
+ const bboxInput = inputEl.getBBox(false, false);
37
+ const bboxOutput = outputEl.getBBox(false, false);
38
+ const inW = Math.max((bboxInput.ymax - bboxInput.ymin) / 2, minw / 2);
39
+ const outW = Math.max((bboxOutput.ymax - bboxOutput.ymin) / 2, minw / 2);
40
+ inputEl.at([boxpadx + inW, 0]);
41
+ outputEl.at([tpWidth - boxpadx - outW, 0]);
42
+ this.inputComponent = this.add(inputEl);
43
+ this.outputComponent = this.add(outputEl);
44
+ let bb = this.getBBox(false, false);
45
+ if (drawBox) {
46
+ this.add(new Rect({
47
+ theta: 0,
48
+ at: [0, 0],
49
+ corner1: [0, bb.ymin - boxpady],
50
+ corner2: [tpWidth, bb.ymax + boxpady],
51
+ fill: boxfill ?? "none",
52
+ lw: boxlw,
53
+ ls: boxls,
54
+ zorder: 0,
55
+ }));
56
+ }
57
+ bb = this.getBBox(false, false);
58
+ const outPLine = this.add(new Line({ at: absXY(this.outputComponent, "start") })
59
+ .tox(bb.xmax)
60
+ .right());
61
+ const outNLine = this.add(new Line({ at: absXY(this.outputComponent, "end") })
62
+ .tox(bb.xmax)
63
+ .right());
64
+ const inPLine = this.add(new Line({ at: absXY(this.inputComponent, "start") })
65
+ .tox(bb.xmin)
66
+ .left());
67
+ const inNLine = this.add(new Line({ at: absXY(this.inputComponent, "end") })
68
+ .tox(bb.xmin)
69
+ .left());
70
+ this.anchors["in_p"] = absXY(inPLine, "end");
71
+ this.anchors["in_n"] = absXY(inNLine, "end");
72
+ this.anchors["out_p"] = absXY(outPLine, "end");
73
+ this.anchors["out_n"] = absXY(outNLine, "end");
74
+ this.anchors["center"] = [
75
+ (bb.xmin + bb.xmax) / 2,
76
+ (bb.ymin + bb.ymax) / 2,
77
+ ];
78
+ this._labelhints["in_p"] = { ofst: [0, 0.15], halign: "right" };
79
+ this._labelhints["in_n"] = { ofst: [0, 0.15], halign: "right" };
80
+ this._labelhints["out_p"] = { ofst: [0, 0.15], halign: "left" };
81
+ this._labelhints["out_n"] = { ofst: [0, 0.15], halign: "left" };
82
+ if (terminals) {
83
+ for (const anchor of ["in_p", "in_n", "out_p", "out_n"]) {
84
+ const xadjust = anchor.startsWith("in") ? -TP_TERMLEN : TP_TERMLEN;
85
+ const prev = this.anchors[anchor];
86
+ const next = [prev[0] + xadjust, prev[1]];
87
+ this.anchors[anchor] = next;
88
+ this.segments.push(new Segment([prev, next]));
89
+ }
90
+ }
91
+ }
92
+ }
93
+ export class TwoPort extends ElementTwoport {
94
+ constructor(userParams = {}) {
95
+ super({
96
+ ...userParams,
97
+ _inputFactory: () => new Gap(),
98
+ _outputFactory: () => new Gap(),
99
+ boxpadx: userParams.boxpadx ?? 0,
100
+ minw: userParams.minw ?? 0,
101
+ });
102
+ }
103
+ setup() {
104
+ super.setup();
105
+ const sign = this.userParams.sign ?? true;
106
+ const arrow = this.userParams.arrow ?? true;
107
+ const reverseOutput = this.userParams.reverse_output ?? false;
108
+ if (sign) {
109
+ const inEnd = this.inputComponent.absanchors["end"];
110
+ const inStart = this.inputComponent.absanchors["start"];
111
+ this.segments.push(new SegmentText([inEnd.x + 0.1, inEnd.y + 0.1], "\u2212", { halign: "left", valign: "center", rotation: 0 }));
112
+ this.segments.push(new SegmentText([inStart.x + 0.1, inStart.y - 0.1], "+", { halign: "left", valign: "center", rotation: 0 }));
113
+ const outEnd = this.outputComponent.absanchors["end"];
114
+ const outStart = this.outputComponent.absanchors["start"];
115
+ if (!reverseOutput) {
116
+ this.segments.push(new SegmentText([outEnd.x - 0.1, outEnd.y + 0.1], "\u2212", { halign: "right", valign: "center", rotation: 0 }));
117
+ this.segments.push(new SegmentText([outStart.x - 0.1, outStart.y - 0.1], "+", { halign: "right", valign: "center", rotation: 0 }));
118
+ }
119
+ else {
120
+ this.segments.push(new SegmentText([outEnd.x - 0.1, outEnd.y + 0.1], "+", { halign: "right", valign: "center", rotation: 0 }));
121
+ this.segments.push(new SegmentText([outStart.x - 0.1, outStart.y - 0.1], "\u2212", { halign: "right", valign: "center", rotation: 0 }));
122
+ }
123
+ }
124
+ if (arrow) {
125
+ const center = this.anchors["center"];
126
+ this.segments.push(new Segment([
127
+ [center[0] - TP_ARROWLEN / 2, center[1]],
128
+ [center[0] + TP_ARROWLEN / 2, center[1]],
129
+ ], { arrow: "->", lw: 2, arrowwidth: 0.3, arrowlength: 0.3 }));
130
+ }
131
+ }
132
+ }
133
+ export class VoltageTransactor extends ElementTwoport {
134
+ constructor(userParams = {}) {
135
+ const reverseOutput = userParams.reverse_output ?? false;
136
+ super({
137
+ ...userParams,
138
+ _inputFactory: () => new Gap(),
139
+ _outputFactory: () => reverseOutput
140
+ ? new SourceControlledV()
141
+ : new SourceControlledV({ reverse: true }),
142
+ });
143
+ }
144
+ setup() {
145
+ super.setup();
146
+ const inEnd = this.inputComponent.absanchors["end"];
147
+ const inStart = this.inputComponent.absanchors["start"];
148
+ this.segments.push(new SegmentText([inEnd.x, inEnd.y + 0.05], "\u2212", { halign: "right", valign: "bottom", rotation: 0 }));
149
+ this.segments.push(new SegmentText([inStart.x, inStart.y - 0.05], "+", { halign: "right", valign: "top", rotation: 0 }));
150
+ }
151
+ }
152
+ export class TransimpedanceTransactor extends ElementTwoport {
153
+ constructor(userParams = {}) {
154
+ const reverseOutput = userParams.reverse_output ?? false;
155
+ super({
156
+ ...userParams,
157
+ _inputFactory: () => new Line(),
158
+ _outputFactory: () => reverseOutput
159
+ ? new SourceControlledV()
160
+ : new SourceControlledV({ reverse: true }),
161
+ });
162
+ }
163
+ setup() {
164
+ super.setup();
165
+ const cli = new CurrentLabelInline("in", -0.15, true, {
166
+ headlength: 0.3,
167
+ });
168
+ cli.at(this.inputComponent);
169
+ this.add(cli);
170
+ }
171
+ }
172
+ export class CurrentTransactor extends ElementTwoport {
173
+ constructor(userParams = {}) {
174
+ const reverseOutput = userParams.reverse_output ?? false;
175
+ super({
176
+ ...userParams,
177
+ _inputFactory: () => new Line(),
178
+ _outputFactory: () => reverseOutput
179
+ ? new SourceControlledI()
180
+ : new SourceControlledI({ reverse: true }),
181
+ });
182
+ }
183
+ setup() {
184
+ super.setup();
185
+ const cli = new CurrentLabelInline("in", -0.15, true, {
186
+ headlength: 0.3,
187
+ });
188
+ cli.at(this.inputComponent);
189
+ this.add(cli);
190
+ }
191
+ }
192
+ export class TransadmittanceTransactor extends ElementTwoport {
193
+ constructor(userParams = {}) {
194
+ const reverseOutput = userParams.reverse_output ?? false;
195
+ super({
196
+ ...userParams,
197
+ _inputFactory: () => new Gap(),
198
+ _outputFactory: () => reverseOutput
199
+ ? new SourceControlledI()
200
+ : new SourceControlledI({ reverse: true }),
201
+ });
202
+ }
203
+ setup() {
204
+ super.setup();
205
+ const inEnd = this.inputComponent.absanchors["end"];
206
+ const inStart = this.inputComponent.absanchors["start"];
207
+ this.segments.push(new SegmentText([inEnd.x, inEnd.y + 0.05], "\u2212", { halign: "right", valign: "bottom", rotation: 0 }));
208
+ this.segments.push(new SegmentText([inStart.x, inStart.y - 0.05], "+", { halign: "right", valign: "top", rotation: 0 }));
209
+ }
210
+ }
211
+ export class Nullor extends ElementTwoport {
212
+ constructor(userParams = {}) {
213
+ super({
214
+ ...userParams,
215
+ _inputFactory: () => new Nullator(),
216
+ _outputFactory: () => new Norator(),
217
+ boxpadx: userParams.boxpadx ?? 0.3,
218
+ });
219
+ }
220
+ }
221
+ export class VMCMPair extends ElementTwoport {
222
+ constructor(userParams = {}) {
223
+ super({
224
+ ...userParams,
225
+ _inputFactory: () => new VoltageMirror(),
226
+ _outputFactory: () => new CurrentMirror(),
227
+ boxpadx: userParams.boxpadx ?? 0.3,
228
+ });
229
+ }
230
+ }
231
+ //# sourceMappingURL=twoports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"twoports.js","sourceRoot":"","sources":["../../src/elements/twoports.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Misc two-terminal elements — aligned with Python `twoterm.py`.
3
+ */
4
+ import { Element2Term } from "../element2term.js";
5
+ export declare class Memristor extends Element2Term {
6
+ constructor(userParams?: Record<string, unknown>);
7
+ }
8
+ export declare class Memristor2 extends Element2Term {
9
+ constructor(userParams?: Record<string, unknown>);
10
+ }
11
+ export declare class Josephson extends Element2Term {
12
+ constructor(userParams?: Record<string, unknown> & {
13
+ box?: boolean;
14
+ });
15
+ }
16
+ export declare class FuseUS extends Element2Term {
17
+ constructor(userParams?: Record<string, unknown> & {
18
+ dots?: boolean;
19
+ dot_r?: number;
20
+ });
21
+ }
22
+ export declare class Breaker extends Element2Term {
23
+ constructor(userParams?: Record<string, unknown> & {
24
+ dots?: boolean;
25
+ dot_r?: number;
26
+ });
27
+ }
28
+ export declare class CPE extends Element2Term {
29
+ constructor(userParams?: Record<string, unknown>);
30
+ }
31
+ export declare class SparkGap extends Element2Term {
32
+ constructor(userParams?: Record<string, unknown> & {
33
+ gap?: number;
34
+ arrowwidth?: number;
35
+ arrowlength?: number;
36
+ });
37
+ }
38
+ export declare class Nullator extends Element2Term {
39
+ constructor(userParams?: Record<string, unknown>);
40
+ }
41
+ export declare class Norator extends Element2Term {
42
+ constructor(userParams?: Record<string, unknown>);
43
+ }
44
+ export declare class CurrentMirror extends Element2Term {
45
+ constructor(userParams?: Record<string, unknown>);
46
+ }
47
+ export declare class VoltageMirror extends Element2Term {
48
+ constructor(userParams?: Record<string, unknown>);
49
+ }
50
+ //# sourceMappingURL=twoterm-extras.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"twoterm-extras.d.ts","sourceRoot":"","sources":["../../src/elements/twoterm-extras.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAMlD,qBAAa,SAAU,SAAQ,YAAY;gBAC7B,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAsCrD;AAED,qBAAa,UAAW,SAAQ,YAAY;gBAC9B,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAwBrD;AAED,qBAAa,SAAU,SAAQ,YAAY;gBAC7B,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;QAAE,GAAG,CAAC,EAAE,OAAO,CAAA;KAAO;CA0CzE;AAED,qBAAa,MAAO,SAAQ,YAAY;gBAC1B,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO;CAgB1F;AAED,qBAAa,OAAQ,SAAQ,YAAY;gBAC3B,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO;CAwB1F;AAED,qBAAa,GAAI,SAAQ,YAAY;gBACvB,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAgDrD;AAED,qBAAa,QAAS,SAAQ,YAAY;gBAC5B,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAO;CAsBnH;AAED,qBAAa,QAAS,SAAQ,YAAY;gBAC5B,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAMrD;AAED,qBAAa,OAAQ,SAAQ,YAAY;gBAC3B,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAOrD;AAED,qBAAa,aAAc,SAAQ,YAAY;gBACjC,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAUrD;AAED,qBAAa,aAAc,SAAQ,YAAY;gBACjC,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAQrD"}
@@ -0,0 +1,243 @@
1
+ /**
2
+ * Misc two-terminal elements — aligned with Python `twoterm.py`.
3
+ */
4
+ import { Element2Term } from "../element2term.js";
5
+ import { linspace } from "../geometry/util.js";
6
+ import { getParam } from "../params.js";
7
+ import { GAP, Segment, SegmentArc, SegmentCircle, SegmentPoly } from "../segment.js";
8
+ import { resheight } from "./twoterm.js";
9
+ export class Memristor extends Element2Term {
10
+ constructor(userParams = {}) {
11
+ super(userParams);
12
+ const mr = 0.2;
13
+ this.segments.push(new Segment([
14
+ [0, 0],
15
+ [mr, 0],
16
+ [mr, -mr * 0.75],
17
+ [mr * 2, -mr * 0.75],
18
+ [mr * 2, mr * 0.75],
19
+ [mr * 3, mr * 0.75],
20
+ [mr * 3, -mr * 0.75],
21
+ [mr * 4, -mr * 0.75],
22
+ [mr * 4, 0],
23
+ [mr * 5, 0],
24
+ ]));
25
+ this.segments.push(new Segment([
26
+ [0, mr * 1.25],
27
+ [mr * 5, mr * 1.25],
28
+ [mr * 5, mr * -1.25],
29
+ [0, mr * -1.25],
30
+ [0, mr * 1.25],
31
+ ]));
32
+ this.segments.push(new SegmentPoly([
33
+ [0, mr * 1.25],
34
+ [0, -mr * 1.25],
35
+ [mr / 2, -mr * 1.25],
36
+ [mr / 2, mr * 1.25],
37
+ ], { closed: true, fill: "black" }));
38
+ }
39
+ }
40
+ export class Memristor2 extends Element2Term {
41
+ constructor(userParams = {}) {
42
+ super(userParams);
43
+ const mr = 0.2;
44
+ const mrv = 0.25;
45
+ this.segments.push(new Segment([
46
+ [0, 0],
47
+ [0, mrv],
48
+ [mr, mrv],
49
+ [mr, -mrv],
50
+ [mr * 2, -mrv],
51
+ [mr * 2, mrv],
52
+ [mr * 3, mrv],
53
+ [mr * 3, -mrv],
54
+ [mr * 4, -mrv],
55
+ [mr * 4, mrv],
56
+ [mr * 5, mrv],
57
+ [mr * 5, -mrv],
58
+ [mr * 6, -mrv],
59
+ [mr * 6, 0],
60
+ [mr * 7, 0],
61
+ ]));
62
+ }
63
+ }
64
+ export class Josephson extends Element2Term {
65
+ constructor(userParams = {}) {
66
+ super(userParams);
67
+ Object.assign(this.defaults, { box: false });
68
+ const h = resheight;
69
+ if (getParam(this.params, "box", false)) {
70
+ this.segments.push(new Segment([[-h, 0], GAP, [h, 0]]));
71
+ this.segments.push(new Segment([
72
+ [-h, h],
73
+ [h, -h],
74
+ GAP,
75
+ [h, h],
76
+ [-h, -h],
77
+ ]));
78
+ this.segments.push(new SegmentPoly([
79
+ [-h, h],
80
+ [-h, -h],
81
+ [h, -h],
82
+ [h, h],
83
+ ], { closed: true, fill: false }));
84
+ }
85
+ else {
86
+ this.segments.push(new Segment([
87
+ [0, 0],
88
+ GAP,
89
+ [-h, h],
90
+ [h, -h],
91
+ GAP,
92
+ [h, h],
93
+ [-h, -h],
94
+ GAP,
95
+ [0, 0],
96
+ ]));
97
+ }
98
+ }
99
+ }
100
+ export class FuseUS extends Element2Term {
101
+ constructor(userParams = {}) {
102
+ super(userParams);
103
+ Object.assign(this.defaults, { dots: true, dot_r: 0.12 });
104
+ const dotR = getParam(this.params, "dot_r", 0.12);
105
+ const n = 50;
106
+ const fusex = linspace(dotR * 2, 1 + dotR, n);
107
+ const t = linspace(0, 2 * Math.PI, n);
108
+ const fusey = t.map((x) => Math.sin(x) * resheight);
109
+ const path = fusex.map((x, i) => [x, fusey[i]]);
110
+ this.segments.push(new Segment(path));
111
+ this.segments.push(new Segment([[0, 0], GAP, [1 + dotR * 3, 0]]));
112
+ if (getParam(this.params, "dots", true)) {
113
+ this.segments.push(new SegmentCircle([dotR, 0], dotR, { zorder: 4, fill: "bg" }));
114
+ this.segments.push(new SegmentCircle([dotR * 2 + 1, 0], dotR, { zorder: 4, fill: "bg" }));
115
+ }
116
+ }
117
+ }
118
+ export class Breaker extends Element2Term {
119
+ constructor(userParams = {}) {
120
+ super(userParams);
121
+ Object.assign(this.defaults, { dots: true, dot_r: 0.12 });
122
+ const dotsArg = userParams.dots;
123
+ const dots = getParam(this.params, "dots", true);
124
+ const theta1 = dotsArg ? 25 : 10;
125
+ const theta2 = dotsArg ? 155 : 170;
126
+ const arcLw = getParam(this.params, "arc_lw", undefined);
127
+ const arcColor = getParam(this.params, "arc_color", undefined);
128
+ this.segments.push(new Segment([[0, 0], GAP, [1, 0]]));
129
+ this.segments.push(new SegmentArc([0.5, 0], 1, 0.65, {
130
+ theta1,
131
+ theta2,
132
+ lw: arcLw,
133
+ color: arcColor,
134
+ }));
135
+ if (dots) {
136
+ const rad = getParam(this.params, "dot_r", 0.12);
137
+ this.segments.push(new SegmentCircle([rad, 0], rad, { zorder: 4 }));
138
+ this.segments.push(new SegmentCircle([1 - rad, 0], rad, { zorder: 4 }));
139
+ }
140
+ }
141
+ }
142
+ export class CPE extends Element2Term {
143
+ constructor(userParams = {}) {
144
+ super(userParams);
145
+ const capgap = 0.25;
146
+ const offset = 0.25;
147
+ const h = resheight;
148
+ this.segments.push(new Segment([
149
+ [0, 0],
150
+ [-offset, 0],
151
+ GAP,
152
+ [offset, 0],
153
+ [0, -h],
154
+ GAP,
155
+ [capgap, 0],
156
+ ]));
157
+ this.segments.push(new Segment([
158
+ [0, 0],
159
+ [-offset, 0],
160
+ GAP,
161
+ [offset, 0],
162
+ [0, h],
163
+ GAP,
164
+ [capgap, 0],
165
+ ]));
166
+ this.segments.push(new Segment([
167
+ [0, 0],
168
+ [-offset, h],
169
+ GAP,
170
+ [0, -h],
171
+ GAP,
172
+ [capgap, 0],
173
+ ]));
174
+ this.segments.push(new Segment([
175
+ [0, 0],
176
+ [-offset, -h],
177
+ GAP,
178
+ [0, -h],
179
+ GAP,
180
+ [capgap, 0],
181
+ ]));
182
+ }
183
+ }
184
+ export class SparkGap extends Element2Term {
185
+ constructor(userParams = {}) {
186
+ super(userParams);
187
+ Object.assign(this.defaults, { gap: 0.08, arrowwidth: 0.25, arrowlength: 0.25 });
188
+ const gapw = getParam(this.params, "gap", 0.08);
189
+ const aw = getParam(this.params, "arrowwidth", 0.25);
190
+ const al = getParam(this.params, "arrowlength", 0.25);
191
+ this.segments.push(new Segment([[0, 0], GAP, [1, 0]]));
192
+ this.segments.push(new Segment([[0, 0], [0.5 - gapw / 2, 0]], {
193
+ arrow: "->",
194
+ arrowwidth: aw,
195
+ arrowlength: al,
196
+ }));
197
+ this.segments.push(new Segment([[1, 0], [0.5 + gapw / 2, 0]], {
198
+ arrow: "->",
199
+ arrowwidth: aw,
200
+ arrowlength: al,
201
+ }));
202
+ }
203
+ }
204
+ export class Nullator extends Element2Term {
205
+ constructor(userParams = {}) {
206
+ super(userParams);
207
+ this.segments.push(new Segment([[0, 0], [0, 0], GAP, [1, 0], [1, 0]]));
208
+ this.segments.push(new SegmentArc([0.5, 0], 1, 0.5, { theta1: 0, theta2: 360 }));
209
+ this.elmParams.theta = 90;
210
+ }
211
+ }
212
+ export class Norator extends Element2Term {
213
+ constructor(userParams = {}) {
214
+ super(userParams);
215
+ this.segments.push(new Segment([[0, 0], [0, 0], GAP, [1, 0], [1, 0]]));
216
+ this.segments.push(new SegmentCircle([0.25, 0], 0.25));
217
+ this.segments.push(new SegmentCircle([1 - 0.25, 0], 0.25));
218
+ this.elmParams.theta = 90;
219
+ }
220
+ }
221
+ export class CurrentMirror extends Element2Term {
222
+ constructor(userParams = {}) {
223
+ super(userParams);
224
+ this.segments.push(new Segment([[0, 0], [0, 0], GAP, [1, 0], [1, 0]]));
225
+ this.segments.push(new SegmentCircle([0.3, 0], 0.3, { lw: 1e-9, ls: "None" }));
226
+ this.segments.push(new SegmentCircle([1 - 0.3, 0], 0.3, { lw: 1e-9, ls: "None" }));
227
+ this.segments.push(new SegmentCircle([0.3, 0], 0.3, { fill: false }));
228
+ this.segments.push(new SegmentCircle([1 - 0.3, 0], 0.3, { fill: false }));
229
+ this.elmParams.theta = 90;
230
+ this.anchors.common = [0.5, Math.sqrt(0.3 ** 2 - 0.2 ** 2)];
231
+ }
232
+ }
233
+ export class VoltageMirror extends Element2Term {
234
+ constructor(userParams = {}) {
235
+ super(userParams);
236
+ this.segments.push(new Segment([[0, 0], [0, 0], GAP, [1, 0], [1, 0]]));
237
+ this.segments.push(new SegmentArc([0.7, 0], 0.6, 0.3, { theta1: 0, theta2: 360 }));
238
+ this.segments.push(new SegmentArc([0.3, 0], 0.6, 0.3, { theta1: 0, theta2: 360 }));
239
+ this.elmParams.theta = 90;
240
+ this.anchors.common = [0.5, Math.sqrt(1 - (0.2 ** 2) / 0.3 ** 2) * 0.15];
241
+ }
242
+ }
243
+ //# sourceMappingURL=twoterm-extras.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"twoterm-extras.js","sourceRoot":"","sources":["../../src/elements/twoterm-extras.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ /** Shared geometry for two-terminal elements — aligned with Python `twoterm.py`. */
2
+ export declare const resheight = 0.25;
3
+ export declare const reswidth: number;
4
+ //# sourceMappingURL=twoterm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"twoterm.d.ts","sourceRoot":"","sources":["../../src/elements/twoterm.ts"],"names":[],"mappings":"AAAA,oFAAoF;AAEpF,eAAO,MAAM,SAAS,OAAO,CAAC;AAC9B,eAAO,MAAM,QAAQ,QAAU,CAAC"}
@@ -0,0 +1,4 @@
1
+ /** Shared geometry for two-terminal elements — aligned with Python `twoterm.py`. */
2
+ export const resheight = 0.25;
3
+ export const reswidth = 1.0 / 6;
4
+ //# sourceMappingURL=twoterm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"twoterm.js","sourceRoot":"","sources":["../../src/elements/twoterm.ts"],"names":[],"mappings":"AAAA,oFAAoF;AAEpF,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC;AAC9B,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,GAAG,CAAC,CAAC"}