plotboilerplate 1.24.0 → 1.26.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 (222) hide show
  1. package/README.md +14 -1
  2. package/dist/index.esm.js +433 -162
  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 +12312 -12041
  9. package/dist/plotboilerplate.min.js +1 -1
  10. package/package.json +9 -5
  11. package/src/cjs/Bounds.d.ts +79 -25
  12. package/src/cjs/Bounds.js +102 -29
  13. package/src/cjs/Bounds.js.map +1 -1
  14. package/src/cjs/CircleSector.d.ts +3 -0
  15. package/src/cjs/CircleSector.js +28 -1
  16. package/src/cjs/CircleSector.js.map +1 -1
  17. package/src/cjs/PlotBoilerplate.d.ts +37 -6
  18. package/src/cjs/PlotBoilerplate.js +222 -116
  19. package/src/cjs/PlotBoilerplate.js.map +1 -1
  20. package/src/cjs/Polygon.d.ts +26 -7
  21. package/src/cjs/Polygon.js +56 -10
  22. package/src/cjs/Polygon.js.map +1 -1
  23. package/src/cjs/Triangle.js +2 -2
  24. package/src/cjs/Triangle.js.map +1 -1
  25. package/src/cjs/Vertex.d.ts +15 -3
  26. package/src/cjs/Vertex.js +18 -1
  27. package/src/cjs/Vertex.js.map +1 -1
  28. package/src/cjs/drawutilssvg.d.ts +2 -1
  29. package/src/cjs/drawutilssvg.js +9 -3
  30. package/src/cjs/drawutilssvg.js.map +1 -1
  31. package/src/cjs/interfaces/core.d.ts +28 -0
  32. package/src/cjs/interfaces/core.js +2 -0
  33. package/src/cjs/interfaces/core.js.map +1 -1
  34. package/src/cjs/utils/LissajousFigure.d.ts +34 -0
  35. package/src/cjs/utils/LissajousFigure.js +100 -0
  36. package/src/cjs/utils/LissajousFigure.js.map +1 -0
  37. package/src/cjs/utils/PerlinNoise.d.ts +19 -0
  38. package/src/cjs/utils/PerlinNoise.js +352 -0
  39. package/src/cjs/utils/PerlinNoise.js.map +1 -0
  40. package/src/cjs/utils/SVGPathUtils.d.ts +22 -0
  41. package/src/cjs/utils/SVGPathUtils.js +45 -0
  42. package/src/cjs/utils/SVGPathUtils.js.map +1 -0
  43. package/src/cjs/utils/algorithms/pixelCornersToRoundPaths.d.ts +23 -0
  44. package/src/cjs/utils/algorithms/pixelCornersToRoundPaths.js +270 -0
  45. package/src/cjs/utils/algorithms/pixelCornersToRoundPaths.js.map +1 -0
  46. package/src/cjs/utils/datastructures/Color.d.ts +147 -1
  47. package/src/cjs/utils/datastructures/Color.js +385 -41
  48. package/src/cjs/utils/datastructures/Color.js.map +1 -1
  49. package/src/cjs/utils/datastructures/ColorGradient.d.ts +79 -0
  50. package/src/cjs/utils/datastructures/ColorGradient.js +171 -0
  51. package/src/cjs/utils/datastructures/ColorGradient.js.map +1 -0
  52. package/src/cjs/utils/datastructures/DataGrid2d.d.ts +6 -0
  53. package/src/cjs/utils/datastructures/DataGrid2dArrayMatrix.d.ts +88 -0
  54. package/src/cjs/utils/datastructures/DataGrid2dArrayMatrix.js +155 -0
  55. package/src/cjs/utils/datastructures/DataGrid2dArrayMatrix.js.map +1 -0
  56. package/src/cjs/utils/datastructures/DataGrid2dListAdapter.d.ts +1 -7
  57. package/src/cjs/utils/datastructures/DataGrid2dListAdapter.js +3 -3
  58. package/src/cjs/utils/datastructures/DataGrid2dListAdapter.js.map +1 -1
  59. package/src/cjs/utils/datastructures/GeometryMesh.d.ts +49 -0
  60. package/src/cjs/utils/datastructures/GeometryMesh.js +58 -0
  61. package/src/cjs/utils/datastructures/GeometryMesh.js.map +1 -0
  62. package/src/cjs/utils/detectDarkMode.js +16 -7
  63. package/src/cjs/utils/detectDarkMode.js.map +1 -1
  64. package/src/cjs/utils/dom/components/ColorGradientPicker.d.ts +246 -0
  65. package/src/cjs/utils/dom/components/ColorGradientPicker.js +667 -0
  66. package/src/cjs/utils/dom/components/ColorGradientPicker.js.map +1 -0
  67. package/src/cjs/utils/dom/components/ColorGradientPickerJSX.d.ts +129 -0
  68. package/src/cjs/utils/dom/components/ColorGradientPickerJSX.js +520 -0
  69. package/src/cjs/utils/dom/components/ColorGradientPickerJSX.js.map +1 -0
  70. package/src/cjs/utils/dom/components/ColorGradientSelector.d.ts +118 -0
  71. package/src/cjs/utils/dom/components/ColorGradientSelector.js +327 -0
  72. package/src/cjs/utils/dom/components/ColorGradientSelector.js.map +1 -0
  73. package/src/cjs/utils/dom/components/Test.d.ts +7 -0
  74. package/src/cjs/utils/dom/components/Test.js +30 -0
  75. package/src/cjs/utils/dom/components/Test.js.map +1 -0
  76. package/src/cjs/utils/dom/guiSizeToggler.js +1 -1
  77. package/src/cjs/utils/dom/guiSizeToggler.js.map +1 -1
  78. package/src/cjs/utils/helpers/BezierPathInteractionHelper.d.ts +9 -3
  79. package/src/cjs/utils/helpers/BezierPathInteractionHelper.js +20 -13
  80. package/src/cjs/utils/helpers/BezierPathInteractionHelper.js.map +1 -1
  81. package/src/cjs/utils/helpers/CircleHelper.d.ts +10 -1
  82. package/src/cjs/utils/helpers/CircleHelper.js +13 -2
  83. package/src/cjs/utils/helpers/CircleHelper.js.map +1 -1
  84. package/src/cjs/utils/helpers/CircleSectorHelper.d.ts +2 -2
  85. package/src/cjs/utils/helpers/CircleSectorHelper.js +1 -0
  86. package/src/cjs/utils/helpers/CircleSectorHelper.js.map +1 -1
  87. package/src/cjs/utils/helpers/TriangleHelper.d.ts +57 -0
  88. package/src/cjs/utils/helpers/TriangleHelper.js +83 -0
  89. package/src/cjs/utils/helpers/TriangleHelper.js.map +1 -0
  90. package/src/cjs/utils/helpers/VEllipseHelper.d.ts +6 -4
  91. package/src/cjs/utils/helpers/VEllipseHelper.js +4 -2
  92. package/src/cjs/utils/helpers/VEllipseHelper.js.map +1 -1
  93. package/src/cjs/utils/helpers/VEllipseSectorHelper.d.ts +3 -2
  94. package/src/cjs/utils/helpers/VEllipseSectorHelper.js +1 -0
  95. package/src/cjs/utils/helpers/VEllipseSectorHelper.js.map +1 -1
  96. package/src/cjs/utils/parsers/LinearColorGradientParser.d.ts +78 -0
  97. package/src/cjs/utils/parsers/LinearColorGradientParser.js +224 -0
  98. package/src/cjs/utils/parsers/LinearColorGradientParser.js.map +1 -0
  99. package/src/cjs/utils/parsers/svg/types.d.ts +8 -8
  100. package/src/createDemoDrawables.js +1 -0
  101. package/src/esm/Bounds.d.ts +79 -25
  102. package/src/esm/Bounds.js +102 -29
  103. package/src/esm/Bounds.js.map +1 -1
  104. package/src/esm/CircleSector.d.ts +3 -0
  105. package/src/esm/CircleSector.js +28 -1
  106. package/src/esm/CircleSector.js.map +1 -1
  107. package/src/esm/PlotBoilerplate.d.ts +37 -6
  108. package/src/esm/PlotBoilerplate.js +222 -116
  109. package/src/esm/PlotBoilerplate.js.map +1 -1
  110. package/src/esm/Polygon.d.ts +26 -7
  111. package/src/esm/Polygon.js +53 -10
  112. package/src/esm/Polygon.js.map +1 -1
  113. package/src/esm/Triangle.js +2 -2
  114. package/src/esm/Triangle.js.map +1 -1
  115. package/src/esm/Vertex.d.ts +15 -3
  116. package/src/esm/Vertex.js +18 -1
  117. package/src/esm/Vertex.js.map +1 -1
  118. package/src/esm/drawutilssvg.d.ts +2 -1
  119. package/src/esm/drawutilssvg.js +9 -3
  120. package/src/esm/drawutilssvg.js.map +1 -1
  121. package/src/esm/interfaces/core.d.ts +28 -0
  122. package/src/esm/interfaces/core.js +2 -0
  123. package/src/esm/interfaces/core.js.map +1 -1
  124. package/src/esm/utils/LissajousFigure.d.ts +34 -0
  125. package/src/esm/utils/LissajousFigure.js +95 -0
  126. package/src/esm/utils/LissajousFigure.js.map +1 -0
  127. package/src/esm/utils/PerlinNoise.d.ts +19 -0
  128. package/src/esm/utils/PerlinNoise.js +346 -0
  129. package/src/esm/utils/PerlinNoise.js.map +1 -0
  130. package/src/esm/utils/SVGPathUtils.d.ts +22 -0
  131. package/src/esm/utils/SVGPathUtils.js +42 -0
  132. package/src/esm/utils/SVGPathUtils.js.map +1 -0
  133. package/src/esm/utils/algorithms/pixelCornersToRoundPaths.d.ts +23 -0
  134. package/src/esm/utils/algorithms/pixelCornersToRoundPaths.js +266 -0
  135. package/src/esm/utils/algorithms/pixelCornersToRoundPaths.js.map +1 -0
  136. package/src/esm/utils/datastructures/Color.d.ts +147 -1
  137. package/src/esm/utils/datastructures/Color.js +386 -42
  138. package/src/esm/utils/datastructures/Color.js.map +1 -1
  139. package/src/esm/utils/datastructures/ColorGradient.d.ts +79 -0
  140. package/src/esm/utils/datastructures/ColorGradient.js +166 -0
  141. package/src/esm/utils/datastructures/ColorGradient.js.map +1 -0
  142. package/src/esm/utils/datastructures/DataGrid2d.d.ts +6 -0
  143. package/src/esm/utils/datastructures/DataGrid2dArrayMatrix.d.ts +88 -0
  144. package/src/esm/utils/datastructures/DataGrid2dArrayMatrix.js +150 -0
  145. package/src/esm/utils/datastructures/DataGrid2dArrayMatrix.js.map +1 -0
  146. package/src/esm/utils/datastructures/DataGrid2dListAdapter.d.ts +1 -7
  147. package/src/esm/utils/datastructures/DataGrid2dListAdapter.js +3 -3
  148. package/src/esm/utils/datastructures/DataGrid2dListAdapter.js.map +1 -1
  149. package/src/esm/utils/datastructures/GeometryMesh.d.ts +49 -0
  150. package/src/esm/utils/datastructures/GeometryMesh.js +53 -0
  151. package/src/esm/utils/datastructures/GeometryMesh.js.map +1 -0
  152. package/src/esm/utils/detectDarkMode.js +16 -7
  153. package/src/esm/utils/detectDarkMode.js.map +1 -1
  154. package/src/esm/utils/dom/components/ColorGradientPicker.d.ts +246 -0
  155. package/src/esm/utils/dom/components/ColorGradientPicker.js +743 -0
  156. package/src/esm/utils/dom/components/ColorGradientPicker.js.map +1 -0
  157. package/src/esm/utils/dom/components/ColorGradientPickerJSX.d.ts +129 -0
  158. package/src/esm/utils/dom/components/ColorGradientPickerJSX.js +582 -0
  159. package/src/esm/utils/dom/components/ColorGradientPickerJSX.js.map +1 -0
  160. package/src/esm/utils/dom/components/ColorGradientSelector.d.ts +118 -0
  161. package/src/esm/utils/dom/components/ColorGradientSelector.js +339 -0
  162. package/src/esm/utils/dom/components/ColorGradientSelector.js.map +1 -0
  163. package/src/esm/utils/dom/components/Test.d.ts +7 -0
  164. package/src/esm/utils/dom/components/Test.js +26 -0
  165. package/src/esm/utils/dom/components/Test.js.map +1 -0
  166. package/src/esm/utils/dom/guiSizeToggler.js +1 -1
  167. package/src/esm/utils/dom/guiSizeToggler.js.map +1 -1
  168. package/src/esm/utils/helpers/BezierPathInteractionHelper.d.ts +9 -3
  169. package/src/esm/utils/helpers/BezierPathInteractionHelper.js +20 -13
  170. package/src/esm/utils/helpers/BezierPathInteractionHelper.js.map +1 -1
  171. package/src/esm/utils/helpers/CircleHelper.d.ts +10 -1
  172. package/src/esm/utils/helpers/CircleHelper.js +13 -2
  173. package/src/esm/utils/helpers/CircleHelper.js.map +1 -1
  174. package/src/esm/utils/helpers/CircleSectorHelper.d.ts +2 -2
  175. package/src/esm/utils/helpers/CircleSectorHelper.js +1 -0
  176. package/src/esm/utils/helpers/CircleSectorHelper.js.map +1 -1
  177. package/src/esm/utils/helpers/TriangleHelper.d.ts +57 -0
  178. package/src/esm/utils/helpers/TriangleHelper.js +78 -0
  179. package/src/esm/utils/helpers/TriangleHelper.js.map +1 -0
  180. package/src/esm/utils/helpers/VEllipseHelper.d.ts +6 -4
  181. package/src/esm/utils/helpers/VEllipseHelper.js +4 -2
  182. package/src/esm/utils/helpers/VEllipseHelper.js.map +1 -1
  183. package/src/esm/utils/helpers/VEllipseSectorHelper.d.ts +3 -2
  184. package/src/esm/utils/helpers/VEllipseSectorHelper.js +1 -0
  185. package/src/esm/utils/helpers/VEllipseSectorHelper.js.map +1 -1
  186. package/src/esm/utils/parsers/LinearColorGradientParser.d.ts +78 -0
  187. package/src/esm/utils/parsers/LinearColorGradientParser.js +217 -0
  188. package/src/esm/utils/parsers/LinearColorGradientParser.js.map +1 -0
  189. package/src/esm/utils/parsers/svg/types.d.ts +8 -8
  190. package/src/external.d.ts +9 -0
  191. package/src/ts/Bounds.ts +107 -22
  192. package/src/ts/CircleSector.ts +39 -6
  193. package/src/ts/PlotBoilerplate.ts +233 -105
  194. package/src/ts/Polygon.ts +68 -14
  195. package/src/ts/Triangle.ts +2 -2
  196. package/src/ts/Vertex.ts +21 -3
  197. package/src/ts/drawutilssvg.ts +8 -3
  198. package/src/ts/interfaces/core.ts +31 -0
  199. package/src/ts/utils/LissajousFigure.ts +110 -0
  200. package/src/ts/utils/PerlinNoise.ts +368 -0
  201. package/src/ts/utils/SVGPathUtils.ts +55 -0
  202. package/src/ts/utils/algorithms/pixelCornersToRoundPaths.ts +379 -0
  203. package/src/ts/utils/datastructures/Color.ts +423 -44
  204. package/src/ts/utils/datastructures/ColorGradient.ts +196 -0
  205. package/src/ts/utils/datastructures/DataGrid2d.ts +7 -0
  206. package/src/ts/utils/datastructures/DataGrid2dArrayMatrix.ts +182 -0
  207. package/src/ts/utils/datastructures/DataGrid2dListAdapter.ts +4 -11
  208. package/src/ts/utils/datastructures/GeometryMesh.ts +79 -0
  209. package/src/ts/utils/detectDarkMode.ts +17 -8
  210. package/src/ts/utils/dom/components/ColorGradientPicker.tsx +889 -0
  211. package/src/ts/utils/dom/components/ColorGradientSelector.tsx +452 -0
  212. package/src/ts/utils/dom/components/Test.tsx +44 -0
  213. package/src/ts/utils/dom/components/_ColorGradientPicker_raw.ts_ +392 -0
  214. package/src/ts/utils/dom/guiSizeToggler.ts +1 -1
  215. package/src/ts/utils/helpers/BezierPathInteractionHelper.ts +25 -15
  216. package/src/ts/utils/helpers/CircleHelper.ts +17 -3
  217. package/src/ts/utils/helpers/CircleSectorHelper.ts +4 -2
  218. package/src/ts/utils/helpers/TriangleHelper.ts +102 -0
  219. package/src/ts/utils/helpers/VEllipseHelper.ts +6 -4
  220. package/src/ts/utils/helpers/VEllipseSectorHelper.ts +3 -2
  221. package/src/ts/utils/parsers/LinearColorGradientParser.ts +297 -0
  222. package/src/ts/utils/parsers/svg/types.ts +8 -8
