plotboilerplate 1.18.0 → 1.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) hide show
  1. package/README.md +1 -1
  2. package/dist/index.esm.js +244 -63
  3. package/dist/index.esm.js.map +1 -1
  4. package/dist/index.esm.min.js +1 -1
  5. package/dist/index.esm.min.js.map +1 -1
  6. package/dist/plotboilerplate.browser.min.js +1 -1
  7. package/dist/plotboilerplate.browser.min.js.map +1 -1
  8. package/dist/plotboilerplate.js +243 -74
  9. package/dist/plotboilerplate.min.js +1 -1
  10. package/package.json +1 -1
  11. package/src/cjs/Bounds.d.ts +14 -5
  12. package/src/cjs/Bounds.js +18 -8
  13. package/src/cjs/Bounds.js.map +1 -1
  14. package/src/cjs/CubicBezierCurve.d.ts +20 -3
  15. package/src/cjs/CubicBezierCurve.js +25 -2
  16. package/src/cjs/CubicBezierCurve.js.map +1 -1
  17. package/src/cjs/Line.d.ts +46 -4
  18. package/src/cjs/Line.js +60 -3
  19. package/src/cjs/Line.js.map +1 -1
  20. package/src/cjs/PlotBoilerplate.d.ts +5 -2
  21. package/src/cjs/PlotBoilerplate.js +52 -30
  22. package/src/cjs/PlotBoilerplate.js.map +1 -1
  23. package/src/cjs/Polygon.js +1 -1
  24. package/src/cjs/Polygon.js.map +1 -1
  25. package/src/cjs/VEllipseSector.d.ts +4 -3
  26. package/src/cjs/VEllipseSector.js +15 -8
  27. package/src/cjs/VEllipseSector.js.map +1 -1
  28. package/src/cjs/Vector.d.ts +14 -3
  29. package/src/cjs/Vector.js +21 -2
  30. package/src/cjs/Vector.js.map +1 -1
  31. package/src/cjs/Vertex.d.ts +33 -1
  32. package/src/cjs/Vertex.js +43 -1
  33. package/src/cjs/Vertex.js.map +1 -1
  34. package/src/cjs/drawutilssvg.d.ts +2 -1
  35. package/src/cjs/drawutilssvg.js +7 -19
  36. package/src/cjs/drawutilssvg.js.map +1 -1
  37. package/src/cjs/entry.js +1 -0
  38. package/src/cjs/interfaces/additionals.d.ts +95 -0
  39. package/src/cjs/interfaces/additionals.js +3 -0
  40. package/src/cjs/interfaces/additionals.js.map +1 -0
  41. package/src/cjs/interfaces/core.d.ts +7 -0
  42. package/src/cjs/interfaces/core.js +2 -0
  43. package/src/cjs/interfaces/core.js.map +1 -1
  44. package/src/cjs/interfaces/index.d.ts +1 -0
  45. package/src/cjs/interfaces/index.js +1 -0
  46. package/src/cjs/interfaces/index.js.map +1 -1
  47. package/src/cjs/utils/algorithms/arrayShuffle.d.ts +8 -0
  48. package/src/cjs/utils/algorithms/arrayShuffle.js +15 -0
  49. package/src/cjs/utils/algorithms/arrayShuffle.js.map +1 -0
  50. package/src/cjs/utils/algorithms/detectPaths.d.ts +21 -0
  51. package/src/cjs/utils/algorithms/detectPaths.js +169 -0
  52. package/src/cjs/utils/algorithms/detectPaths.js.map +1 -0
  53. package/src/cjs/utils/creategui.js +7 -0
  54. package/src/cjs/utils/datastructures/Color.d.ts +1 -1
  55. package/src/cjs/utils/datastructures/Color.js +4 -2
  56. package/src/cjs/utils/datastructures/Color.js.map +1 -1
  57. package/src/cjs/utils/datastructures/GenericPath.d.ts +75 -0
  58. package/src/cjs/utils/datastructures/GenericPath.js +105 -0
  59. package/src/cjs/utils/datastructures/GenericPath.js.map +1 -0
  60. package/src/cjs/utils/datastructures/GirihTile.d.ts +1 -1
  61. package/src/cjs/utils/io/FileDrop.d.ts +11 -1
  62. package/src/cjs/utils/io/FileDrop.js +41 -10
  63. package/src/cjs/utils/io/FileDrop.js.map +1 -1
  64. package/src/cjs/utils/parsers/svg/parseSVGPathData.d.ts +26 -0
  65. package/src/cjs/utils/parsers/svg/parseSVGPathData.js +463 -0
  66. package/src/cjs/utils/parsers/svg/parseSVGPathData.js.map +1 -0
  67. package/src/cjs/utils/parsers/svg/splitSVGPathData.d.ts +20 -0
  68. package/src/cjs/utils/parsers/svg/splitSVGPathData.js +49 -0
  69. package/src/cjs/utils/parsers/svg/splitSVGPathData.js.map +1 -0
  70. package/src/cjs/utils/parsers/svg/types.d.ts +43 -0
  71. package/src/cjs/utils/parsers/svg/types.js +16 -0
  72. package/src/cjs/utils/parsers/svg/types.js.map +1 -0
  73. package/src/esm/Bounds.d.ts +14 -5
  74. package/src/esm/Bounds.js +18 -8
  75. package/src/esm/Bounds.js.map +1 -1
  76. package/src/esm/CubicBezierCurve.d.ts +20 -3
  77. package/src/esm/CubicBezierCurve.js +25 -2
  78. package/src/esm/CubicBezierCurve.js.map +1 -1
  79. package/src/esm/Line.d.ts +46 -4
  80. package/src/esm/Line.js +60 -3
  81. package/src/esm/Line.js.map +1 -1
  82. package/src/esm/PlotBoilerplate.d.ts +5 -2
  83. package/src/esm/PlotBoilerplate.js +52 -30
  84. package/src/esm/PlotBoilerplate.js.map +1 -1
  85. package/src/esm/Polygon.js +1 -1
  86. package/src/esm/Polygon.js.map +1 -1
  87. package/src/esm/VEllipseSector.d.ts +4 -3
  88. package/src/esm/VEllipseSector.js +15 -8
  89. package/src/esm/VEllipseSector.js.map +1 -1
  90. package/src/esm/Vector.d.ts +13 -2
  91. package/src/esm/Vector.js +23 -4
  92. package/src/esm/Vector.js.map +1 -1
  93. package/src/esm/Vertex.d.ts +33 -1
  94. package/src/esm/Vertex.js +43 -1
  95. package/src/esm/Vertex.js.map +1 -1
  96. package/src/esm/drawutilssvg.d.ts +2 -1
  97. package/src/esm/drawutilssvg.js +7 -19
  98. package/src/esm/drawutilssvg.js.map +1 -1
  99. package/src/esm/entry.js +1 -0
  100. package/src/esm/interfaces/additionals.d.ts +95 -0
  101. package/src/esm/interfaces/additionals.js +2 -0
  102. package/src/esm/interfaces/additionals.js.map +1 -0
  103. package/src/esm/interfaces/core.d.ts +7 -0
  104. package/src/esm/interfaces/core.js +2 -0
  105. package/src/esm/interfaces/core.js.map +1 -1
  106. package/src/esm/interfaces/index.d.ts +1 -0
  107. package/src/esm/interfaces/index.js +1 -0
  108. package/src/esm/interfaces/index.js.map +1 -1
  109. package/src/esm/utils/algorithms/arrayShuffle.d.ts +8 -0
  110. package/src/esm/utils/algorithms/arrayShuffle.js +11 -0
  111. package/src/esm/utils/algorithms/arrayShuffle.js.map +1 -0
  112. package/src/esm/utils/algorithms/detectPaths.d.ts +21 -0
  113. package/src/esm/utils/algorithms/detectPaths.js +165 -0
  114. package/src/esm/utils/algorithms/detectPaths.js.map +1 -0
  115. package/src/esm/utils/datastructures/Color.d.ts +1 -1
  116. package/src/esm/utils/datastructures/Color.js +4 -2
  117. package/src/esm/utils/datastructures/Color.js.map +1 -1
  118. package/src/esm/utils/datastructures/GenericPath.d.ts +75 -0
  119. package/src/esm/utils/datastructures/GenericPath.js +100 -0
  120. package/src/esm/utils/datastructures/GenericPath.js.map +1 -0
  121. package/src/esm/utils/datastructures/GirihTile.d.ts +1 -1
  122. package/src/esm/utils/io/FileDrop.d.ts +11 -1
  123. package/src/esm/utils/io/FileDrop.js +41 -10
  124. package/src/esm/utils/io/FileDrop.js.map +1 -1
  125. package/src/esm/utils/parsers/svg/parseSVGPathData.d.ts +26 -0
  126. package/src/esm/utils/parsers/svg/parseSVGPathData.js +459 -0
  127. package/src/esm/utils/parsers/svg/parseSVGPathData.js.map +1 -0
  128. package/src/esm/utils/parsers/svg/splitSVGPathData.d.ts +20 -0
  129. package/src/esm/utils/parsers/svg/splitSVGPathData.js +45 -0
  130. package/src/esm/utils/parsers/svg/splitSVGPathData.js.map +1 -0
  131. package/src/esm/utils/parsers/svg/types.d.ts +43 -0
  132. package/src/esm/utils/parsers/svg/types.js +15 -0
  133. package/src/esm/utils/parsers/svg/types.js.map +1 -0
  134. package/src/ts/Bounds.ts +19 -8
  135. package/src/ts/CubicBezierCurve.ts +29 -4
  136. package/src/ts/Line.ts +70 -6
  137. package/src/ts/PlotBoilerplate.ts +57 -35
  138. package/src/ts/Polygon.ts +1 -1
  139. package/src/ts/VEllipseSector.ts +22 -15
  140. package/src/ts/Vector.ts +24 -4
  141. package/src/ts/Vertex.ts +46 -1
  142. package/src/ts/drawutilssvg.ts +8 -19
  143. package/src/ts/interfaces/additionals.ts +105 -0
  144. package/src/ts/interfaces/core.ts +5 -0
  145. package/src/ts/interfaces/index.ts +1 -0
  146. package/src/ts/utils/algorithms/arrayShuffle.ts +11 -0
  147. package/src/ts/utils/algorithms/detectPaths.ts +195 -0
  148. package/src/ts/utils/datastructures/Color.ts +8 -4
  149. package/src/ts/utils/datastructures/GenericPath.ts +113 -0
  150. package/src/ts/utils/datastructures/GirihTile.ts +1 -1
  151. package/src/ts/utils/io/FileDrop.ts +51 -10
  152. package/src/ts/utils/parsers/svg/parseSVGPathData.ts +572 -0
  153. package/src/ts/utils/parsers/svg/splitSVGPathData.ts +50 -0
  154. package/src/ts/utils/parsers/svg/types.ts +70 -0
  155. package/changelog.md +0 -731
