@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 @@
1
+ {"version":3,"file":"crystal.js","sourceRoot":"","sources":["../../src/elements/crystal.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,OAAO,OAAQ,SAAQ,YAAY;IACvC,YAAY,aAAsC,EAAE;QAClD,KAAK,CAAC,UAAU,CAAC,CAAC;QAClB,MAAM,IAAI,GAAG,GAAG,CAAC;QACjB,MAAM,EAAE,GAAG,SAAS,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,IAAI,OAAO,CAAC;YACV,CAAC,CAAC,EAAE,CAAC,CAAC;YACN,GAAG;YACH,CAAC,CAAC,EAAE,EAAE,CAAC;YACP,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YACR,GAAG;YACH,CAAC,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;YACd,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACf,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC;YACjB,CAAC,IAAI,GAAG,GAAG,EAAE,EAAE,CAAC;YAChB,CAAC,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;YACd,GAAG;YACH,CAAC,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;YACd,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACf,GAAG;YACH,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC;SACd,CAAC,CACH,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * More diodes / thyristors — aligned with Python `twoterm.py`.
3
+ */
4
+ import { Element2Term } from "../element2term.js";
5
+ import { Diode } from "./diode.js";
6
+ export declare class DiodeTunnel extends Diode {
7
+ constructor(userParams?: Record<string, unknown>);
8
+ }
9
+ export declare class DiodeTVS extends Element2Term {
10
+ constructor(userParams?: Record<string, unknown>);
11
+ }
12
+ export declare class DiodeShockley extends Element2Term {
13
+ constructor(userParams?: Record<string, unknown>);
14
+ }
15
+ export declare class Varactor extends Element2Term {
16
+ constructor(userParams?: Record<string, unknown>);
17
+ }
18
+ export declare class LED extends Diode {
19
+ constructor(userParams?: Record<string, unknown>);
20
+ }
21
+ export declare class LED2 extends Diode {
22
+ constructor(userParams?: Record<string, unknown>);
23
+ }
24
+ export declare class Photodiode extends Diode {
25
+ constructor(userParams?: Record<string, unknown>);
26
+ }
27
+ export declare class SCR extends Diode {
28
+ constructor(userParams?: Record<string, unknown>);
29
+ }
30
+ export declare class Diac extends Element2Term {
31
+ constructor(userParams?: Record<string, unknown>);
32
+ }
33
+ export declare class Triac extends Diac {
34
+ constructor(userParams?: Record<string, unknown>);
35
+ }
36
+ //# sourceMappingURL=diode-more.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diode-more.d.ts","sourceRoot":"","sources":["../../src/elements/diode-more.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAKlD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGnC,qBAAa,WAAY,SAAQ,KAAK;gBACxB,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAOrD;AAED,qBAAa,QAAS,SAAQ,YAAY;gBAC5B,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAkCrD;AAED,qBAAa,aAAc,SAAQ,YAAY;gBACjC,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAerD;AAED,qBAAa,QAAS,SAAQ,YAAY;gBAC5B,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CA4BrD;AAED,qBAAa,GAAI,SAAQ,KAAK;gBAChB,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAyBrD;AAED,qBAAa,IAAK,SAAQ,KAAK;gBACjB,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CA0CrD;AAED,qBAAa,UAAW,SAAQ,KAAK;gBACvB,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CA2CrD;AAED,qBAAa,GAAI,SAAQ,KAAK;gBAChB,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAYrD;AAED,qBAAa,IAAK,SAAQ,YAAY;gBACxB,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAqCrD;AAED,qBAAa,KAAM,SAAQ,IAAI;gBACjB,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAMrD"}
@@ -0,0 +1,233 @@
1
+ /**
2
+ * More diodes / thyristors — aligned with Python `twoterm.py`.
3
+ */
4
+ import { Element2Term } from "../element2term.js";
5
+ import { Point } from "../geometry/point.js";
6
+ import { linspace } from "../geometry/util.js";
7
+ import { getParam } from "../params.js";
8
+ import { GAP, Segment, SegmentPoly } from "../segment.js";
9
+ import { Diode } from "./diode.js";
10
+ import { resheight } from "./twoterm.js";
11
+ export class DiodeTunnel extends Diode {
12
+ constructor(userParams = {}) {
13
+ super(userParams);
14
+ const w = resheight * 1.4;
15
+ const tw = 0.1;
16
+ this.segments.push(new Segment([[w, resheight], [w - tw, resheight]]));
17
+ this.segments.push(new Segment([[w, -resheight], [w - tw, -resheight]]));
18
+ }
19
+ }
20
+ export class DiodeTVS extends Element2Term {
21
+ constructor(userParams = {}) {
22
+ super(userParams);
23
+ const mid = resheight * 1.4;
24
+ const tvs = 0.1;
25
+ this.segments.push(new Segment([[0, 0], GAP, [2 * mid, 0]]));
26
+ this.segments.push(new SegmentPoly([
27
+ [0, resheight],
28
+ [mid, 0],
29
+ [0, -resheight],
30
+ ], { closed: true, fill: false }));
31
+ this.segments.push(new SegmentPoly([
32
+ [mid, 0],
33
+ [mid * 2, resheight],
34
+ [mid * 2, -resheight],
35
+ ], { closed: true, fill: false }));
36
+ this.segments.push(new Segment([
37
+ [mid + tvs, resheight],
38
+ [mid, resheight],
39
+ [mid, -resheight],
40
+ [mid - tvs, -resheight],
41
+ ]));
42
+ }
43
+ }
44
+ export class DiodeShockley extends Element2Term {
45
+ constructor(userParams = {}) {
46
+ super(userParams);
47
+ const w = resheight * 1.4;
48
+ this.segments.push(new Segment([
49
+ [0, 0],
50
+ [w, 0],
51
+ [w, resheight],
52
+ [w, -resheight],
53
+ GAP,
54
+ [w, 0],
55
+ ]));
56
+ this.segments.push(new Segment([[0, -resheight], [0, resheight], [w, 0]]));
57
+ }
58
+ }
59
+ export class Varactor extends Element2Term {
60
+ constructor(userParams = {}) {
61
+ super(userParams);
62
+ const capgap = 0.13;
63
+ const w = resheight * 1.4;
64
+ this.segments.push(new Segment([
65
+ [0, 0],
66
+ GAP,
67
+ [w, resheight],
68
+ [w, -resheight],
69
+ GAP,
70
+ [w + capgap, resheight],
71
+ [w + capgap, -resheight],
72
+ GAP,
73
+ [w + capgap, 0],
74
+ ]));
75
+ this.segments.push(new SegmentPoly([
76
+ [0, resheight],
77
+ [w, 0],
78
+ [0, -resheight],
79
+ ], { closed: true, fill: false }));
80
+ }
81
+ }
82
+ export class LED extends Diode {
83
+ constructor(userParams = {}) {
84
+ super(userParams);
85
+ Object.assign(this.defaults, { arrowwidth: 0.16, arrowlength: 0.2 });
86
+ const r = resheight;
87
+ const aw = getParam(this.params, "arrowwidth", 0.16);
88
+ const al = getParam(this.params, "arrowlength", 0.2);
89
+ const ac = getParam(this.params, "arrow_color", undefined);
90
+ this.segments.push(new Segment([[r, r * 1.5], [r * 2, r * 3.25]], {
91
+ arrow: "->",
92
+ arrowwidth: aw,
93
+ arrowlength: al,
94
+ color: ac,
95
+ }));
96
+ this.segments.push(new Segment([[r * 0.1, r * 1.5], [r * 1.1, r * 3.25]], {
97
+ arrow: "->",
98
+ arrowwidth: aw,
99
+ arrowlength: al,
100
+ color: ac,
101
+ }));
102
+ this.elmParams.lblloc = "bot";
103
+ }
104
+ }
105
+ export class LED2 extends Diode {
106
+ constructor(userParams = {}) {
107
+ super(userParams);
108
+ Object.assign(this.defaults, { arrowwidth: 0.16, arrowlength: 0.2 });
109
+ const r = resheight;
110
+ const aw = getParam(this.params, "arrowwidth", 0.16);
111
+ const al = getParam(this.params, "arrowlength", 0.2);
112
+ const ac = getParam(this.params, "arrow_color", undefined);
113
+ const alw = getParam(this.params, "arrow_lw", undefined);
114
+ const xa = linspace(-1, 1);
115
+ const yb = xa.map((x0) => (-x0 * (x0 - 0.7) * (x0 + 0.7)) / 2 + r * 2.5);
116
+ const xLin = linspace(r * 0.75, r * 1.25, xa.length);
117
+ const theta = 20;
118
+ const p = xLin.map((x0, i) => {
119
+ const pt = Point.fromXY([x0, yb[i]]).rotate(theta, [0, 0]);
120
+ return [pt.x, pt.y];
121
+ });
122
+ const p2 = xLin.map((x0, i) => {
123
+ const pt = Point.fromXY([x0 - 0.2, yb[i]]).rotate(theta, [0, 0]);
124
+ return [pt.x, pt.y];
125
+ });
126
+ this.segments.push(new Segment(p, { lw: alw, color: ac }));
127
+ this.segments.push(new Segment(p2, { lw: alw, color: ac }));
128
+ const pa = Point.fromXY([xLin[0], yb[0] + 0.1]).rotate(theta, [0, 0]);
129
+ const pa2 = Point.fromXY([xLin[0] - 0.2, yb[0] + 0.1]).rotate(theta, [0, 0]);
130
+ this.segments.push(new Segment([[p[1][0], p[1][1]], [pa.x, pa.y]], {
131
+ arrow: "->",
132
+ arrowwidth: aw,
133
+ arrowlength: al,
134
+ color: ac,
135
+ }));
136
+ this.segments.push(new Segment([[p2[1][0], p2[1][1]], [pa2.x, pa2.y]], {
137
+ arrow: "->",
138
+ arrowwidth: aw,
139
+ arrowlength: al,
140
+ color: ac,
141
+ }));
142
+ this.elmParams.lblloc = "bot";
143
+ }
144
+ }
145
+ export class Photodiode extends Diode {
146
+ constructor(userParams = {}) {
147
+ super(userParams);
148
+ Object.assign(this.defaults, { arrowwidth: 0.16, arrowlength: 0.2 });
149
+ const r = resheight;
150
+ const aw = getParam(this.params, "arrowwidth", 0.16);
151
+ const al = getParam(this.params, "arrowlength", 0.2);
152
+ const ac = getParam(this.params, "arrow_color", undefined);
153
+ const alw = getParam(this.params, "arrow_lw", undefined);
154
+ const xa = linspace(-1, 1);
155
+ const yb = xa.map((x0) => (-x0 * (x0 - 0.7) * (x0 + 0.7)) / 2 + r * 2.5);
156
+ const xLin = linspace(r * 0.75, r * 1.25, xa.length);
157
+ const theta = 20;
158
+ const p = xLin.map((x0, i) => {
159
+ const pt = Point.fromXY([x0, yb[i]]).rotate(theta, [0, 0]);
160
+ return [pt.x, pt.y];
161
+ });
162
+ const p2 = xLin.map((x0, i) => {
163
+ const pt = Point.fromXY([x0 - 0.2, yb[i]]).rotate(theta, [0, 0]);
164
+ return [pt.x, pt.y];
165
+ });
166
+ this.segments.push(new Segment(p, { lw: alw, color: ac }));
167
+ this.segments.push(new Segment(p2, { lw: alw, color: ac }));
168
+ const pa = Point.fromXY([xLin[xLin.length - 1], yb[yb.length - 1] - 0.1]).rotate(theta, [0, 0]);
169
+ const pa2 = Point.fromXY([xLin[xLin.length - 1] - 0.2, yb[yb.length - 1] - 0.1]).rotate(theta, [0, 0]);
170
+ const n = p.length;
171
+ this.segments.push(new Segment([[p[n - 2][0], p[n - 2][1]], [pa.x, pa.y]], {
172
+ arrow: "->",
173
+ arrowwidth: aw,
174
+ arrowlength: al,
175
+ color: ac,
176
+ }));
177
+ this.segments.push(new Segment([[p2[n - 2][0], p2[n - 2][1]], [pa2.x, pa2.y]], {
178
+ arrow: "->",
179
+ arrowwidth: aw,
180
+ arrowlength: al,
181
+ color: ac,
182
+ }));
183
+ this.elmParams.lblloc = "bot";
184
+ }
185
+ }
186
+ export class SCR extends Diode {
187
+ constructor(userParams = {}) {
188
+ super(userParams);
189
+ const w = resheight * 1.4;
190
+ this.segments.push(new Segment([
191
+ [w, 0],
192
+ [w + 0.3, -0.3],
193
+ [w + 0.3, -0.5],
194
+ ]));
195
+ this.anchors.gate = [w + 0.3, -0.5];
196
+ }
197
+ }
198
+ export class Diac extends Element2Term {
199
+ constructor(userParams = {}) {
200
+ super(userParams);
201
+ const w = resheight * 1.4;
202
+ this.segments.push(new Segment([
203
+ [0, 0],
204
+ GAP,
205
+ [w, resheight * 1.8],
206
+ [w, -resheight * 1.8],
207
+ GAP,
208
+ [0, resheight * 1.8],
209
+ [0, -resheight * 1.8],
210
+ GAP,
211
+ [w, 0],
212
+ ]));
213
+ this.segments.push(new SegmentPoly([
214
+ [0, -resheight - 0.25],
215
+ [w, -0.25],
216
+ [0, -resheight + 0.25],
217
+ ], { closed: true, fill: false }));
218
+ this.segments.push(new SegmentPoly([
219
+ [w, resheight + 0.25],
220
+ [0, 0.25],
221
+ [w, resheight - 0.25],
222
+ ], { closed: true, fill: false }));
223
+ }
224
+ }
225
+ export class Triac extends Diac {
226
+ constructor(userParams = {}) {
227
+ super(userParams);
228
+ const w = resheight * 1.4;
229
+ this.segments.push(new Segment([[w, 0.25], [w + 0.5, 0.5]]));
230
+ this.anchors.gate = [w + 0.5, 0.5];
231
+ }
232
+ }
233
+ //# sourceMappingURL=diode-more.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diode-more.js","sourceRoot":"","sources":["../../src/elements/diode-more.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Diode / Schottky — aligned with Python `elements/twoterm.py`.
3
+ */
4
+ import { Element2Term } from "../element2term.js";
5
+ export declare class Diode extends Element2Term {
6
+ constructor(userParams?: Record<string, unknown>);
7
+ }
8
+ export declare class Schottky extends Diode {
9
+ constructor(userParams?: Record<string, unknown>);
10
+ }
11
+ export declare class Zener extends Diode {
12
+ constructor(userParams?: Record<string, unknown>);
13
+ }
14
+ //# sourceMappingURL=diode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diode.d.ts","sourceRoot":"","sources":["../../src/elements/diode.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIlD,qBAAa,KAAM,SAAQ,YAAY;gBACzB,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAwBrD;AAED,qBAAa,QAAS,SAAQ,KAAK;gBACrB,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAmBrD;AAED,qBAAa,KAAM,SAAQ,KAAK;gBAClB,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAiBrD"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Diode / Schottky — aligned with Python `elements/twoterm.py`.
3
+ */
4
+ import { Element2Term } from "../element2term.js";
5
+ import { GAP, Segment, SegmentPoly } from "../segment.js";
6
+ import { resheight } from "./twoterm.js";
7
+ export class Diode extends Element2Term {
8
+ constructor(userParams = {}) {
9
+ super(userParams);
10
+ const w = resheight * 1.4;
11
+ this.segments.push(new Segment([
12
+ [0, 0],
13
+ GAP,
14
+ [w, resheight],
15
+ [w, -resheight],
16
+ GAP,
17
+ [w, 0],
18
+ ]));
19
+ this.segments.push(new SegmentPoly([
20
+ [0, resheight],
21
+ [w, 0],
22
+ [0, -resheight],
23
+ ], { closed: true, fill: false }));
24
+ }
25
+ }
26
+ export class Schottky extends Diode {
27
+ constructor(userParams = {}) {
28
+ super(userParams);
29
+ const w = resheight * 1.4;
30
+ const sw = 0.1;
31
+ this.segments.push(new Segment([
32
+ [w, resheight],
33
+ [w - sw, resheight],
34
+ [w - sw, resheight - sw],
35
+ ]));
36
+ this.segments.push(new Segment([
37
+ [w, -resheight],
38
+ [w + sw, -resheight],
39
+ [w + sw, -resheight + sw],
40
+ ]));
41
+ }
42
+ }
43
+ export class Zener extends Diode {
44
+ constructor(userParams = {}) {
45
+ super(userParams);
46
+ const w = resheight * 1.4;
47
+ const zw = 0.1;
48
+ this.segments.push(new Segment([
49
+ [w, resheight],
50
+ [w + zw, resheight + zw],
51
+ ]));
52
+ this.segments.push(new Segment([
53
+ [w, -resheight],
54
+ [w - zw, -resheight - zw],
55
+ ]));
56
+ }
57
+ }
58
+ //# sourceMappingURL=diode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diode.js","sourceRoot":"","sources":["../../src/elements/diode.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,OAAO,KAAM,SAAQ,YAAY;IACrC,YAAY,aAAsC,EAAE;QAClD,KAAK,CAAC,UAAU,CAAC,CAAC;QAClB,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,CAAC;QAC1B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,IAAI,OAAO,CAAC;YACV,CAAC,CAAC,EAAE,CAAC,CAAC;YACN,GAAG;YACH,CAAC,CAAC,EAAE,SAAS,CAAC;YACd,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC;YACf,GAAG;YACH,CAAC,CAAC,EAAE,CAAC,CAAC;SACP,CAAC,CACH,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,IAAI,WAAW,CACb;YACE,CAAC,CAAC,EAAE,SAAS,CAAC;YACd,CAAC,CAAC,EAAE,CAAC,CAAC;YACN,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC;SAChB,EACD,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAC9B,CACF,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,QAAS,SAAQ,KAAK;IACjC,YAAY,aAAsC,EAAE;QAClD,KAAK,CAAC,UAAU,CAAC,CAAC;QAClB,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,CAAC;QAC1B,MAAM,EAAE,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,IAAI,OAAO,CAAC;YACV,CAAC,CAAC,EAAE,SAAS,CAAC;YACd,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC;YACnB,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,GAAG,EAAE,CAAC;SACzB,CAAC,CACH,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,IAAI,OAAO,CAAC;YACV,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC;YACf,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC;YACpB,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC;SAC1B,CAAC,CACH,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,KAAM,SAAQ,KAAK;IAC9B,YAAY,aAAsC,EAAE;QAClD,KAAK,CAAC,UAAU,CAAC,CAAC;QAClB,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,CAAC;QAC1B,MAAM,EAAE,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,IAAI,OAAO,CAAC;YACV,CAAC,CAAC,EAAE,SAAS,CAAC;YACd,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,GAAG,EAAE,CAAC;SACzB,CAAC,CACH,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,IAAI,OAAO,CAAC;YACV,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC;YACf,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC;SAC1B,CAAC,CACH,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,16 @@
1
+ import { Element } from "../element.js";
2
+ import { Point, type XY } from "../geometry/point.js";
3
+ export declare abstract class ElementCompound extends Element {
4
+ readonly compoundDwgParams: Record<string, unknown>;
5
+ readonly elements: Element[];
6
+ protected _here: Point;
7
+ protected _theta: number;
8
+ constructor(userParams?: Record<string, unknown>);
9
+ abstract setup(): void;
10
+ protected _initAnchors(): void;
11
+ move(dx: number, dy: number): void;
12
+ moveFrom(xy: XY, dx?: number, dy?: number, theta?: number): void;
13
+ contains(element: Element): boolean;
14
+ add(element: Element): Element;
15
+ }
16
+ //# sourceMappingURL=element-compound.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"element-compound.d.ts","sourceRoot":"","sources":["../../src/elements/element-compound.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,MAAM,sBAAsB,CAAC;AAItD,8BAAsB,eAAgB,SAAQ,OAAO;IACnD,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpD,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAM;IAClC,SAAS,CAAC,KAAK,QAAmB;IAClC,SAAS,CAAC,MAAM,SAAK;gBAET,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;IAqBpD,QAAQ,CAAC,KAAK,IAAI,IAAI;IAEtB,SAAS,CAAC,YAAY,IAAI,IAAI;IAa9B,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAIlC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,SAAI,EAAE,EAAE,SAAI,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAStD,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IAInC,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;CAW/B"}
@@ -0,0 +1,68 @@
1
+ import { Element } from "../element.js";
2
+ import { Point } from "../geometry/point.js";
3
+ import { swapPause } from "../drawing-stack.js";
4
+ export class ElementCompound extends Element {
5
+ compoundDwgParams;
6
+ elements = [];
7
+ _here = new Point(0, 0);
8
+ _theta = 0;
9
+ constructor(userParams = {}) {
10
+ super(userParams);
11
+ this.compoundDwgParams = {
12
+ unit: userParams.unit ?? 3,
13
+ font: userParams.font ?? null,
14
+ fontsize: userParams.fontsize ?? 14,
15
+ lblofst: userParams.lblofst ?? 0.1,
16
+ color: userParams.color ?? "black",
17
+ lw: userParams.lw ?? 2,
18
+ ls: userParams.ls ?? "-",
19
+ fill: userParams.fill ?? "none",
20
+ };
21
+ const wasPause = swapPause(true);
22
+ try {
23
+ this.setup();
24
+ this._initAnchors();
25
+ }
26
+ finally {
27
+ swapPause(wasPause);
28
+ }
29
+ }
30
+ _initAnchors() {
31
+ for (const [key, value] of Object.entries(this)) {
32
+ if (value instanceof Element && key !== "elements") {
33
+ for (const anchorName of Object.keys(value.anchors)) {
34
+ const abs = value.absanchors[anchorName];
35
+ if (abs) {
36
+ this.anchors[`${key}.${anchorName}`] = [abs.x, abs.y];
37
+ }
38
+ }
39
+ }
40
+ }
41
+ }
42
+ move(dx, dy) {
43
+ this._here = new Point(this._here.x + dx, this._here.y + dy);
44
+ }
45
+ moveFrom(xy, dx = 0, dy = 0, theta) {
46
+ const px = xy instanceof Point ? xy.x : xy[0];
47
+ const py = xy instanceof Point ? xy.y : xy[1];
48
+ this._here = new Point(px + dx, py + dy);
49
+ if (theta !== undefined) {
50
+ this._theta = theta;
51
+ }
52
+ }
53
+ contains(element) {
54
+ return this.elements.includes(element);
55
+ }
56
+ add(element) {
57
+ this.elements.push(element);
58
+ const out = element._place(this._here.toTuple(), this._theta, this.compoundDwgParams);
59
+ this._here = out.point;
60
+ this._theta = out.theta;
61
+ for (const s of element.segments) {
62
+ const merged = s.xform(element.transform, element.params);
63
+ this.segments.push(merged);
64
+ }
65
+ return element;
66
+ }
67
+ }
68
+ //# sourceMappingURL=element-compound.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"element-compound.js","sourceRoot":"","sources":["../../src/elements/element-compound.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Embed a completed `Drawing` as a single `Element` — Python `elements/elements.py` · `ElementDrawing`.
3
+ */
4
+ import type { Drawing } from "../drawing.js";
5
+ import { Element } from "../element.js";
6
+ export declare class ElementDrawing extends Element {
7
+ readonly drawing: Drawing;
8
+ constructor(drawing: Drawing, userParams?: Record<string, unknown>);
9
+ }
10
+ //# sourceMappingURL=element-drawing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"element-drawing.d.ts","sourceRoot":"","sources":["../../src/elements/element-drawing.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGxC,qBAAa,cAAe,SAAQ,OAAO;IACzC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;gBAEd,OAAO,EAAE,OAAO,EAAE,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAWvE"}
@@ -0,0 +1,16 @@
1
+ import { Element } from "../element.js";
2
+ export class ElementDrawing extends Element {
3
+ drawing;
4
+ constructor(drawing, userParams = {}) {
5
+ super(userParams);
6
+ this.drawing = drawing;
7
+ this.segments = drawing.getSegments();
8
+ for (const [k, v] of Object.entries(drawing.anchors)) {
9
+ this.anchors[k] = [v[0], v[1]];
10
+ }
11
+ const h = drawing.here;
12
+ this.elmParams.drop = [h.x, h.y];
13
+ this.elmParams.d = "right";
14
+ }
15
+ }
16
+ //# sourceMappingURL=element-drawing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"element-drawing.js","sourceRoot":"","sources":["../../src/elements/element-drawing.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGxC,MAAM,OAAO,cAAe,SAAQ,OAAO;IAChC,OAAO,CAAU;IAE1B,YAAY,OAAgB,EAAE,aAAsC,EAAE;QACpE,KAAK,CAAC,UAAU,CAAC,CAAC;QAClB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAmB,CAAC;QACvD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACrD,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC;QACD,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,OAAO,CAAC;IAC7B,CAAC;CACF"}
@@ -0,0 +1,6 @@
1
+ import { Element } from "../element.js";
2
+ /** Ground symbol (one-terminal). */
3
+ export declare class Ground extends Element {
4
+ constructor(userParams?: Record<string, unknown>);
5
+ }
6
+ //# sourceMappingURL=ground.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ground.d.ts","sourceRoot":"","sources":["../../src/elements/ground.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAOxC,oCAAoC;AACpC,qBAAa,MAAO,SAAQ,OAAO;gBACrB,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAuBrD"}
@@ -0,0 +1,30 @@
1
+ import { Element } from "../element.js";
2
+ import { GAP, Segment } from "../segment.js";
3
+ import { resheight } from "./twoterm.js";
4
+ const gndgap = 0.12;
5
+ const gndLead = 0.4;
6
+ /** Ground symbol (one-terminal). */
7
+ export class Ground extends Element {
8
+ constructor(userParams = {}) {
9
+ super(userParams);
10
+ Object.assign(this.defaults, { lead: true, theta: 0, drop: [0, 0] });
11
+ const lead = this.params.lead !== false;
12
+ const gl = lead ? gndLead : 0;
13
+ this.segments.push(new Segment([
14
+ [0, 0],
15
+ [0, -gl],
16
+ [-resheight, -gl],
17
+ [resheight, -gl],
18
+ GAP,
19
+ [-resheight * 0.7, -gndgap - gl],
20
+ [resheight * 0.7, -gndgap - gl],
21
+ GAP,
22
+ [-resheight * 0.2, -gndgap * 2 - gl],
23
+ [resheight * 0.2, -gndgap * 2 - gl],
24
+ ]));
25
+ this.anchors.start = [0, 0];
26
+ this.anchors.center = [0, 0];
27
+ this.anchors.end = [0, 0];
28
+ }
29
+ }
30
+ //# sourceMappingURL=ground.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ground.js","sourceRoot":"","sources":["../../src/elements/ground.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,MAAM,GAAG,IAAI,CAAC;AACpB,MAAM,OAAO,GAAG,GAAG,CAAC;AAEpB,oCAAoC;AACpC,MAAM,OAAO,MAAO,SAAQ,OAAO;IACjC,YAAY,aAAsC,EAAE;QAClD,KAAK,CAAC,UAAU,CAAC,CAAC;QAClB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QACrE,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC;QACxC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,IAAI,OAAO,CAAC;YACV,CAAC,CAAC,EAAE,CAAC,CAAC;YACN,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YACR,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC;YACjB,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC;YAChB,GAAG;YACH,CAAC,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC;YAChC,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC;YAC/B,GAAG;YACH,CAAC,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC;YACpC,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC;SACpC,CAAC,CACH,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5B,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,CAAC;CACF"}