@@ -0,0 +1,224 @@
1
+ "use strict";
2
+ /**
3
+ * A CSS gradient string parser.
4
+ *
5
+ * Source:
6
+ * https://stackoverflow.com/questions/20215440/parse-css-gradient-rule-with-javascript-regex
7
+ * Thanks to Dean Taylor
8
+ *
9
+ * @date 2025-09-04
10
+ * @OriginalAuthor Dean Taylor
11
+ * @RefactoredBy Ikaros Kappler, ported to Typescript.
12
+ * @version 1.0.0
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.LinearColorGradientParser = exports.__parseGradient = exports.DefaultPositionConverter = void 0;
16
+ var Color_1 = require("../datastructures/Color");
17
+ var ColorGradient_1 = require("../datastructures/ColorGradient");
18
+ /**
19
+ * The default implementation of `PositionToRatioConverter`.
20
+ * @param positionString
21
+ * @returns
22
+ */
23
+ var DefaultPositionConverter = function (positionString) {
24
+ if (typeof positionString === "undefined") {
25
+ throw new Error("Cannot parse positioning string `null`.");
26
+ }
27
+ var tmp = positionString.trim();
28
+ if (tmp.length === 0) {
29
+ throw new Error('Cannot parse empty positioning string "".');
30
+ }
31
+ if (!tmp.endsWith("%")) {
32
+ throw new Error("Cannot parse positioning string, must end with '%': '".concat(tmp, "'"));
33
+ }
34
+ return Number.parseFloat(tmp) / 100.0;
35
+ };
36
+ exports.DefaultPositionConverter = DefaultPositionConverter;
37
+ /**
38
+ * Utility combine multiple regular expressions.
39
+ *
40
+ * Source:
41
+ * https://stackoverflow.com/questions/20215440/parse-css-gradient-rule-with-javascript-regex
42
+ * Thanks to Dean Taylor
43
+ *
44
+ * @param {Array<RegExp | string>} regexpList List of regular expressions or strings.
45
+ * @param {string} flags Normal RegExp flags.
46
+ */
47
+ var __combineRegExp = function (regexpList, flags) {
48
+ var source = "";
49
+ for (var i = 0; i < regexpList.length; i++) {
50
+ var regex = regexpList[i];
51
+ if (typeof regex === "string") {
52
+ source += regex;
53
+ }
54
+ else {
55
+ source += regex.source;
56
+ }
57
+ }
58
+ return new RegExp(source, flags);
59
+ };
60
+ /**
61
+ * Generate the required regular expressions once.
62
+ *
63
+ * Regular Expressions are easier to manage this way and can be well described.
64
+ *
65
+ * @result {object} Object containing regular expressions.
66
+ */
67
+ var __generateDefaultRegExpLib = function () {
68
+ // Note any variables with "Capture" in name include capturing bracket set(s).
69
+ var searchFlags = "gi", // ignore case for angles, "rgb" etc
70
+ rAngle = /(?:[+-]?\d*\.?\d+)(?:deg|grad|rad|turn)/, // Angle +ive, -ive and angle types
71
+ rSideCornerCapture = /to\s+((?:(?:left|right)(?:\s+(?:top|bottom))?))/, // optional 2nd part
72
+ rComma = /\s*,\s*/, // Allow space around comma.
73
+ rColorHex = /\#(?:[a-f0-9]{6}|[a-f0-9]{3})/, // 3 or 6 character form
74
+ rDigits3 = /\(\s*(?:\d{1,3}\s*,\s*){2}\d{1,3}\s*\)/, // "(1, 2, 3)"
75
+ rDigits4 = /\(\s*(?:\d{1,3}\s*,\s*){2}\d{1,3}\s*,\s*\d*\.?\d+\)/, // "(1, 2, 3, 4)"
76
+ rValue = /(?:[+-]?\d*\.?\d+)(?:%|[a-z]+)?/, // ".9", "-5px", "100%".
77
+ rKeyword = /[_a-z-][_a-z0-9-]*/, // "red", "transparent", "border-collapse".
78
+ rColor = __combineRegExp(["(?:", rColorHex, "|", "(?:rgb|hsl)", rDigits3, "|", "(?:rgba|hsla)", rDigits4, "|", rKeyword, ")"], ""), rColorStop = __combineRegExp([rColor, "(?:\\s+", rValue, "(?:\\s+", rValue, ")?)?"], ""), // Single Color Stop, optional %, optional length.
79
+ rColorStopList = __combineRegExp(["(?:", rColorStop, rComma, ")*", rColorStop], ""), // List of color stops min 1.
80
+ rLineCapture = __combineRegExp(["(?:(", rAngle, ")|", rSideCornerCapture, ")"], ""), // Angle or SideCorner
81
+ rGradientSearch = __combineRegExp(["(?:(", rLineCapture, ")", rComma, ")?(", rColorStopList, ")"], searchFlags), // Capture 1:"line", 2:"angle" (optional), 3:"side corner" (optional) and 4:"stop list".
82
+ rColorStopSearch = __combineRegExp(["\\s*(", rColor, ")", "(?:\\s+", "(", rValue, "))?", "(?:", rComma, "\\s*)?"], searchFlags); // Capture 1:"color" and 2:"position" (optional).
83
+ return {
84
+ gradientSearch: rGradientSearch,
85
+ colorStopSearch: rColorStopSearch
86
+ };
87
+ };
88
+ /**
89
+ * Actually parse the input gradient parameters string into an object for reusability.
90
+ *
91
+ *
92
+ * @note Really this only supports the standard syntax not historical versions, see MDN for details
93
+ * https://developer.mozilla.org/en-US/docs/Web/CSS/linear-gradient
94
+ *
95
+ * @param {ColorGradientParserRegExpLib} regExpLib
96
+ * @param {string} input Input string in the form "to right bottom, #FF0 0%, red 20px, rgb(0, 0, 255) 100%"
97
+ * @returns {object|undefined} Object containing break down of input string including array of stop points.
98
+ */
99
+ var __parseGradient = function (regExpLib, input) {
100
+ var result;
101
+ var matchGradient, matchColorStop, stopResult;
102
+ // reset search position, because we reuse regex.
103
+ regExpLib.gradientSearch.lastIndex = 0;
104
+ matchGradient = regExpLib.gradientSearch.exec(input);
105
+ if (matchGradient !== null) {
106
+ result = {
107
+ original: matchGradient[0],
108
+ colorStopList: [],
109
+ line: null,
110
+ angle: null,
111
+ sideCorner: null
112
+ };
113
+ // Line (Angle or Side-Corner).
114
+ if (!!matchGradient[1]) {
115
+ result.line = matchGradient[1];
116
+ }
117
+ // Angle or undefined if side-corner.
118
+ if (!!matchGradient[2]) {
119
+ result.angle = matchGradient[2];
120
+ }
121
+ // Side-corner or undefined if angle.
122
+ if (!!matchGradient[3]) {
123
+ result.sideCorner = matchGradient[3];
124
+ }
125
+ // reset search position, because we reuse regex.
126
+ regExpLib.colorStopSearch.lastIndex = 0;
127
+ // Loop though all the color-stops.
128
+ matchColorStop = regExpLib.colorStopSearch.exec(matchGradient[4]);
129
+ while (matchColorStop !== null) {
130
+ stopResult = {
131
+ color: matchColorStop[1],
132
+ position: null
133
+ };
134
+ // Position (optional).
135
+ if (!!matchColorStop[2]) {
136
+ stopResult.position = matchColorStop[2];
137
+ }
138
+ result.colorStopList.push(stopResult);
139
+ // Continue searching from previous position.
140
+ matchColorStop = regExpLib.colorStopSearch.exec(matchGradient[4]);
141
+ }
142
+ }
143
+ // Can be undefined if match not found.
144
+ return result;
145
+ };
146
+ exports.__parseGradient = __parseGradient;
147
+ /**
148
+ * The actual parser class.
149
+ */
150
+ var LinearColorGradientParser = /** @class */ (function () {
151
+ function LinearColorGradientParser(regExpLib) {
152
+ this.regExpLib = regExpLib || __generateDefaultRegExpLib();
153
+ }
154
+ LinearColorGradientParser.prototype.parse = function (input, positionConverter) {
155
+ var result = this.parseRaw(input);
156
+ return LinearColorGradientParser.parseResultToColorGradient(result, positionConverter);
157
+ };
158
+ LinearColorGradientParser.prototype.parseRaw = function (input) {
159
+ var result;
160
+ var rGradientEnclosedInBrackets = /.*gradient\s*\(((?:\([^\)]*\)|[^\)\(]*)*)\)/; // Captures inside brackets - max one additional inner set.
161
+ var match = rGradientEnclosedInBrackets.exec(input);
162
+ var bracketPos = input.indexOf("(");
163
+ var gradientType = bracketPos === -1 ? null : input.substring(0, bracketPos).toLowerCase();
164
+ if (match !== null) {
165
+ // Get the parameters for the gradient
166
+ result = (0, exports.__parseGradient)(this.regExpLib, match[1]);
167
+ result.gradientType = gradientType;
168
+ if (result.original.trim() !== match[1].trim()) {
169
+ // Did not match the input exactly - possible parsing error.
170
+ result.parseWarning = true;
171
+ }
172
+ }
173
+ else {
174
+ // result = new Error("Failed to find gradient");
175
+ throw new Error("Failed to find gradient");
176
+ }
177
+ return result;
178
+ };
179
+ LinearColorGradientParser.parseResultToColorGradient = function (result, positionConverter) {
180
+ if (!result.gradientType || result.gradientType.toLowerCase() != "linear-gradient") {
181
+ throw new Error("Cannot create linear gradient from type '".concat(result.gradientType, "'."));
182
+ }
183
+ if (!result.colorStopList || result.colorStopList.length <= 1) {
184
+ throw new Error("Cannot create linear gradient from color stop list of length '".concat(result.colorStopList.length, "'. Too few elements."));
185
+ }
186
+ var colorStops = [];
187
+ var converter = positionConverter !== null && positionConverter !== void 0 ? positionConverter : exports.DefaultPositionConverter;
188
+ for (var i = 0; i < result.colorStopList.length; i++) {
189
+ var stopListItem = result.colorStopList[i];
190
+ console.log(stopListItem);
191
+ var color = Color_1.Color.parse(stopListItem.color);
192
+ // var position: number = LinearColorGradientParser.parsePosition(stopListItem.position);
193
+ var ratio;
194
+ if (typeof stopListItem.position === "undefined") {
195
+ // Try to auto-fill undefined positions by their index in the list.
196
+ ratio = i / (result.colorStopList.length - 1);
197
+ }
198
+ else {
199
+ ratio = converter(stopListItem.position);
200
+ }
201
+ colorStops.push({ color: color, ratio: ratio });
202
+ }
203
+ return new ColorGradient_1.ColorGradient(colorStops, result.line);
204
+ };
205
+ return LinearColorGradientParser;
206
+ }()); // END class
207
+ exports.LinearColorGradientParser = LinearColorGradientParser;
208
+ // var test_this_one = function (regExpLib, input) {
209
+ // var result,
210
+ // rGradientEnclosedInBrackets = /.*gradient\s*\(((?:\([^\)]*\)|[^\)\(]*)*)\)/, // Captures inside brackets - max one additional inner set.
211
+ // match = rGradientEnclosedInBrackets.exec(input);
212
+ // if (match !== null) {
213
+ // // Get the parameters for the gradient
214
+ // result = parseGradient(regExpLib, match[1]);
215
+ // if (result.original.trim() !== match[1].trim()) {
216
+ // // Did not match the input exactly - possible parsing error.
217
+ // result.parseWarning = true;
218
+ // }
219
+ // } else {
220
+ // result = "Failed to find gradient";
221
+ // }
222
+ // return result;
223
+ // };
224
+ //# sourceMappingURL=LinearColorGradientParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LinearColorGradientParser.js","sourceRoot":"","sources":["../../../ts/utils/parsers/LinearColorGradientParser.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@
14
14
  */