@@ -0,0 +1,100 @@
1
+ /**
2
+ * @author Ikaros Kappler
3
+ * @version 1.0.0
4
+ * @date 2022-10-17
5
+ */
6
+ export class GenericPath {
7
+ constructor(startSegment) {
8
+ this.segments = [startSegment];
9
+ }
10
+ /**
11
+ * Get the number of segments in this path.
12
+ *
13
+ * @method getSegmentCount
14
+ * @memberof Path
15
+ * @return {number} The number (integer) of path segments.
16
+ */
17
+ getSegmentCount() {
18
+ return this.segments.length;
19
+ }
20
+ /**
21
+ * Get the path segment at the given index.
22
+ *
23
+ * @method getSegmentAt
24
+ * @memberof Path
25
+ * @return {PathSegment} The paths segment at the given index.
26
+ */
27
+ getSegmentAt(index) {
28
+ return this.segments[index];
29
+ }
30
+ /**
31
+ * Create a deep clone of this path.
32
+ *
33
+ * @method clone
34
+ * @memberof Path
35
+ * @return {Path} A deep clone/copy of this path.
36
+ */
37
+ clone() {
38
+ const newPath = new GenericPath(this.segments[this.segments.length - 1].clone().reverse());
39
+ for (var i = this.segments.length - 2; i >= 0; i--) {
40
+ newPath.segments.push(this.segments[i].clone().reverse());
41
+ }
42
+ return newPath;
43
+ }
44
+ /**
45
+ * Reverse this path (swap start and end and thus – the direction) in-place.
46
+ *
47
+ * @method reverse
48
+ * @memberof Path
49
+ * @return {PathSegment} This path instance.
50
+ */
51
+ reverse() {
52
+ const newSegments = [];
53
+ for (var i = this.segments.length - 1; i >= 0; i--) {
54
+ newSegments.push(this.segments[i].reverse());
55
+ }
56
+ this.segments = newSegments;
57
+ return this;
58
+ }
59
+ /**
60
+ * Get the start point of this path segment.
61
+ *
62
+ * @method getStartPoint
63
+ * @memberof PathSegment
64
+ * @return {Vertex} The start point of this path segment.
65
+ */
66
+ getStartPoint() {
67
+ return this.segments[0].getStartPoint();
68
+ }
69
+ /**
70
+ * Get the end point of this path segment.
71
+ *
72
+ * @method getEndPoint
73
+ * @memberof PathSegment
74
+ * @return {Vertex} The end point of this path segment.
75
+ */
76
+ getEndPoint() {
77
+ return this.segments[this.segments.length - 1].getEndPoint();
78
+ }
79
+ /**
80
+ * Get the tangent's end point at the start point of this segment.
81
+ *
82
+ * @method getStartTangent
83
+ * @memberof PathSegment
84
+ * @return {Vertex} The end point of the starting point's tangent.
85
+ */
86
+ getStartTangent() {
87
+ return this.segments[0].getStartTangent();
88
+ }
89
+ /**
90
+ * Get the tangent's end point at the end point of this segment.
91
+ *
92
+ * @method getEndTangent
93
+ * @memberof PathSegment
94
+ * @return {Vertex} The end point of the ending point's tangent.
95
+ */
96
+ getEndTangent() {
97
+ return this.segments[this.segments.length - 1].getEndTangent();
98
+ }
99
+ }
100
+ //# sourceMappingURL=GenericPath.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GenericPath.js","sourceRoot":"","sources":["../../../ts/utils/datastructures/GenericPath.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,MAAM,OAAO,WAAW;IAGtB,YAAY,YAAyB;QACnC,IAAI,CAAC,QAAQ,GAAG,CAAC,YAAY,CAAC,CAAC;IACjC,CAAC;IAED;;;;;;OAMG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED;;;;;;OAMG;IACH,YAAY,CAAC,KAAa;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED;;;;;;OAMG;IACH,KAAK;QACH,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3F,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YAClD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;SAC3D;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;OAMG;IACH,OAAO;QACL,MAAM,WAAW,GAAuB,EAAE,CAAC;QAC3C,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YAClD,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;SAC9C;QACD,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;IAED;;;;;;OAMG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAC/D,CAAC;IAED;;;;;;OAMG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;IAC5C,CAAC;IAED;;;;;;OAMG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IACjE,CAAC;CACF"}
@@ -225,7 +225,7 @@ export declare abstract class GirihTile extends Polygon {
225
225
  * @param {Polygon} neighbourTile - The polygon (or tile) you want to find adjacency for at the specified edge.
226
226
  * @return {Polygon|null} the passed tile itself if adjacency was found, null otherwise.
227
227
  */
228
- transformTilePositionToAdjacency<P extends Polygon>(baseEdgeIndex: number, neighbourTile: P): P;
228
+ transformTilePositionToAdjacency<P extends Polygon>(baseEdgeIndex: number, neighbourTile: P): P | null;
229
229
  /**
230
230
  * Get the inner tile polygon at the given index.
231
231
  * This function applies MOD to the index.
@@ -13,10 +13,12 @@
13
13
  * @author Ikaros Kappler
14
14
  * @date 2021-10-13
15
15
  * @modified 2022-01-31 (ported from the ngdg project, then generalized)
16
- * @version 2.0.0
16
+ * @modified 2023-01-03 Fixing some minor type issues and adding SVG reading capabilities.
17
+ * @version 2.1.0
17
18
  */
18
19
  declare type IDroppedCallbackJSON = (jsonData: object) => void;
19
20
  declare type IDroppedCallbackText = (textData: string) => void;
21
+ declare type IDroppedCallbackSVG = (svgDocument: Document) => void;
20
22
  export declare class FileDrop {
21
23
  /**
22
24
  * The 'dropzone' element.
@@ -46,6 +48,13 @@ export declare class FileDrop {
46
48
  * @member {HTMLElement}
47
49
  */
48
50
  private fileDroppedCallbackBinary;
51
+ /**
52
+ * The SVG file drop callback.
53
+ * @private
54
+ * @memberof FileDrop
55
+ * @member {HTMLElement}
56
+ */
57
+ private fileDroppedCallbackSVG;
49
58
  /**
50
59
  *
51
60
  * @param {HTMLElement} element - The element you wish to operate as the drop zone (like <body/>).
@@ -71,6 +80,7 @@ export declare class FileDrop {
71
80
  * @param {(data:object)=>void} callback
72
81
  */
73
82
  onFileTextDropped(callback: IDroppedCallbackText): void;
83
+ onFileSVGDropped(callback: IDroppedCallbackSVG): void;
74
84
  /**
75
85
  * Internally handle a drop event.
76
86
  *
@@ -13,7 +13,8 @@
13
13
  * @author Ikaros Kappler
14
14
  * @date 2021-10-13
15
15
  * @modified 2022-01-31 (ported from the ngdg project, then generalized)
16
- * @version 2.0.0
16
+ * @modified 2023-01-03 Fixing some minor type issues and adding SVG reading capabilities.
17
+ * @version 2.1.0
17
18
  */
18
19
  export class FileDrop {
19
20
  /**
@@ -31,7 +32,7 @@ export class FileDrop {
31
32
  event.preventDefault();
32
33
  event.stopPropagation();
33
34
  this.element.style.opacity = "1.0";
34
- if (!event.dataTransfer.files || event.dataTransfer.files.length === 0) {
35
+ if (!event.dataTransfer || !event.dataTransfer.files || event.dataTransfer.files.length === 0) {
35
36
  // No files were dropped
36
37
  return;
37
38
  }
@@ -39,39 +40,66 @@ export class FileDrop {
39
40
  // Multiple file drop is not nupported
40
41
  return;
41
42
  }
42
- if (!this.fileDroppedCallbackJSON) {
43
- // No handling callback defined.
44
- return;
45
- }
43
+ // if (!this.fileDroppedCallbackJSON) {
44
+ // // No handling callback defined.
45
+ // return;
46
+ // }
46
47
  if (event.dataTransfer.files[0]) {
47
48
  const file = event.dataTransfer.files[0];
48
49
  // console.log("file", file);
49
- if (file.type.match(/json.*/) && this.fileDroppedCallbackJSON) {
50
+ if (file.type.match(/json.*/) && this.fileDroppedCallbackJSON !== null) {
50
51
  var reader = new FileReader();
51
52
  reader.onload = (readEvent) => {
53
+ if (!readEvent.target) {
54
+ console.warn("Cannot process JSON ProgressEvent data: target is null.");
55
+ return;
56
+ }
52
57
  // Finished reading file data.
53
58
  const jsonObject = JSON.parse(readEvent.target.result);
54
59
  // TODO: what happens on fail?
55
- this.fileDroppedCallbackJSON(jsonObject);
60
+ this.fileDroppedCallbackJSON && this.fileDroppedCallbackJSON(jsonObject);
56
61
  };
57
62
  reader.readAsText(file); // start reading the file data.
58
63
  }
59
64
  else if (file.type.match(/text\/plain.*/) && this.fileDroppedCallbackText) {
60
65
  var reader = new FileReader();
61
66
  reader.onload = (readEvent) => {
67
+ if (!readEvent.target) {
68
+ console.warn("Cannot process Text ProgressEvent data: target is null.");
69
+ return;
70
+ }
62
71
  // Finished reading file data.
63
- this.fileDroppedCallbackText(readEvent.target.result);
72
+ this.fileDroppedCallbackText && this.fileDroppedCallbackText(readEvent.target.result);
64
73
  };
65
74
  reader.readAsText(file); // start reading the file data.
66
75
  }
67
76
  else if (this.fileDroppedCallbackBinary) {
68
77
  var reader = new FileReader();
69
78
  reader.onload = (readEvent) => {
79
+ if (!readEvent.target) {
80
+ console.warn("Cannot process Binary ProgressEvent data: target is null.");
81
+ return;
82
+ }
70
83
  // Finished reading file data.
71
- this.fileDroppedCallbackBinary(new Blob([readEvent.target.result]), file);
84
+ this.fileDroppedCallbackBinary &&
85
+ this.fileDroppedCallbackBinary(new Blob([readEvent.target.result]), file);
72
86
  };
73
87
  reader.readAsBinaryString(file); // start reading the file data.
74
88
  }
89
+ else if (this.fileDroppedCallbackSVG) {
90
+ var reader = new FileReader();
91
+ reader.onload = (readEvent) => {
92
+ if (!readEvent.target) {
93
+ console.warn("Cannot process SVG ProgressEvent data: target is null.");
94
+ return;
95
+ }
96
+ const parser = new DOMParser();
97
+ const doc = parser.parseFromString(readEvent.target.result, "image/svg+xml");
98
+ // Finished reading file data.
99
+ this.fileDroppedCallbackSVG && this.fileDroppedCallbackSVG(doc);
100
+ };
101
+ reader.readAsText(file); // start reading the file data.
102
+ }
75
103
  }
76
104
  };
