@rnacanvas/draw 14.5.3 → 14.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/README.md ADDED
@@ -0,0 +1,61 @@
1
+ # Installation
2
+
3
+ With `npm`:
4
+
5
+ ```
6
+ npm install @rnacanvas/draw
7
+ ```
8
+
9
+ # Usage
10
+
11
+ All exports of this package can be accessed as named imports.
12
+
13
+ ```javascript
14
+ // an example import
15
+ import { Drawing } from '@rnacanvas/draw';
16
+ ```
17
+
18
+ ## `class Drawing`
19
+
20
+ A 2D nucleic acid structure drawing.
21
+
22
+ ```javascript
23
+ var drawing = new Drawing();
24
+
25
+ // a drawing is just an SVG element
26
+ drawing.domNode instanceof SVGSVGElement; // true
27
+
28
+ // necessary for bounding box calculations to work
29
+ document.body.append(drawing.domNode);
30
+
31
+ var base1 = drawing.addBase('A');
32
+ var base2 = drawing.addBase('U');
33
+
34
+ base1.centerPoint.x = 0;
35
+ base1.centerPoint.y = 0;
36
+
37
+ base2.centerPoint.x = 20;
38
+ base2.centerPoint.y = 0;
39
+
40
+ var secondaryBond = drawing.addSecondaryBond(base1, base2);
41
+
42
+ // increase the size of the drawing to make everything visible
43
+ drawing.setPadding(100);
44
+ ```
45
+
46
+ ### `addTertiaryBond()`
47
+
48
+ Creates a new tertiary bond (e.g., a curved bond)
49
+ between the two specified bases,
50
+ adds it to the drawing
51
+ and returns it.
52
+
53
+ ```javascript
54
+ var base1 = drawing.addBase('G');
55
+ var base2 = drawing.addBase('C');
56
+
57
+ var tertiaryBond = drawing.addTertiaryBond(base1, base2);
58
+
59
+ tertiaryBond.base1 === base1; // true
60
+ tertiaryBond.base2 === base2; // true
61
+ ```
package/dist/Drawing.d.ts CHANGED
@@ -4,6 +4,7 @@ import type { BaseOutline } from './BaseOutline';
4
4
  import { StraightBond } from '@rnacanvas/draw.bases.bonds';
5
5
  import { PrimaryBond } from './PrimaryBondsDrawing';
6
6
  import { SecondaryBond } from './SecondaryBondsDrawing';
7
+ import type { TertiaryBond } from './TertiaryBondsDrawing';
7
8
  import { Box } from '@rnacanvas/boxes';
8
9
  /**
9
10
  * The minimum and maximum X and Y coordinates of a drawing.
@@ -298,6 +299,11 @@ export declare class Drawing {
298
299
  * Returns the newly added secondary bond.
299
300
  */
300
301
  addSecondaryBond(base1: Nucleobase, base2: Nucleobase): SecondaryBond;
302
+ get tertiaryBonds(): Iterable<TertiaryBond>;
303
+ /**
304
+ * Creates a new tertiary bond between the two bases, adds it to the drawing and returns it.
305
+ */
306
+ addTertiaryBond(base1: Nucleobase, base2: Nucleobase): TertiaryBond;
301
307
  /**
302
308
  * Rotates the bases by the given angle.
303
309
  *
@@ -382,6 +388,11 @@ export declare class Drawing {
382
388
  baseID1: string;
383
389
  baseID2: string;
384
390
  }[];
391
+ tertiaryBonds: {
392
+ id: string;
393
+ baseID1: string;
394
+ baseID2: string;
395
+ }[];
385
396
  };
386
397
  /**
387
398
  * Recreates a saved drawing from its serialized form.
@@ -1 +1 @@
1
- {"version":3,"file":"Drawing.d.ts","sourceRoot":"","sources":["../src/Drawing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Drawing.d.ts","sourceRoot":"","sources":["../src/Drawing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { CurvedBond } from '@rnacanvas/draw.bases.bonds';
2
+ import type { Nucleobase } from '@rnacanvas/draw.bases';
3
+ export declare class TertiaryBondsDrawing {
4
+ #private;
5
+ readonly domNode: SVGSVGElement;
6
+ constructor(domNode: SVGSVGElement);
7
+ get tertiaryBonds(): CurvedBond[];
8
+ set tertiaryBonds(tertiaryBonds: CurvedBond[]);
9
+ /**
10
+ * Adds a tertiary bond between the two bases.
11
+ */
12
+ addTertiaryBond(base1: Nucleobase, base2: Nucleobase): TertiaryBond;
13
+ }
14
+ export type TertiaryBond = CurvedBond;
15
+ //# sourceMappingURL=TertiaryBondsDrawing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TertiaryBondsDrawing.d.ts","sourceRoot":"","sources":["../src/TertiaryBondsDrawing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAEzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAIxD,qBAAa,oBAAoB;;IAMnB,QAAQ,CAAC,OAAO,EAAE,aAAa;gBAAtB,OAAO,EAAE,aAAa;IAI3C,IAAI,aAAa,iBAEhB;IAED,IAAI,aAAa,CAAC,aAAa,cAAA,EAE9B;IAED;;OAEG;IACH,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,GAAG,YAAY;CASpE;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC"}