15
15
  export type NumericString = `${number}`;
16
16
  export type BooleanString = "0" | "1" | `${boolean}`;
17
- export type SVGPathMoveToCommand = ["M" | "m", NumericString, NumericString];
17
+ export type SVGPathMoveToCommand = ["M" | "m", NumericString | number, NumericString | number];
18
18
  export type SVGPathLineToCommand = ["L" | "l", NumericString, NumericString, ...Array<NumericString>];
19
19
  export type SVGPathVerticalLineToCommand = ["V" | "v", NumericString];
20
20
  export type SVGPathHorizontalLineToCommand = ["H" | "h", NumericString];
@@ -31,13 +31,13 @@ export type SVGPathQuadraticCurveToCommand = ["Q" | "q", NumericString, NumericS
31
31
  ];
32
32
  export type SVGPathCubicCurveToCommand = [
33
33
  "C" | "c",
34
- NumericString,
35
- NumericString,
36
- NumericString,
37
- NumericString,
38
- NumericString,
39
- NumericString,
40
- ...Array<NumericString>
34
+ NumericString | number,
35
+ NumericString | number,
36
+ NumericString | number,
37
+ NumericString | number,
38
+ NumericString | number,
39
+ NumericString | number,
40
+ ...Array<NumericString | number>
41
41
  ];
