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,105 @@
1
+ "use strict";
2
+ /**
3
+ * @author Ikaros Kappler
4
+ * @version 1.0.0
5
+ * @date 2022-10-17
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.GenericPath = void 0;
9
+ var GenericPath = /** @class */ (function () {
10
+ function GenericPath(startSegment) {
11
+ this.segments = [startSegment];
12
+ }
13
+ /**
14
+ * Get the number of segments in this path.
15
+ *
16
+ * @method getSegmentCount
17
+ * @memberof Path
18
+ * @return {number} The number (integer) of path segments.
19
+ */
20
+ GenericPath.prototype.getSegmentCount = function () {
21
+ return this.segments.length;
22
+ };
23
+ /**
24
+ * Get the path segment at the given index.
25
+ *
26
+ * @method getSegmentAt
27
+ * @memberof Path
28
+ * @return {PathSegment} The paths segment at the given index.
29
+ */
30
+ GenericPath.prototype.getSegmentAt = function (index) {
31
+ return this.segments[index];
32
+ };
33
+ /**
34
+ * Create a deep clone of this path.
35
+ *
36
+ * @method clone
37
+ * @memberof Path
38
+ * @return {Path} A deep clone/copy of this path.
39
+ */
40
+ GenericPath.prototype.clone = function () {
41
+ var newPath = new GenericPath(this.segments[this.segments.length - 1].clone().reverse());
42
+ for (var i = this.segments.length - 2; i >= 0; i--) {
43
+ newPath.segments.push(this.segments[i].clone().reverse());
44
+ }
45
+ return newPath;
46
+ };
47
+ /**
48
+ * Reverse this path (swap start and end and thus – the direction) in-place.
49
+ *
50
+ * @method reverse
51
+ * @memberof Path
52
+ * @return {PathSegment} This path instance.
53
+ */
54
+ GenericPath.prototype.reverse = function () {
55
+ var newSegments = [];
56
+ for (var i = this.segments.length - 1; i >= 0; i--) {
57
+ newSegments.push(this.segments[i].reverse());
58
+ }
59
+ this.segments = newSegments;
60
+ return this;
61
+ };
62
+ /**
63
+ * Get the start point of this path segment.
64
+ *
65
+ * @method getStartPoint
66
+ * @memberof PathSegment
67
+ * @return {Vertex} The start point of this path segment.
68
+ */
69
+ GenericPath.prototype.getStartPoint = function () {
70
+ return this.segments[0].getStartPoint();
71
+ };
72
+ /**
73
+ * Get the end point of this path segment.
74
+ *
75
+ * @method getEndPoint
76
+ * @memberof PathSegment
77
+ * @return {Vertex} The end point of this path segment.
78
+ */
79
+ GenericPath.prototype.getEndPoint = function () {
80
+ return this.segments[this.segments.length - 1].getEndPoint();
81
+ };
82
+ /**
83
+ * Get the tangent's end point at the start point of this segment.
84
+ *
85
+ * @method getStartTangent
86
+ * @memberof PathSegment
87
+ * @return {Vertex} The end point of the starting point's tangent.
88
+ */
89
+ GenericPath.prototype.getStartTangent = function () {
90
+ return this.segments[0].getStartTangent();
91
+ };
92
+ /**
93
+ * Get the tangent's end point at the end point of this segment.
94
+ *
95
+ * @method getEndTangent
96
+ * @memberof PathSegment
97
+ * @return {Vertex} The end point of the ending point's tangent.
98
+ */
99
+ GenericPath.prototype.getEndTangent = function () {
100
+ return this.segments[this.segments.length - 1].getEndTangent();
101
+ };
102
+ return GenericPath;
103
+ }());
104
+ exports.GenericPath = GenericPath;
105
+ //# 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;IAGE,qBAAY,YAAyB;QACnC,IAAI,CAAC,QAAQ,GAAG,CAAC,YAAY,CAAC,CAAC;IACjC,CAAC;IAED;;;;;;OAMG;IACH,qCAAe,GAAf;QACE,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED;;;;;;OAMG;IACH,kCAAY,GAAZ,UAAa,KAAa;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED;;;;;;OAMG;IACH,2BAAK,GAAL;QACE,IAAM,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,6BAAO,GAAP;QACE,IAAM,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,mCAAa,GAAb;QACE,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;IAED;;;;;;OAMG;IACH,iCAAW,GAAX;QACE,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAC/D,CAAC;IAED;;;;;;OAMG;IACH,qCAAe,GAAf;QACE,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;IAC5C,CAAC;IAED;;;;;;OAMG;IACH,mCAAa,GAAb;QACE,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IACjE,CAAC;IACH,kBAAC;AAAD,CAAC,AAvGD,IAuGC;AAvGY,kCAAW"}
@@ -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
  *
@@ -14,7 +14,8 @@
14
14
  * @author Ikaros Kappler
15
15
  * @date 2021-10-13
