@rnacanvas/draw.bases.numberings 2.3.0 → 3.0.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.
@@ -1,7 +1,7 @@
1
1
  import type { Nucleobase } from './Nucleobase';
2
2
  import type { Drawing } from './Drawing';
3
3
  import { CenterPoint } from '@rnacanvas/draw.svg.text';
4
- export declare class BaseNumbering<B extends Nucleobase> {
4
+ export declare class Numbering<B extends Nucleobase> {
5
5
  #private;
6
6
  readonly domNode: SVGTextElement;
7
7
  readonly owner: B;
@@ -14,14 +14,14 @@ export declare class BaseNumbering<B extends Nucleobase> {
14
14
  };
15
15
  };
16
16
  /**
17
- * Creates and returns a new base numbering
18
- * that numbers the given base the specified number.
17
+ * Creates and returns a new numbering
18
+ * that numbers the specified base the specified number.
19
19
  */
20
- static numbering<B extends Nucleobase>(b: B, n: number): BaseNumbering<B>;
20
+ static numbering<B extends Nucleobase>(b: B, n: number): Numbering<B>;
21
21
  readonly centerPoint: CenterPoint;
22
22
  constructor(domNode: SVGTextElement, owner: B);
23
23
  get id(): string;
24
- get textContent(): string | null;
24
+ get textContent(): string;
25
25
  hasAttribute(name: string): boolean;
26
26
  getAttribute(name: string): string | null;
27
27
  setAttribute(name: string, value: string): void;
@@ -36,7 +36,7 @@ export declare class BaseNumbering<B extends Nucleobase> {
36
36
  direction: number;
37
37
  };
38
38
  /**
39
- * Returns the serialized form of the base numbering.
39
+ * Returns the serialized form of the numbering.
40
40
  */
41
41
  serialized(): {
42
42
  id: string;
@@ -47,13 +47,13 @@ export declare class BaseNumbering<B extends Nucleobase> {
47
47
  };
48
48
  };
49
49
  /**
50
- * Deserializes a saved base numbering.
50
+ * Deserializes a saved numbering.
51
51
  *
52
52
  * Throws if unable to do so.
53
53
  *
54
- * @param savedBaseNumbering The serialized form of the saved base numbering.
55
- * @param parentDrawing The drawing that the saved base numbering is in.
54
+ * @param savedNumbering The serialized form of the saved numbering.
55
+ * @param parentDrawing The drawing that the saved numbering is in.
56
56
  */
57
- static deserialized<B extends Nucleobase>(savedBaseNumbering: unknown, parentDrawing: Drawing<B>): BaseNumbering<B>;
57
+ static deserialized<B extends Nucleobase>(savedNumbering: unknown, parentDrawing: Drawing<B>): Numbering<B>;
58
58
  }
59
- //# sourceMappingURL=BaseNumbering.d.ts.map
59
+ //# sourceMappingURL=Numbering.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Numbering.d.ts","sourceRoot":"","sources":["../src/Numbering.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAUvD,qBAAa,SAAS,CAAC,CAAC,SAAS,UAAU;;IAkC7B,QAAQ,CAAC,OAAO,EAAE,cAAc;IAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;IAjC/D,MAAM,CAAC,aAAa;;;;;;;MAOlB;IAEF;;;OAGG;IACH,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;IAgBrE,QAAQ,CAAC,WAAW,cAAC;gBAIA,OAAO,EAAE,cAAc,EAAW,KAAK,EAAE,CAAC;IAa/D,IAAI,EAAE,WAEL;IAED,IAAI,WAAW,WAEd;IAED,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAInC,YAAY,CAAC,IAAI,EAAE,MAAM;IAIzB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAI/C,aAAa,CAAC,UAAU,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,IAAI;IAI3D,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAInC,IAAI,YAAY;;;;;MAsCf;IAED;;OAEG;IACH,UAAU;;;;;;;;IAUV;;;;;;;OAOG;IACH,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC;CAmB7F"}
@@ -1,12 +1,12 @@
1
1
  import type { Nucleobase } from './Nucleobase';
2
- import type { BaseNumbering } from './BaseNumbering';
2
+ import type { Numbering } from './Numbering';
3
3
  /**
4
- * A line to connect a base numbering to its owner base.
4
+ * A line connecting a numbering to its owner base.
5
5
  */
