@rnacanvas/draw.floating 4.1.2 → 4.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/StrungCircle.d.ts +4 -5
- package/dist/StrungCircle.d.ts.map +1 -1
- package/dist/StrungElement.d.ts +1 -1
- package/dist/StrungRectangle.d.ts +4 -5
- package/dist/StrungRectangle.d.ts.map +1 -1
- package/dist/StrungText.d.ts +4 -5
- package/dist/StrungText.d.ts.map +1 -1
- package/dist/StrungTriangle.d.ts +4 -5
- package/dist/StrungTriangle.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/dist/StrungCircle.d.ts
CHANGED
|
@@ -2,17 +2,16 @@ import { Circle } from './Circle';
|
|
|
2
2
|
import { StrungElement } from '@rnacanvas/draw.strung';
|
|
3
3
|
import type { StrungElementOwner } from './StrungElementOwner';
|
|
4
4
|
import type { Drawing } from './Drawing';
|
|
5
|
-
export declare class StrungCircle extends StrungElement {
|
|
5
|
+
export declare class StrungCircle<C extends Circle, O extends StrungElementOwner> extends StrungElement<C, O> {
|
|
6
6
|
#private;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
constructor(circle: Circle, owner: StrungElementOwner);
|
|
7
|
+
static on<O extends StrungElementOwner>(owner: O): StrungCircle<Circle, O>;
|
|
8
|
+
constructor(circle: C, owner: O);
|
|
10
9
|
save(): {
|
|
11
10
|
circle: {
|
|
12
11
|
id: string;
|
|
13
12
|
};
|
|
14
13
|
ownerID: string;
|
|
15
14
|
};
|
|
16
|
-
static recreate(savedStrungCircle: unknown, parentDrawing: Drawing): StrungCircle
|
|
15
|
+
static recreate(savedStrungCircle: unknown, parentDrawing: Drawing): StrungCircle<Circle, StrungElementOwner>;
|
|
17
16
|
}
|
|
18
17
|
//# sourceMappingURL=StrungCircle.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StrungCircle.d.ts","sourceRoot":"","sources":["../src/StrungCircle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMzC,qBAAa,
|
|
1
|
+
{"version":3,"file":"StrungCircle.d.ts","sourceRoot":"","sources":["../src/StrungCircle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMzC,qBAAa,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,kBAAkB,CAAE,SAAQ,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;;IACnG,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,kBAAkB,EAAE,KAAK,EAAE,CAAC;gBAoBpC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;IAM/B,IAAI;;;;;;IAQJ,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO;CAqBnE"}
|
package/dist/StrungElement.d.ts
CHANGED
|
@@ -4,6 +4,6 @@ import { StrungCircle } from './StrungCircle';
|
|
|
4
4
|
import { StrungRectangle } from './StrungRectangle';
|
|
5
5
|
import { StrungTriangle } from './StrungTriangle';
|
|
6
6
|
export declare const StrungElement: {
|
|
7
|
-
recreate: (savedStrungElement: unknown, parentDrawing: Drawing) => StrungText | StrungCircle | StrungRectangle | StrungTriangle
|
|
7
|
+
recreate: (savedStrungElement: unknown, parentDrawing: Drawing) => StrungText<import("./Text").Text, import("./StrungElementOwner").StrungElementOwner> | StrungCircle<import("./Circle").Circle, import("./StrungElementOwner").StrungElementOwner> | StrungRectangle<import("./Rectangle").Rectangle, import("./StrungElementOwner").StrungElementOwner> | StrungTriangle<import("./Triangle").Triangle, import("./StrungElementOwner").StrungElementOwner>;
|
|
8
8
|
};
|
|
9
9
|
//# sourceMappingURL=StrungElement.d.ts.map
|
|
@@ -2,11 +2,10 @@ import { Rectangle } from './Rectangle';
|
|
|
2
2
|
import { StrungElement } from '@rnacanvas/draw.strung';
|
|
3
3
|
import type { StrungElementOwner } from './StrungElementOwner';
|
|
4
4
|
import type { Drawing } from './Drawing';
|
|
5
|
-
export declare class StrungRectangle extends StrungElement {
|
|
5
|
+
export declare class StrungRectangle<R extends Rectangle, O extends StrungElementOwner> extends StrungElement<R, O> {
|
|
6
6
|
#private;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
constructor(rectangle: Rectangle, owner: StrungElementOwner);
|
|
7
|
+
static on<O extends StrungElementOwner>(owner: O): StrungRectangle<Rectangle, O>;
|
|
8
|
+
constructor(rectangle: R, owner: O);
|
|
10
9
|
get width(): number;
|
|
11
10
|
set width(width: number);
|
|
12
11
|
get height(): number;
|
|
@@ -19,6 +18,6 @@ export declare class StrungRectangle extends StrungElement {
|
|
|
19
18
|
};
|
|
20
19
|
ownerID: string;
|
|
21
20
|
};
|
|
22
|
-
static recreate(savedStrungRectangle: unknown, parentDrawing: Drawing): StrungRectangle
|
|
21
|
+
static recreate(savedStrungRectangle: unknown, parentDrawing: Drawing): StrungRectangle<Rectangle, StrungElementOwner>;
|
|
23
22
|
}
|
|
24
23
|
//# sourceMappingURL=StrungRectangle.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StrungRectangle.d.ts","sourceRoot":"","sources":["../src/StrungRectangle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQzC,qBAAa,
|
|
1
|
+
{"version":3,"file":"StrungRectangle.d.ts","sourceRoot":"","sources":["../src/StrungRectangle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQzC,qBAAa,eAAe,CAAC,CAAC,SAAS,SAAS,EAAE,CAAC,SAAS,kBAAkB,CAAE,SAAQ,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;;IACzG,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,kBAAkB,EAAE,KAAK,EAAE,CAAC;gBAiBpC,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;IAMlC,IAAI,KAAK,WAER;IAED,IAAI,KAAK,CAAC,KAAK,QAAA,EAEd;IAED,IAAI,MAAM,WAET;IAED,IAAI,MAAM,CAAC,MAAM,QAAA,EAEhB;IAED,IAAI,YAAY,WAEf;IAED,IAAI,YAAY,CAAC,YAAY,QAAA,EAE5B;IAED,IAAI;;;;;;IAQJ,MAAM,CAAC,QAAQ,CAAC,oBAAoB,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO;CA0BtE"}
|
package/dist/StrungText.d.ts
CHANGED
|
@@ -2,11 +2,10 @@ import { Text } from './Text';
|
|
|
2
2
|
import { StrungElement } from '@rnacanvas/draw.strung';
|
|
3
3
|
import type { StrungElementOwner } from './StrungElementOwner';
|
|
4
4
|
import type { Drawing } from './Drawing';
|
|
5
|
-
export declare class StrungText extends StrungElement {
|
|
5
|
+
export declare class StrungText<T extends Text, O extends StrungElementOwner> extends StrungElement<T, O> {
|
|
6
6
|
#private;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
constructor(text: Text, owner: StrungElementOwner);
|
|
7
|
+
static on<O extends StrungElementOwner>(owner: O): StrungText<Text, O>;
|
|
8
|
+
constructor(text: T, owner: O);
|
|
10
9
|
get textContent(): string;
|
|
11
10
|
save(): {
|
|
12
11
|
text: {
|
|
@@ -14,6 +13,6 @@ export declare class StrungText extends StrungElement {
|
|
|
14
13
|
};
|
|
15
14
|
ownerID: string;
|
|
16
15
|
};
|
|
17
|
-
static recreate(savedStrungText: unknown, parentDrawing: Drawing): StrungText
|
|
16
|
+
static recreate(savedStrungText: unknown, parentDrawing: Drawing): StrungText<Text, StrungElementOwner>;
|
|
18
17
|
}
|
|
19
18
|
//# sourceMappingURL=StrungText.d.ts.map
|
package/dist/StrungText.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StrungText.d.ts","sourceRoot":"","sources":["../src/StrungText.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMzC,qBAAa,
|
|
1
|
+
{"version":3,"file":"StrungText.d.ts","sourceRoot":"","sources":["../src/StrungText.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMzC,qBAAa,UAAU,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,SAAS,kBAAkB,CAAE,SAAQ,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;;IAC/F,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,kBAAkB,EAAE,KAAK,EAAE,CAAC;gBAuBpC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;IAM7B,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI;;;;;;IAQJ,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO;CAqBjE"}
|
package/dist/StrungTriangle.d.ts
CHANGED
|
@@ -2,11 +2,10 @@ import { Triangle } from './Triangle';
|
|
|
2
2
|
import { StrungElement } from '@rnacanvas/draw.strung';
|
|
3
3
|
import type { StrungElementOwner } from './StrungElementOwner';
|
|
4
4
|
import type { Drawing } from './Drawing';
|
|
5
|
-
export declare class StrungTriangle extends StrungElement {
|
|
5
|
+
export declare class StrungTriangle<T extends Triangle, O extends StrungElementOwner> extends StrungElement<T, O> {
|
|
6
6
|
#private;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
constructor(triangle: Triangle, owner: StrungElementOwner);
|
|
7
|
+
static on<O extends StrungElementOwner>(owner: O): StrungTriangle<Triangle, O>;
|
|
8
|
+
constructor(triangle: T, owner: O);
|
|
10
9
|
get width(): number;
|
|
11
10
|
set width(width: number);
|
|
12
11
|
get height(): number;
|
|
@@ -19,6 +18,6 @@ export declare class StrungTriangle extends StrungElement {
|
|
|
19
18
|
};
|
|
20
19
|
ownerID: string;
|
|
21
20
|
};
|
|
22
|
-
static recreate(savedStrungTriangle: unknown, parentDrawing: Drawing): StrungTriangle
|
|
21
|
+
static recreate(savedStrungTriangle: unknown, parentDrawing: Drawing): StrungTriangle<Triangle, StrungElementOwner>;
|
|
23
22
|
}
|
|
24
23
|
//# sourceMappingURL=StrungTriangle.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StrungTriangle.d.ts","sourceRoot":"","sources":["../src/StrungTriangle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQzC,qBAAa,
|
|
1
|
+
{"version":3,"file":"StrungTriangle.d.ts","sourceRoot":"","sources":["../src/StrungTriangle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQzC,qBAAa,cAAc,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,kBAAkB,CAAE,SAAQ,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;;IACvG,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,kBAAkB,EAAE,KAAK,EAAE,CAAC;gBAiBpC,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;IAMjC,IAAI,KAAK,WAER;IAED,IAAI,KAAK,CAAC,KAAK,QAAA,EAEd;IAED,IAAI,MAAM,WAET;IAED,IAAI,MAAM,CAAC,MAAM,QAAA,EAEhB;IAED,IAAI,WAAW,WAEd;IAED,IAAI,WAAW,CAAC,WAAW,QAAA,EAE1B;IAED,IAAI;;;;;;IAQJ,MAAM,CAAC,QAAQ,CAAC,mBAAmB,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO;CA0BrE"}
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["draw.floating"]=t():e["draw.floating"]=t()}(this,()=>(()=>{var e={645(e){var t;t=()=>(()=>{var e={986(e){e.exports=(()=>{"use strict";var e={d:(t,r)=>{for(var i in r)e.o(r,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:r[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){var t=0;return e.forEach(function(e){return t+=e}),t}function i(e){return r(e)/e.length}function n(e){e.sort(function(e,t){return e-t})}e.r(t),e.d(t,{areWithin:()=>f,average:()=>i,clamp:()=>l,degrees:()=>w,flipAway:()=>v,isBetween:()=>d,isBetweenExclusive:()=>h,isBetweenInclusive:()=>d,max:()=>u,mean:()=>i,median:()=>a,min:()=>c,normalizeAngle:()=>y,radians:()=>b,round:()=>p,sortNumbers:()=>n,sortNumbersAscending:()=>n,sortNumbersDescending:()=>m,sortedNumbers:()=>s,sortedNumbersAscending:()=>s,sortedNumbersDescending:()=>g,sum:()=>r});var o=function(e,t,r){if(r||2===arguments.length)for(var i,n=0,o=t.length;n<o;n++)!i&&n in t||(i||(i=Array.prototype.slice.call(t,0,n)),i[n]=t[n]);return e.concat(i||Array.prototype.slice.call(t))};function s(e){var t=o([],e,!0);return n(t),t}function a(e){if(0==e.length)return NaN;var t=s(e);if(t.length%2!=0)return t[Math.floor(t.length/2)];var r=t.length/2,n=r-1;return i([t[r],t[n]])}function c(e){if(0==e.length)return 1/0;var t=e[0];return e.slice(1).forEach(function(e){t=Math.min(t,e)}),t}function u(e){if(0==e.length)return-1/0;var t=e[0];return e.slice(1).forEach(function(e){t=Math.max(t,e)}),t}function d(e,t,r){return e>=t&&e<=r}function h(e,t,r){return e>t&&e<r}function l(e,t,r){return e<t?t:e>r?r:e}function f(e,t,r){return Math.abs(e-t)<=r}function m(e){n(e),e.reverse()}function g(e){var t=s(e);return t.reverse(),t}function p(e,t){return Number.parseFloat(e.toFixed(null!=t?t:0))}function w(e){return e*(180/Math.PI)}function b(e){return e*(Math.PI/180)}function y(e,t){void 0===t&&(t=-Math.PI);var r=e-t;return t+((r%=2*Math.PI)>=0?r:r+2*Math.PI)}function v(e,t){var r=(t=y(t,e))-e;return(r<Math.PI/2||r>3*Math.PI/2)&&(e+=Math.PI),e}return t})()}},t={};function r(i){var n=t[i];if(void 0!==n)return n.exports;var o=t[i]={exports:{}};return e[i].call(o.exports,o,o.exports,r),o.exports}r.d=(e,t)=>{for(var i in t)r.o(t,i)&&!r.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};return(()=>{"use strict";r.r(i),r.d(i,{Box:()=>t});var e=r(986);class t{static matching(e){let{x:r,y:i,width:n,height:o}=e;return new t(r,i,n,o)}static bounding(r){let i=[...r];if(0==i.length)throw new Error("An empty collection of boxes doesn't have a bounding box.");let n=i.map(e=>t.matching(e)),o=(0,e.min)(n.map(e=>e.left)),s=(0,e.min)(n.map(e=>e.top)),a=(0,e.max)(n.map(e=>e.right))-o,c=(0,e.max)(n.map(e=>e.bottom))-s;return new t(o,s,a,c)}constructor(e,t,r,i){this.x=e,this.y=t,this.width=r,this.height=i}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}bounds(e){let r=t.matching(e);return this.minX<=r.minX&&this.minY<=r.minY&&this.maxX>=r.maxX&&this.maxY>=r.maxY}padded(...e){let r="number"==typeof e[0]?e[0]:"factor"in e[0]?e[0].factor*this.width:e[0].percentage/100*this.width,i="number"==typeof e[0]&&"number"==typeof e[1]?e[1]:"number"==typeof e[0]?e[0]:"factor"in e[0]?e[0].factor*this.height:e[0].percentage/100*this.height;return new t(this.x-r,this.y-i,this.width+2*r,this.height+2*i)}get periphery(){return{atAngle:e=>{let t=this.width/2,r=this.height/2,i=Math.pow(Math.pow(t,2)+Math.pow(r,2),.5),n=this.centerX+i*Math.cos(e),o=this.centerY+i*Math.sin(e),s=i;return Math.abs(this.centerX-n)>t&&(s=Math.abs(t/Math.cos(e)),s=Number.isFinite(s)?s:r),Math.abs(this.centerY-o)>r&&(s=Math.abs(r/Math.sin(e)),s=Number.isFinite(s)?s:t),{x:this.centerX+s*Math.cos(e),y:this.centerY+s*Math.sin(e)}}}}}})(),i})(),e.exports=t()},153(e){var t;t=()=>(()=>{var e={986(e){e.exports=(()=>{"use strict";const e={d:(t,r)=>{if(Array.isArray(r))for(var i=0;i<r.length;){var n=r[i++],o=r[i++];e.o(t,n)?0===o&&i++:0===o?Object.defineProperty(t,n,{enumerable:!0,value:r[i++]}):Object.defineProperty(t,n,{enumerable:!0,get:o})}else for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}};let t={};function r(e,t){return Math.abs(e-t)}function i(e){var t=0;return e.forEach(function(e){return t+=e}),t}function n(e){return i(e)/e.length}function o(e){e.sort(function(e,t){return e-t})}e.r(t),e.d(t,{areWithin:()=>m,average:()=>n,clamp:()=>f,degrees:()=>b,distance:()=>r,flipAway:()=>N,isBetween:()=>h,isBetweenExclusive:()=>l,isBetweenInclusive:()=>h,max:()=>d,mean:()=>n,median:()=>c,min:()=>u,normalizeAngle:()=>v,radians:()=>y,round:()=>w,sortNumbers:()=>o,sortNumbersAscending:()=>o,sortNumbersDescending:()=>g,sortedNumbers:()=>a,sortedNumbersAscending:()=>a,sortedNumbersDescending:()=>p,sum:()=>i});var s=function(e,t,r){if(r||2===arguments.length)for(var i,n=0,o=t.length;n<o;n++)!i&&n in t||(i||(i=Array.prototype.slice.call(t,0,n)),i[n]=t[n]);return e.concat(i||Array.prototype.slice.call(t))};function a(e){var t=s([],e,!0);return o(t),t}function c(e){if(0==e.length)return NaN;var t=a(e);if(t.length%2!=0)return t[Math.floor(t.length/2)];var r=t.length/2,i=r-1;return n([t[r],t[i]])}function u(e){if(0==e.length)return 1/0;var t=e[0];return e.slice(1).forEach(function(e){t=Math.min(t,e)}),t}function d(e){if(0==e.length)return-1/0;var t=e[0];return e.slice(1).forEach(function(e){t=Math.max(t,e)}),t}function h(e,t,r){return e>=t&&e<=r}function l(e,t,r){return e>t&&e<r}function f(e,t,r){return e<t?t:e>r?r:e}function m(e,t,r){return Math.abs(e-t)<=r}function g(e){o(e),e.reverse()}function p(e){var t=a(e);return t.reverse(),t}function w(e,t){return Number.parseFloat(e.toFixed(null!=t?t:0))}function b(e){return e*(180/Math.PI)}function y(e){return e*(Math.PI/180)}function v(e,t){void 0===t&&(t=-Math.PI);var r=e-t;return t+((r%=2*Math.PI)>=0?r:r+2*Math.PI)}function N(e,t){var r=(t=v(t,e))-e;return(r<Math.PI/2||r>3*Math.PI/2)&&(e+=Math.PI),e}return t})()},725(e){e.exports=(()=>{var e={986:function(e){e.exports=(()=>{"use strict";var e={d:(t,r)=>{for(var i in r)e.o(r,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:r[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){var t=0;return e.forEach(function(e){return t+=e}),t}function i(e){return r(e)/e.length}function n(e){e.sort(function(e,t){return e-t})}e.r(t),e.d(t,{areWithin:()=>l,average:()=>i,degrees:()=>g,isBetweenExclusive:()=>h,isBetweenInclusive:()=>d,max:()=>u,mean:()=>i,median:()=>a,min:()=>c,radians:()=>p,sortNumbers:()=>n,sortNumbersAscending:()=>n,sortNumbersDescending:()=>f,sortedNumbers:()=>s,sortedNumbersAscending:()=>s,sortedNumbersDescending:()=>m,sum:()=>r});var o=function(e,t,r){if(r||2===arguments.length)for(var i,n=0,o=t.length;n<o;n++)!i&&n in t||(i||(i=Array.prototype.slice.call(t,0,n)),i[n]=t[n]);return e.concat(i||Array.prototype.slice.call(t))};function s(e){var t=o([],e,!0);return n(t),t}function a(e){if(0==e.length)return NaN;var t=s(e);if(t.length%2!=0)return t[Math.floor(t.length/2)];var r=t.length/2,n=r-1;return i([t[r],t[n]])}function c(e){if(0==e.length)return 1/0;var t=e[0];return e.slice(1).forEach(function(e){t=Math.min(t,e)}),t}function u(e){if(0==e.length)return-1/0;var t=e[0];return e.slice(1).forEach(function(e){t=Math.max(t,e)}),t}function d(e,t,r){return e>=t&&e<=r}function h(e,t,r){return e>t&&e<r}function l(e,t,r){return Math.abs(e-t)<=r}function f(e){n(e),e.reverse()}function m(e){var t=s(e);return t.reverse(),t}function g(e){return e*(180/Math.PI)}function p(e){return e*(Math.PI/180)}return t})()},854:function(e){e.exports=(()=>{"use strict";var e={d:(t,r)=>{for(var i in r)e.o(r,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:r[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){return"number"==typeof e}function i(e){return r(e)&&Number.isFinite(e)}function n(e){return r(e)&&!Number.isFinite(e)}function o(e){return i(e)&&e>0}function s(e){return i(e)&&e>=0}function a(e){return"string"==typeof e}function c(e){return null==e}function u(e){return"object"==typeof e&&null!==e}function d(e){return Array.isArray(e)}return e.r(t),e.d(t,{isArray:()=>d,isFiniteNumber:()=>i,isNonFiniteNumber:()=>n,isNonNegativeFiniteNumber:()=>s,isNonNullObject:()=>u,isNullish:()=>c,isNumber:()=>r,isPositiveFiniteNumber:()=>o,isString:()=>a}),t})()},30:function(e){e.exports=(()=>{"use strict";var e={d:(t,r)=>{for(var i in r)e.o(r,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:r[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){return Math.pow(Math.pow(e.x,2)+Math.pow(e.y,2),.5)}function i(e){return Math.atan2(e.y,e.x)}return e.r(t),e.d(t,{direction:()=>i,magnitude:()=>r}),t})()}},t={};function r(i){var n=t[i];if(void 0!==n)return n.exports;var o=t[i]={exports:{}};return e[i].call(o.exports,o,o.exports,r),o.exports}r.d=(e,t)=>{for(var i in t)r.o(t,i)&&!r.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};return(()=>{"use strict";r.r(i),r.d(i,{areWithin:()=>a,centroid:()=>f,deepCopy:()=>o,direction:()=>h,displaced:()=>u,displacement:()=>c,distance:()=>s,isFinitePoint:()=>n,isPoint:()=>t,midpoint:()=>m});var e=r(854);function t(t){return(0,e.isNonNullObject)(t)&&(0,e.isNumber)(t.x)&&(0,e.isNumber)(t.y)}function n(r){return t(r)&&(0,e.isFiniteNumber)(r.x)&&(0,e.isFiniteNumber)(r.y)}function o(e){return{x:e.x,y:e.y}}function s(e,t){var r=t.x-e.x,i=t.y-e.y;return Math.pow(Math.pow(r,2)+Math.pow(i,2),.5)}function a(e,t,r){return s(e,t)<=r}function c(e,t){return{x:t.x-e.x,y:t.y-e.y}}function u(e,t){return{x:e.x+t.x,y:e.y+t.y}}var d=r(30);function h(e,t){return(0,d.direction)(c(e,t))}var l=r(986);function f(e){return{x:(0,l.mean)(e.map(function(e){return e.x})),y:(0,l.mean)(e.map(function(e){return e.y}))}}function m(e,t){return f([e,t])}})(),i})()}};const t={};function r(i){const n=t[i];if(void 0!==n)return n.exports;const o=t[i]={exports:{}};return e[i].call(o.exports,o,o.exports,r),o.exports}r.d=(e,t)=>{for(var i in t)r.o(t,i)&&!r.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};let i={};return(()=>{"use strict";r.r(i),r.d(i,{StrungElement:()=>l});var e=r(725),t=r(986);const n=r=>({closestLength(i){let n=0,o=r.length;for(let s=0;s<15;s++)(0,e.distance)(i,r.atLength(n))<(0,e.distance)(i,r.atLength(o))?o=(0,t.average)([n,o]):n=(0,t.average)([n,o]);return(0,t.average)([n,o])}});var o,s,a,c,u,d,h=function(e,t,r,i){if("a"===r&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?i:"a"===r?i.call(e):i?i.value:t.get(e)};class l{constructor(e,t){o.add(this),this.owner=t,s.set(this,void 0),function(e,t,r){if("function"==typeof t||!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");t.set(e,r)}(this,s,e),e.domNode.dataset.lineX||h(this,o,"m",a).call(this),e.domNode.dataset.displacementMagnitude&&e.domNode.dataset.displacementDirection||h(this,o,"m",c).call(this),t.addEventListener("change",()=>h(this,o,"m",d).call(this))}get domNode(){return h(this,s,"f").domNode}get rotation(){let e;return e=h(this,s,"f").domNode.dataset.rotation?Number.parseFloat(h(this,s,"f").domNode.dataset.rotation):0,Number.isFinite(e)||(e=0),e}set rotation(e){Number.isFinite(e)?(h(this,s,"f").domNode.dataset.rotation=`${e}`,h(this,o,"m",d).call(this)):console.error(`The specified rotation is nonfinite: ${e}.`)}get lineX(){let e;return e=h(this,s,"f").domNode.dataset.lineX?Number.parseFloat(h(this,s,"f").domNode.dataset.lineX):0,Number.isFinite(e)||(e=0),e}set lineX(e){Number.isFinite(e)?(e<-this.owner.length/2?e=-this.owner.length/2:e>this.owner.length/2&&(e=this.owner.length/2),h(this,s,"f").domNode.dataset.lineX=`${e}`,h(this,o,"m",d).call(this)):console.error(`The specified line X coordinate is nonfinite: ${e}.`)}get displacementMagnitude(){let e;return e=h(this,s,"f").domNode.dataset.displacementMagnitude?Number.parseFloat(h(this,s,"f").domNode.dataset.displacementMagnitude):0,Number.isFinite(e)||(e=0),e}set displacementMagnitude(e){Number.isFinite(e)?(h(this,s,"f").domNode.dataset.displacementMagnitude=`${e}`,h(this,o,"m",d).call(this)):console.error(`The specified displacement magnitude is nonfinite: ${e}.`)}get displacementDirection(){let e;return e=h(this,s,"f").domNode.dataset.displacementDirection?Number.parseFloat(h(this,s,"f").domNode.dataset.displacementDirection):0,Number.isFinite(e)||(e=0),e}set displacementDirection(e){Number.isFinite(e)?(h(this,s,"f").domNode.dataset.displacementDirection=`${e}`,h(this,o,"m",d).call(this)):console.error(`The specified displacement direction is nonfinite: ${e}.`)}get displacementX(){return this.displacementMagnitude*Math.cos(this.displacementDirection)}set displacementX(e){if(!Number.isFinite(e))return void console.error(`The specified displacement X component is nonfinite: ${e}.`);let t=this.displacementY;this.displacementMagnitude=Math.pow(Math.pow(e,2)+Math.pow(t,2),.5),this.displacementDirection=Math.atan2(t,e)}get displacementY(){return this.displacementMagnitude*Math.sin(this.displacementDirection)}set displacementY(e){if(!Number.isFinite(e))return void console.error(`The specified displacement Y component is nonfinite: ${e}.`);let t=this.displacementX;this.displacementMagnitude=Math.pow(Math.pow(t,2)+Math.pow(e,2),.5),this.displacementDirection=Math.atan2(e,t)}drag(e,t,r){var i;if(!Number.isFinite(e))return void console.error(`The specified drag X value is nonfinite: ${e}.`);if(!Number.isFinite(t))return void console.error(`The specified drag Y value is nonfinite: ${t}.`);if(null===(i=null==r?void 0:r.dragGroup)||void 0===i?void 0:i.has(this.owner))return;let n=Math.pow(Math.pow(e,2)+Math.pow(t,2),.5),s=Math.atan2(t,e),a=h(this,o,"a",u);this.displacementX+=n*Math.cos(s-a.direction),this.displacementY+=n*Math.sin(s-a.direction)}}s=new WeakMap,o=new WeakSet,a=function(){let e={x:h(this,s,"f").centerX,y:h(this,s,"f").centerY},t=this.owner.length/2;h(this,s,"f").domNode.dataset.lineX=""+(n(this.owner).closestLength(e)-t)},c=function(){let t=h(this,o,"a",u),r={x:h(this,s,"f").centerX,y:h(this,s,"f").centerY};h(this,s,"f").domNode.dataset.displacementMagnitude=`${(0,e.distance)(t,r)}`,h(this,s,"f").domNode.dataset.displacementDirection=""+((0,e.direction)(t,r)-t.direction)},u=function(){let e=this.owner.length/2;return this.owner.atLength(e+this.lineX)},d=function(){let e=h(this,o,"a",u);h(this,s,"f").centerX=e.x+this.displacementMagnitude*Math.cos(this.displacementDirection+e.direction),h(this,s,"f").centerY=e.y+this.displacementMagnitude*Math.sin(this.displacementDirection+e.direction),"direction"in h(this,s,"f")&&(h(this,s,"f").direction=e.direction+this.rotation)}})(),i})(),e.exports=t()},731(e){var t;t=()=>(()=>{"use strict";var e={d:(t,r)=>{for(var i in r)e.o(r,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:r[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{CenterPoint:()=>u});var r,i,n,o,s,a=function(e,t,r,i,n){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?n.call(e,r):n?n.value=r:t.set(e,r),r},c=function(e,t,r,i){if("a"===r&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?i:"a"===r?i.call(e):i?i.value:t.get(e)};class u{constructor(e){r.add(this),i.set(this,void 0),n.set(this,{move:[]}),o.set(this,void 0),a(this,i,e,"f"),a(this,o,new MutationObserver(()=>c(this,r,"m",s).call(this,"move")),"f"),c(this,o,"f").observe(e,{attributes:!0,childList:!0,characterData:!0,subtree:!0})}get x(){let e=c(this,i,"f").getBBox();return e.x+e.width/2}set x(e){let t=this.x,r=[...c(this,i,"f").x.baseVal].map(e=>e.value);0!=r.length||r.push(0),r=r.map(r=>r+(e-t)),c(this,i,"f").setAttribute("x",r.join(", "))}get y(){let e=c(this,i,"f").getBBox();return e.y+e.height/2}set y(e){let t=this.y,r=[...c(this,i,"f").y.baseVal].map(e=>e.value);0!=r.length||r.push(0),r=r.map(r=>r+(e-t)),c(this,i,"f").setAttribute("y",r.join(", "))}addEventListener(e,t){c(this,n,"f")[e].push(t)}removeEventListener(e,t){c(this,n,"f")[e]=c(this,n,"f")[e].filter(e=>e!==t)}}return i=new WeakMap,n=new WeakMap,o=new WeakMap,r=new WeakSet,s=function(e){c(this,n,"f")[e].forEach(e=>e())},t})(),e.exports=t()},456(e){var t;t=()=>(()=>{var e={986(e){e.exports=(()=>{"use strict";var e={d:(t,r)=>{for(var i in r)e.o(r,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:r[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){var t=0;return e.forEach(function(e){return t+=e}),t}function i(e){return r(e)/e.length}function n(e){e.sort(function(e,t){return e-t})}e.r(t),e.d(t,{areWithin:()=>f,average:()=>i,clamp:()=>l,degrees:()=>w,flipAway:()=>v,isBetween:()=>d,isBetweenExclusive:()=>h,isBetweenInclusive:()=>d,max:()=>u,mean:()=>i,median:()=>a,min:()=>c,normalizeAngle:()=>y,radians:()=>b,round:()=>p,sortNumbers:()=>n,sortNumbersAscending:()=>n,sortNumbersDescending:()=>m,sortedNumbers:()=>s,sortedNumbersAscending:()=>s,sortedNumbersDescending:()=>g,sum:()=>r});var o=function(e,t,r){if(r||2===arguments.length)for(var i,n=0,o=t.length;n<o;n++)!i&&n in t||(i||(i=Array.prototype.slice.call(t,0,n)),i[n]=t[n]);return e.concat(i||Array.prototype.slice.call(t))};function s(e){var t=o([],e,!0);return n(t),t}function a(e){if(0==e.length)return NaN;var t=s(e);if(t.length%2!=0)return t[Math.floor(t.length/2)];var r=t.length/2,n=r-1;return i([t[r],t[n]])}function c(e){if(0==e.length)return 1/0;var t=e[0];return e.slice(1).forEach(function(e){t=Math.min(t,e)}),t}function u(e){if(0==e.length)return-1/0;var t=e[0];return e.slice(1).forEach(function(e){t=Math.max(t,e)}),t}function d(e,t,r){return e>=t&&e<=r}function h(e,t,r){return e>t&&e<r}function l(e,t,r){return e<t?t:e>r?r:e}function f(e,t,r){return Math.abs(e-t)<=r}function m(e){n(e),e.reverse()}function g(e){var t=s(e);return t.reverse(),t}function p(e,t){return Number.parseFloat(e.toFixed(null!=t?t:0))}function w(e){return e*(180/Math.PI)}function b(e){return e*(Math.PI/180)}function y(e,t){void 0===t&&(t=-Math.PI);var r=e-t;return t+((r%=2*Math.PI)>=0?r:r+2*Math.PI)}function v(e,t){var r=(t=y(t,e))-e;return(r<Math.PI/2||r>3*Math.PI/2)&&(e+=Math.PI),e}return t})()},854(e){e.exports=(()=>{"use strict";var e={d:(t,r)=>{for(var i in r)e.o(r,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:r[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){return"number"==typeof e}function i(e){return r(e)&&Number.isFinite(e)}function n(e){return r(e)&&!Number.isFinite(e)}function o(e){return i(e)&&e>0}function s(e){return i(e)&&e>=0}function a(e){return"string"==typeof e}function c(e){return""===e}function u(e){return a(e)&&!c(e)}function d(e){return!!a(e)&&0==e.trim().length}function h(e){if(!a(e))return!1;try{return JSON.parse(e),!0}catch{return!1}}function l(e){try{return JSON.stringify(e),!0}catch{return!1}}function f(e){return!!e}function m(e){return!e}function g(e){return null==e}function p(e){return"object"==typeof e&&null!==e}function w(e){return Array.isArray(e)}function b(e){return w(e)&&0==e.length}function y(e){return w(e)&&e.length>0}function v(e){return w(e)&&e.every(r)}function N(e){return v(e)&&e.length>0}function x(e){return w(e)&&e.every(i)}function S(e){return w(e)&&e.every(n)}function M(e){return w(e)&&e.every(a)}function P(e){return M(e)&&e.length>0}function E(e){return e instanceof SVGGraphicsElement}return e.r(t),e.d(t,{isArray:()=>w,isEmptyArray:()=>b,isEmptyString:()=>c,isFalsy:()=>m,isFiniteNumber:()=>i,isFiniteNumbersArray:()=>x,isJSON:()=>h,isJSONSerializable:()=>l,isNonEmptyArray:()=>y,isNonEmptyNumbersArray:()=>N,isNonEmptyString:()=>u,isNonEmptyStringsArray:()=>P,isNonFiniteNumber:()=>n,isNonFiniteNumbersArray:()=>S,isNonNegativeFiniteNumber:()=>s,isNonNullObject:()=>p,isNullish:()=>g,isNumber:()=>r,isNumbersArray:()=>v,isPositiveFiniteNumber:()=>o,isSVGGraphicsElement:()=>E,isString:()=>a,isStringsArray:()=>M,isTruthy:()=>f,isWhitespace:()=>d}),t})()},277(e){var t;t=()=>(()=>{var e={854(e){e.exports=(()=>{"use strict";var e={d:(t,r)=>{for(var i in r)e.o(r,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:r[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){return"number"==typeof e}function i(e){return r(e)&&Number.isFinite(e)}function n(e){return r(e)&&!Number.isFinite(e)}function o(e){return i(e)&&e>0}function s(e){return i(e)&&e>=0}function a(e){return"string"==typeof e}function c(e){return""===e}function u(e){return a(e)&&!c(e)}function d(e){return!!a(e)&&0==e.trim().length}function h(e){if(!a(e))return!1;try{return JSON.parse(e),!0}catch{return!1}}function l(e){try{return JSON.stringify(e),!0}catch{return!1}}function f(e){return!!e}function m(e){return!e}function g(e){return null==e}function p(e){return"object"==typeof e&&null!==e}function w(e){return Array.isArray(e)}function b(e){return w(e)&&0==e.length}function y(e){return w(e)&&e.length>0}function v(e){return w(e)&&e.every(r)}function N(e){return v(e)&&e.length>0}function x(e){return w(e)&&e.every(i)}function S(e){return w(e)&&e.every(n)}function M(e){return w(e)&&e.every(a)}function P(e){return M(e)&&e.length>0}function E(e){return e instanceof SVGGraphicsElement}return e.r(t),e.d(t,{isArray:()=>w,isEmptyArray:()=>b,isEmptyString:()=>c,isFalsy:()=>m,isFiniteNumber:()=>i,isFiniteNumbersArray:()=>x,isJSON:()=>h,isJSONSerializable:()=>l,isNonEmptyArray:()=>y,isNonEmptyNumbersArray:()=>N,isNonEmptyString:()=>u,isNonEmptyStringsArray:()=>P,isNonFiniteNumber:()=>n,isNonFiniteNumbersArray:()=>S,isNonNegativeFiniteNumber:()=>s,isNonNullObject:()=>p,isNullish:()=>g,isNumber:()=>r,isNumbersArray:()=>v,isPositiveFiniteNumber:()=>o,isSVGGraphicsElement:()=>E,isString:()=>a,isStringsArray:()=>M,isTruthy:()=>f,isWhitespace:()=>d}),t})()}},t={};function r(i){var n=t[i];if(void 0!==n)return n.exports;var o=t[i]={exports:{}};return e[i].call(o.exports,o,o.exports,r),o.exports}r.d=(e,t)=>{for(var i in t)r.o(t,i)&&!r.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};return(()=>{"use strict";r.r(i),r.d(i,{Vector:()=>t,isFiniteVectorLike:()=>o,isVectorLike:()=>n});var e=r(854);class t{static matching(e){let r="x"in e?e.x:e.magnitude*Math.cos(e.direction),i="y"in e?e.y:e.magnitude*Math.sin(e.direction);return new t(r,i)}constructor(e,t){this.x=e,this.y=t}[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(e){let t=this.direction;this.x=e*Math.cos(t),this.y=e*Math.sin(t)}get direction(){return Math.atan2(this.y,this.x)}set direction(e){let t=this.magnitude;this.x=t*Math.cos(e),this.y=t*Math.sin(e)}isFinite(){return(0,e.isFiniteNumber)(this.x)&&(0,e.isFiniteNumber)(this.y)}}function n(t){return!(!(0,e.isNonNullObject)(t)||!((0,e.isNumber)(t.x)&&(0,e.isNumber)(t.y)||(0,e.isNumber)(t.magnitude)&&(0,e.isNumber)(t.direction)))}function o(e){return!!n(e)&&t.matching(e).isFinite()}})(),i})(),e.exports=t()}};const t={};function r(i){const n=t[i];if(void 0!==n)return n.exports;const o=t[i]={exports:{}};return e[i].call(o.exports,o,o.exports,r),o.exports}r.d=(e,t)=>{if(Array.isArray(t))for(var i=0;i<t.length;){var n=t[i++],o=t[i++];r.o(e,n)?0===o&&i++:0===o?Object.defineProperty(e,n,{enumerable:!0,value:t[i++]}):Object.defineProperty(e,n,{enumerable:!0,get:o})}else for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};let i={};return(()=>{"use strict";r.r(i),r.d(i,{FinitePoint:()=>o,Point:()=>n,RelativePoint:()=>l,midpoint:()=>m});var e=r(277),t=r(854);class n{static matching(e){return new n(e.x,e.y)}constructor(e,t){this.x=e,this.y=t}[Symbol.iterator](){return[this.x,this.y].values()}set(e){(0,t.isNumber)(null==e?void 0:e.x)&&(this.x=e.x),(0,t.isNumber)(null==e?void 0:e.y)&&(this.y=e.y)}drag(e,t){this.displace({x:e,y:t})}displace(t){let r=e.Vector.matching(t);this.x+=r.x,this.y+=r.y}displaced(e){let t=n.matching(this);return t.displace(e),t}displacementTo(t){return new e.Vector(t.x-this.x,t.y-this.y)}displacementFrom(t){return new e.Vector(this.x-t.x,this.y-t.y)}distanceTo(e){return this.displacementTo(e).magnitude}distanceFrom(e){return this.distanceTo(e)}directionTo(e){return this.displacementTo(e).direction}directionFrom(e){return this.displacementFrom(e).direction}deepCopy(){return new n(this.x,this.y)}}class o extends n{static matching(e){let t=n.matching(e);return new o(t.x,t.y)}constructor(e,r){if(super(e,r),!(0,t.isFiniteNumber)(e)||!(0,t.isFiniteNumber)(r))throw new Error(`Finite points must have finite number coordinates: (${e}, ${r}).`)}set(...e){let t=new n(0,0);t.set(...e),o.matching(t),super.set(...e)}}var s,a,c,u,d,h=function(e,t,r,i){if("a"===r&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?i:"a"===r?i.call(e):i?i.value:t.get(e)};class l{constructor(t){s.add(this),a.set(this,void 0),c.set(this,new e.Vector(0,0)),u.set(this,{move:[]}),function(e,t,r){if("function"==typeof t||!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");t.set(e,r)}(this,a,t),t.addEventListener("move",()=>h(this,s,"m",d).call(this,"move"))}get x(){return h(this,a,"f").x+h(this,c,"f").x}set x(e){h(this,c,"f").x=e-h(this,a,"f").x,h(this,s,"m",d).call(this,"move")}get y(){return h(this,a,"f").y+h(this,c,"f").y}set y(e){h(this,c,"f").y=e-h(this,a,"f").y,h(this,s,"m",d).call(this,"move")}addEventListener(e,t){h(this,u,"f")[e].push(t)}removeEventListener(e,t){h(this,u,"f")[e]=h(this,u,"f")[e].filter(e=>e!==t)}}a=new WeakMap,c=new WeakMap,u=new WeakMap,s=new WeakSet,d=function(e){h(this,u,"f")[e].forEach(e=>e())};var f=r(986);function m(e,t){return new n((0,f.average)([e.x,t.x]),(0,f.average)([e.y,t.y]))}})(),i})(),e.exports=t()},854(e){e.exports=(()=>{"use strict";var e={d:(t,r)=>{for(var i in r)e.o(r,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:r[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){return"number"==typeof e}function i(e){return r(e)&&Number.isFinite(e)}function n(e){return r(e)&&!Number.isFinite(e)}function o(e){return i(e)&&e>0}function s(e){return i(e)&&e>=0}function a(e){return"string"==typeof e}function c(e){return""===e}function u(e){return a(e)&&!c(e)}function d(e){return!!a(e)&&0==e.trim().length}function h(e){if(!a(e))return!1;try{return JSON.parse(e),!0}catch{return!1}}function l(e){try{return JSON.stringify(e),!0}catch{return!1}}function f(e){return!!e}function m(e){return!e}function g(e){return null==e}function p(e){return"object"==typeof e&&null!==e}function w(e){return Array.isArray(e)}function b(e){return w(e)&&0==e.length}function y(e){return w(e)&&e.length>0}function v(e){return w(e)&&e.every(r)}function N(e){return v(e)&&e.length>0}function x(e){return w(e)&&e.every(i)}function S(e){return w(e)&&e.every(n)}function M(e){return w(e)&&e.every(a)}function P(e){return M(e)&&e.length>0}function E(e){return e instanceof SVGGraphicsElement}return e.r(t),e.d(t,{isArray:()=>w,isEmptyArray:()=>b,isEmptyString:()=>c,isFalsy:()=>m,isFiniteNumber:()=>i,isFiniteNumbersArray:()=>x,isJSON:()=>h,isJSONSerializable:()=>l,isNonEmptyArray:()=>y,isNonEmptyNumbersArray:()=>N,isNonEmptyString:()=>u,isNonEmptyStringsArray:()=>P,isNonFiniteNumber:()=>n,isNonFiniteNumbersArray:()=>S,isNonNegativeFiniteNumber:()=>s,isNonNullObject:()=>p,isNullish:()=>g,isNumber:()=>r,isNumbersArray:()=>v,isPositiveFiniteNumber:()=>o,isSVGGraphicsElement:()=>E,isString:()=>a,isStringsArray:()=>M,isTruthy:()=>f,isWhitespace:()=>d}),t})()}};const t={};function r(i){const n=t[i];if(void 0!==n)return n.exports;const o=t[i]={exports:{}};return e[i].call(o.exports,o,o.exports,r),o.exports}r.d=(e,t)=>{for(var i in t)r.o(t,i)&&!r.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};let i={};return(()=>{"use strict";r.r(i),r.d(i,{Circle:()=>l,Rectangle:()=>v,StrungCircle:()=>D,StrungElement:()=>C,StrungRectangle:()=>R,StrungText:()=>T,StrungTriangle:()=>_,Text:()=>h,Triangle:()=>j});const e={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};let t;const n=new Uint8Array(16),o=[];for(let e=0;e<256;++e)o.push((e+256).toString(16).slice(1));function s(e,r,i){const s=(e=e||{}).random??e.rng?.()??function(){if(!t){if("undefined"==typeof crypto||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");t=crypto.getRandomValues.bind(crypto)}return t(n)}();if(s.length<16)throw new Error("Random bytes length must be >= 16");if(s[6]=15&s[6]|64,s[8]=63&s[8]|128,r){if((i=i||0)<0||i+16>r.length)throw new RangeError(`UUID byte range ${i}:${i+15} is out of buffer bounds`);for(let e=0;e<16;++e)r[i+e]=s[e];return r}return function(e,t=0){return(o[e[t+0]]+o[e[t+1]]+o[e[t+2]]+o[e[t+3]]+"-"+o[e[t+4]]+o[e[t+5]]+"-"+o[e[t+6]]+o[e[t+7]]+"-"+o[e[t+8]]+o[e[t+9]]+"-"+o[e[t+10]]+o[e[t+11]]+o[e[t+12]]+o[e[t+13]]+o[e[t+14]]+o[e[t+15]]).toLowerCase()}(s)}const a=function(t,r,i){return!e.randomUUID||r||t?s(t,r,i):e.randomUUID()};var c=r(645),u=r(731),d=r(854);class h{static create(e){let t=document.createElementNS("http://www.w3.org/2000/svg","text");return t.id="id-"+a(),t.textContent=null!=e?e:"",t.setAttribute("font-family","Arial"),t.setAttribute("font-size","9"),t.setAttribute("font-weight","700"),t.setAttribute("font-style","normal"),t.setAttribute("fill","black"),t.setAttribute("fill-opacity","1"),new h(t)}constructor(e){this.domNode=e}get id(){return this.domNode.id}get bbox(){return c.Box.matching(this.domNode.getBBox())}get centerX(){return this.bbox.centerX}set centerX(e){new u.CenterPoint(this.domNode).x=e}get centerY(){return this.bbox.centerY}set centerY(e){new u.CenterPoint(this.domNode).y=e}drag(e,t){this.centerX+=e,this.centerY+=t}serialized(){if(!this.id)throw new Error("Text element ID is falsy.");return{id:this.id}}static recreate(e,t){if(!(0,d.isNonNullObject)(e))throw new Error(`Saved text element is not an object: ${e}.`);if(!e.id)throw new Error("Saved text element ID is falsy.");if(!(0,d.isString)(e.id))throw new Error(`Saved text element ID is not a string: ${e.id}.`);let r=t.domNode.querySelector("#"+e.id);if(!r)throw new Error("Unable to find text element DOM node in parent drawing by ID.");if(!(r instanceof SVGTextElement))throw new Error(`Text element DOM node is not an SVG text element: ${r}.`);return new h(r)}}class l{static create(){let e=document.createElementNS("http://www.w3.org/2000/svg","circle");return e.id="id-"+a(),e.setAttribute("r","6"),e.setAttribute("stroke","black"),e.setAttribute("stroke-width","1"),e.setAttribute("stroke-opacity","1"),e.setAttribute("stroke-dasharray",""),e.setAttribute("stroke-linecap",""),e.setAttribute("fill","white"),e.setAttribute("fill-opacity","1"),new l(e)}constructor(e){this.domNode=e}get id(){return this.domNode.id}get centerX(){return this.domNode.cx.baseVal.value}set centerX(e){this.domNode.setAttribute("cx",`${e}`)}get centerY(){return this.domNode.cy.baseVal.value}set centerY(e){this.domNode.setAttribute("cy",`${e}`)}drag(e,t){this.centerX+=e,this.centerY+=t}serialized(){if(!this.id)throw new Error("Circle ID is falsy.");return{id:this.id}}static recreate(e,t){if(!(0,d.isNonNullObject)(e))throw new Error(`Saved circle must be an object: ${e}.`);if(!e.id)throw new Error("Saved circle ID is falsy.");if(!(0,d.isString)(e.id))throw new Error(`Saved circle ID must be a string: ${e.id}.`);let r=t.domNode.querySelector("#"+e.id);if(!r)throw new Error("Unable to find circle element DOM node by ID.");if(!(r instanceof SVGCircleElement))throw new Error(`Circle element DOM node is not an SVG circle element: ${r}.`);return new l(r)}}var f=r(456);class m{constructor(){this.centerX=0,this.centerY=0,this.direction=-Math.PI/2,this.width=0,this.height=0,this.cornerRadius=0}static matching(e){let t=new m;return t.centerX=e.centerX,t.centerY=e.centerY,t.direction=e.direction,t.width=e.width,t.height=e.height,t.cornerRadius=e.cornerRadius,t}toString(){let e=new f.Point(this.centerX,this.centerY);e.displace({magnitude:this.height/2,direction:this.direction}),e.displace({magnitude:this.width/2-this.cornerRadius,direction:this.direction+Math.PI/2});let t=`M ${e.x} ${e.y}`;return e.displace({magnitude:Math.SQRT2*this.cornerRadius,direction:this.direction+3*Math.PI/4}),t+=` A ${this.cornerRadius} ${this.cornerRadius} 90 0 1 ${e.x} ${e.y}`,e.displace({magnitude:this.height-2*this.cornerRadius,direction:this.direction+Math.PI}),t+=` L ${e.x} ${e.y}`,e.displace({magnitude:Math.SQRT2*this.cornerRadius,direction:this.direction+5*Math.PI/4}),t+=` A ${this.cornerRadius} ${this.cornerRadius} 90 0 1 ${e.x} ${e.y}`,e.displace({magnitude:this.width-2*this.cornerRadius,direction:this.direction+3*Math.PI/2}),t+=` L ${e.x} ${e.y}`,e.displace({magnitude:Math.SQRT2*this.cornerRadius,direction:this.direction+7*Math.PI/4}),t+=` A ${this.cornerRadius} ${this.cornerRadius} 90 0 1 ${e.x} ${e.y}`,e.displace({magnitude:this.height-2*this.cornerRadius,direction:this.direction}),t+=` L ${e.x} ${e.y}`,e.displace({magnitude:Math.SQRT2*this.cornerRadius,direction:this.direction+9*Math.PI/4}),t+=` A ${this.cornerRadius} ${this.cornerRadius} 90 0 1 ${e.x} ${e.y}`,t+=" Z",t}}var g,p,w,b,y=function(e,t,r,i){if("a"===r&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?i:"a"===r?i.call(e):i?i.value:t.get(e)};class v{static create(){let e=document.createElementNS("http://www.w3.org/2000/svg","path");e.id="id-"+a();let t=new v(e);return t.centerX=0,t.centerY=0,t.direction=-Math.PI/2,t.width=5.5,t.height=5.5,t.cornerRadius=0,t.domNode.setAttribute("stroke","black"),t.domNode.setAttribute("stroke-width","1"),t.domNode.setAttribute("stroke-opacity","1"),t.domNode.setAttribute("stroke-linejoin",""),t.domNode.setAttribute("stroke-dasharray",""),t.domNode.setAttribute("stroke-linecap",""),t.domNode.setAttribute("fill","white"),t.domNode.setAttribute("fill-opacity","1"),t}constructor(e){g.add(this),this.domNode=e,e.dataset.centerX||y(this,g,"m",p).call(this),e.dataset.centerY||y(this,g,"m",w).call(this)}get id(){return this.domNode.id}get centerX(){var e;let t=Number.parseFloat(null!==(e=this.domNode.dataset.centerX)&&void 0!==e?e:"");return Number.isFinite(t)?t:0}set centerX(e){Number.isFinite(e)?(this.domNode.dataset.centerX=`${e}`,y(this,g,"m",b).call(this)):console.error(`The specified center X coordinate is nonfinite: ${e}.`)}get centerY(){var e;let t=Number.parseFloat(null!==(e=this.domNode.dataset.centerY)&&void 0!==e?e:"");return Number.isFinite(t)?t:0}set centerY(e){Number.isFinite(e)?(this.domNode.dataset.centerY=`${e}`,y(this,g,"m",b).call(this)):console.error(`The specified center Y coordinate is nonfinite: ${e}.`)}drag(e,t){this.centerX+=e,this.centerY+=t}get direction(){var e;let t=Number.parseFloat(null!==(e=this.domNode.dataset.direction)&&void 0!==e?e:"");return Number.isFinite(t)?t:0}set direction(e){Number.isFinite(e)?(this.domNode.dataset.direction=`${e}`,y(this,g,"m",b).call(this)):console.error(`The specified direction angle is nonfinite: ${e}.`)}get width(){var e;let t=Number.parseFloat(null!==(e=this.domNode.dataset.width)&&void 0!==e?e:"");return Number.isFinite(t)?t:0}set width(e){Number.isFinite(e)?(this.domNode.dataset.width=`${e}`,y(this,g,"m",b).call(this)):console.error(`The specified width is nonfinite: ${e}.`)}get height(){var e;let t=Number.parseFloat(null!==(e=this.domNode.dataset.height)&&void 0!==e?e:"");return Number.isFinite(t)?t:0}set height(e){Number.isFinite(e)?(this.domNode.dataset.height=`${e}`,y(this,g,"m",b).call(this)):console.error(`The specified height is nonfinite: ${e}.`)}get cornerRadius(){var e;let t=Number.parseFloat(null!==(e=this.domNode.dataset.cornerRadius)&&void 0!==e?e:"");return Number.isFinite(t)?t:0}set cornerRadius(e){Number.isFinite(e)?(this.domNode.dataset.cornerRadius=`${e}`,y(this,g,"m",b).call(this)):console.error(`The specified corner radius is nonfinite: ${e}.`)}get bbox(){return c.Box.matching(this.domNode.getBBox())}serialized(){if(!this.id)throw new Error("Rectangle ID is falsy.");return{id:this.id}}static recreate(e,t){if(!(0,d.isNonNullObject)(e))throw new Error(`Saved rectangle is not an object: ${e}.`);if(!e.id)throw new Error("Saved rectangle ID is falsy.");if(!(0,d.isString)(e.id))throw new Error(`Saved rectangle ID is not a string: ${e.id}.`);let r=t.domNode.querySelector("#"+e.id);if(!r)throw new Error("Unable to find saved rectangle DOM node in parent drawing by ID.");if(!(r instanceof SVGPathElement))throw new Error(`DOM node found for saved rectangle is not an SVG path element: ${r}.`);let i=new v(r);return(0,d.isFiniteNumber)(e.width)&&(i.width=e.width),(0,d.isFiniteNumber)(e.height)&&(i.height=e.height),(0,d.isFiniteNumber)(e.borderRadius)&&(i.cornerRadius=e.borderRadius),i}}g=new WeakSet,p=function(){let e=c.Box.matching(this.domNode.getBBox());this.domNode.dataset.centerX=`${e.centerX}`},w=function(){let e=c.Box.matching(this.domNode.getBBox());this.domNode.dataset.centerY=`${e.centerY}`},b=function(){let e=new m;e.centerX=this.centerX,e.centerY=this.centerY,e.direction=this.direction,e.width=this.width,e.height=this.height,e.cornerRadius=this.cornerRadius,this.domNode.setAttribute("d",e.toString())};class N{constructor(){this.centerX=0,this.centerY=0,this.direction=-Math.PI/2,this.width=0,this.height=0,this.tailsHeight=0}static matching(e){let t=new N;return t.centerX=e.centerX,t.centerY=e.centerY,t.direction=e.direction,t.width=e.width,t.height=e.height,t.tailsHeight=e.tailsHeight,t}toString(){let e=new f.Point(this.centerX,this.centerY),t=e.displaced({magnitude:this.height/2,direction:this.direction}),r=e.displaced({magnitude:this.width/2,direction:this.direction-Math.PI/2}).displaced({magnitude:this.height/2,direction:this.direction+Math.PI}),i=e.displaced({magnitude:this.width/2,direction:this.direction+Math.PI/2}).displaced({magnitude:this.height/2,direction:this.direction+Math.PI}),n=e.displaced({magnitude:this.height/2-this.tailsHeight,direction:this.direction+Math.PI});return`M ${t.x} ${t.y} L ${i.x} ${i.y} L ${n.x} ${n.y} L ${r.x} ${r.y} Z`}}var x,S,M,P,E=function(e,t,r,i){if("a"===r&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?i:"a"===r?i.call(e):i?i.value:t.get(e)};class j{static create(){let e=document.createElementNS("http://www.w3.org/2000/svg","path");e.id="id-"+a();let t=new j(e);return t.centerX=0,t.centerY=0,t.direction=-Math.PI/2,t.width=6.5,t.height=6.5,t.tailsHeight=0,t.domNode.setAttribute("stroke","black"),t.domNode.setAttribute("stroke-width","1"),t.domNode.setAttribute("stroke-opacity","1"),t.domNode.setAttribute("stroke-linejoin",""),t.domNode.setAttribute("stroke-dasharray",""),t.domNode.setAttribute("stroke-linecap",""),t.domNode.setAttribute("fill","white"),t.domNode.setAttribute("fill-opacity","1"),t}constructor(e){x.add(this),this.domNode=e,e.dataset.centerX||E(this,x,"m",S).call(this),e.dataset.centerY||E(this,x,"m",M).call(this)}get id(){return this.domNode.id}get centerX(){var e;let t=Number.parseFloat(null!==(e=this.domNode.dataset.centerX)&&void 0!==e?e:"");return Number.isFinite(t)?t:0}set centerX(e){Number.isFinite(e)?(this.domNode.dataset.centerX=`${e}`,E(this,x,"m",P).call(this)):console.error(`The specified center X coordinate is nonfinite: ${e}.`)}get centerY(){var e;let t=Number.parseFloat(null!==(e=this.domNode.dataset.centerY)&&void 0!==e?e:"");return Number.isFinite(t)?t:0}set centerY(e){Number.isFinite(e)?(this.domNode.dataset.centerY=`${e}`,E(this,x,"m",P).call(this)):console.error(`The specified center Y coordinate is nonfinite: ${e}.`)}drag(e,t){this.centerX+=e,this.centerY+=t}get direction(){var e;let t=Number.parseFloat(null!==(e=this.domNode.dataset.direction)&&void 0!==e?e:"");return Number.isFinite(t)?t:0}set direction(e){Number.isFinite(e)?(this.domNode.dataset.direction=`${e}`,E(this,x,"m",P).call(this)):console.error(`The specified direction angle is nonfinite: ${e}.`)}get width(){var e;let t=Number.parseFloat(null!==(e=this.domNode.dataset.width)&&void 0!==e?e:"");return Number.isFinite(t)?t:0}set width(e){Number.isFinite(e)?(this.domNode.dataset.width=`${e}`,E(this,x,"m",P).call(this)):console.error(`The specified width is nonfinite: ${e}.`)}get height(){var e;let t=Number.parseFloat(null!==(e=this.domNode.dataset.height)&&void 0!==e?e:"");return Number.isFinite(t)?t:0}set height(e){Number.isFinite(e)?(this.domNode.dataset.height=`${e}`,E(this,x,"m",P).call(this)):console.error(`The specified height is nonfinite: ${e}.`)}get tailsHeight(){var e;let t=Number.parseFloat(null!==(e=this.domNode.dataset.tailsHeight)&&void 0!==e?e:"");return Number.isFinite(t)?t:0}set tailsHeight(e){Number.isFinite(e)?(this.domNode.dataset.tailsHeight=`${e}`,E(this,x,"m",P).call(this)):console.error(`The specified tails height is nonfinite: ${e}.`)}get bbox(){return c.Box.matching(this.domNode.getBBox())}serialized(){if(!this.id)throw new Error("Triangle ID is falsy.");return{id:this.id}}static recreate(e,t){if(!(0,d.isNonNullObject)(e))throw new Error(`Saved triangle is not an object: ${e}.`);if(!e.id)throw new Error("Saved triangle ID is falsy.");if(!(0,d.isString)(e.id))throw new Error(`Saved triangle ID is not a string: ${e.id}.`);let r=t.domNode.querySelector("#"+e.id);if(!r)throw new Error("Unable to find saved triangle DOM node in parent drawing by ID.");if(!(r instanceof SVGPathElement))throw new Error(`DOM node found for saved triangle is not an SVG path element: ${r}.`);let i=new j(r);return(0,d.isFiniteNumber)(e.width)&&(i.width=e.width),(0,d.isFiniteNumber)(e.height)&&(i.height=e.height),(0,d.isFiniteNumber)(e.tailsHeight)&&(i.tailsHeight=e.tailsHeight),i}}x=new WeakSet,S=function(){let e=c.Box.matching(this.domNode.getBBox());this.domNode.dataset.centerX=`${e.centerX}`},M=function(){let e=c.Box.matching(this.domNode.getBBox());this.domNode.dataset.centerY=`${e.centerY}`},P=function(){let e=new N;e.centerX=this.centerX,e.centerY=this.centerY,e.direction=this.direction,e.width=this.width,e.height=this.height,e.tailsHeight=this.tailsHeight,this.domNode.setAttribute("d",e.toString())};var O,F=r(153),A=function(e,t,r,i){if("a"===r&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?i:"a"===r?i.call(e):i?i.value:t.get(e)};class T extends F.StrungElement{static on(e){let t=h.create();t.domNode.textContent="Text",t.domNode.setAttribute("font-size","7");let r=new T(t,e);return r.lineX=0,r.displacementMagnitude=0,r}constructor(e,t){super(e,t),this.owner=t,O.set(this,void 0),function(e,t,r,i,n){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===i?n.call(e,r):n?n.value=r:t.set(e,r)}(this,O,e,"f")}get textContent(){return this.domNode.textContent}save(){return{text:A(this,O,"f").serialized(),ownerID:this.owner.id}}static recreate(e,t){if(!(0,d.isNonNullObject)(e))throw new Error(`Saved strung text isn't an object: ${e}.`);let r=h.recreate(e.text,t);if(!(0,d.isString)(e.ownerID))throw new Error(`Saved strung text owner ID isn't a string: ${e.ownerID}.`);if(!e.ownerID)throw new Error("Saved strung text owner ID is an empty string.");let i=t.bonds.find(t=>t.id==e.ownerID);if(!i)throw new Error(`Saved strung text owner wasn't found in the parent drawing: ${e}.`);return new T(r,i)}}O=new WeakMap;var $,I=function(e,t,r,i){if("a"===r&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?i:"a"===r?i.call(e):i?i.value:t.get(e)};class D extends F.StrungElement{static on(e){let t=l.create();t.domNode.setAttribute("r","3");let r=new D(t,e);return r.lineX=0,r.displacementMagnitude=0,r}constructor(e,t){super(e,t),this.owner=t,$.set(this,void 0),function(e,t,r,i,n){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===i?n.call(e,r):n?n.value=r:t.set(e,r)}(this,$,e,"f")}save(){return{circle:I(this,$,"f").serialized(),ownerID:this.owner.id}}static recreate(e,t){if(!(0,d.isNonNullObject)(e))throw new Error(`Saved strung circle isn't an object: ${e}.`);let r=l.recreate(e.circle,t);if(!(0,d.isString)(e.ownerID))throw new Error(`Saved strung circle owner ID isn't a string: ${e.ownerID}.`);if(!e.ownerID)throw new Error("Saved strung circle owner ID is an empty string.");let i=t.bonds.find(t=>t.id===e.ownerID);if(!i)throw new Error(`Saved strung circle owner wasn't found in the parent drawing: ${e}.`);return new D(r,i)}}$=new WeakMap;var X,Y=function(e,t,r,i){if("a"===r&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?i:"a"===r?i.call(e):i?i.value:t.get(e)};class R extends F.StrungElement{static on(e){let t=v.create(),r=new R(t,e);return r.lineX=0,r.displacementMagnitude=0,r}constructor(e,t){super(e,t),this.owner=t,X.set(this,void 0),function(e,t,r,i,n){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===i?n.call(e,r):n?n.value=r:t.set(e,r)}(this,X,e,"f")}get width(){return Y(this,X,"f").width}set width(e){Y(this,X,"f").width=e}get height(){return Y(this,X,"f").height}set height(e){Y(this,X,"f").height=e}get cornerRadius(){return Y(this,X,"f").cornerRadius}set cornerRadius(e){Y(this,X,"f").cornerRadius=e}save(){return{rectangle:Y(this,X,"f").serialized(),ownerID:this.owner.id}}static recreate(e,t){if(!(0,d.isNonNullObject)(e))throw new Error(`Saved strung rectangle isn't an object: ${e}.`);let r=v.recreate(e.rectangle,t);if(!(0,d.isString)(e.ownerID))throw new Error(`Saved strung rectangle owner ID isn't a string: ${e.ownerID}.`);if(!e.ownerID)throw new Error("Saved strung rectangle owner ID is an empty string.");let i=t.bonds.find(t=>t.id===e.ownerID);if(!i)throw new Error(`Saved strung rectangle owner wasn't found in the parent drawing: ${e}.`);return(0,d.isFiniteNumber)(e.rotation)&&(r.domNode.dataset.rotation=`${e.rotation}`),new R(r,i)}}X=new WeakMap;var k,B=function(e,t,r,i){if("a"===r&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?i:"a"===r?i.call(e):i?i.value:t.get(e)};class _ extends F.StrungElement{static on(e){let t=j.create(),r=new _(t,e);return r.lineX=0,r.displacementMagnitude=0,r}constructor(e,t){super(e,t),this.owner=t,k.set(this,void 0),function(e,t,r,i,n){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===i?n.call(e,r):n?n.value=r:t.set(e,r)}(this,k,e,"f")}get width(){return B(this,k,"f").width}set width(e){B(this,k,"f").width=e}get height(){return B(this,k,"f").height}set height(e){B(this,k,"f").height=e}get tailsHeight(){return B(this,k,"f").tailsHeight}set tailsHeight(e){B(this,k,"f").tailsHeight=e}save(){return{triangle:B(this,k,"f").serialized(),ownerID:this.owner.id}}static recreate(e,t){if(!(0,d.isNonNullObject)(e))throw new Error(`Saved strung triangle isn't an object: ${e}.`);let r=j.recreate(e.triangle,t);if(!(0,d.isString)(e.ownerID))throw new Error(`Saved strung triangle owner ID isn't a string: ${e.ownerID}.`);if(!e.ownerID)throw new Error("Saved strung triangle owner ID is an empty string.");let i=t.bonds.find(t=>t.id===e.ownerID);if(!i)throw new Error(`Saved strung triangle owner wasn't found in the parent drawing: ${e}.`);return(0,d.isFiniteNumber)(e.rotation)&&(r.domNode.dataset.rotation=`${e.rotation}`),new _(r,i)}}k=new WeakMap;const C={recreate:(e,t)=>{if(!(0,d.isNonNullObject)(e))throw new Error(`Saved strung element isn't an object: ${e}.`);if("text"in e)return T.recreate(e,t);if("circle"in e)return D.recreate(e,t);if("rectangle"in e)return R.recreate(e,t);if("triangle"in e)return _.recreate(e,t);throw new Error(`Saved strung element doesn't have a recognized element type: ${e}.`)}}})(),i})());
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["draw.floating"]=t():e["draw.floating"]=t()}(this,()=>(()=>{var e={645(e){var t;t=()=>(()=>{var e={986(e){e.exports=(()=>{"use strict";var e={d:(t,r)=>{for(var i in r)e.o(r,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:r[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){var t=0;return e.forEach(function(e){return t+=e}),t}function i(e){return r(e)/e.length}function n(e){e.sort(function(e,t){return e-t})}e.r(t),e.d(t,{areWithin:()=>f,average:()=>i,clamp:()=>l,degrees:()=>w,flipAway:()=>v,isBetween:()=>d,isBetweenExclusive:()=>h,isBetweenInclusive:()=>d,max:()=>u,mean:()=>i,median:()=>a,min:()=>c,normalizeAngle:()=>y,radians:()=>b,round:()=>p,sortNumbers:()=>n,sortNumbersAscending:()=>n,sortNumbersDescending:()=>m,sortedNumbers:()=>s,sortedNumbersAscending:()=>s,sortedNumbersDescending:()=>g,sum:()=>r});var o=function(e,t,r){if(r||2===arguments.length)for(var i,n=0,o=t.length;n<o;n++)!i&&n in t||(i||(i=Array.prototype.slice.call(t,0,n)),i[n]=t[n]);return e.concat(i||Array.prototype.slice.call(t))};function s(e){var t=o([],e,!0);return n(t),t}function a(e){if(0==e.length)return NaN;var t=s(e);if(t.length%2!=0)return t[Math.floor(t.length/2)];var r=t.length/2,n=r-1;return i([t[r],t[n]])}function c(e){if(0==e.length)return 1/0;var t=e[0];return e.slice(1).forEach(function(e){t=Math.min(t,e)}),t}function u(e){if(0==e.length)return-1/0;var t=e[0];return e.slice(1).forEach(function(e){t=Math.max(t,e)}),t}function d(e,t,r){return e>=t&&e<=r}function h(e,t,r){return e>t&&e<r}function l(e,t,r){return e<t?t:e>r?r:e}function f(e,t,r){return Math.abs(e-t)<=r}function m(e){n(e),e.reverse()}function g(e){var t=s(e);return t.reverse(),t}function p(e,t){return Number.parseFloat(e.toFixed(null!=t?t:0))}function w(e){return e*(180/Math.PI)}function b(e){return e*(Math.PI/180)}function y(e,t){void 0===t&&(t=-Math.PI);var r=e-t;return t+((r%=2*Math.PI)>=0?r:r+2*Math.PI)}function v(e,t){var r=(t=y(t,e))-e;return(r<Math.PI/2||r>3*Math.PI/2)&&(e+=Math.PI),e}return t})()}},t={};function r(i){var n=t[i];if(void 0!==n)return n.exports;var o=t[i]={exports:{}};return e[i].call(o.exports,o,o.exports,r),o.exports}r.d=(e,t)=>{for(var i in t)r.o(t,i)&&!r.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};return(()=>{"use strict";r.r(i),r.d(i,{Box:()=>t});var e=r(986);class t{static matching(e){let{x:r,y:i,width:n,height:o}=e;return new t(r,i,n,o)}static bounding(r){let i=[...r];if(0==i.length)throw new Error("An empty collection of boxes doesn't have a bounding box.");let n=i.map(e=>t.matching(e)),o=(0,e.min)(n.map(e=>e.left)),s=(0,e.min)(n.map(e=>e.top)),a=(0,e.max)(n.map(e=>e.right))-o,c=(0,e.max)(n.map(e=>e.bottom))-s;return new t(o,s,a,c)}constructor(e,t,r,i){this.x=e,this.y=t,this.width=r,this.height=i}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}bounds(e){let r=t.matching(e);return this.minX<=r.minX&&this.minY<=r.minY&&this.maxX>=r.maxX&&this.maxY>=r.maxY}padded(...e){let r="number"==typeof e[0]?e[0]:"factor"in e[0]?e[0].factor*this.width:e[0].percentage/100*this.width,i="number"==typeof e[0]&&"number"==typeof e[1]?e[1]:"number"==typeof e[0]?e[0]:"factor"in e[0]?e[0].factor*this.height:e[0].percentage/100*this.height;return new t(this.x-r,this.y-i,this.width+2*r,this.height+2*i)}get periphery(){return{atAngle:e=>{let t=this.width/2,r=this.height/2,i=Math.pow(Math.pow(t,2)+Math.pow(r,2),.5),n=this.centerX+i*Math.cos(e),o=this.centerY+i*Math.sin(e),s=i;return Math.abs(this.centerX-n)>t&&(s=Math.abs(t/Math.cos(e)),s=Number.isFinite(s)?s:r),Math.abs(this.centerY-o)>r&&(s=Math.abs(r/Math.sin(e)),s=Number.isFinite(s)?s:t),{x:this.centerX+s*Math.cos(e),y:this.centerY+s*Math.sin(e)}}}}}})(),i})(),e.exports=t()},153(e){var t;t=()=>(()=>{var e={986(e){e.exports=(()=>{"use strict";const e={d:(t,r)=>{if(Array.isArray(r))for(var i=0;i<r.length;){var n=r[i++],o=r[i++];e.o(t,n)?0===o&&i++:0===o?Object.defineProperty(t,n,{enumerable:!0,value:r[i++]}):Object.defineProperty(t,n,{enumerable:!0,get:o})}else for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}};let t={};function r(e,t){return Math.abs(e-t)}function i(e){var t=0;return e.forEach(function(e){return t+=e}),t}function n(e){return i(e)/e.length}function o(e){e.sort(function(e,t){return e-t})}e.r(t),e.d(t,{areWithin:()=>m,average:()=>n,clamp:()=>f,degrees:()=>b,distance:()=>r,flipAway:()=>N,isBetween:()=>h,isBetweenExclusive:()=>l,isBetweenInclusive:()=>h,max:()=>d,mean:()=>n,median:()=>c,min:()=>u,normalizeAngle:()=>v,radians:()=>y,round:()=>w,sortNumbers:()=>o,sortNumbersAscending:()=>o,sortNumbersDescending:()=>g,sortedNumbers:()=>a,sortedNumbersAscending:()=>a,sortedNumbersDescending:()=>p,sum:()=>i});var s=function(e,t,r){if(r||2===arguments.length)for(var i,n=0,o=t.length;n<o;n++)!i&&n in t||(i||(i=Array.prototype.slice.call(t,0,n)),i[n]=t[n]);return e.concat(i||Array.prototype.slice.call(t))};function a(e){var t=s([],e,!0);return o(t),t}function c(e){if(0==e.length)return NaN;var t=a(e);if(t.length%2!=0)return t[Math.floor(t.length/2)];var r=t.length/2,i=r-1;return n([t[r],t[i]])}function u(e){if(0==e.length)return 1/0;var t=e[0];return e.slice(1).forEach(function(e){t=Math.min(t,e)}),t}function d(e){if(0==e.length)return-1/0;var t=e[0];return e.slice(1).forEach(function(e){t=Math.max(t,e)}),t}function h(e,t,r){return e>=t&&e<=r}function l(e,t,r){return e>t&&e<r}function f(e,t,r){return e<t?t:e>r?r:e}function m(e,t,r){return Math.abs(e-t)<=r}function g(e){o(e),e.reverse()}function p(e){var t=a(e);return t.reverse(),t}function w(e,t){return Number.parseFloat(e.toFixed(null!=t?t:0))}function b(e){return e*(180/Math.PI)}function y(e){return e*(Math.PI/180)}function v(e,t){void 0===t&&(t=-Math.PI);var r=e-t;return t+((r%=2*Math.PI)>=0?r:r+2*Math.PI)}function N(e,t){var r=(t=v(t,e))-e;return(r<Math.PI/2||r>3*Math.PI/2)&&(e+=Math.PI),e}return t})()},725(e){e.exports=(()=>{var e={986:function(e){e.exports=(()=>{"use strict";var e={d:(t,r)=>{for(var i in r)e.o(r,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:r[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){var t=0;return e.forEach(function(e){return t+=e}),t}function i(e){return r(e)/e.length}function n(e){e.sort(function(e,t){return e-t})}e.r(t),e.d(t,{areWithin:()=>l,average:()=>i,degrees:()=>g,isBetweenExclusive:()=>h,isBetweenInclusive:()=>d,max:()=>u,mean:()=>i,median:()=>a,min:()=>c,radians:()=>p,sortNumbers:()=>n,sortNumbersAscending:()=>n,sortNumbersDescending:()=>f,sortedNumbers:()=>s,sortedNumbersAscending:()=>s,sortedNumbersDescending:()=>m,sum:()=>r});var o=function(e,t,r){if(r||2===arguments.length)for(var i,n=0,o=t.length;n<o;n++)!i&&n in t||(i||(i=Array.prototype.slice.call(t,0,n)),i[n]=t[n]);return e.concat(i||Array.prototype.slice.call(t))};function s(e){var t=o([],e,!0);return n(t),t}function a(e){if(0==e.length)return NaN;var t=s(e);if(t.length%2!=0)return t[Math.floor(t.length/2)];var r=t.length/2,n=r-1;return i([t[r],t[n]])}function c(e){if(0==e.length)return 1/0;var t=e[0];return e.slice(1).forEach(function(e){t=Math.min(t,e)}),t}function u(e){if(0==e.length)return-1/0;var t=e[0];return e.slice(1).forEach(function(e){t=Math.max(t,e)}),t}function d(e,t,r){return e>=t&&e<=r}function h(e,t,r){return e>t&&e<r}function l(e,t,r){return Math.abs(e-t)<=r}function f(e){n(e),e.reverse()}function m(e){var t=s(e);return t.reverse(),t}function g(e){return e*(180/Math.PI)}function p(e){return e*(Math.PI/180)}return t})()},854:function(e){e.exports=(()=>{"use strict";var e={d:(t,r)=>{for(var i in r)e.o(r,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:r[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){return"number"==typeof e}function i(e){return r(e)&&Number.isFinite(e)}function n(e){return r(e)&&!Number.isFinite(e)}function o(e){return i(e)&&e>0}function s(e){return i(e)&&e>=0}function a(e){return"string"==typeof e}function c(e){return null==e}function u(e){return"object"==typeof e&&null!==e}function d(e){return Array.isArray(e)}return e.r(t),e.d(t,{isArray:()=>d,isFiniteNumber:()=>i,isNonFiniteNumber:()=>n,isNonNegativeFiniteNumber:()=>s,isNonNullObject:()=>u,isNullish:()=>c,isNumber:()=>r,isPositiveFiniteNumber:()=>o,isString:()=>a}),t})()},30:function(e){e.exports=(()=>{"use strict";var e={d:(t,r)=>{for(var i in r)e.o(r,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:r[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){return Math.pow(Math.pow(e.x,2)+Math.pow(e.y,2),.5)}function i(e){return Math.atan2(e.y,e.x)}return e.r(t),e.d(t,{direction:()=>i,magnitude:()=>r}),t})()}},t={};function r(i){var n=t[i];if(void 0!==n)return n.exports;var o=t[i]={exports:{}};return e[i].call(o.exports,o,o.exports,r),o.exports}r.d=(e,t)=>{for(var i in t)r.o(t,i)&&!r.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};return(()=>{"use strict";r.r(i),r.d(i,{areWithin:()=>a,centroid:()=>f,deepCopy:()=>o,direction:()=>h,displaced:()=>u,displacement:()=>c,distance:()=>s,isFinitePoint:()=>n,isPoint:()=>t,midpoint:()=>m});var e=r(854);function t(t){return(0,e.isNonNullObject)(t)&&(0,e.isNumber)(t.x)&&(0,e.isNumber)(t.y)}function n(r){return t(r)&&(0,e.isFiniteNumber)(r.x)&&(0,e.isFiniteNumber)(r.y)}function o(e){return{x:e.x,y:e.y}}function s(e,t){var r=t.x-e.x,i=t.y-e.y;return Math.pow(Math.pow(r,2)+Math.pow(i,2),.5)}function a(e,t,r){return s(e,t)<=r}function c(e,t){return{x:t.x-e.x,y:t.y-e.y}}function u(e,t){return{x:e.x+t.x,y:e.y+t.y}}var d=r(30);function h(e,t){return(0,d.direction)(c(e,t))}var l=r(986);function f(e){return{x:(0,l.mean)(e.map(function(e){return e.x})),y:(0,l.mean)(e.map(function(e){return e.y}))}}function m(e,t){return f([e,t])}})(),i})()}};const t={};function r(i){const n=t[i];if(void 0!==n)return n.exports;const o=t[i]={exports:{}};return e[i].call(o.exports,o,o.exports,r),o.exports}r.d=(e,t)=>{for(var i in t)r.o(t,i)&&!r.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};let i={};return(()=>{"use strict";r.r(i),r.d(i,{StrungElement:()=>l});var e=r(725),t=r(986);const n=r=>({closestLength(i){let n=0,o=r.length;for(let s=0;s<15;s++)(0,e.distance)(i,r.atLength(n))<(0,e.distance)(i,r.atLength(o))?o=(0,t.average)([n,o]):n=(0,t.average)([n,o]);return(0,t.average)([n,o])}});var o,s,a,c,u,d,h=function(e,t,r,i){if("a"===r&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?i:"a"===r?i.call(e):i?i.value:t.get(e)};class l{constructor(e,t){o.add(this),this.owner=t,s.set(this,void 0),function(e,t,r){if("function"==typeof t||!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");t.set(e,r)}(this,s,e),e.domNode.dataset.lineX||h(this,o,"m",a).call(this),e.domNode.dataset.displacementMagnitude&&e.domNode.dataset.displacementDirection||h(this,o,"m",c).call(this),t.addEventListener("change",()=>h(this,o,"m",d).call(this))}get domNode(){return h(this,s,"f").domNode}get rotation(){let e;return e=h(this,s,"f").domNode.dataset.rotation?Number.parseFloat(h(this,s,"f").domNode.dataset.rotation):0,Number.isFinite(e)||(e=0),e}set rotation(e){Number.isFinite(e)?(h(this,s,"f").domNode.dataset.rotation=`${e}`,h(this,o,"m",d).call(this)):console.error(`The specified rotation is nonfinite: ${e}.`)}get lineX(){let e;return e=h(this,s,"f").domNode.dataset.lineX?Number.parseFloat(h(this,s,"f").domNode.dataset.lineX):0,Number.isFinite(e)||(e=0),e}set lineX(e){Number.isFinite(e)?(e<-this.owner.length/2?e=-this.owner.length/2:e>this.owner.length/2&&(e=this.owner.length/2),h(this,s,"f").domNode.dataset.lineX=`${e}`,h(this,o,"m",d).call(this)):console.error(`The specified line X coordinate is nonfinite: ${e}.`)}get displacementMagnitude(){let e;return e=h(this,s,"f").domNode.dataset.displacementMagnitude?Number.parseFloat(h(this,s,"f").domNode.dataset.displacementMagnitude):0,Number.isFinite(e)||(e=0),e}set displacementMagnitude(e){Number.isFinite(e)?(h(this,s,"f").domNode.dataset.displacementMagnitude=`${e}`,h(this,o,"m",d).call(this)):console.error(`The specified displacement magnitude is nonfinite: ${e}.`)}get displacementDirection(){let e;return e=h(this,s,"f").domNode.dataset.displacementDirection?Number.parseFloat(h(this,s,"f").domNode.dataset.displacementDirection):0,Number.isFinite(e)||(e=0),e}set displacementDirection(e){Number.isFinite(e)?(h(this,s,"f").domNode.dataset.displacementDirection=`${e}`,h(this,o,"m",d).call(this)):console.error(`The specified displacement direction is nonfinite: ${e}.`)}get displacementX(){return this.displacementMagnitude*Math.cos(this.displacementDirection)}set displacementX(e){if(!Number.isFinite(e))return void console.error(`The specified displacement X component is nonfinite: ${e}.`);let t=this.displacementY;this.displacementMagnitude=Math.pow(Math.pow(e,2)+Math.pow(t,2),.5),this.displacementDirection=Math.atan2(t,e)}get displacementY(){return this.displacementMagnitude*Math.sin(this.displacementDirection)}set displacementY(e){if(!Number.isFinite(e))return void console.error(`The specified displacement Y component is nonfinite: ${e}.`);let t=this.displacementX;this.displacementMagnitude=Math.pow(Math.pow(t,2)+Math.pow(e,2),.5),this.displacementDirection=Math.atan2(e,t)}drag(e,t,r){var i;if(!Number.isFinite(e))return void console.error(`The specified drag X value is nonfinite: ${e}.`);if(!Number.isFinite(t))return void console.error(`The specified drag Y value is nonfinite: ${t}.`);if(null===(i=null==r?void 0:r.dragGroup)||void 0===i?void 0:i.has(this.owner))return;let n=Math.pow(Math.pow(e,2)+Math.pow(t,2),.5),s=Math.atan2(t,e),a=h(this,o,"a",u);this.displacementX+=n*Math.cos(s-a.direction),this.displacementY+=n*Math.sin(s-a.direction)}}s=new WeakMap,o=new WeakSet,a=function(){let e={x:h(this,s,"f").centerX,y:h(this,s,"f").centerY},t=this.owner.length/2;h(this,s,"f").domNode.dataset.lineX=""+(n(this.owner).closestLength(e)-t)},c=function(){let t=h(this,o,"a",u),r={x:h(this,s,"f").centerX,y:h(this,s,"f").centerY};h(this,s,"f").domNode.dataset.displacementMagnitude=`${(0,e.distance)(t,r)}`,h(this,s,"f").domNode.dataset.displacementDirection=""+((0,e.direction)(t,r)-t.direction)},u=function(){let e=this.owner.length/2;return this.owner.atLength(e+this.lineX)},d=function(){let e=h(this,o,"a",u);h(this,s,"f").centerX=e.x+this.displacementMagnitude*Math.cos(this.displacementDirection+e.direction),h(this,s,"f").centerY=e.y+this.displacementMagnitude*Math.sin(this.displacementDirection+e.direction),"direction"in h(this,s,"f")&&(h(this,s,"f").direction=e.direction+this.rotation)}})(),i})(),e.exports=t()},731(e){var t;t=()=>(()=>{"use strict";var e={d:(t,r)=>{for(var i in r)e.o(r,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:r[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{CenterPoint:()=>u});var r,i,n,o,s,a=function(e,t,r,i,n){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?n.call(e,r):n?n.value=r:t.set(e,r),r},c=function(e,t,r,i){if("a"===r&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?i:"a"===r?i.call(e):i?i.value:t.get(e)};class u{constructor(e){r.add(this),i.set(this,void 0),n.set(this,{move:[]}),o.set(this,void 0),a(this,i,e,"f"),a(this,o,new MutationObserver(()=>c(this,r,"m",s).call(this,"move")),"f"),c(this,o,"f").observe(e,{attributes:!0,childList:!0,characterData:!0,subtree:!0})}get x(){let e=c(this,i,"f").getBBox();return e.x+e.width/2}set x(e){let t=this.x,r=[...c(this,i,"f").x.baseVal].map(e=>e.value);0!=r.length||r.push(0),r=r.map(r=>r+(e-t)),c(this,i,"f").setAttribute("x",r.join(", "))}get y(){let e=c(this,i,"f").getBBox();return e.y+e.height/2}set y(e){let t=this.y,r=[...c(this,i,"f").y.baseVal].map(e=>e.value);0!=r.length||r.push(0),r=r.map(r=>r+(e-t)),c(this,i,"f").setAttribute("y",r.join(", "))}addEventListener(e,t){c(this,n,"f")[e].push(t)}removeEventListener(e,t){c(this,n,"f")[e]=c(this,n,"f")[e].filter(e=>e!==t)}}return i=new WeakMap,n=new WeakMap,o=new WeakMap,r=new WeakSet,s=function(e){c(this,n,"f")[e].forEach(e=>e())},t})(),e.exports=t()},456(e){var t;t=()=>(()=>{var e={986(e){e.exports=(()=>{"use strict";var e={d:(t,r)=>{for(var i in r)e.o(r,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:r[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){var t=0;return e.forEach(function(e){return t+=e}),t}function i(e){return r(e)/e.length}function n(e){e.sort(function(e,t){return e-t})}e.r(t),e.d(t,{areWithin:()=>f,average:()=>i,clamp:()=>l,degrees:()=>w,flipAway:()=>v,isBetween:()=>d,isBetweenExclusive:()=>h,isBetweenInclusive:()=>d,max:()=>u,mean:()=>i,median:()=>a,min:()=>c,normalizeAngle:()=>y,radians:()=>b,round:()=>p,sortNumbers:()=>n,sortNumbersAscending:()=>n,sortNumbersDescending:()=>m,sortedNumbers:()=>s,sortedNumbersAscending:()=>s,sortedNumbersDescending:()=>g,sum:()=>r});var o=function(e,t,r){if(r||2===arguments.length)for(var i,n=0,o=t.length;n<o;n++)!i&&n in t||(i||(i=Array.prototype.slice.call(t,0,n)),i[n]=t[n]);return e.concat(i||Array.prototype.slice.call(t))};function s(e){var t=o([],e,!0);return n(t),t}function a(e){if(0==e.length)return NaN;var t=s(e);if(t.length%2!=0)return t[Math.floor(t.length/2)];var r=t.length/2,n=r-1;return i([t[r],t[n]])}function c(e){if(0==e.length)return 1/0;var t=e[0];return e.slice(1).forEach(function(e){t=Math.min(t,e)}),t}function u(e){if(0==e.length)return-1/0;var t=e[0];return e.slice(1).forEach(function(e){t=Math.max(t,e)}),t}function d(e,t,r){return e>=t&&e<=r}function h(e,t,r){return e>t&&e<r}function l(e,t,r){return e<t?t:e>r?r:e}function f(e,t,r){return Math.abs(e-t)<=r}function m(e){n(e),e.reverse()}function g(e){var t=s(e);return t.reverse(),t}function p(e,t){return Number.parseFloat(e.toFixed(null!=t?t:0))}function w(e){return e*(180/Math.PI)}function b(e){return e*(Math.PI/180)}function y(e,t){void 0===t&&(t=-Math.PI);var r=e-t;return t+((r%=2*Math.PI)>=0?r:r+2*Math.PI)}function v(e,t){var r=(t=y(t,e))-e;return(r<Math.PI/2||r>3*Math.PI/2)&&(e+=Math.PI),e}return t})()},854(e){e.exports=(()=>{"use strict";var e={d:(t,r)=>{for(var i in r)e.o(r,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:r[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){return"number"==typeof e}function i(e){return r(e)&&Number.isFinite(e)}function n(e){return r(e)&&!Number.isFinite(e)}function o(e){return i(e)&&e>0}function s(e){return i(e)&&e>=0}function a(e){return"string"==typeof e}function c(e){return""===e}function u(e){return a(e)&&!c(e)}function d(e){return!!a(e)&&0==e.trim().length}function h(e){if(!a(e))return!1;try{return JSON.parse(e),!0}catch{return!1}}function l(e){try{return JSON.stringify(e),!0}catch{return!1}}function f(e){return!!e}function m(e){return!e}function g(e){return null==e}function p(e){return"object"==typeof e&&null!==e}function w(e){return Array.isArray(e)}function b(e){return w(e)&&0==e.length}function y(e){return w(e)&&e.length>0}function v(e){return w(e)&&e.every(r)}function N(e){return v(e)&&e.length>0}function x(e){return w(e)&&e.every(i)}function S(e){return w(e)&&e.every(n)}function M(e){return w(e)&&e.every(a)}function P(e){return M(e)&&e.length>0}function E(e){return e instanceof SVGGraphicsElement}return e.r(t),e.d(t,{isArray:()=>w,isEmptyArray:()=>b,isEmptyString:()=>c,isFalsy:()=>m,isFiniteNumber:()=>i,isFiniteNumbersArray:()=>x,isJSON:()=>h,isJSONSerializable:()=>l,isNonEmptyArray:()=>y,isNonEmptyNumbersArray:()=>N,isNonEmptyString:()=>u,isNonEmptyStringsArray:()=>P,isNonFiniteNumber:()=>n,isNonFiniteNumbersArray:()=>S,isNonNegativeFiniteNumber:()=>s,isNonNullObject:()=>p,isNullish:()=>g,isNumber:()=>r,isNumbersArray:()=>v,isPositiveFiniteNumber:()=>o,isSVGGraphicsElement:()=>E,isString:()=>a,isStringsArray:()=>M,isTruthy:()=>f,isWhitespace:()=>d}),t})()},277(e){var t;t=()=>(()=>{var e={854(e){e.exports=(()=>{"use strict";var e={d:(t,r)=>{for(var i in r)e.o(r,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:r[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){return"number"==typeof e}function i(e){return r(e)&&Number.isFinite(e)}function n(e){return r(e)&&!Number.isFinite(e)}function o(e){return i(e)&&e>0}function s(e){return i(e)&&e>=0}function a(e){return"string"==typeof e}function c(e){return""===e}function u(e){return a(e)&&!c(e)}function d(e){return!!a(e)&&0==e.trim().length}function h(e){if(!a(e))return!1;try{return JSON.parse(e),!0}catch{return!1}}function l(e){try{return JSON.stringify(e),!0}catch{return!1}}function f(e){return!!e}function m(e){return!e}function g(e){return null==e}function p(e){return"object"==typeof e&&null!==e}function w(e){return Array.isArray(e)}function b(e){return w(e)&&0==e.length}function y(e){return w(e)&&e.length>0}function v(e){return w(e)&&e.every(r)}function N(e){return v(e)&&e.length>0}function x(e){return w(e)&&e.every(i)}function S(e){return w(e)&&e.every(n)}function M(e){return w(e)&&e.every(a)}function P(e){return M(e)&&e.length>0}function E(e){return e instanceof SVGGraphicsElement}return e.r(t),e.d(t,{isArray:()=>w,isEmptyArray:()=>b,isEmptyString:()=>c,isFalsy:()=>m,isFiniteNumber:()=>i,isFiniteNumbersArray:()=>x,isJSON:()=>h,isJSONSerializable:()=>l,isNonEmptyArray:()=>y,isNonEmptyNumbersArray:()=>N,isNonEmptyString:()=>u,isNonEmptyStringsArray:()=>P,isNonFiniteNumber:()=>n,isNonFiniteNumbersArray:()=>S,isNonNegativeFiniteNumber:()=>s,isNonNullObject:()=>p,isNullish:()=>g,isNumber:()=>r,isNumbersArray:()=>v,isPositiveFiniteNumber:()=>o,isSVGGraphicsElement:()=>E,isString:()=>a,isStringsArray:()=>M,isTruthy:()=>f,isWhitespace:()=>d}),t})()}},t={};function r(i){var n=t[i];if(void 0!==n)return n.exports;var o=t[i]={exports:{}};return e[i].call(o.exports,o,o.exports,r),o.exports}r.d=(e,t)=>{for(var i in t)r.o(t,i)&&!r.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};return(()=>{"use strict";r.r(i),r.d(i,{Vector:()=>t,isFiniteVectorLike:()=>o,isVectorLike:()=>n});var e=r(854);class t{static matching(e){let r="x"in e?e.x:e.magnitude*Math.cos(e.direction),i="y"in e?e.y:e.magnitude*Math.sin(e.direction);return new t(r,i)}constructor(e,t){this.x=e,this.y=t}[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(e){let t=this.direction;this.x=e*Math.cos(t),this.y=e*Math.sin(t)}get direction(){return Math.atan2(this.y,this.x)}set direction(e){let t=this.magnitude;this.x=t*Math.cos(e),this.y=t*Math.sin(e)}isFinite(){return(0,e.isFiniteNumber)(this.x)&&(0,e.isFiniteNumber)(this.y)}}function n(t){return!(!(0,e.isNonNullObject)(t)||!((0,e.isNumber)(t.x)&&(0,e.isNumber)(t.y)||(0,e.isNumber)(t.magnitude)&&(0,e.isNumber)(t.direction)))}function o(e){return!!n(e)&&t.matching(e).isFinite()}})(),i})(),e.exports=t()}};const t={};function r(i){const n=t[i];if(void 0!==n)return n.exports;const o=t[i]={exports:{}};return e[i].call(o.exports,o,o.exports,r),o.exports}r.d=(e,t)=>{if(Array.isArray(t))for(var i=0;i<t.length;){var n=t[i++],o=t[i++];r.o(e,n)?0===o&&i++:0===o?Object.defineProperty(e,n,{enumerable:!0,value:t[i++]}):Object.defineProperty(e,n,{enumerable:!0,get:o})}else for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};let i={};return(()=>{"use strict";r.r(i),r.d(i,{FinitePoint:()=>o,Point:()=>n,RelativePoint:()=>l,midpoint:()=>m});var e=r(277),t=r(854);class n{static matching(e){return new n(e.x,e.y)}constructor(e,t){this.x=e,this.y=t}[Symbol.iterator](){return[this.x,this.y].values()}set(e){(0,t.isNumber)(null==e?void 0:e.x)&&(this.x=e.x),(0,t.isNumber)(null==e?void 0:e.y)&&(this.y=e.y)}drag(e,t){this.displace({x:e,y:t})}displace(t){let r=e.Vector.matching(t);this.x+=r.x,this.y+=r.y}displaced(e){let t=n.matching(this);return t.displace(e),t}displacementTo(t){return new e.Vector(t.x-this.x,t.y-this.y)}displacementFrom(t){return new e.Vector(this.x-t.x,this.y-t.y)}distanceTo(e){return this.displacementTo(e).magnitude}distanceFrom(e){return this.distanceTo(e)}directionTo(e){return this.displacementTo(e).direction}directionFrom(e){return this.displacementFrom(e).direction}deepCopy(){return new n(this.x,this.y)}}class o extends n{static matching(e){let t=n.matching(e);return new o(t.x,t.y)}constructor(e,r){if(super(e,r),!(0,t.isFiniteNumber)(e)||!(0,t.isFiniteNumber)(r))throw new Error(`Finite points must have finite number coordinates: (${e}, ${r}).`)}set(...e){let t=new n(0,0);t.set(...e),o.matching(t),super.set(...e)}}var s,a,c,u,d,h=function(e,t,r,i){if("a"===r&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?i:"a"===r?i.call(e):i?i.value:t.get(e)};class l{constructor(t){s.add(this),a.set(this,void 0),c.set(this,new e.Vector(0,0)),u.set(this,{move:[]}),function(e,t,r){if("function"==typeof t||!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");t.set(e,r)}(this,a,t),t.addEventListener("move",()=>h(this,s,"m",d).call(this,"move"))}get x(){return h(this,a,"f").x+h(this,c,"f").x}set x(e){h(this,c,"f").x=e-h(this,a,"f").x,h(this,s,"m",d).call(this,"move")}get y(){return h(this,a,"f").y+h(this,c,"f").y}set y(e){h(this,c,"f").y=e-h(this,a,"f").y,h(this,s,"m",d).call(this,"move")}addEventListener(e,t){h(this,u,"f")[e].push(t)}removeEventListener(e,t){h(this,u,"f")[e]=h(this,u,"f")[e].filter(e=>e!==t)}}a=new WeakMap,c=new WeakMap,u=new WeakMap,s=new WeakSet,d=function(e){h(this,u,"f")[e].forEach(e=>e())};var f=r(986);function m(e,t){return new n((0,f.average)([e.x,t.x]),(0,f.average)([e.y,t.y]))}})(),i})(),e.exports=t()},854(e){e.exports=(()=>{"use strict";var e={d:(t,r)=>{for(var i in r)e.o(r,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:r[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){return"number"==typeof e}function i(e){return r(e)&&Number.isFinite(e)}function n(e){return r(e)&&!Number.isFinite(e)}function o(e){return i(e)&&e>0}function s(e){return i(e)&&e>=0}function a(e){return"string"==typeof e}function c(e){return""===e}function u(e){return a(e)&&!c(e)}function d(e){return!!a(e)&&0==e.trim().length}function h(e){if(!a(e))return!1;try{return JSON.parse(e),!0}catch{return!1}}function l(e){try{return JSON.stringify(e),!0}catch{return!1}}function f(e){return!!e}function m(e){return!e}function g(e){return null==e}function p(e){return"object"==typeof e&&null!==e}function w(e){return Array.isArray(e)}function b(e){return w(e)&&0==e.length}function y(e){return w(e)&&e.length>0}function v(e){return w(e)&&e.every(r)}function N(e){return v(e)&&e.length>0}function x(e){return w(e)&&e.every(i)}function S(e){return w(e)&&e.every(n)}function M(e){return w(e)&&e.every(a)}function P(e){return M(e)&&e.length>0}function E(e){return e instanceof SVGGraphicsElement}return e.r(t),e.d(t,{isArray:()=>w,isEmptyArray:()=>b,isEmptyString:()=>c,isFalsy:()=>m,isFiniteNumber:()=>i,isFiniteNumbersArray:()=>x,isJSON:()=>h,isJSONSerializable:()=>l,isNonEmptyArray:()=>y,isNonEmptyNumbersArray:()=>N,isNonEmptyString:()=>u,isNonEmptyStringsArray:()=>P,isNonFiniteNumber:()=>n,isNonFiniteNumbersArray:()=>S,isNonNegativeFiniteNumber:()=>s,isNonNullObject:()=>p,isNullish:()=>g,isNumber:()=>r,isNumbersArray:()=>v,isPositiveFiniteNumber:()=>o,isSVGGraphicsElement:()=>E,isString:()=>a,isStringsArray:()=>M,isTruthy:()=>f,isWhitespace:()=>d}),t})()}};const t={};function r(i){const n=t[i];if(void 0!==n)return n.exports;const o=t[i]={exports:{}};return e[i].call(o.exports,o,o.exports,r),o.exports}r.d=(e,t)=>{for(var i in t)r.o(t,i)&&!r.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};let i={};return(()=>{"use strict";r.r(i),r.d(i,{Circle:()=>l,Rectangle:()=>v,StrungCircle:()=>D,StrungElement:()=>C,StrungRectangle:()=>R,StrungText:()=>T,StrungTriangle:()=>_,Text:()=>h,Triangle:()=>j});const e={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};let t;const n=new Uint8Array(16),o=[];for(let e=0;e<256;++e)o.push((e+256).toString(16).slice(1));function s(e,r,i){const s=(e=e||{}).random??e.rng?.()??function(){if(!t){if("undefined"==typeof crypto||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");t=crypto.getRandomValues.bind(crypto)}return t(n)}();if(s.length<16)throw new Error("Random bytes length must be >= 16");if(s[6]=15&s[6]|64,s[8]=63&s[8]|128,r){if((i=i||0)<0||i+16>r.length)throw new RangeError(`UUID byte range ${i}:${i+15} is out of buffer bounds`);for(let e=0;e<16;++e)r[i+e]=s[e];return r}return function(e,t=0){return(o[e[t+0]]+o[e[t+1]]+o[e[t+2]]+o[e[t+3]]+"-"+o[e[t+4]]+o[e[t+5]]+"-"+o[e[t+6]]+o[e[t+7]]+"-"+o[e[t+8]]+o[e[t+9]]+"-"+o[e[t+10]]+o[e[t+11]]+o[e[t+12]]+o[e[t+13]]+o[e[t+14]]+o[e[t+15]]).toLowerCase()}(s)}const a=function(t,r,i){return!e.randomUUID||r||t?s(t,r,i):e.randomUUID()};var c=r(645),u=r(731),d=r(854);class h{static create(e){let t=document.createElementNS("http://www.w3.org/2000/svg","text");return t.id="id-"+a(),t.textContent=null!=e?e:"",t.setAttribute("font-family","Arial"),t.setAttribute("font-size","9"),t.setAttribute("font-weight","700"),t.setAttribute("font-style","normal"),t.setAttribute("fill","black"),t.setAttribute("fill-opacity","1"),new h(t)}constructor(e){this.domNode=e}get id(){return this.domNode.id}get bbox(){return c.Box.matching(this.domNode.getBBox())}get centerX(){return this.bbox.centerX}set centerX(e){new u.CenterPoint(this.domNode).x=e}get centerY(){return this.bbox.centerY}set centerY(e){new u.CenterPoint(this.domNode).y=e}drag(e,t){this.centerX+=e,this.centerY+=t}serialized(){if(!this.id)throw new Error("Text element ID is falsy.");return{id:this.id}}static recreate(e,t){if(!(0,d.isNonNullObject)(e))throw new Error(`Saved text element is not an object: ${e}.`);if(!e.id)throw new Error("Saved text element ID is falsy.");if(!(0,d.isString)(e.id))throw new Error(`Saved text element ID is not a string: ${e.id}.`);let r=t.domNode.querySelector("#"+e.id);if(!r)throw new Error("Unable to find text element DOM node in parent drawing by ID.");if(!(r instanceof SVGTextElement))throw new Error(`Text element DOM node is not an SVG text element: ${r}.`);return new h(r)}}class l{static create(){let e=document.createElementNS("http://www.w3.org/2000/svg","circle");return e.id="id-"+a(),e.setAttribute("r","6"),e.setAttribute("stroke","black"),e.setAttribute("stroke-width","1"),e.setAttribute("stroke-opacity","1"),e.setAttribute("stroke-dasharray",""),e.setAttribute("stroke-linecap",""),e.setAttribute("fill","white"),e.setAttribute("fill-opacity","1"),new l(e)}constructor(e){this.domNode=e}get id(){return this.domNode.id}get centerX(){return this.domNode.cx.baseVal.value}set centerX(e){this.domNode.setAttribute("cx",`${e}`)}get centerY(){return this.domNode.cy.baseVal.value}set centerY(e){this.domNode.setAttribute("cy",`${e}`)}drag(e,t){this.centerX+=e,this.centerY+=t}serialized(){if(!this.id)throw new Error("Circle ID is falsy.");return{id:this.id}}static recreate(e,t){if(!(0,d.isNonNullObject)(e))throw new Error(`Saved circle must be an object: ${e}.`);if(!e.id)throw new Error("Saved circle ID is falsy.");if(!(0,d.isString)(e.id))throw new Error(`Saved circle ID must be a string: ${e.id}.`);let r=t.domNode.querySelector("#"+e.id);if(!r)throw new Error("Unable to find circle element DOM node by ID.");if(!(r instanceof SVGCircleElement))throw new Error(`Circle element DOM node is not an SVG circle element: ${r}.`);return new l(r)}}var f=r(456);class m{constructor(){this.centerX=0,this.centerY=0,this.direction=-Math.PI/2,this.width=0,this.height=0,this.cornerRadius=0}static matching(e){let t=new m;return t.centerX=e.centerX,t.centerY=e.centerY,t.direction=e.direction,t.width=e.width,t.height=e.height,t.cornerRadius=e.cornerRadius,t}toString(){let e=new f.Point(this.centerX,this.centerY);e.displace({magnitude:this.height/2,direction:this.direction}),e.displace({magnitude:this.width/2-this.cornerRadius,direction:this.direction+Math.PI/2});let t=`M ${e.x} ${e.y}`;return e.displace({magnitude:Math.SQRT2*this.cornerRadius,direction:this.direction+3*Math.PI/4}),t+=` A ${this.cornerRadius} ${this.cornerRadius} 90 0 1 ${e.x} ${e.y}`,e.displace({magnitude:this.height-2*this.cornerRadius,direction:this.direction+Math.PI}),t+=` L ${e.x} ${e.y}`,e.displace({magnitude:Math.SQRT2*this.cornerRadius,direction:this.direction+5*Math.PI/4}),t+=` A ${this.cornerRadius} ${this.cornerRadius} 90 0 1 ${e.x} ${e.y}`,e.displace({magnitude:this.width-2*this.cornerRadius,direction:this.direction+3*Math.PI/2}),t+=` L ${e.x} ${e.y}`,e.displace({magnitude:Math.SQRT2*this.cornerRadius,direction:this.direction+7*Math.PI/4}),t+=` A ${this.cornerRadius} ${this.cornerRadius} 90 0 1 ${e.x} ${e.y}`,e.displace({magnitude:this.height-2*this.cornerRadius,direction:this.direction}),t+=` L ${e.x} ${e.y}`,e.displace({magnitude:Math.SQRT2*this.cornerRadius,direction:this.direction+9*Math.PI/4}),t+=` A ${this.cornerRadius} ${this.cornerRadius} 90 0 1 ${e.x} ${e.y}`,t+=" Z",t}}var g,p,w,b,y=function(e,t,r,i){if("a"===r&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?i:"a"===r?i.call(e):i?i.value:t.get(e)};class v{static create(){let e=document.createElementNS("http://www.w3.org/2000/svg","path");e.id="id-"+a();let t=new v(e);return t.centerX=0,t.centerY=0,t.direction=-Math.PI/2,t.width=5.5,t.height=5.5,t.cornerRadius=0,t.domNode.setAttribute("stroke","black"),t.domNode.setAttribute("stroke-width","1"),t.domNode.setAttribute("stroke-opacity","1"),t.domNode.setAttribute("stroke-linejoin",""),t.domNode.setAttribute("stroke-dasharray",""),t.domNode.setAttribute("stroke-linecap",""),t.domNode.setAttribute("fill","white"),t.domNode.setAttribute("fill-opacity","1"),t}constructor(e){g.add(this),this.domNode=e,e.dataset.centerX||y(this,g,"m",p).call(this),e.dataset.centerY||y(this,g,"m",w).call(this)}get id(){return this.domNode.id}get centerX(){var e;let t=Number.parseFloat(null!==(e=this.domNode.dataset.centerX)&&void 0!==e?e:"");return Number.isFinite(t)?t:0}set centerX(e){Number.isFinite(e)?(this.domNode.dataset.centerX=`${e}`,y(this,g,"m",b).call(this)):console.error(`The specified center X coordinate is nonfinite: ${e}.`)}get centerY(){var e;let t=Number.parseFloat(null!==(e=this.domNode.dataset.centerY)&&void 0!==e?e:"");return Number.isFinite(t)?t:0}set centerY(e){Number.isFinite(e)?(this.domNode.dataset.centerY=`${e}`,y(this,g,"m",b).call(this)):console.error(`The specified center Y coordinate is nonfinite: ${e}.`)}drag(e,t){this.centerX+=e,this.centerY+=t}get direction(){var e;let t=Number.parseFloat(null!==(e=this.domNode.dataset.direction)&&void 0!==e?e:"");return Number.isFinite(t)?t:0}set direction(e){Number.isFinite(e)?(this.domNode.dataset.direction=`${e}`,y(this,g,"m",b).call(this)):console.error(`The specified direction angle is nonfinite: ${e}.`)}get width(){var e;let t=Number.parseFloat(null!==(e=this.domNode.dataset.width)&&void 0!==e?e:"");return Number.isFinite(t)?t:0}set width(e){Number.isFinite(e)?(this.domNode.dataset.width=`${e}`,y(this,g,"m",b).call(this)):console.error(`The specified width is nonfinite: ${e}.`)}get height(){var e;let t=Number.parseFloat(null!==(e=this.domNode.dataset.height)&&void 0!==e?e:"");return Number.isFinite(t)?t:0}set height(e){Number.isFinite(e)?(this.domNode.dataset.height=`${e}`,y(this,g,"m",b).call(this)):console.error(`The specified height is nonfinite: ${e}.`)}get cornerRadius(){var e;let t=Number.parseFloat(null!==(e=this.domNode.dataset.cornerRadius)&&void 0!==e?e:"");return Number.isFinite(t)?t:0}set cornerRadius(e){Number.isFinite(e)?(this.domNode.dataset.cornerRadius=`${e}`,y(this,g,"m",b).call(this)):console.error(`The specified corner radius is nonfinite: ${e}.`)}get bbox(){return c.Box.matching(this.domNode.getBBox())}serialized(){if(!this.id)throw new Error("Rectangle ID is falsy.");return{id:this.id}}static recreate(e,t){if(!(0,d.isNonNullObject)(e))throw new Error(`Saved rectangle is not an object: ${e}.`);if(!e.id)throw new Error("Saved rectangle ID is falsy.");if(!(0,d.isString)(e.id))throw new Error(`Saved rectangle ID is not a string: ${e.id}.`);let r=t.domNode.querySelector("#"+e.id);if(!r)throw new Error("Unable to find saved rectangle DOM node in parent drawing by ID.");if(!(r instanceof SVGPathElement))throw new Error(`DOM node found for saved rectangle is not an SVG path element: ${r}.`);let i=new v(r);return(0,d.isFiniteNumber)(e.width)&&(i.width=e.width),(0,d.isFiniteNumber)(e.height)&&(i.height=e.height),(0,d.isFiniteNumber)(e.borderRadius)&&(i.cornerRadius=e.borderRadius),i}}g=new WeakSet,p=function(){let e=c.Box.matching(this.domNode.getBBox());this.domNode.dataset.centerX=`${e.centerX}`},w=function(){let e=c.Box.matching(this.domNode.getBBox());this.domNode.dataset.centerY=`${e.centerY}`},b=function(){let e=new m;e.centerX=this.centerX,e.centerY=this.centerY,e.direction=this.direction,e.width=this.width,e.height=this.height,e.cornerRadius=this.cornerRadius,this.domNode.setAttribute("d",e.toString())};class N{constructor(){this.centerX=0,this.centerY=0,this.direction=-Math.PI/2,this.width=0,this.height=0,this.tailsHeight=0}static matching(e){let t=new N;return t.centerX=e.centerX,t.centerY=e.centerY,t.direction=e.direction,t.width=e.width,t.height=e.height,t.tailsHeight=e.tailsHeight,t}toString(){let e=new f.Point(this.centerX,this.centerY),t=e.displaced({magnitude:this.height/2,direction:this.direction}),r=e.displaced({magnitude:this.width/2,direction:this.direction-Math.PI/2}).displaced({magnitude:this.height/2,direction:this.direction+Math.PI}),i=e.displaced({magnitude:this.width/2,direction:this.direction+Math.PI/2}).displaced({magnitude:this.height/2,direction:this.direction+Math.PI}),n=e.displaced({magnitude:this.height/2-this.tailsHeight,direction:this.direction+Math.PI});return`M ${t.x} ${t.y} L ${i.x} ${i.y} L ${n.x} ${n.y} L ${r.x} ${r.y} Z`}}var x,S,M,P,E=function(e,t,r,i){if("a"===r&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?i:"a"===r?i.call(e):i?i.value:t.get(e)};class j{static create(){let e=document.createElementNS("http://www.w3.org/2000/svg","path");e.id="id-"+a();let t=new j(e);return t.centerX=0,t.centerY=0,t.direction=-Math.PI/2,t.width=6.5,t.height=6.5,t.tailsHeight=0,t.domNode.setAttribute("stroke","black"),t.domNode.setAttribute("stroke-width","1"),t.domNode.setAttribute("stroke-opacity","1"),t.domNode.setAttribute("stroke-linejoin",""),t.domNode.setAttribute("stroke-dasharray",""),t.domNode.setAttribute("stroke-linecap",""),t.domNode.setAttribute("fill","white"),t.domNode.setAttribute("fill-opacity","1"),t}constructor(e){x.add(this),this.domNode=e,e.dataset.centerX||E(this,x,"m",S).call(this),e.dataset.centerY||E(this,x,"m",M).call(this)}get id(){return this.domNode.id}get centerX(){var e;let t=Number.parseFloat(null!==(e=this.domNode.dataset.centerX)&&void 0!==e?e:"");return Number.isFinite(t)?t:0}set centerX(e){Number.isFinite(e)?(this.domNode.dataset.centerX=`${e}`,E(this,x,"m",P).call(this)):console.error(`The specified center X coordinate is nonfinite: ${e}.`)}get centerY(){var e;let t=Number.parseFloat(null!==(e=this.domNode.dataset.centerY)&&void 0!==e?e:"");return Number.isFinite(t)?t:0}set centerY(e){Number.isFinite(e)?(this.domNode.dataset.centerY=`${e}`,E(this,x,"m",P).call(this)):console.error(`The specified center Y coordinate is nonfinite: ${e}.`)}drag(e,t){this.centerX+=e,this.centerY+=t}get direction(){var e;let t=Number.parseFloat(null!==(e=this.domNode.dataset.direction)&&void 0!==e?e:"");return Number.isFinite(t)?t:0}set direction(e){Number.isFinite(e)?(this.domNode.dataset.direction=`${e}`,E(this,x,"m",P).call(this)):console.error(`The specified direction angle is nonfinite: ${e}.`)}get width(){var e;let t=Number.parseFloat(null!==(e=this.domNode.dataset.width)&&void 0!==e?e:"");return Number.isFinite(t)?t:0}set width(e){Number.isFinite(e)?(this.domNode.dataset.width=`${e}`,E(this,x,"m",P).call(this)):console.error(`The specified width is nonfinite: ${e}.`)}get height(){var e;let t=Number.parseFloat(null!==(e=this.domNode.dataset.height)&&void 0!==e?e:"");return Number.isFinite(t)?t:0}set height(e){Number.isFinite(e)?(this.domNode.dataset.height=`${e}`,E(this,x,"m",P).call(this)):console.error(`The specified height is nonfinite: ${e}.`)}get tailsHeight(){var e;let t=Number.parseFloat(null!==(e=this.domNode.dataset.tailsHeight)&&void 0!==e?e:"");return Number.isFinite(t)?t:0}set tailsHeight(e){Number.isFinite(e)?(this.domNode.dataset.tailsHeight=`${e}`,E(this,x,"m",P).call(this)):console.error(`The specified tails height is nonfinite: ${e}.`)}get bbox(){return c.Box.matching(this.domNode.getBBox())}serialized(){if(!this.id)throw new Error("Triangle ID is falsy.");return{id:this.id}}static recreate(e,t){if(!(0,d.isNonNullObject)(e))throw new Error(`Saved triangle is not an object: ${e}.`);if(!e.id)throw new Error("Saved triangle ID is falsy.");if(!(0,d.isString)(e.id))throw new Error(`Saved triangle ID is not a string: ${e.id}.`);let r=t.domNode.querySelector("#"+e.id);if(!r)throw new Error("Unable to find saved triangle DOM node in parent drawing by ID.");if(!(r instanceof SVGPathElement))throw new Error(`DOM node found for saved triangle is not an SVG path element: ${r}.`);let i=new j(r);return(0,d.isFiniteNumber)(e.width)&&(i.width=e.width),(0,d.isFiniteNumber)(e.height)&&(i.height=e.height),(0,d.isFiniteNumber)(e.tailsHeight)&&(i.tailsHeight=e.tailsHeight),i}}x=new WeakSet,S=function(){let e=c.Box.matching(this.domNode.getBBox());this.domNode.dataset.centerX=`${e.centerX}`},M=function(){let e=c.Box.matching(this.domNode.getBBox());this.domNode.dataset.centerY=`${e.centerY}`},P=function(){let e=new N;e.centerX=this.centerX,e.centerY=this.centerY,e.direction=this.direction,e.width=this.width,e.height=this.height,e.tailsHeight=this.tailsHeight,this.domNode.setAttribute("d",e.toString())};var O,F=r(153),A=function(e,t,r,i){if("a"===r&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?i:"a"===r?i.call(e):i?i.value:t.get(e)};class T extends F.StrungElement{static on(e){let t=h.create();t.domNode.textContent="Text",t.domNode.setAttribute("font-size","7");let r=new T(t,e);return r.lineX=0,r.displacementMagnitude=0,r}constructor(e,t){super(e,t),O.set(this,void 0),function(e,t,r,i,n){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===i?n.call(e,r):n?n.value=r:t.set(e,r)}(this,O,e,"f")}get textContent(){return this.domNode.textContent}save(){return{text:A(this,O,"f").serialized(),ownerID:this.owner.id}}static recreate(e,t){if(!(0,d.isNonNullObject)(e))throw new Error(`Saved strung text isn't an object: ${e}.`);let r=h.recreate(e.text,t);if(!(0,d.isString)(e.ownerID))throw new Error(`Saved strung text owner ID isn't a string: ${e.ownerID}.`);if(!e.ownerID)throw new Error("Saved strung text owner ID is an empty string.");let i=t.bonds.find(t=>t.id==e.ownerID);if(!i)throw new Error(`Saved strung text owner wasn't found in the parent drawing: ${e}.`);return new T(r,i)}}O=new WeakMap;var $,I=function(e,t,r,i){if("a"===r&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?i:"a"===r?i.call(e):i?i.value:t.get(e)};class D extends F.StrungElement{static on(e){let t=l.create();t.domNode.setAttribute("r","3");let r=new D(t,e);return r.lineX=0,r.displacementMagnitude=0,r}constructor(e,t){super(e,t),$.set(this,void 0),function(e,t,r,i,n){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===i?n.call(e,r):n?n.value=r:t.set(e,r)}(this,$,e,"f")}save(){return{circle:I(this,$,"f").serialized(),ownerID:this.owner.id}}static recreate(e,t){if(!(0,d.isNonNullObject)(e))throw new Error(`Saved strung circle isn't an object: ${e}.`);let r=l.recreate(e.circle,t);if(!(0,d.isString)(e.ownerID))throw new Error(`Saved strung circle owner ID isn't a string: ${e.ownerID}.`);if(!e.ownerID)throw new Error("Saved strung circle owner ID is an empty string.");let i=t.bonds.find(t=>t.id===e.ownerID);if(!i)throw new Error(`Saved strung circle owner wasn't found in the parent drawing: ${e}.`);return new D(r,i)}}$=new WeakMap;var X,Y=function(e,t,r,i){if("a"===r&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?i:"a"===r?i.call(e):i?i.value:t.get(e)};class R extends F.StrungElement{static on(e){let t=v.create(),r=new R(t,e);return r.lineX=0,r.displacementMagnitude=0,r}constructor(e,t){super(e,t),X.set(this,void 0),function(e,t,r,i,n){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===i?n.call(e,r):n?n.value=r:t.set(e,r)}(this,X,e,"f")}get width(){return Y(this,X,"f").width}set width(e){Y(this,X,"f").width=e}get height(){return Y(this,X,"f").height}set height(e){Y(this,X,"f").height=e}get cornerRadius(){return Y(this,X,"f").cornerRadius}set cornerRadius(e){Y(this,X,"f").cornerRadius=e}save(){return{rectangle:Y(this,X,"f").serialized(),ownerID:this.owner.id}}static recreate(e,t){if(!(0,d.isNonNullObject)(e))throw new Error(`Saved strung rectangle isn't an object: ${e}.`);let r=v.recreate(e.rectangle,t);if(!(0,d.isString)(e.ownerID))throw new Error(`Saved strung rectangle owner ID isn't a string: ${e.ownerID}.`);if(!e.ownerID)throw new Error("Saved strung rectangle owner ID is an empty string.");let i=t.bonds.find(t=>t.id===e.ownerID);if(!i)throw new Error(`Saved strung rectangle owner wasn't found in the parent drawing: ${e}.`);return(0,d.isFiniteNumber)(e.rotation)&&(r.domNode.dataset.rotation=`${e.rotation}`),new R(r,i)}}X=new WeakMap;var k,B=function(e,t,r,i){if("a"===r&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?i:"a"===r?i.call(e):i?i.value:t.get(e)};class _ extends F.StrungElement{static on(e){let t=j.create(),r=new _(t,e);return r.lineX=0,r.displacementMagnitude=0,r}constructor(e,t){super(e,t),k.set(this,void 0),function(e,t,r,i,n){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===i?n.call(e,r):n?n.value=r:t.set(e,r)}(this,k,e,"f")}get width(){return B(this,k,"f").width}set width(e){B(this,k,"f").width=e}get height(){return B(this,k,"f").height}set height(e){B(this,k,"f").height=e}get tailsHeight(){return B(this,k,"f").tailsHeight}set tailsHeight(e){B(this,k,"f").tailsHeight=e}save(){return{triangle:B(this,k,"f").serialized(),ownerID:this.owner.id}}static recreate(e,t){if(!(0,d.isNonNullObject)(e))throw new Error(`Saved strung triangle isn't an object: ${e}.`);let r=j.recreate(e.triangle,t);if(!(0,d.isString)(e.ownerID))throw new Error(`Saved strung triangle owner ID isn't a string: ${e.ownerID}.`);if(!e.ownerID)throw new Error("Saved strung triangle owner ID is an empty string.");let i=t.bonds.find(t=>t.id===e.ownerID);if(!i)throw new Error(`Saved strung triangle owner wasn't found in the parent drawing: ${e}.`);return(0,d.isFiniteNumber)(e.rotation)&&(r.domNode.dataset.rotation=`${e.rotation}`),new _(r,i)}}k=new WeakMap;const C={recreate:(e,t)=>{if(!(0,d.isNonNullObject)(e))throw new Error(`Saved strung element isn't an object: ${e}.`);if("text"in e)return T.recreate(e,t);if("circle"in e)return D.recreate(e,t);if("rectangle"in e)return R.recreate(e,t);if("triangle"in e)return _.recreate(e,t);throw new Error(`Saved strung element doesn't have a recognized element type: ${e}.`)}}})(),i})());
|