77
105
  /**
@@ -124,6 +152,9 @@ export class FileDrop {
124
152
  onFileTextDropped(callback) {
125
153
  this.fileDroppedCallbackText = callback;
126
154
  }
155
+ onFileSVGDropped(callback) {
156
+ this.fileDroppedCallbackSVG = callback;
157
+ }
127
158
  /**
128
159
  * Removes all listeners (drop, dragover and dragleave).
129
160
  */
@@ -1 +1 @@
1
- {"version":3,"file":"FileDrop.js","sourceRoot":"","sources":["../../../ts/utils/io/FileDrop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FileDrop.js","sourceRoot":"","sources":["../../../ts/utils/io/FileDrop.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Parse SVG path data strings and convert to PlotBoilerplate path objects.
3
+ *
4
+ * As this parser function does not detect all possible path data strings it should cover the most daily use-cases.
5
+ *
6
+ * For more insight see
7
+ * https://www.w3.org/TR/SVG/paths.html
8
+ *
9
+ * @author Ikaros Kappler
10
+ * @date 2022-11-06
11
+ * @modified 2022-12-21 (winter solstice) Porting this to Typescript.
12
+ * @version 0.0.1-alpha
13
+ **/
14
+ import { CubicBezierCurve } from "../../../CubicBezierCurve";
15
+ import { Line } from "../../../Line";
16
+ /**
17
+ * Transform the given path data (translate and scale. rotating is not intended here).
18
+ *
19
+ * @date 2022-11-06
20
+ *
21
+ * @name parseSVGPathData
22
+ * @static
23
+ * @param {string} data - The data to parse.
24
+ * @return An array of straight line segments (Line) or curve segments (CubicBezierCurve) representing the path.
25
+ */
26
+ export declare const parseSVGPathData: (dataString: string) => Array<Line | CubicBezierCurve> | null;