16
16
  * @modified 2022-01-31 (ported from the ngdg project, then generalized)
17
- * @version 2.0.0
17
+ * @modified 2023-01-03 Fixing some minor type issues and adding SVG reading capabilities.
18
+ * @version 2.1.0
18
19
  */
19
20
  Object.defineProperty(exports, "__esModule", { value: true });
20
21
  exports.FileDrop = void 0;
@@ -35,7 +36,7 @@ var FileDrop = /** @class */ (function () {
35
36
  event.preventDefault();
36
37
  event.stopPropagation();
37
38
  _this.element.style.opacity = "1.0";
38
- if (!event.dataTransfer.files || event.dataTransfer.files.length === 0) {
39
+ if (!event.dataTransfer || !event.dataTransfer.files || event.dataTransfer.files.length === 0) {
39
40
  // No files were dropped
40
41
  return;
41
42
  }
@@ -43,39 +44,66 @@ var FileDrop = /** @class */ (function () {
43
44
  // Multiple file drop is not nupported
44
45
  return;
45
46
  }
46
- if (!_this.fileDroppedCallbackJSON) {
47
- // No handling callback defined.
48
- return;
49
- }
47
+ // if (!this.fileDroppedCallbackJSON) {
48
+ // // No handling callback defined.
49
+ // return;
50
+ // }
50
51
  if (event.dataTransfer.files[0]) {
51
52
  var file_1 = event.dataTransfer.files[0];
52
53
  // console.log("file", file);
53
- if (file_1.type.match(/json.*/) && _this.fileDroppedCallbackJSON) {
54
+ if (file_1.type.match(/json.*/) && _this.fileDroppedCallbackJSON !== null) {
54
55
  var reader = new FileReader();
55
56
  reader.onload = function (readEvent) {
57
+ if (!readEvent.target) {
58
+ console.warn("Cannot process JSON ProgressEvent data: target is null.");
59
+ return;
60
+ }
56
61
  // Finished reading file data.
57
62
  var jsonObject = JSON.parse(readEvent.target.result);
58
63
  // TODO: what happens on fail?
59
- _this.fileDroppedCallbackJSON(jsonObject);
64
+ _this.fileDroppedCallbackJSON && _this.fileDroppedCallbackJSON(jsonObject);
60
65
  };
61
66
  reader.readAsText(file_1); // start reading the file data.
62
67
  }
63
68
  else if (file_1.type.match(/text\/plain.*/) && _this.fileDroppedCallbackText) {
64
69
  var reader = new FileReader();
65
70
  reader.onload = function (readEvent) {
71
+ if (!readEvent.target) {
72
+ console.warn("Cannot process Text ProgressEvent data: target is null.");
73
+ return;
74
+ }
66
75
  // Finished reading file data.
67
- _this.fileDroppedCallbackText(readEvent.target.result);
76
+ _this.fileDroppedCallbackText && _this.fileDroppedCallbackText(readEvent.target.result);
68
77
  };
69
78
  reader.readAsText(file_1); // start reading the file data.
70
79
  }
71
80
  else if (_this.fileDroppedCallbackBinary) {
72
81
  var reader = new FileReader();
73
82
  reader.onload = function (readEvent) {
83
+ if (!readEvent.target) {
84
+ console.warn("Cannot process Binary ProgressEvent data: target is null.");
85
+ return;
86
+ }
74
87
  // Finished reading file data.
75
- _this.fileDroppedCallbackBinary(new Blob([readEvent.target.result]), file_1);
88
+ _this.fileDroppedCallbackBinary &&
89
+ _this.fileDroppedCallbackBinary(new Blob([readEvent.target.result]), file_1);
76
90
  };
77
91
  reader.readAsBinaryString(file_1); // start reading the file data.
78
92
  }
93
+ else if (_this.fileDroppedCallbackSVG) {
94
+ var reader = new FileReader();
95
+ reader.onload = function (readEvent) {
96
+ if (!readEvent.target) {
97
+ console.warn("Cannot process SVG ProgressEvent data: target is null.");
98
+ return;
99
+ }
100
+ var parser = new DOMParser();
101
+ var doc = parser.parseFromString(readEvent.target.result, "image/svg+xml");
102
+ // Finished reading file data.
103
+ _this.fileDroppedCallbackSVG && _this.fileDroppedCallbackSVG(doc);
104
+ };
105
+ reader.readAsText(file_1); // start reading the file data.
106
+ }
79
107
  }
80
108
  };
81
109
  /**
@@ -128,6 +156,9 @@ var FileDrop = /** @class */ (function () {
128
156
  FileDrop.prototype.onFileTextDropped = function (callback) {
129
157
  this.fileDroppedCallbackText = callback;
130
158
  };
159
+ FileDrop.prototype.onFileSVGDropped = function (callback) {
160
+ this.fileDroppedCallbackSVG = callback;
161
+ };
131
162
  /**
132
163
  * Removes all listeners (drop, dragover and dragleave).
133
164
  */
@@ -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;