42
42
  export type SVGPathShorthandCubicCurveToCommand = [
43
43
  "S" | "s",
@@ -154,6 +154,7 @@ function createDemoDrawables(pb, imagePath, drawCallback) {
154
154
  new Vertex(diameter * 1.6, diameter * 1.6)
155
155
  )
156
156
  ];
157
+ // Hint: better use TriangleHelper class for this task.
157
158
  var setEquilateral = function (triangle) {
158
159
  const vec = new Vector(triangle.a, triangle.b);
159
160
  const mid = vec.vertAt(0.5);
@@ -13,7 +13,11 @@
13
13
  * @modified 2025-04-18 Change parameter type in `Bounds.computeFromVertices` from `Vertex` to more general `XYCoords`.
14
14
  * @modified 2025-04-19 Added methods to `Bounds` class: `getNorthPoint`, `getSouthPoint`, `getEastPoint` and `getWestPoint`.
15
15
  * @modified 2025-04-26 Added static method `Bounds.computeFromBoundsSet` to calculate containing bounds for a set of bounding boxes.
16
- * @version 1.8.0
16
+ * @modified 2025-10-17 Added the methods `Bounds.getSouthWestPoint`, `getNorthWestPoint`, `getNorthEastPoint` and `getSouthEastPoint`.
17
+ * @modified 2025-10-18 Added method `Bounds.containsVert(XYCoords)`.
18
+ * @modified 2025-10-28 Added the `Bounds.getWidth()` and `Bounds.getHeight()`.
19
+ * @modified 2025-11-12 Added the `Bounds.getMoved()` method.
20
+ * @version 1.11.0
17
21
  **/
18
22
  import { Polygon } from "./Polygon";
19
23
  import { XYCoords, IBounds, XYDimension } from "./interfaces";
@@ -63,6 +67,20 @@ export declare class Bounds implements IBounds, XYDimension {
63
67
  * @param {XYCoords} max - The max values (x,y) as a XYCoords tuple.
64
68
  **/
65
69
  constructor(min: XYCoords, max: XYCoords);
70
+ /**
71
+ * Check if the given vertex is inside this bounds.
72
+ *
73
+ * @method containsVert
74
+ * @param {XYCoords} vert - The vertex to check.
75
+ * @return {boolean} True if the passed vertex is inside this bounds.
76
+ * @instance
77
+ * @memberof Bounds
78
+ **/
79
+ containsVert(vert: XYCoords): boolean;
80
+ getWidth(): number;
81
+ getHeight(): number;
82
+ getScaled(scaleFactor: number): Bounds;
83
+ getMoved(moveAmount: XYCoords): Bounds;
66
84
  /**
67
85
  * Get the center point of the north bound.
68
86
  *
@@ -82,23 +100,59 @@ export declare class Bounds implements IBounds, XYDimension {
82
100
  */
83
101
  getSouthPoint(): Vertex;
84
102
  /**
85
- * Get the center point of the west bound.
86
- *
87
- * @method getWestPoint
88
- * @instance
89
- * @memberof Bounds
90
- * @return {Vertex} The "westhmost" centered point of this bounding box.
91
- */
103
+ * Get the center point of the west bound.
104
+ *
105
+ * @method getWestPoint
106
+ * @instance
107
+ * @memberof Bounds
108
+ * @return {Vertex} The "westhmost" centered point of this bounding box.
109
+ */
92
110
  getWestPoint(): Vertex;
93
111
  /**
94
- * Get the center point of the east bound.
95
- *
96
- * @method getEastPoint
97
- * @instance
98
- * @memberof Bounds
99
- * @return {Vertex} The "easthmost" centered point of this bounding box.
100
- */
112
+ * Get the center point of the east bound.
113
+ *
114
+ * @method getEastPoint
115
+ * @instance
116
+ * @memberof Bounds
117
+ * @return {Vertex} The "easthmost" centered point of this bounding box.
118
+ */
101
119
  getEastPoint(): Vertex;
120
+ /**
121
+ * Get the upper left corner point these bounds box.
122
+ *
123
+ * @method getNorthWestPoint
124
+ * @instance
125
+ * @memberof Bounds
126
+ * @return {Vertex} The "northwestmost" point of this bounding box.
127
+ */
128
+ getNorthWestPoint(): Vertex;
129
+ /**
130
+ * Get the upper right corner point these bounds box.
131
+ *
132
+ * @method getNorthEastPoint
133
+ * @instance
134
+ * @memberof Bounds
135
+ * @return {Vertex} The "northeastmost" point of this bounding box.
136
+ */
137
+ getNorthEastPoint(): Vertex;
138
+ /**
139
+ * Get the lower right corner point these bounds box.
140
+ *
141
+ * @method getSouthEastPoint
142
+ * @instance
143
+ * @memberof Bounds
144
+ * @return {Vertex} The "southeastmost" point of this bounding box.
145
+ */
146
+ getSouthEastPoint(): Vertex;
147
+ /**
148
+ * Get the lower left corner point these bounds box.
149
+ *
150
+ * @method getSouthWestPoint
151
+ * @instance
152
+ * @memberof Bounds
153
+ * @return {Vertex} The "southwestmost" point of this bounding box.
154
+ */
155
+ getSouthWestPoint(): Vertex;
102
156
  /**
103
157
  * Convert this rectangular bounding box to a polygon with four vertices.
104
158
  *
@@ -175,16 +229,16 @@ export declare class Bounds implements IBounds, XYDimension {
175
229
  **/
176
230
  static computeFromVertices(vertices: Array<XYCoords>): Bounds;
177
231
  /**
178
- * Compute the minimal bounding box for a given set of existing bounding boxes.
179
- *
180
- * An empty vertex array will return an empty bounding box located at (0,0).
181
- *
182
- * @static
183
- * @method computeFromBoundsSet
184
- * @memberof Bounds
185
- * @param {Array<IBounds>} boundingBoxes - The set of existing bounding boxes to get the containing bounding box for.
186
- * @return The minimal Bounds for the given bounds instances.
187
- **/
232
+ * Compute the minimal bounding box for a given set of existing bounding boxes.
233
+ *
234
+ * An empty vertex array will return an empty bounding box located at (0,0).
235
+ *
236
+ * @static
237
+ * @method computeFromBoundsSet
238
+ * @memberof Bounds
239
+ * @param {Array<IBounds>} boundingBoxes - The set of existing bounding boxes to get the containing bounding box for.
240
+ * @return The minimal Bounds for the given bounds instances.
241
+ **/
188
242
  static computeFromBoundsSet(boundingBoxes: Array<IBounds>): Bounds;
189
243
  /**
190
244
  * Create a new `Bounds` instance just from `width` and `height`, located at (0,0) or the optionally given origin.
package/src/esm/Bounds.js CHANGED
@@ -13,7 +13,11 @@
13
13
  * @modified 2025-04-18 Change parameter type in `Bounds.computeFromVertices` from `Vertex` to more general `XYCoords`.
14
14
  * @modified 2025-04-19 Added methods to `Bounds` class: `getNorthPoint`, `getSouthPoint`, `getEastPoint` and `getWestPoint`.
15
15
  * @modified 2025-04-26 Added static method `Bounds.computeFromBoundsSet` to calculate containing bounds for a set of bounding boxes.
16
- * @version 1.8.0
16
+ * @modified 2025-10-17 Added the methods `Bounds.getSouthWestPoint`, `getNorthWestPoint`, `getNorthEastPoint` and `getSouthEastPoint`.
17
+ * @modified 2025-10-18 Added method `Bounds.containsVert(XYCoords)`.
18
+ * @modified 2025-10-28 Added the `Bounds.getWidth()` and `Bounds.getHeight()`.
19
+ * @modified 2025-11-12 Added the `Bounds.getMoved()` method.
20
+ * @version 1.11.0
17
21
  **/
18
22
  import { Polygon } from "./Polygon";
19
23
  import { Vertex } from "./Vertex";
@@ -39,6 +43,35 @@ export class Bounds {
39
43
  this.width = max.x - min.x;
40
44
  this.height = max.y - min.y;
41
45
  }
46
+ /**
47
+ * Check if the given vertex is inside this bounds.
48
+ *
49
+ * @method containsVert
50
+ * @param {XYCoords} vert - The vertex to check.
51
+ * @return {boolean} True if the passed vertex is inside this bounds.
52
+ * @instance
53
+ * @memberof Bounds
54
+ **/
55
+ containsVert(vert) {
56
+ return this.min.x <= vert.x && vert.x < this.max.x && this.min.y <= vert.y && vert.y < this.max.y;
57
+ }
58
+ getWidth() {
59
+ return this.max.x - this.min.x;
60
+ }
61
+ getHeight() {
62
+ return this.max.y - this.min.y;
63
+ }
64
+ getScaled(scaleFactor) {
65
+ const center = this.getCenter();
66
+ const newMin = new Vertex(this.min).scale(scaleFactor, center);
67
+ const newMax = new Vertex(this.max).scale(scaleFactor, center);
68
+ return new Bounds(newMin, newMax);
69
+ }
70
+ getMoved(moveAmount) {
71
+ const newMin = new Vertex(this.min).move(moveAmount);
72
+ const newMax = new Vertex(this.max).move(moveAmount);
73
+ return new Bounds(newMin, newMax);
74
+ }
42
75
  /**
43
76
  * Get the center point of the north bound.
44
77
  *
@@ -50,7 +83,6 @@ export class Bounds {
50
83
  getNorthPoint() {
51
84
  return new Vertex(this.min.x + this.width / 2.0, this.min.y);
52
85
  }
53
- ;
54
86
  /**
55
87
  * Get the center point of the south bound.
56
88
  *
@@ -62,31 +94,72 @@ export class Bounds {
62
94
  getSouthPoint() {
63
95
  return new Vertex(this.min.x + this.width / 2.0, this.max.y);
64
96
  }
65
- ;
66
97
  /**
67
- * Get the center point of the west bound.
68
- *
69
- * @method getWestPoint
70
- * @instance
71
- * @memberof Bounds
72
- * @return {Vertex} The "westhmost" centered point of this bounding box.
73
- */
98
+ * Get the center point of the west bound.
99
+ *
100
+ * @method getWestPoint
101
+ * @instance
102
+ * @memberof Bounds
103
+ * @return {Vertex} The "westhmost" centered point of this bounding box.
104
+ */
74
105
  getWestPoint() {
75
106
  return new Vertex(this.min.x, this.min.y + this.height / 2.0);
76
107
  }
77
- ;
78
108
  /**
79
- * Get the center point of the east bound.
80
- *
81
- * @method getEastPoint
82
- * @instance
83
- * @memberof Bounds
84
- * @return {Vertex} The "easthmost" centered point of this bounding box.
85
- */
109
+ * Get the center point of the east bound.
110
+ *
111
+ * @method getEastPoint
112
+ * @instance
113
+ * @memberof Bounds
114
+ * @return {Vertex} The "easthmost" centered point of this bounding box.
115
+ */
86
116
  getEastPoint() {
87
117
  return new Vertex(this.max.x, this.min.y + this.height / 2.0);
88
118
  }
89
- ;
119
+ /**
120
+ * Get the upper left corner point these bounds box.
121
+ *
122
+ * @method getNorthWestPoint
123
+ * @instance
124
+ * @memberof Bounds
125
+ * @return {Vertex} The "northwestmost" point of this bounding box.
126
+ */
127
+ getNorthWestPoint() {
128
+ return new Vertex(this.min.x, this.min.y);
129
+ }
130
+ /**
131
+ * Get the upper right corner point these bounds box.
132
+ *
133
+ * @method getNorthEastPoint
134
+ * @instance
135
+ * @memberof Bounds
136
+ * @return {Vertex} The "northeastmost" point of this bounding box.
137
+ */
138
+ getNorthEastPoint() {
139
+ return new Vertex(this.max.x, this.min.y);
140
+ }
141
+ /**
142
+ * Get the lower right corner point these bounds box.
143
+ *
144
+ * @method getSouthEastPoint
145
+ * @instance
146
+ * @memberof Bounds
147
+ * @return {Vertex} The "southeastmost" point of this bounding box.
148
+ */
149
+ getSouthEastPoint() {
150
+ return new Vertex(this.max.x, this.max.y);
151
+ }
152
+ /**
153
+ * Get the lower left corner point these bounds box.
154
+ *
155
+ * @method getSouthWestPoint
156
+ * @instance
157
+ * @memberof Bounds
158
+ * @return {Vertex} The "southwestmost" point of this bounding box.
159
+ */
160
+ getSouthWestPoint() {
161
+ return new Vertex(this.min.x, this.max.y);
162
+ }
90
163
  /**
91
164
  * Convert this rectangular bounding box to a polygon with four vertices.
92
165
  *
@@ -197,16 +270,16 @@ export class Bounds {
197
270
  return new Bounds(new Vertex(xMin, yMin), new Vertex(xMax, yMax));
198
271
  }
199
272
  /**
200
- * Compute the minimal bounding box for a given set of existing bounding boxes.
201
- *
202
- * An empty vertex array will return an empty bounding box located at (0,0).
203
- *
204
- * @static
205
- * @method computeFromBoundsSet
206
- * @memberof Bounds
207
- * @param {Array<IBounds>} boundingBoxes - The set of existing bounding boxes to get the containing bounding box for.
208
- * @return The minimal Bounds for the given bounds instances.
209
- **/
273
+ * Compute the minimal bounding box for a given set of existing bounding boxes.
274
+ *
275
+ * An empty vertex array will return an empty bounding box located at (0,0).
276
+ *
277
+ * @static
278
+ * @method computeFromBoundsSet
279
+ * @memberof Bounds
280
+ * @param {Array<IBounds>} boundingBoxes - The set of existing bounding boxes to get the containing bounding box for.
281
+ * @return The minimal Bounds for the given bounds instances.
282
+ **/
210
283
  static computeFromBoundsSet(boundingBoxes) {
211
284
  if (boundingBoxes.length == 0) {
212
285
  return new Bounds(new Vertex(0, 0), new Vertex(0, 0));
@@ -1 +1 @@
1
- {"version":3,"file":"Bounds.js","sourceRoot":"","sources":["../ts/Bounds.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;IAgBI;AAEJ,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC;;;;;;IAMI;AACJ,MAAM,OAAO,MAAM;IAiCjB;;;;;;;QAOI;IACJ,YAAY,GAAa,EAAE,GAAa;QACtC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED;;;;;;;OAOG;IACH,aAAa;QACX,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAC,GAAG,EAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC;IAC/D,CAAC;IAAA,CAAC;IAEF;;;;;;;OAOG;IACH,aAAa;QACX,OAAO,IAAI,MAAM,CAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC;IAC/D,CAAC;IAAA,CAAC;IAED;;;;;;;MAOE;IACF,YAAY;QACX,OAAO,IAAI,MAAM,CAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAC,GAAG,CAAE,CAAC;IAChE,CAAC;IAAA,CAAC;IAED;;;;;;;MAOE;IACF,YAAY;QACX,OAAO,IAAI,MAAM,CAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAC,GAAG,CAAE,CAAC;IAChE,CAAC;IAAA,CAAC;IAGF;;;;;;;OAOG;IACH,SAAS;QACP,OAAO,IAAI,OAAO,CAChB,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EACpH,KAAK,CACN,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,SAAS;QACP,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9G,CAAC;IAED;;;;OAIG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED;;;;OAIG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;;;;;;OAUG;IACH,WAAW,CAAC,qBAA6B,CAAC,EAAE,mBAA2B,CAAC;QACtE,+CAA+C;QAC/C,MAAM,qBAAqB,GACzB,kBAAkB,GAAG,CAAC,IAAI,kBAAkB,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC;QAC1G,MAAM,mBAAmB,GAAG,gBAAgB,GAAG,CAAC,IAAI,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC;QAC7H,OAAO,IAAI,MAAM,CACf,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,qBAAqB,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,qBAAqB,CAAC,EAC7F,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,mBAAmB,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,mBAAmB,CAAC,CAC3F,CAAC;IACJ,CAAC;IAED;;;;;;;;;;OAUG;IACH,QAAQ;QACN,OAAO,UAAU,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,IAAI,CAAC,KAAK,cAAc,IAAI,CAAC,MAAM,IAAI,CAAC;IACxH,CAAC;IAED;;;;;;;OAOG;IACH,KAAK;QACH,OAAO,IAAI,MAAM,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IACxF,CAAC;IAED;;;;;;;;;;QAUI;IACJ,MAAM,CAAC,mBAAmB,CAAC,QAAyB;QAClD,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACzB,OAAO,IAAI,MAAM,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEzB,IAAI,IAAc,CAAC;QACnB,KAAK,IAAI,CAAC,IAAI,QAAQ,EAAE,CAAC;YACvB,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YACnB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC;QACD,OAAO,IAAI,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACpE,CAAC;IAEA;;;;;;;;;;OAUG;IACJ,MAAM,CAAC,oBAAoB,CAAC,aAA4B;QACtD,IAAI,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAC9B,OAAO,IAAI,MAAM,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAClC,IAAI,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAClC,IAAI,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAClC,IAAI,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAElC,IAAI,MAAe,CAAC;QACpB,KAAK,IAAI,CAAC,IAAI,aAAa,EAAE,CAAC;YAC5B,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACpC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACpC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACpC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,IAAI,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACpE,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,aAAa,CAAC,KAAa,EAAE,MAAc,EAAE,MAAiB;QACnE,OAAO,IAAI,MAAM,CAAC,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC;IAC3H,CAAC;CACF,CAAC,mBAAmB"}
1
+ {"version":3,"file":"Bounds.js","sourceRoot":"","sources":["../ts/Bounds.ts"],"names":[],"mappings":"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"}
@@ -172,6 +172,9 @@ export declare class CircleSector implements IBounded, Intersectable, SVGSeriali
172
172
  * @returns
173
173
  */
174
174
  lineIntersectionTangents(line: VertTuple<any>, inVectorBoundsOnly?: boolean): Array<Vector>;
175
+ describeSVGPath(options?: {
176
+ moveToStart: boolean;
177
+ }): SVGPathParams;
175
178
  /**
176
179
  * This function should invalidate any installed listeners and invalidate this object.
177
180
  * After calling this function the object might not hold valid data any more and