6
- export declare class BaseNumberingLine<B extends Nucleobase> {
6
+ export declare class NumberingLine<B extends Nucleobase> {
7
7
  #private;
8
8
  readonly domNode: SVGLineElement;
9
- readonly owner: BaseNumbering<B>;
9
+ readonly owner: Numbering<B>;
10
10
  static defaultValues: {
11
11
  attributes: {
12
12
  stroke: string;
@@ -17,17 +17,17 @@ export declare class BaseNumberingLine<B extends Nucleobase> {
17
17
  numberingPadding: number;
18
18
  };
19
19
  /**
20
- * Creates and returns a new base numbering line
21
- * connecting the given base numbering to its owner base.
20
+ * Creates and returns a new numbering line
21
+ * connecting the given numbering to its owner base.
22
22
  */
23
- static connecting<B extends Nucleobase>(bn: BaseNumbering<B>): BaseNumberingLine<B>;
23
+ static connecting<B extends Nucleobase>(n: Numbering<B>): NumberingLine<B>;
24
24
  /**
25
- * Creates and returns a new base numbering line
26
- * for the given base numbering
25
+ * Creates and returns a new numbering line
26
+ * for the given numbering
27
27
  * with zero base padding and zero numbering padding.
28
28
  */
29
- static unpadded<B extends Nucleobase>(bn: BaseNumbering<B>): BaseNumberingLine<B>;
30
- constructor(domNode: SVGLineElement, owner: BaseNumbering<B>);
29
+ static unpadded<B extends Nucleobase>(n: Numbering<B>): NumberingLine<B>;
30
+ constructor(domNode: SVGLineElement, owner: Numbering<B>);
31
31
  get id(): string;
32
32
  hasAttribute(name: string): boolean;
33
33
  getAttribute(name: string): string | null;
@@ -39,19 +39,19 @@ export declare class BaseNumberingLine<B extends Nucleobase> {
39
39
  get x1(): number;
40
40
  get y1(): number;
41
41
  /**
42
- * The end point of the line that connects with the owner base of the base numbering.
42
+ * The end point of the line that connects with the owner base of the numbering.
43
43
  */
44
44
  get point1(): Point;
45
45
  get x2(): number;
46
46
  get y2(): number;
47
47
  /**
48
- * The end point of the line that connects with the base numbering.
48
+ * The end point of the line that connects with the numbering.
49
49
  */
50
50
  get point2(): Point;
51
51
  get length(): number;
52
52
  set length(length: number);
53
53
  /**
54
- * The angle (in radians) that is the direction of the base numbering line
54
+ * The angle (in radians) that is the direction of the numbering line
55
55
  * (from point 1 to point 2).
56
56
  */
57
57
  get direction(): number;
@@ -60,9 +60,9 @@ export declare class BaseNumberingLine<B extends Nucleobase> {
60
60
  set basePadding(basePadding: number);
61
61
  get numberingPadding(): number;
62
62
  set numberingPadding(numberingPadding: number);
63
- set(values: Partial<BaseNumberingLineValues>): void;
63
+ set(values: Partial<NumberingLineValues>): void;
64
64
  /**
65
- * Returns the serialized form of the base numbering.
65
+ * Returns the serialized form of the numbering line.
66
66
  */
67
67
  serialized(): {
68
68
  id: string;
@@ -71,16 +71,16 @@ export declare class BaseNumberingLine<B extends Nucleobase> {
71
71
  numberingPadding: number;
72
72
  };
73
73
  /**
74
- * Deserializes the saved base numbering line.
74
+ * Deserializes the saved numbering line.
75
75
  *
76
76
  * Throws if unable to do so.
77
77
  *
78
- * @param savedBaseNumberingLine The serialized form of the saved base numbering line.
79
- * @param parentDrawing The drawing that the saved base numbering line is in.
78
+ * @param savedNumberingLine The serialized form of the saved numbering line.
79
+ * @param parentDrawing The drawing that the saved numbering line is in.
80
80
  */
81
- static deserialized<B extends Nucleobase>(savedBaseNumberingLine: unknown, parentDrawing: Drawing<B>): BaseNumberingLine<B>;
81
+ static deserialized<B extends Nucleobase>(savedNumberingLine: unknown, parentDrawing: Drawing<B>): NumberingLine<B>;
82
82
  }
83
- type BaseNumberingLineValues = {
83
+ type NumberingLineValues = {
84
84
  attributes: {
85
85
  [name: string]: string;
86
86
  };
@@ -88,7 +88,7 @@ type BaseNumberingLineValues = {
88
88
  numberingPadding: number;
89
89
  };
90
90
  /**
91
- * The drawing interface used by base numbering lines.
91
+ * The drawing interface used by numbering lines.
92
92
  */
93
93
  interface Drawing<B extends Nucleobase> {
94
94
  /**
@@ -96,16 +96,16 @@ interface Drawing<B extends Nucleobase> {
96
96
  */
97
97
  domNode: SVGSVGElement;
98
98
  /**
99
- * All base numberings in the drawing.
99
+ * All numberings in the drawing.
100
100
  *
101
101
  * Is required to be an array to improve performance
102
102
  * (as opposed to allowing this to be any form of iterable).
103
103
  */
104
- baseNumberings: BaseNumbering<B>[];
104
+ numberings: Numbering<B>[];
105
105
  }
106
106
  type Point = {
107
107
  x: number;
108
108
  y: number;
109
109
  };
110
110
  export {};
111
- //# sourceMappingURL=BaseNumberingLine.d.ts.map
111
+ //# sourceMappingURL=NumberingLine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NumberingLine.d.ts","sourceRoot":"","sources":["../src/NumberingLine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAY7C;;GAEG;AACH,qBAAa,aAAa,CAAC,CAAC,SAAS,UAAU;;IAkDjC,QAAQ,CAAC,OAAO,EAAE,cAAc;IAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;IAjD1E,MAAM,CAAC,aAAa;;;;;;;;MAQlB;IAEF;;;OAGG;IACH,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC;IAiB1E;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC;gBAanD,OAAO,EAAE,cAAc,EAAW,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;IAY1E,IAAI,EAAE,WAEL;IAED,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAInC,YAAY,CAAC,IAAI,EAAE,MAAM;IAIzB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAI/C,aAAa,CAAC,UAAU,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE;IAIpD,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAInC,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,IAAI,EAAE,IAAI,MAAM,CAEf;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,KAAK,CAElB;IAED,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,IAAI,EAAE,IAAI,MAAM,CAEf;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,KAAK,CAElB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,MAAM,CAAC,MAAM,EAJH,MAIG,EAShB;IAED;;;OAGG;IACH,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,IAAI,SAAS,CAAC,SAAS,EAJN,MAIM,EAQtB;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,WAAW,CAAC,WAAW,EAJR,MAIQ,EAG1B;IAED,IAAI,gBAAgB,IAAI,MAAM,CAE7B;IAED,IAAI,gBAAgB,CAAC,gBAAgB,EAJb,MAIa,EAGpC;IAED,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,IAAI;IAmB/C;;OAEG;IACH,UAAU;;;;;;IAWV;;;;;;;OAOG;IACH,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,UAAU,EAAE,kBAAkB,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC;CAiBpH;AAED,KAAK,mBAAmB,GAAG;IACzB,UAAU,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF;;GAEG;AACH,UAAU,OAAO,CAAC,CAAC,SAAS,UAAU;IACpC;;OAEG;IACH,OAAO,EAAE,aAAa,CAAC;IAEvB;;;;;OAKG;IACH,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;CAC5B;AAED,KAAK,KAAK,GAAG;IACX,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * For working with saved numberings, which might possibly use old, legacy formats.
3
+ */
4
+ export declare class VersionlessNumbering {
5
+ #private;
6
+ constructor(savedNumbering: unknown);
7
+ /**
8
+ * Throws if unable to find the ID of the saved numbering.
9
+ */
10
+ get id(): string | never;
11
+ /**
12
+ * Throws if unable to find the owner ID of the saved numbering.
13
+ */
14
+ get ownerID(): string | never;
15
+ get displacement(): unknown;
16
+ }
17
+ //# sourceMappingURL=VersionlessNumbering.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VersionlessNumbering.d.ts","sourceRoot":"","sources":["../src/VersionlessNumbering.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,qBAAa,oBAAoB;;gBAGnB,cAAc,EAAE,OAAO;IAQnC;;OAEG;IACH,IAAI,EAAE,IAAI,MAAM,GAAG,KAAK,CAWvB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,GAAG,KAAK,CAM5B;IAED,IAAI,YAAY,IAAI,OAAO,CAE1B;CACF"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * For working with saved numbering lines, which might possibly use old, legacy formats.
3
+ */
4
+ export declare class VersionlessNumberingLine {
5
+ #private;
6
+ constructor(savedNumberingLine: unknown);
7
+ /**
8
+ * Throws if unable to find the ID of the saved numbering line.
9
+ */
10
+ get id(): string | never;
11
+ /**
12
+ * Throws if unable to find the owner ID of the saved numbering line.
13
+ */
14
+ get ownerID(): string | never;
15
+ get basePadding(): unknown;
16
+ get numberingPadding(): unknown;
17
+ }
18
+ //# sourceMappingURL=VersionlessNumberingLine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VersionlessNumberingLine.d.ts","sourceRoot":"","sources":["../src/VersionlessNumberingLine.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,qBAAa,wBAAwB;;gBAGvB,kBAAkB,EAAE,OAAO;IAQvC;;OAEG;IACH,IAAI,EAAE,IAAI,MAAM,GAAG,KAAK,CAWvB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,GAAG,KAAK,CAW5B;IAED,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,IAAI,gBAAgB,IAAI,OAAO,CAE9B;CACF"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { BaseNumbering } from './BaseNumbering';
2
- export { BaseNumbering };
3
- import { BaseNumberingLine } from './BaseNumberingLine';
4
- export { BaseNumberingLine };
1
+ import { Numbering } from './Numbering';
2
+ export { Numbering };
3
+ import { NumberingLine } from './NumberingLine';
4
+ export { NumberingLine };
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,CAAC;AAErB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,CAAC"}
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports["draw.bases.numberings"]=e():t["draw.bases.numberings"]=e()}(this,(()=>(()=>{var t={645:function(t){var e;e=()=>(()=>{var t={986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach((function(t){return e+=t})),e}function n(t){return r(t)/t.length}function i(t){t.sort((function(t,e){return t-e}))}t.r(e),t.d(e,{areWithin:()=>f,average:()=>n,clamp:()=>l,degrees:()=>b,flipAway:()=>w,isBetween:()=>h,isBetweenExclusive:()=>d,isBetweenInclusive:()=>h,max:()=>c,mean:()=>n,median:()=>a,min:()=>u,normalizeAngle:()=>y,radians:()=>p,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>m,sortedNumbers:()=>s,sortedNumbersAscending:()=>s,sortedNumbersDescending:()=>g,sum:()=>r});var o=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,o=e.length;i<o;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function s(t){var e=o([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=s(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function u(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.min(e,t)})),e}function c(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.max(e,t)})),e}function h(t,e,r){return t>=e&&t<=r}function d(t,e,r){return t>e&&t<r}function l(t,e,r){return t<e?e:t>r?r:t}function f(t,e,r){return Math.abs(t-e)<=r}function m(t){i(t),t.reverse()}function g(t){var e=s(t);return e.reverse(),e}function b(t){return t*(180/Math.PI)}function p(t){return t*(Math.PI/180)}function y(t,e){void 0===e&&(e=-Math.PI);var r=t-e;return e+((r%=2*Math.PI)>=0?r:r+2*Math.PI)}function w(t,e){var r=(e=y(e,t))-t;return(r<Math.PI/2||r>3*Math.PI/2)&&(t+=Math.PI),t}return e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var o=e[n]={exports:{}};return t[n].call(o.exports,o,o.exports,r),o.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{Box:()=>e});var t=r(986);class e{static bounding(r){let n=r.map((t=>e.matching(t))),i=(0,t.min)(n.map((t=>t.left))),o=(0,t.min)(n.map((t=>t.top))),s=(0,t.max)(n.map((t=>t.right)))-i,a=(0,t.max)(n.map((t=>t.bottom)))-o;return new e(i,o,s,a)}static matching(t){let{x:r,y:n,width:i,height:o}=t;return new e(r,n,i,o)}constructor(t,e,r,n){this.x=t,this.y=e,this.width=r,this.height=n}get centerX(){return this.minX+this.width/2}get centerY(){return this.minY+this.height/2}get minX(){return this.x}get minY(){return this.y}get maxX(){return this.minX+this.width}get maxY(){return this.minY+this.height}get top(){return this.minY}get right(){return this.maxX}get bottom(){return this.maxY}get left(){return this.minX}isBoundedBy(t){let r=e.matching(t);return this.minX>=r.minX&&this.minY>=r.minY&&this.maxX<=r.maxX&&this.maxY<=r.maxY}padded(t,r){return"number"!=typeof r&&(r=t),new e(this.x-t,this.y-r,this.width+2*t,this.height+2*r)}peripheralPoint(t){let e=this.width/2,r=this.height/2,n=Math.pow(Math.pow(e,2)+Math.pow(r,2),.5),i=this.centerX+n*Math.cos(t),o=this.centerY+n*Math.sin(t),s=n;return Math.abs(this.centerX-i)>e&&(s=Math.abs(e/Math.cos(t)),s=Number.isFinite(s)?s:r),Math.abs(this.centerY-o)>r&&(s=Math.abs(r/Math.sin(t)),s=Number.isFinite(s)?s:e),{x:this.centerX+s*Math.cos(t),y:this.centerY+s*Math.sin(t)}}}})(),n})(),t.exports=e()},731:function(t){var e;e=()=>(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{CenterPoint:()=>c});var r,n,i,o,s,a=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},u=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class c{constructor(t){r.add(this),n.set(this,void 0),i.set(this,{move:[]}),o.set(this,void 0),a(this,n,t,"f"),a(this,o,new MutationObserver((()=>u(this,r,"m",s).call(this,"move"))),"f"),u(this,o,"f").observe(t,{attributes:!0,childList:!0,characterData:!0,subtree:!0})}get x(){let t=u(this,n,"f").getBBox();return t.x+t.width/2}set x(t){let e=this.x,r=[...u(this,n,"f").x.baseVal].map((t=>t.value));0!=r.length||r.push(0),r=r.map((r=>r+(t-e))),u(this,n,"f").setAttribute("x",r.join(", "))}get y(){let t=u(this,n,"f").getBBox();return t.y+t.height/2}set y(t){let e=this.y,r=[...u(this,n,"f").y.baseVal].map((t=>t.value));0!=r.length||r.push(0),r=r.map((r=>r+(t-e))),u(this,n,"f").setAttribute("y",r.join(", "))}addEventListener(t,e){u(this,i,"f")[t].push(e)}removeEventListener(t,e){u(this,i,"f")[t]=u(this,i,"f")[t].filter((t=>t!==e))}}return n=new WeakMap,i=new WeakMap,o=new WeakMap,r=new WeakSet,s=function(t){u(this,i,"f")[t].forEach((t=>t()))},e})(),t.exports=e()},726:function(t){var e;e=()=>(()=>{var t={854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function o(t){return n(t)&&t>0}function s(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return null==t}function c(t){return"object"==typeof t&&null!==t}function h(t){return Array.isArray(t)}function d(t){return h(t)&&0==t.length}function l(t){return h(t)&&t.length>0}function f(t){return h(t)&&t.every(r)}function m(t){return f(t)&&t.length>0}function g(t){return h(t)&&t.every(n)}function b(t){return h(t)&&t.every(i)}function p(t){return h(t)&&t.every(a)}function y(t){return p(t)&&t.length>0}return t.r(e),t.d(e,{isArray:()=>h,isEmptyArray:()=>d,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>g,isNonEmptyArray:()=>l,isNonEmptyNumbersArray:()=>m,isNonEmptyStringsArray:()=>y,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>b,isNonNegativeFiniteNumber:()=>s,isNonNullObject:()=>c,isNullish:()=>u,isNumber:()=>r,isNumbersArray:()=>f,isPositiveFiniteNumber:()=>o,isString:()=>a,isStringsArray:()=>p}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var o=e[n]={exports:{}};return t[n].call(o.exports,o,o.exports,r),o.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";function t(t,e){for(let[r,n]of Object.entries(e))t.setAttribute(r,n)}r.r(n),r.d(n,{CoordinateSystem:()=>d,HorizontalClientScaling:()=>f,InnerXML:()=>w,OuterXML:()=>P,Scaling:()=>l,VerticalClientScaling:()=>m,assignUUID:()=>h,bringToFront:()=>g,isSVGGraphicsElement:()=>S,isSVGGraphicsElementsArray:()=>M,sendToBack:()=>b,setAttributes:()=>t});const e={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};var i,o=new Uint8Array(16);function s(){if(!i&&!(i="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return i(o)}for(var a=[],u=0;u<256;++u)a.push((u+256).toString(16).slice(1));const c=function(t,r,n){if(e.randomUUID&&!r&&!t)return e.randomUUID();var i=(t=t||{}).random||(t.rng||s)();if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,r){n=n||0;for(var o=0;o<16;++o)r[n+o]=i[o];return r}return function(t,e=0){return(a[t[e+0]]+a[t[e+1]]+a[t[e+2]]+a[t[e+3]]+"-"+a[t[e+4]]+a[t[e+5]]+"-"+a[t[e+6]]+a[t[e+7]]+"-"+a[t[e+8]]+a[t[e+9]]+"-"+a[t[e+10]]+a[t[e+11]]+a[t[e+12]]+a[t[e+13]]+a[t[e+14]]+a[t[e+15]]).toLowerCase()}(i)};function h(t){t.id="uuid-"+c()}class d{constructor(t){this.targetSVGDoc=t}get width(){return this.targetSVGDoc.viewBox.baseVal.width}get height(){return this.targetSVGDoc.viewBox.baseVal.height}get minX(){return this.targetSVGDoc.viewBox.baseVal.x}get maxX(){return this.minX+this.width}get minY(){return this.targetSVGDoc.viewBox.baseVal.y}get maxY(){return this.minY+this.height}get horizontalScaling(){return this.targetSVGDoc.width.baseVal.value/this.width}get verticalScaling(){return this.targetSVGDoc.height.baseVal.value/this.height}setScaling(t){this.targetSVGDoc.setAttribute("width",""+t*this.width),this.targetSVGDoc.setAttribute("height",""+t*this.height)}get clientWidth(){return this.targetSVGDoc.getBoundingClientRect().width}get clientHeight(){return this.targetSVGDoc.getBoundingClientRect().height}get horizontalClientScaling(){return this.clientWidth/this.width}get verticalClientScaling(){return this.clientHeight/this.height}get minClientX(){return this.targetSVGDoc.getBoundingClientRect().x}get minClientY(){return this.targetSVGDoc.getBoundingClientRect().y}fromClientX(t){return this.minX+(t-this.minClientX)/this.horizontalClientScaling}fromClientY(t){return this.minY+(t-this.minClientY)/this.verticalClientScaling}fromClientCoordinates(t,e){return[this.fromClientX(t),this.fromClientY(e)]}fromClientPoint(t){return{x:this.fromClientX(t.x),y:this.fromClientY(t.y)}}toClientX(t){return this.minClientX+this.horizontalClientScaling*(t-this.minX)}toClientY(t){return this.minClientY+this.verticalClientScaling*(t-this.minY)}toClientCoordinates(t,e){return[this.toClientX(t),this.toClientY(e)]}toClientPoint(t){return{x:this.toClientX(t.x),y:this.toClientY(t.y)}}}class l{constructor(t){this.targetSVGDoc=t}set(t){let e=this.targetSVGDoc.viewBox.baseVal;this.targetSVGDoc.setAttribute("width",t*e.width+"px"),this.targetSVGDoc.setAttribute("height",t*e.height+"px")}}class f{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.width/e.width}}class m{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.height/e.height}}function g(t){let e=t.parentNode;e&&e.appendChild(t)}function b(t){let e=t.parentNode;e&&e.prepend(t)}var p,y=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class w{constructor(t){p.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,p,t)}toString(){return y(this,p,"f").innerHTML}set(t){y(this,p,"f").innerHTML=t}}p=new WeakMap;var v,x=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class P{constructor(t){v.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,v,t)}toString(){return x(this,v,"f").outerHTML}set(t){let e=document.createElementNS("http://www.w3.org/2000/svg","svg");if(e.style.height="0px",document.body.append(e),e.innerHTML=t,!e.firstElementChild)throw new Error("Outer XML must encode an SVG element.");if(e.childNodes.length>1)throw new Error("Outer XML cannot encode multiple DOM nodes.");if(e.firstElementChild.tagName.toLowerCase()!=x(this,v,"f").tagName.toLowerCase())throw new Error("Outer XML must specify an SVG element with the same tag name as the target SVG element.");[...x(this,v,"f").attributes].forEach((t=>x(this,v,"f").removeAttribute(t.name))),[...e.firstElementChild.attributes].forEach((t=>x(this,v,"f").setAttribute(t.name,t.value))),x(this,v,"f").innerHTML=e.firstElementChild.innerHTML,e.remove()}}function S(t){return t instanceof SVGGraphicsElement}v=new WeakMap;var N=r(854);function M(t){return(0,N.isArray)(t)&&t.every(S)}})(),n})(),t.exports=e()},725:function(t){t.exports=(()=>{var t={986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach((function(t){return e+=t})),e}function n(t){return r(t)/t.length}function i(t){t.sort((function(t,e){return t-e}))}t.r(e),t.d(e,{areWithin:()=>l,average:()=>n,degrees:()=>g,isBetweenExclusive:()=>d,isBetweenInclusive:()=>h,max:()=>c,mean:()=>n,median:()=>a,min:()=>u,radians:()=>b,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>f,sortedNumbers:()=>s,sortedNumbersAscending:()=>s,sortedNumbersDescending:()=>m,sum:()=>r});var o=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,o=e.length;i<o;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function s(t){var e=o([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=s(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function u(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.min(e,t)})),e}function c(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.max(e,t)})),e}function h(t,e,r){return t>=e&&t<=r}function d(t,e,r){return t>e&&t<r}function l(t,e,r){return Math.abs(t-e)<=r}function f(t){i(t),t.reverse()}function m(t){var e=s(t);return e.reverse(),e}function g(t){return t*(180/Math.PI)}function b(t){return t*(Math.PI/180)}return e})()},854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function o(t){return n(t)&&t>0}function s(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return null==t}function c(t){return"object"==typeof t&&null!==t}function h(t){return Array.isArray(t)}return t.r(e),t.d(e,{isArray:()=>h,isFiniteNumber:()=>n,isNonFiniteNumber:()=>i,isNonNegativeFiniteNumber:()=>s,isNonNullObject:()=>c,isNullish:()=>u,isNumber:()=>r,isPositiveFiniteNumber:()=>o,isString:()=>a}),e})()},30:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return Math.pow(Math.pow(t.x,2)+Math.pow(t.y,2),.5)}function n(t){return Math.atan2(t.y,t.x)}return t.r(e),t.d(e,{direction:()=>n,magnitude:()=>r}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var o=e[n]={exports:{}};return t[n].call(o.exports,o,o.exports,r),o.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{areWithin:()=>a,centroid:()=>f,deepCopy:()=>o,direction:()=>d,displaced:()=>c,displacement:()=>u,distance:()=>s,isFinitePoint:()=>i,isPoint:()=>e,midpoint:()=>m});var t=r(854);function e(e){return(0,t.isNonNullObject)(e)&&(0,t.isNumber)(e.x)&&(0,t.isNumber)(e.y)}function i(r){return e(r)&&(0,t.isFiniteNumber)(r.x)&&(0,t.isFiniteNumber)(r.y)}function o(t){return{x:t.x,y:t.y}}function s(t,e){var r=e.x-t.x,n=e.y-t.y;return Math.pow(Math.pow(r,2)+Math.pow(n,2),.5)}function a(t,e,r){return s(t,e)<=r}function u(t,e){return{x:e.x-t.x,y:e.y-t.y}}function c(t,e){return{x:t.x+e.x,y:t.y+e.y}}var h=r(30);function d(t,e){return(0,h.direction)(u(t,e))}var l=r(986);function f(t){return{x:(0,l.mean)(t.map((function(t){return t.x}))),y:(0,l.mean)(t.map((function(t){return t.y})))}}function m(t,e){return f([t,e])}})(),n})()},854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function o(t){return n(t)&&t>0}function s(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return null==t}function c(t){return"object"==typeof t&&null!==t}function h(t){return Array.isArray(t)}function d(t){return h(t)&&0==t.length}function l(t){return h(t)&&t.length>0}function f(t){return h(t)&&t.every(r)}function m(t){return f(t)&&t.length>0}function g(t){return h(t)&&t.every(n)}function b(t){return h(t)&&t.every(i)}function p(t){return h(t)&&t.every(a)}function y(t){return p(t)&&t.length>0}return t.r(e),t.d(e,{isArray:()=>h,isEmptyArray:()=>d,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>g,isNonEmptyArray:()=>l,isNonEmptyNumbersArray:()=>m,isNonEmptyStringsArray:()=>y,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>b,isNonNegativeFiniteNumber:()=>s,isNonNullObject:()=>c,isNullish:()=>u,isNumber:()=>r,isNumbersArray:()=>f,isPositiveFiniteNumber:()=>o,isString:()=>a,isStringsArray:()=>p}),e})()},277:function(t){var e;e=()=>(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{Vector:()=>r});class r{static matching(t){return new r(t.x,t.y)}constructor(t,e){this.x=t,this.y=e}[Symbol.iterator](){return[this.x,this.y].values()}get magnitude(){return Math.sqrt(Math.pow(this.x,2)+Math.pow(this.y,2))}set magnitude(t){let e=this.direction;this.x=t*Math.cos(e),this.y=t*Math.sin(e)}get direction(){return Math.atan2(this.y,this.x)}set direction(t){let e=this.magnitude;this.x=e*Math.cos(t),this.y=e*Math.sin(t)}}return e})(),t.exports=e()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var o=e[n]={exports:{}};return t[n].call(o.exports,o,o.exports,r),o.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{BaseNumbering:()=>m,BaseNumberingLine:()=>M});var t,e=r(726),i=r(731),o=r(277),s=r(725),a=r(854),u=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class c{constructor(e){if(t.set(this,void 0),!(0,a.isNonNullObject)(e))throw new Error("Saved base numberings must be non-null objects.");!function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===n?i.call(t,r):i?i.value=r:e.set(t,r)}(this,t,e,"f")}get id(){if((0,a.isString)(u(this,t,"f").id))return u(this,t,"f").id;if((0,a.isString)(u(this,t,"f").textId))return u(this,t,"f").textId;throw new Error("Unable to find the ID of the saved base numbering.")}get ownerID(){if((0,a.isString)(u(this,t,"f").ownerID))return u(this,t,"f").ownerID;throw new Error("Unable to find the owner ID of the saved base numbering.")}get displacement(){return u(this,t,"f").displacement}}t=new WeakMap;var h,d,l,f=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class m{static numbering(t,r){let n=document.createElementNS("http://www.w3.org/2000/svg","text");(0,e.assignUUID)(n),n.textContent=`${r}`;let i=new m(n,t);return i.setAttributes(m.defaultValues.attributes),i.displacement.magnitude=0,i}constructor(t,e){h.add(this),this.domNode=t,this.owner=e,d.set(this,void 0),this.centerPoint=new i.CenterPoint(t),function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===n?i.call(t,r):i?i.value=r:e.set(t,r)}(this,d,o.Vector.matching((0,s.displacement)(e.centerPoint,this.centerPoint)),"f"),e.centerPoint.addEventListener("move",(()=>f(this,h,"m",l).call(this)))}get id(){return this.domNode.id}get textContent(){return this.domNode.textContent}hasAttribute(t){return this.domNode.hasAttribute(t)}getAttribute(t){return this.domNode.getAttribute(t)}setAttribute(t,e){this.domNode.setAttribute(t,e)}setAttributes(t){Object.entries(t).forEach((([t,e])=>this.setAttribute(t,e)))}removeAttribute(t){this.domNode.removeAttribute(t)}get displacement(){const t=()=>f(this,d,"f").x,e=t=>{f(this,d,"f").x=t,f(this,h,"m",l).call(this)},r=()=>f(this,d,"f").y,n=t=>{f(this,d,"f").y=t,f(this,h,"m",l).call(this)},i=()=>f(this,d,"f").magnitude,o=t=>{f(this,d,"f").magnitude=t,f(this,h,"m",l).call(this)},s=()=>f(this,d,"f").direction,a=t=>{f(this,d,"f").direction=t,f(this,h,"m",l).call(this)};return{get x(){return t()},set x(t){e(t)},get y(){return r()},set y(t){n(t)},get magnitude(){return i()},set magnitude(t){o(t)},get direction(){return s()},set direction(t){a(t)}}}serialized(){return{id:this.id,ownerID:this.owner.id,displacement:{x:this.displacement.x,y:this.displacement.y}}}static deserialized(t,e){let r=new c(t),n=e.domNode.querySelector("#"+r.id);if(!n)throw new Error("Base numbering DOM node not found.");if(!(n instanceof SVGTextElement))throw new Error("Base numbering DOM node must be an SVG text element.");let i=e.bases.find((t=>t.id===r.ownerID));if(!i)throw new Error("Unable to find base numbering owner.");let o=new m(n,i);return(0,s.isPoint)(r.displacement)&&(o.displacement.x=r.displacement.x,o.displacement.y=r.displacement.y),o}}d=new WeakMap,h=new WeakSet,l=function(){this.centerPoint.x=this.owner.centerPoint.x+f(this,d,"f").x,this.centerPoint.y=this.owner.centerPoint.y+f(this,d,"f").y},m.defaultValues={attributes:{"font-family":"Arial","font-size":"8","font-weight":"400",fill:"#808080"}};var g,b=r(645),p=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class y{constructor(t){if(g.set(this,void 0),!(0,a.isNonNullObject)(t))throw new Error("Saved base numbering lines must be non-null objects.");!function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===n?i.call(t,r):i?i.value=r:e.set(t,r)}(this,g,t,"f")}get id(){if((0,a.isString)(p(this,g,"f").id))return p(this,g,"f").id;if((0,a.isString)(p(this,g,"f").lineId))return p(this,g,"f").lineId;throw new Error("Unable to find the ID of the saved base numbering line.")}get ownerID(){if((0,a.isString)(p(this,g,"f").ownerID))return p(this,g,"f").ownerID;if((0,a.isString)(p(this,g,"f").textId))return p(this,g,"f").textId;throw new Error("Unable to find the owner ID of the saved base numbering line.")}get basePadding(){return p(this,g,"f").basePadding}get numberingPadding(){return p(this,g,"f").numberingPadding}}g=new WeakMap;var w,v,x,P,S=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},N=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class M{static connecting(t){let r=document.createElementNS("http://www.w3.org/2000/svg","line");(0,e.assignUUID)(r),r.setAttribute("x1",`${t.owner.centerPoint.x}`),r.setAttribute("y1",`${t.owner.centerPoint.y}`),r.setAttribute("x2",`${t.centerPoint.x}`),r.setAttribute("y2",`${t.centerPoint.y}`);let n=new M(r,t);return n.set(M.defaultValues),n}static unpadded(t){let e=M.connecting(t);return e.basePadding=0,e.numberingPadding=0,e}constructor(t,e){w.add(this),this.domNode=t,this.owner=e,v.set(this,void 0),x.set(this,void 0),S(this,v,(0,s.distance)(e.owner.centerPoint,this.point1),"f");let r=b.Box.matching(e.domNode.getBBox());S(this,x,(0,s.distance)(this.point2,r.peripheralPoint(e.displacement.direction+Math.PI)),"f"),e.centerPoint.addEventListener("move",(()=>N(this,w,"m",P).call(this))),e.owner.centerPoint.addEventListener("move",(()=>N(this,w,"m",P).call(this)))}get id(){return this.domNode.id}hasAttribute(t){return this.domNode.hasAttribute(t)}getAttribute(t){return this.domNode.getAttribute(t)}setAttribute(t,e){this.domNode.setAttribute(t,e)}setAttributes(t){Object.entries(t).forEach((([t,e])=>this.setAttribute(t,e)))}removeAttribute(t){this.domNode.removeAttribute(t)}get x1(){return this.domNode.x1.baseVal.value}get y1(){return this.domNode.y1.baseVal.value}get point1(){return{x:this.x1,y:this.y1}}get x2(){return this.domNode.x2.baseVal.value}get y2(){return this.domNode.y2.baseVal.value}get point2(){return{x:this.x2,y:this.y2}}get length(){return(0,s.distance)(this.point1,this.point2)}set length(t){let e=b.Box.matching(this.owner.domNode.getBBox());this.owner.displacement.magnitude=this.basePadding+t+this.numberingPadding+(0,s.distance)(this.owner.centerPoint,e.peripheralPoint(this.owner.displacement.direction+Math.PI))}get direction(){return(0,s.direction)(this.point1,this.point2)}set direction(t){let e=this.length;this.owner.displacement.direction=t,this.length=e}get basePadding(){return N(this,v,"f")}set basePadding(t){S(this,v,t,"f"),N(this,w,"m",P).call(this)}get numberingPadding(){return N(this,x,"f")}set numberingPadding(t){S(this,x,t,"f"),N(this,w,"m",P).call(this)}set(t){!t.attributes||this.setAttributes(t.attributes),!(0,a.isNumber)(t.basePadding)||(this.basePadding=t.basePadding),!(0,a.isNumber)(t.numberingPadding)||(this.numberingPadding=t.numberingPadding)}serialized(){return{id:this.id,ownerID:this.owner.id,basePadding:this.basePadding,numberingPadding:this.numberingPadding}}static deserialized(t,e){let r=new y(t),n=e.domNode.querySelector("#"+r.id);if(!n)throw new Error("Base numbering line DOM node not found.");if(!(n instanceof SVGLineElement))throw new Error("Base numbering line DOM node must be an SVG line element.");let i=e.baseNumberings.find((t=>t.id===r.ownerID));if(!i)throw new Error("Base numbering line owner not found.");let o=new M(n,i);return(0,a.isNumber)(r.basePadding)&&(o.basePadding=r.basePadding),(0,a.isNumber)(r.numberingPadding)&&(o.numberingPadding=r.numberingPadding),o}}v=new WeakMap,x=new WeakMap,w=new WeakSet,P=function(){let t=this.owner.displacement.direction;this.domNode.setAttribute("x1",`${this.owner.owner.centerPoint.x+N(this,v,"f")*Math.cos(t)}`),this.domNode.setAttribute("y1",`${this.owner.owner.centerPoint.y+N(this,v,"f")*Math.sin(t)}`);let e=b.Box.matching(this.owner.domNode.getBBox()).peripheralPoint(t+Math.PI);this.domNode.setAttribute("x2",`${e.x+N(this,x,"f")*Math.cos(t+Math.PI)}`),this.domNode.setAttribute("y2",`${e.y+N(this,x,"f")*Math.sin(t+Math.PI)}`)},M.defaultValues={attributes:{stroke:"#808080","stroke-width":"1","stroke-opacity":"1"},basePadding:5,numberingPadding:1}})(),n})()));
1
+ !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports["draw.bases.numberings"]=e():t["draw.bases.numberings"]=e()}(this,()=>(()=>{var t={277(t){var e;e=()=>(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{Vector:()=>r});class r{static matching(t){return new r(t.x,t.y)}constructor(t,e){this.x=t,this.y=e}[Symbol.iterator](){return[this.x,this.y].values()}get magnitude(){return Math.sqrt(Math.pow(this.x,2)+Math.pow(this.y,2))}set magnitude(t){let e=this.direction;this.x=t*Math.cos(e),this.y=t*Math.sin(e)}get direction(){return Math.atan2(this.y,this.x)}set direction(t){let e=this.magnitude;this.x=e*Math.cos(t),this.y=e*Math.sin(t)}}return e})(),t.exports=e()},645(t){var e;e=()=>(()=>{var t={986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach(function(t){return e+=t}),e}function n(t){return r(t)/t.length}function i(t){t.sort(function(t,e){return t-e})}t.r(e),t.d(e,{areWithin:()=>f,average:()=>n,clamp:()=>l,degrees:()=>b,flipAway:()=>w,isBetween:()=>h,isBetweenExclusive:()=>d,isBetweenInclusive:()=>h,max:()=>c,mean:()=>n,median:()=>a,min:()=>u,normalizeAngle:()=>y,radians:()=>p,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>m,sortedNumbers:()=>s,sortedNumbersAscending:()=>s,sortedNumbersDescending:()=>g,sum:()=>r});var o=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,o=e.length;i<o;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function s(t){var e=o([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=s(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function u(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.min(e,t)}),e}function c(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.max(e,t)}),e}function h(t,e,r){return t>=e&&t<=r}function d(t,e,r){return t>e&&t<r}function l(t,e,r){return t<e?e:t>r?r:t}function f(t,e,r){return Math.abs(t-e)<=r}function m(t){i(t),t.reverse()}function g(t){var e=s(t);return e.reverse(),e}function b(t){return t*(180/Math.PI)}function p(t){return t*(Math.PI/180)}function y(t,e){void 0===e&&(e=-Math.PI);var r=t-e;return e+((r%=2*Math.PI)>=0?r:r+2*Math.PI)}function w(t,e){var r=(e=y(e,t))-t;return(r<Math.PI/2||r>3*Math.PI/2)&&(t+=Math.PI),t}return e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var o=e[n]={exports:{}};return t[n].call(o.exports,o,o.exports,r),o.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{Box:()=>e});var t=r(986);class e{static bounding(r){let n=r.map(t=>e.matching(t)),i=(0,t.min)(n.map(t=>t.left)),o=(0,t.min)(n.map(t=>t.top)),s=(0,t.max)(n.map(t=>t.right))-i,a=(0,t.max)(n.map(t=>t.bottom))-o;return new e(i,o,s,a)}static matching(t){let{x:r,y:n,width:i,height:o}=t;return new e(r,n,i,o)}constructor(t,e,r,n){this.x=t,this.y=e,this.width=r,this.height=n}get centerX(){return this.minX+this.width/2}get centerY(){return this.minY+this.height/2}get minX(){return this.x}get minY(){return this.y}get maxX(){return this.minX+this.width}get maxY(){return this.minY+this.height}get top(){return this.minY}get right(){return this.maxX}get bottom(){return this.maxY}get left(){return this.minX}isBoundedBy(t){let r=e.matching(t);return this.minX>=r.minX&&this.minY>=r.minY&&this.maxX<=r.maxX&&this.maxY<=r.maxY}padded(t,r){return"number"!=typeof r&&(r=t),new e(this.x-t,this.y-r,this.width+2*t,this.height+2*r)}peripheralPoint(t){let e=this.width/2,r=this.height/2,n=Math.pow(Math.pow(e,2)+Math.pow(r,2),.5),i=this.centerX+n*Math.cos(t),o=this.centerY+n*Math.sin(t),s=n;return Math.abs(this.centerX-i)>e&&(s=Math.abs(e/Math.cos(t)),s=Number.isFinite(s)?s:r),Math.abs(this.centerY-o)>r&&(s=Math.abs(r/Math.sin(t)),s=Number.isFinite(s)?s:e),{x:this.centerX+s*Math.cos(t),y:this.centerY+s*Math.sin(t)}}}})(),n})(),t.exports=e()},725(t){t.exports=(()=>{var t={986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach(function(t){return e+=t}),e}function n(t){return r(t)/t.length}function i(t){t.sort(function(t,e){return t-e})}t.r(e),t.d(e,{areWithin:()=>l,average:()=>n,degrees:()=>g,isBetweenExclusive:()=>d,isBetweenInclusive:()=>h,max:()=>c,mean:()=>n,median:()=>a,min:()=>u,radians:()=>b,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>f,sortedNumbers:()=>s,sortedNumbersAscending:()=>s,sortedNumbersDescending:()=>m,sum:()=>r});var o=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,o=e.length;i<o;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function s(t){var e=o([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=s(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function u(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.min(e,t)}),e}function c(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach(function(t){e=Math.max(e,t)}),e}function h(t,e,r){return t>=e&&t<=r}function d(t,e,r){return t>e&&t<r}function l(t,e,r){return Math.abs(t-e)<=r}function f(t){i(t),t.reverse()}function m(t){var e=s(t);return e.reverse(),e}function g(t){return t*(180/Math.PI)}function b(t){return t*(Math.PI/180)}return e})()},854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function o(t){return n(t)&&t>0}function s(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return null==t}function c(t){return"object"==typeof t&&null!==t}function h(t){return Array.isArray(t)}return t.r(e),t.d(e,{isArray:()=>h,isFiniteNumber:()=>n,isNonFiniteNumber:()=>i,isNonNegativeFiniteNumber:()=>s,isNonNullObject:()=>c,isNullish:()=>u,isNumber:()=>r,isPositiveFiniteNumber:()=>o,isString:()=>a}),e})()},30:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return Math.pow(Math.pow(t.x,2)+Math.pow(t.y,2),.5)}function n(t){return Math.atan2(t.y,t.x)}return t.r(e),t.d(e,{direction:()=>n,magnitude:()=>r}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var o=e[n]={exports:{}};return t[n].call(o.exports,o,o.exports,r),o.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{areWithin:()=>a,centroid:()=>f,deepCopy:()=>o,direction:()=>d,displaced:()=>c,displacement:()=>u,distance:()=>s,isFinitePoint:()=>i,isPoint:()=>e,midpoint:()=>m});var t=r(854);function e(e){return(0,t.isNonNullObject)(e)&&(0,t.isNumber)(e.x)&&(0,t.isNumber)(e.y)}function i(r){return e(r)&&(0,t.isFiniteNumber)(r.x)&&(0,t.isFiniteNumber)(r.y)}function o(t){return{x:t.x,y:t.y}}function s(t,e){var r=e.x-t.x,n=e.y-t.y;return Math.pow(Math.pow(r,2)+Math.pow(n,2),.5)}function a(t,e,r){return s(t,e)<=r}function u(t,e){return{x:e.x-t.x,y:e.y-t.y}}function c(t,e){return{x:t.x+e.x,y:t.y+e.y}}var h=r(30);function d(t,e){return(0,h.direction)(u(t,e))}var l=r(986);function f(t){return{x:(0,l.mean)(t.map(function(t){return t.x})),y:(0,l.mean)(t.map(function(t){return t.y}))}}function m(t,e){return f([t,e])}})(),n})()},726(t){var e;e=()=>(()=>{var t={854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function o(t){return n(t)&&t>0}function s(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return null==t}function c(t){return"object"==typeof t&&null!==t}function h(t){return Array.isArray(t)}function d(t){return h(t)&&0==t.length}function l(t){return h(t)&&t.length>0}function f(t){return h(t)&&t.every(r)}function m(t){return f(t)&&t.length>0}function g(t){return h(t)&&t.every(n)}function b(t){return h(t)&&t.every(i)}function p(t){return h(t)&&t.every(a)}function y(t){return p(t)&&t.length>0}return t.r(e),t.d(e,{isArray:()=>h,isEmptyArray:()=>d,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>g,isNonEmptyArray:()=>l,isNonEmptyNumbersArray:()=>m,isNonEmptyStringsArray:()=>y,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>b,isNonNegativeFiniteNumber:()=>s,isNonNullObject:()=>c,isNullish:()=>u,isNumber:()=>r,isNumbersArray:()=>f,isPositiveFiniteNumber:()=>o,isString:()=>a,isStringsArray:()=>p}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var o=e[n]={exports:{}};return t[n].call(o.exports,o,o.exports,r),o.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";function t(t,e){for(let[r,n]of Object.entries(e))t.setAttribute(r,n)}r.r(n),r.d(n,{CoordinateSystem:()=>d,HorizontalClientScaling:()=>f,InnerXML:()=>w,OuterXML:()=>P,Scaling:()=>l,VerticalClientScaling:()=>m,assignUUID:()=>h,bringToFront:()=>g,drawOnCanvas:()=>j,isSVGGraphicsElement:()=>S,isSVGGraphicsElementsArray:()=>M,sendToBack:()=>b,setAttributes:()=>t});const e={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};var i,o=new Uint8Array(16);function s(){if(!i&&!(i="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return i(o)}for(var a=[],u=0;u<256;++u)a.push((u+256).toString(16).slice(1));const c=function(t,r,n){if(e.randomUUID&&!r&&!t)return e.randomUUID();var i=(t=t||{}).random||(t.rng||s)();if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,r){n=n||0;for(var o=0;o<16;++o)r[n+o]=i[o];return r}return function(t,e=0){return(a[t[e+0]]+a[t[e+1]]+a[t[e+2]]+a[t[e+3]]+"-"+a[t[e+4]]+a[t[e+5]]+"-"+a[t[e+6]]+a[t[e+7]]+"-"+a[t[e+8]]+a[t[e+9]]+"-"+a[t[e+10]]+a[t[e+11]]+a[t[e+12]]+a[t[e+13]]+a[t[e+14]]+a[t[e+15]]).toLowerCase()}(i)};function h(t){t.id="uuid-"+c()}class d{constructor(t){this.targetSVGDoc=t}get width(){return this.targetSVGDoc.viewBox.baseVal.width}get height(){return this.targetSVGDoc.viewBox.baseVal.height}get minX(){return this.targetSVGDoc.viewBox.baseVal.x}get maxX(){return this.minX+this.width}get minY(){return this.targetSVGDoc.viewBox.baseVal.y}get maxY(){return this.minY+this.height}get horizontalScaling(){return this.targetSVGDoc.width.baseVal.value/this.width}get verticalScaling(){return this.targetSVGDoc.height.baseVal.value/this.height}setScaling(t){this.targetSVGDoc.setAttribute("width",""+t*this.width),this.targetSVGDoc.setAttribute("height",""+t*this.height)}get clientWidth(){return this.targetSVGDoc.getBoundingClientRect().width}get clientHeight(){return this.targetSVGDoc.getBoundingClientRect().height}get horizontalClientScaling(){return this.clientWidth/this.width}get verticalClientScaling(){return this.clientHeight/this.height}get minClientX(){return this.targetSVGDoc.getBoundingClientRect().x}get minClientY(){return this.targetSVGDoc.getBoundingClientRect().y}fromClientX(t){return this.minX+(t-this.minClientX)/this.horizontalClientScaling}fromClientY(t){return this.minY+(t-this.minClientY)/this.verticalClientScaling}fromClientCoordinates(t,e){return[this.fromClientX(t),this.fromClientY(e)]}fromClientPoint(t){return{x:this.fromClientX(t.x),y:this.fromClientY(t.y)}}toClientX(t){return this.minClientX+this.horizontalClientScaling*(t-this.minX)}toClientY(t){return this.minClientY+this.verticalClientScaling*(t-this.minY)}toClientCoordinates(t,e){return[this.toClientX(t),this.toClientY(e)]}toClientPoint(t){return{x:this.toClientX(t.x),y:this.toClientY(t.y)}}}class l{constructor(t){this.targetSVGDoc=t}set(t){let e=this.targetSVGDoc.viewBox.baseVal;this.targetSVGDoc.setAttribute("width",t*e.width+"px"),this.targetSVGDoc.setAttribute("height",t*e.height+"px")}}class f{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.width/e.width}}class m{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.height/e.height}}function g(t){let e=t.parentNode;e&&e.appendChild(t)}function b(t){let e=t.parentNode;e&&e.prepend(t)}var p,y=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class w{constructor(t){p.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,p,t)}toString(){return y(this,p,"f").innerHTML}set(t){y(this,p,"f").innerHTML=t}}p=new WeakMap;var v,x=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class P{constructor(t){v.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,v,t)}toString(){return x(this,v,"f").outerHTML}set(t){let e=document.createElementNS("http://www.w3.org/2000/svg","svg");if(e.style.height="0px",document.body.append(e),e.innerHTML=t,!e.firstElementChild)throw new Error("Outer XML must encode an SVG element.");if(e.childNodes.length>1)throw new Error("Outer XML cannot encode multiple DOM nodes.");if(e.firstElementChild.tagName.toLowerCase()!=x(this,v,"f").tagName.toLowerCase())throw new Error("Outer XML must specify an SVG element with the same tag name as the target SVG element.");[...x(this,v,"f").attributes].forEach(t=>x(this,v,"f").removeAttribute(t.name)),[...e.firstElementChild.attributes].forEach(t=>x(this,v,"f").setAttribute(t.name,t.value)),x(this,v,"f").innerHTML=e.firstElementChild.innerHTML,e.remove()}}function S(t){return t instanceof SVGGraphicsElement}v=new WeakMap;var N=r(854);function M(t){return(0,N.isArray)(t)&&t.every(S)}var E=function(t,e,r,n){return new(r||(r=Promise))(function(i,o){function s(t){try{u(n.next(t))}catch(t){o(t)}}function a(t){try{u(n.throw(t))}catch(t){o(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof r?e:new r(function(t){t(e)})).then(s,a)}u((n=n.apply(t,e||[])).next())})};function j(t){return E(this,void 0,void 0,function*(){let e=document.createElement("canvas");e.style.position="fixed",e.style.display="none",e.style.pointerEvents="none",document.body.append(e),e.width=t.width.baseVal.value,e.height=t.height.baseVal.value;let r=e.getContext("2d");if(!r)throw new Error("Unable to get canvas context.");let n=(new XMLSerializer).serializeToString(t),i=new Image;return i.src="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(n),yield i.decode(),r.drawImage(i,0,0,t.width.baseVal.value,t.height.baseVal.value),e.remove(),e.style.position="",e.style.display="",e.style.pointerEvents="",e})}})(),n})(),t.exports=e()},731(t){var e;e=()=>(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{CenterPoint:()=>c});var r,n,i,o,s,a=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},u=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class c{constructor(t){r.add(this),n.set(this,void 0),i.set(this,{move:[]}),o.set(this,void 0),a(this,n,t,"f"),a(this,o,new MutationObserver(()=>u(this,r,"m",s).call(this,"move")),"f"),u(this,o,"f").observe(t,{attributes:!0,childList:!0,characterData:!0,subtree:!0})}get x(){let t=u(this,n,"f").getBBox();return t.x+t.width/2}set x(t){let e=this.x,r=[...u(this,n,"f").x.baseVal].map(t=>t.value);0!=r.length||r.push(0),r=r.map(r=>r+(t-e)),u(this,n,"f").setAttribute("x",r.join(", "))}get y(){let t=u(this,n,"f").getBBox();return t.y+t.height/2}set y(t){let e=this.y,r=[...u(this,n,"f").y.baseVal].map(t=>t.value);0!=r.length||r.push(0),r=r.map(r=>r+(t-e)),u(this,n,"f").setAttribute("y",r.join(", "))}addEventListener(t,e){u(this,i,"f")[t].push(e)}removeEventListener(t,e){u(this,i,"f")[t]=u(this,i,"f")[t].filter(t=>t!==e)}}return n=new WeakMap,i=new WeakMap,o=new WeakMap,r=new WeakSet,s=function(t){u(this,i,"f")[t].forEach(t=>t())},e})(),t.exports=e()},854(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function o(t){return n(t)&&t>0}function s(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function u(t){return null==t}function c(t){return"object"==typeof t&&null!==t}function h(t){return Array.isArray(t)}function d(t){return h(t)&&0==t.length}function l(t){return h(t)&&t.length>0}function f(t){return h(t)&&t.every(r)}function m(t){return f(t)&&t.length>0}function g(t){return h(t)&&t.every(n)}function b(t){return h(t)&&t.every(i)}function p(t){return h(t)&&t.every(a)}function y(t){return p(t)&&t.length>0}return t.r(e),t.d(e,{isArray:()=>h,isEmptyArray:()=>d,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>g,isNonEmptyArray:()=>l,isNonEmptyNumbersArray:()=>m,isNonEmptyStringsArray:()=>y,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>b,isNonNegativeFiniteNumber:()=>s,isNonNullObject:()=>c,isNullish:()=>u,isNumber:()=>r,isNumbersArray:()=>f,isPositiveFiniteNumber:()=>o,isString:()=>a,isStringsArray:()=>p}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var o=e[n]={exports:{}};return t[n].call(o.exports,o,o.exports,r),o.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{Numbering:()=>m,NumberingLine:()=>M});var t,e=r(726),i=r(731),o=r(277),s=r(725),a=r(854),u=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class c{constructor(e){if(t.set(this,void 0),!(0,a.isNonNullObject)(e))throw new Error("Saved numberings must be non-null objects.");!function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===n?i.call(t,r):i?i.value=r:e.set(t,r)}(this,t,e,"f")}get id(){if((0,a.isString)(u(this,t,"f").id))return u(this,t,"f").id;if((0,a.isString)(u(this,t,"f").textId))return u(this,t,"f").textId;throw new Error("Unable to find the ID of the saved numbering.")}get ownerID(){if((0,a.isString)(u(this,t,"f").ownerID))return u(this,t,"f").ownerID;throw new Error("Unable to find the owner ID of the saved numbering.")}get displacement(){return u(this,t,"f").displacement}}t=new WeakMap;var h,d,l,f=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class m{static numbering(t,r){let n=document.createElementNS("http://www.w3.org/2000/svg","text");(0,e.assignUUID)(n),n.textContent=`${r}`;let i=new m(n,t);return i.setAttributes(m.defaultValues.attributes),i.displacement.magnitude=0,i}constructor(t,e){h.add(this),this.domNode=t,this.owner=e,d.set(this,void 0),this.centerPoint=new i.CenterPoint(t),function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===n?i.call(t,r):i?i.value=r:e.set(t,r)}(this,d,o.Vector.matching((0,s.displacement)(e.centerPoint,this.centerPoint)),"f"),e.centerPoint.addEventListener("move",()=>f(this,h,"m",l).call(this))}get id(){return this.domNode.id}get textContent(){return this.domNode.textContent}hasAttribute(t){return this.domNode.hasAttribute(t)}getAttribute(t){return this.domNode.getAttribute(t)}setAttribute(t,e){this.domNode.setAttribute(t,e)}setAttributes(t){Object.entries(t).forEach(([t,e])=>this.setAttribute(t,e))}removeAttribute(t){this.domNode.removeAttribute(t)}get displacement(){const t=()=>f(this,d,"f").x,e=t=>{f(this,d,"f").x=t,f(this,h,"m",l).call(this)},r=()=>f(this,d,"f").y,n=t=>{f(this,d,"f").y=t,f(this,h,"m",l).call(this)},i=()=>f(this,d,"f").magnitude,o=t=>{f(this,d,"f").magnitude=t,f(this,h,"m",l).call(this)},s=()=>f(this,d,"f").direction,a=t=>{f(this,d,"f").direction=t,f(this,h,"m",l).call(this)};return{get x(){return t()},set x(t){e(t)},get y(){return r()},set y(t){n(t)},get magnitude(){return i()},set magnitude(t){o(t)},get direction(){return s()},set direction(t){a(t)}}}serialized(){return{id:this.id,ownerID:this.owner.id,displacement:{x:this.displacement.x,y:this.displacement.y}}}static deserialized(t,e){let r=new c(t),n=e.domNode.querySelector("#"+r.id);if(!n)throw new Error("Numbering DOM node not found.");if(!(n instanceof SVGTextElement))throw new Error("Numbering DOM node must be an SVG text element.");let i=e.bases.find(t=>t.id===r.ownerID);if(!i)throw new Error("Unable to find numbering owner.");let o=new m(n,i);return(0,s.isPoint)(r.displacement)&&(o.displacement.x=r.displacement.x,o.displacement.y=r.displacement.y),o}}d=new WeakMap,h=new WeakSet,l=function(){this.centerPoint.x=this.owner.centerPoint.x+f(this,d,"f").x,this.centerPoint.y=this.owner.centerPoint.y+f(this,d,"f").y},m.defaultValues={attributes:{"font-family":"Arial","font-size":"8","font-weight":"400",fill:"#808080"}};var g,b=r(645),p=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class y{constructor(t){if(g.set(this,void 0),!(0,a.isNonNullObject)(t))throw new Error("Saved numbering lines must be non-null objects.");!function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===n?i.call(t,r):i?i.value=r:e.set(t,r)}(this,g,t,"f")}get id(){if((0,a.isString)(p(this,g,"f").id))return p(this,g,"f").id;if((0,a.isString)(p(this,g,"f").lineId))return p(this,g,"f").lineId;throw new Error("Unable to find saved numbering line ID.")}get ownerID(){if((0,a.isString)(p(this,g,"f").ownerID))return p(this,g,"f").ownerID;if((0,a.isString)(p(this,g,"f").textId))return p(this,g,"f").textId;throw new Error("Unable to find saved numbering line owner ID.")}get basePadding(){return p(this,g,"f").basePadding}get numberingPadding(){return p(this,g,"f").numberingPadding}}g=new WeakMap;var w,v,x,P,S=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},N=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class M{static connecting(t){let r=document.createElementNS("http://www.w3.org/2000/svg","line");(0,e.assignUUID)(r),r.setAttribute("x1",`${t.owner.centerPoint.x}`),r.setAttribute("y1",`${t.owner.centerPoint.y}`),r.setAttribute("x2",`${t.centerPoint.x}`),r.setAttribute("y2",`${t.centerPoint.y}`);let n=new M(r,t);return n.set(M.defaultValues),n}static unpadded(t){let e=M.connecting(t);return e.basePadding=0,e.numberingPadding=0,e}constructor(t,e){w.add(this),this.domNode=t,this.owner=e,v.set(this,void 0),x.set(this,void 0),S(this,v,(0,s.distance)(e.owner.centerPoint,this.point1),"f");let r=b.Box.matching(e.domNode.getBBox());S(this,x,(0,s.distance)(this.point2,r.peripheralPoint(e.displacement.direction+Math.PI)),"f"),e.centerPoint.addEventListener("move",()=>N(this,w,"m",P).call(this)),e.owner.centerPoint.addEventListener("move",()=>N(this,w,"m",P).call(this))}get id(){return this.domNode.id}hasAttribute(t){return this.domNode.hasAttribute(t)}getAttribute(t){return this.domNode.getAttribute(t)}setAttribute(t,e){this.domNode.setAttribute(t,e)}setAttributes(t){Object.entries(t).forEach(([t,e])=>this.setAttribute(t,e))}removeAttribute(t){this.domNode.removeAttribute(t)}get x1(){return this.domNode.x1.baseVal.value}get y1(){return this.domNode.y1.baseVal.value}get point1(){return{x:this.x1,y:this.y1}}get x2(){return this.domNode.x2.baseVal.value}get y2(){return this.domNode.y2.baseVal.value}get point2(){return{x:this.x2,y:this.y2}}get length(){return(0,s.distance)(this.point1,this.point2)}set length(t){let e=b.Box.matching(this.owner.domNode.getBBox());this.owner.displacement.magnitude=this.basePadding+t+this.numberingPadding+(0,s.distance)(this.owner.centerPoint,e.peripheralPoint(this.owner.displacement.direction+Math.PI))}get direction(){return(0,s.direction)(this.point1,this.point2)}set direction(t){let e=this.length;this.owner.displacement.direction=t,this.length=e}get basePadding(){return N(this,v,"f")}set basePadding(t){S(this,v,t,"f"),N(this,w,"m",P).call(this)}get numberingPadding(){return N(this,x,"f")}set numberingPadding(t){S(this,x,t,"f"),N(this,w,"m",P).call(this)}set(t){!t.attributes||this.setAttributes(t.attributes),!(0,a.isNumber)(t.basePadding)||(this.basePadding=t.basePadding),!(0,a.isNumber)(t.numberingPadding)||(this.numberingPadding=t.numberingPadding)}serialized(){return{id:this.id,ownerID:this.owner.id,basePadding:this.basePadding,numberingPadding:this.numberingPadding}}static deserialized(t,e){let r=new y(t),n=e.domNode.querySelector("#"+r.id);if(!n)throw new Error("Numbering line DOM node not found.");if(!(n instanceof SVGLineElement))throw new Error("Numbering line DOM node must be an SVG line element.");let i=e.numberings.find(t=>t.id===r.ownerID);if(!i)throw new Error("Numbering line owner not found.");let o=new M(n,i);return(0,a.isNumber)(r.basePadding)&&(o.basePadding=r.basePadding),(0,a.isNumber)(r.numberingPadding)&&(o.numberingPadding=r.numberingPadding),o}}v=new WeakMap,x=new WeakMap,w=new WeakSet,P=function(){let t=this.owner.displacement.direction;this.domNode.setAttribute("x1",`${this.owner.owner.centerPoint.x+N(this,v,"f")*Math.cos(t)}`),this.domNode.setAttribute("y1",`${this.owner.owner.centerPoint.y+N(this,v,"f")*Math.sin(t)}`);let e=b.Box.matching(this.owner.domNode.getBBox()).peripheralPoint(t+Math.PI);this.domNode.setAttribute("x2",`${e.x+N(this,x,"f")*Math.cos(t+Math.PI)}`),this.domNode.setAttribute("y2",`${e.y+N(this,x,"f")*Math.sin(t+Math.PI)}`)},M.defaultValues={attributes:{stroke:"#808080","stroke-width":"1","stroke-opacity":"1"},basePadding:5,numberingPadding:1}})(),n})());
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rnacanvas/draw.bases.numberings",
3
- "version": "2.3.0",
3
+ "version": "3.0.0",
4
4
  "description": "Number bases",
5
5
  "repository": {
6
6
  "type": "git",
@@ -17,9 +17,9 @@
17
17
  "@babel/core": "^7.23.7",
18
18
  "@babel/preset-env": "^7.23.7",
19
19
  "@babel/preset-typescript": "^7.23.3",
20
- "babel-jest": "^29.7.0",
21
- "jest": "^29.7.0",
22
- "jest-environment-jsdom": "^29.7.0",
20
+ "babel-jest": "^30.2.0",
21
+ "jest": "^30.2.0",
22
+ "jest-environment-jsdom": "^30.2.0",
23
23
  "ts-loader": "^9.5.1",
24
24
  "typescript": "^5.3.3",
25
25
  "webpack": "^5.89.0",
@@ -1 +0,0 @@
1
- {"version":3,"file":"BaseNumbering.d.ts","sourceRoot":"","sources":["../src/BaseNumbering.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAUvD,qBAAa,aAAa,CAAC,CAAC,SAAS,UAAU;;IAkCjC,QAAQ,CAAC,OAAO,EAAE,cAAc;IAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;IAjC/D,MAAM,CAAC,aAAa;;;;;;;MAOlB;IAEF;;;OAGG;IACH,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC;IAgBzE,QAAQ,CAAC,WAAW,cAAC;gBAIA,OAAO,EAAE,cAAc,EAAW,KAAK,EAAE,CAAC;IAa/D,IAAI,EAAE,WAEL;IAED,IAAI,WAAW,kBAEd;IAED,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAInC,YAAY,CAAC,IAAI,EAAE,MAAM;IAIzB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAI/C,aAAa,CAAC,UAAU,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,IAAI;IAI3D,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAInC,IAAI,YAAY;;;;;MAsCf;IAED;;OAEG;IACH,UAAU;;;;;;;;IAUV;;;;;;;OAOG;IACH,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,UAAU,EAAE,kBAAkB,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC;CAmBjG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"BaseNumberingLine.d.ts","sourceRoot":"","sources":["../src/BaseNumberingLine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAYrD;;GAEG;AACH,qBAAa,iBAAiB,CAAC,CAAC,SAAS,UAAU;;IAkDrC,QAAQ,CAAC,OAAO,EAAE,cAAc;IAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC;IAjD9E,MAAM,CAAC,aAAa;;;;;;;;MAQlB;IAEF;;;OAGG;IACH,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,UAAU,EAAE,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC;IAiBnF;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,UAAU,EAAE,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC;gBAa5D,OAAO,EAAE,cAAc,EAAW,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC;IAY9E,IAAI,EAAE,WAEL;IAED,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAInC,YAAY,CAAC,IAAI,EAAE,MAAM;IAIzB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAI/C,aAAa,CAAC,UAAU,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE;IAIpD,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAInC,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,IAAI,EAAE,IAAI,MAAM,CAEf;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,KAAK,CAElB;IAED,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,IAAI,EAAE,IAAI,MAAM,CAEf;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,KAAK,CAElB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,MAAM,CAAC,MAAM,EAJH,MAIG,EAShB;IAED;;;OAGG;IACH,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,IAAI,SAAS,CAAC,SAAS,EAJN,MAIM,EAQtB;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,WAAW,CAAC,WAAW,EAJR,MAIQ,EAG1B;IAED,IAAI,gBAAgB,IAAI,MAAM,CAE7B;IAED,IAAI,gBAAgB,CAAC,gBAAgB,EAJb,MAIa,EAGpC;IAED,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,uBAAuB,CAAC,GAAG,IAAI;IAmBnD;;OAEG;IACH,UAAU;;;;;;IAWV;;;;;;;OAOG;IACH,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,UAAU,EAAE,sBAAsB,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC;CAiB5H;AAED,KAAK,uBAAuB,GAAG;IAC7B,UAAU,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF;;GAEG;AACH,UAAU,OAAO,CAAC,CAAC,SAAS,UAAU;IACpC;;OAEG;IACH,OAAO,EAAE,aAAa,CAAC;IAEvB;;;;;OAKG;IACH,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;CACpC;AAED,KAAK,KAAK,GAAG;IACX,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC"}
@@ -1,17 +0,0 @@
1
- /**
2
- * For working with saved base numberings, which might possibly use old, legacy formats.
3
- */
4
- export declare class VersionlessBaseNumbering {
5
- #private;
6
- constructor(savedBaseNumbering: unknown);
7
- /**
8
- * Throws if unable to find the ID of the saved base numbering.
9
- */
10
- get id(): string | never;
11
- /**
12
- * Throws if unable to find the owner ID of the saved base numbering.
13
- */
14
- get ownerID(): string | never;
15
- get displacement(): unknown;
16
- }
17
- //# sourceMappingURL=VersionlessBaseNumbering.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"VersionlessBaseNumbering.d.ts","sourceRoot":"","sources":["../src/VersionlessBaseNumbering.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,qBAAa,wBAAwB;;gBAGvB,kBAAkB,EAAE,OAAO;IAQvC;;OAEG;IACH,IAAI,EAAE,IAAI,MAAM,GAAG,KAAK,CAWvB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,GAAG,KAAK,CAM5B;IAED,IAAI,YAAY,IAAI,OAAO,CAE1B;CACF"}
@@ -1,18 +0,0 @@
1
- /**
2
- * For working with saved base numbering lines, which might possibly use old, legacy formats.
3
- */
4
- export declare class VersionlessBaseNumberingLine {
5
- #private;
6
- constructor(savedBaseNumberingLine: unknown);
7
- /**
8
- * Throws if unable to find the ID of the saved base numbering line.
9
- */
10
- get id(): string | never;
11
- /**
12
- * Throws if unable to find the owner ID of the saved base numbering line.
13
- */
14
- get ownerID(): string | never;
15
- get basePadding(): unknown;
16
- get numberingPadding(): unknown;
17
- }
18
- //# sourceMappingURL=VersionlessBaseNumberingLine.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"VersionlessBaseNumberingLine.d.ts","sourceRoot":"","sources":["../src/VersionlessBaseNumberingLine.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,qBAAa,4BAA4B;;gBAG3B,sBAAsB,EAAE,OAAO;IAQ3C;;OAEG;IACH,IAAI,EAAE,IAAI,MAAM,GAAG,KAAK,CAWvB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,GAAG,KAAK,CAW5B;IAED,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,IAAI,gBAAgB,IAAI,OAAO,CAE9B;CACF"}