plotboilerplate 1.22.0 → 1.23.1

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 (315) hide show
  1. package/README.md +2 -0
  2. package/dist/index.esm.js +240 -79
  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 +510 -340
  9. package/dist/plotboilerplate.min.js +1 -1
  10. package/package.json +7 -4
  11. package/src/cjs/BezierPath.js.map +1 -1
  12. package/src/cjs/Bounds.js +1 -1
  13. package/src/cjs/Bounds.js.map +1 -1
  14. package/src/cjs/Circle.js.map +1 -1
  15. package/src/cjs/CircleSector.d.ts +64 -1
  16. package/src/cjs/CircleSector.js +121 -1
  17. package/src/cjs/CircleSector.js.map +1 -1
  18. package/src/cjs/CubicBezierCurve.js +2 -2
  19. package/src/cjs/CubicBezierCurve.js.map +1 -1
  20. package/src/cjs/Grid.js.map +1 -1
  21. package/src/cjs/KeyHandler.d.ts +1 -1
  22. package/src/cjs/KeyHandler.js +13 -13
  23. package/src/cjs/KeyHandler.js.map +1 -1
  24. package/src/cjs/Line.js +2 -0
  25. package/src/cjs/Line.js.map +1 -1
  26. package/src/cjs/MouseHandler.d.ts +2 -2
  27. package/src/cjs/MouseHandler.js +7 -5
  28. package/src/cjs/MouseHandler.js.map +1 -1
  29. package/src/cjs/PlotBoilerplate.d.ts +17 -4
  30. package/src/cjs/PlotBoilerplate.js +95 -66
  31. package/src/cjs/PlotBoilerplate.js.map +1 -1
  32. package/src/cjs/Polygon.js.map +1 -1
  33. package/src/cjs/Triangle.js +1 -1
  34. package/src/cjs/Triangle.js.map +1 -1
  35. package/src/cjs/UIDGenerator.js +1 -1
  36. package/src/cjs/UIDGenerator.js.map +1 -1
  37. package/src/cjs/VEllipse.js.map +1 -1
  38. package/src/cjs/VEllipseSector.js +1 -1
  39. package/src/cjs/VEllipseSector.js.map +1 -1
  40. package/src/cjs/Vector.js +2 -0
  41. package/src/cjs/Vector.js.map +1 -1
  42. package/src/cjs/VertTuple.js.map +1 -1
  43. package/src/cjs/Vertex.d.ts +3 -2
  44. package/src/cjs/Vertex.js +13 -7
  45. package/src/cjs/Vertex.js.map +1 -1
  46. package/src/cjs/VertexAttr.d.ts +2 -1
  47. package/src/cjs/VertexAttr.js +2 -1
  48. package/src/cjs/VertexAttr.js.map +1 -1
  49. package/src/cjs/VertexListeners.d.ts +1 -1
  50. package/src/cjs/VertexListeners.js.map +1 -1
  51. package/src/cjs/draw.js +1 -1
  52. package/src/cjs/draw.js.map +1 -1
  53. package/src/cjs/drawgl.js.map +1 -1
  54. package/src/cjs/drawutilssvg.d.ts +17 -3
  55. package/src/cjs/drawutilssvg.js +97 -91
  56. package/src/cjs/drawutilssvg.js.map +1 -1
  57. package/src/cjs/geomutils.js +2 -2
  58. package/src/cjs/geomutils.js.map +1 -1
  59. package/src/cjs/index.js +5 -1
  60. package/src/cjs/index.js.map +1 -1
  61. package/src/cjs/interfaces/DrawLib.d.ts +2 -2
  62. package/src/cjs/interfaces/core.d.ts +3 -3
  63. package/src/cjs/interfaces/externals.d.ts +12 -0
  64. package/src/cjs/interfaces/index.js +5 -1
  65. package/src/cjs/interfaces/index.js.map +1 -1
  66. package/src/cjs/utils/InitializationObserver.d.ts +18 -0
  67. package/src/cjs/utils/InitializationObserver.js +56 -0
  68. package/src/cjs/utils/InitializationObserver.js.map +1 -0
  69. package/src/cjs/utils/NGons.d.ts +13 -0
  70. package/src/cjs/utils/NGons.js +36 -0
  71. package/src/cjs/utils/NGons.js.map +1 -0
  72. package/src/cjs/utils/Params.js.map +1 -1
  73. package/src/cjs/utils/WebColors.js.map +1 -1
  74. package/src/cjs/utils/WebColorsContrast.js +1 -1
  75. package/src/cjs/utils/WebColorsContrast.js.map +1 -1
  76. package/src/cjs/utils/algorithms/CatmullRomPath.js.map +1 -1
  77. package/src/cjs/utils/algorithms/CircleIntersections.d.ts +3 -2
  78. package/src/cjs/utils/algorithms/CircleIntersections.js +12 -20
  79. package/src/cjs/utils/algorithms/CircleIntersections.js.map +1 -1
  80. package/src/cjs/utils/algorithms/ContourLineDetection.js +5 -5
  81. package/src/cjs/utils/algorithms/ContourLineDetection.js.map +1 -1
  82. package/src/cjs/utils/algorithms/CubicSplinePath.js.map +1 -1
  83. package/src/cjs/utils/algorithms/HobbyPath.js.map +1 -1
  84. package/src/cjs/utils/algorithms/Metaballs.d.ts +30 -0
  85. package/src/cjs/utils/algorithms/Metaballs.js +114 -0
  86. package/src/cjs/utils/algorithms/Metaballs.js.map +1 -0
  87. package/src/cjs/utils/algorithms/arrayResize.d.ts +8 -0
  88. package/src/cjs/utils/algorithms/arrayResize.js +24 -0
  89. package/src/cjs/utils/algorithms/arrayResize.js.map +1 -0
  90. package/src/cjs/utils/algorithms/clearDuplicateVertices.js.map +1 -1
  91. package/src/cjs/utils/algorithms/clearPolygonDuplicateVertices.js.map +1 -1
  92. package/src/cjs/utils/algorithms/convexHull.js.map +1 -1
  93. package/src/cjs/utils/algorithms/convexPolygonIncircle.js.map +1 -1
  94. package/src/cjs/utils/algorithms/delaunay.js.map +1 -1
  95. package/src/cjs/utils/algorithms/delaunay2voronoi.js.map +1 -1
  96. package/src/cjs/utils/algorithms/detectPaths.js.map +1 -1
  97. package/src/cjs/utils/algorithms/findPolygonSelfIntersections.js.map +1 -1
  98. package/src/cjs/utils/algorithms/matrixFill.js +1 -1
  99. package/src/cjs/utils/algorithms/matrixFill.js.map +1 -1
  100. package/src/cjs/utils/algorithms/splitPolygonToNonIntersecting.js.map +1 -1
  101. package/src/cjs/utils/algorithms/sutherlandHodgman.js.map +1 -1
  102. package/src/cjs/utils/cloneVertexArray.js.map +1 -1
  103. package/src/cjs/utils/creategui.js +320 -244
  104. package/src/cjs/utils/dat.gui.arrowbounce.polyfill.js +74 -73
  105. package/src/cjs/utils/dat.gui.title.polyfill.js +9 -7
  106. package/src/cjs/utils/datastructures/CircularIntervalSet.js.map +1 -1
  107. package/src/cjs/utils/datastructures/Color.d.ts +2 -1
  108. package/src/cjs/utils/datastructures/Color.js +35 -16
  109. package/src/cjs/utils/datastructures/Color.js.map +1 -1
  110. package/src/cjs/utils/datastructures/DataGrid2d.d.ts +1 -1
  111. package/src/cjs/utils/datastructures/DataGrid2dListAdapter.d.ts +2 -2
  112. package/src/cjs/utils/datastructures/DataGrid2dListAdapter.js +1 -1
  113. package/src/cjs/utils/datastructures/DataGrid2dListAdapter.js.map +1 -1
  114. package/src/cjs/utils/datastructures/GenericPath.js.map +1 -1
  115. package/src/cjs/utils/datastructures/Girih.d.ts +3 -2
  116. package/src/cjs/utils/datastructures/Girih.js +2 -1
  117. package/src/cjs/utils/datastructures/Girih.js.map +1 -1
  118. package/src/cjs/utils/datastructures/GirihBowtie.js +2 -0
  119. package/src/cjs/utils/datastructures/GirihBowtie.js.map +1 -1
  120. package/src/cjs/utils/datastructures/GirihDecagon.js +2 -0
  121. package/src/cjs/utils/datastructures/GirihDecagon.js.map +1 -1
  122. package/src/cjs/utils/datastructures/GirihHexagon.js +2 -0
  123. package/src/cjs/utils/datastructures/GirihHexagon.js.map +1 -1
  124. package/src/cjs/utils/datastructures/GirihPenroseRhombus.js +3 -1
  125. package/src/cjs/utils/datastructures/GirihPenroseRhombus.js.map +1 -1
  126. package/src/cjs/utils/datastructures/GirihPentagon.js +2 -0
  127. package/src/cjs/utils/datastructures/GirihPentagon.js.map +1 -1
  128. package/src/cjs/utils/datastructures/GirihRhombus.js +2 -0
  129. package/src/cjs/utils/datastructures/GirihRhombus.js.map +1 -1
  130. package/src/cjs/utils/datastructures/GirihTile.js +4 -2
  131. package/src/cjs/utils/datastructures/GirihTile.js.map +1 -1
  132. package/src/cjs/utils/datastructures/Matrix4x4.js.map +1 -1
  133. package/src/cjs/utils/datastructures/VoronoiCell.js.map +1 -1
  134. package/src/cjs/utils/datastructures/interfaces.d.ts +3 -3
  135. package/src/cjs/utils/detectDarkMode.js.map +1 -1
  136. package/src/cjs/utils/dom/getAvailableContainerSpace.js +1 -1
  137. package/src/cjs/utils/dom/getAvailableContainerSpace.js.map +1 -1
  138. package/src/cjs/utils/dom/guiSizeToggler.d.ts +17 -0
  139. package/src/cjs/utils/dom/guiSizeToggler.js +42 -0
  140. package/src/cjs/utils/dom/guiSizeToggler.js.map +1 -0
  141. package/src/cjs/utils/findInVertexArray.js.map +1 -1
  142. package/src/cjs/utils/gup.d.ts +8 -0
  143. package/src/cjs/utils/gup.js +8 -0
  144. package/src/cjs/utils/gup.js.map +1 -1
  145. package/src/cjs/utils/helpers/BezierPathInteractionHelper.d.ts +6 -5
  146. package/src/cjs/utils/helpers/BezierPathInteractionHelper.js +3 -2
  147. package/src/cjs/utils/helpers/BezierPathInteractionHelper.js.map +1 -1
  148. package/src/cjs/utils/helpers/CircleHelper.d.ts +38 -3
  149. package/src/cjs/utils/helpers/CircleHelper.js +51 -11
  150. package/src/cjs/utils/helpers/CircleHelper.js.map +1 -1
  151. package/src/cjs/utils/helpers/CircleSectorHelper.d.ts +47 -1
  152. package/src/cjs/utils/helpers/CircleSectorHelper.js +85 -14
  153. package/src/cjs/utils/helpers/CircleSectorHelper.js.map +1 -1
  154. package/src/cjs/utils/io/FileDrop.d.ts +3 -3
  155. package/src/cjs/utils/io/FileDrop.js.map +1 -1
  156. package/src/cjs/utils/lil.gui.arrowbounce.polyfill.js +133 -0
  157. package/src/cjs/utils/lil.gui.title.polyfill.js +32 -0
  158. package/src/cjs/utils/parsers/OBJParser.d.ts +2 -2
  159. package/src/cjs/utils/parsers/OBJParser.js.map +1 -1
  160. package/src/cjs/utils/parsers/STLParser.d.ts +4 -3
  161. package/src/cjs/utils/parsers/STLParser.js +62 -12
  162. package/src/cjs/utils/parsers/STLParser.js.map +1 -1
  163. package/src/cjs/utils/parsers/svg/parseSVGPathData.js +1 -1
  164. package/src/cjs/utils/parsers/svg/parseSVGPathData.js.map +1 -1
  165. package/src/cjs/utils/parsers/svg/splitSVGPathData.js.map +1 -1
  166. package/src/cjs/utils/parsers/svg/types.d.ts +13 -13
  167. package/src/createDemoDrawables.js +48 -3
  168. package/src/esm/BezierPath.js.map +1 -1
  169. package/src/esm/Bounds.js.map +1 -1
  170. package/src/esm/Circle.js.map +1 -1
  171. package/src/esm/CircleSector.d.ts +64 -1
  172. package/src/esm/CircleSector.js +121 -1
  173. package/src/esm/CircleSector.js.map +1 -1
  174. package/src/esm/CubicBezierCurve.js.map +1 -1
  175. package/src/esm/Grid.js.map +1 -1
  176. package/src/esm/KeyHandler.d.ts +1 -1
  177. package/src/esm/KeyHandler.js +13 -13
  178. package/src/esm/KeyHandler.js.map +1 -1
  179. package/src/esm/Line.js.map +1 -1
  180. package/src/esm/MouseHandler.d.ts +2 -2
  181. package/src/esm/MouseHandler.js +4 -4
  182. package/src/esm/MouseHandler.js.map +1 -1
  183. package/src/esm/PlotBoilerplate.d.ts +17 -4
  184. package/src/esm/PlotBoilerplate.js +61 -32
  185. package/src/esm/PlotBoilerplate.js.map +1 -1
  186. package/src/esm/Polygon.js.map +1 -1
  187. package/src/esm/Triangle.js.map +1 -1
  188. package/src/esm/VEllipse.js.map +1 -1
  189. package/src/esm/VEllipseSector.js +1 -1
  190. package/src/esm/VEllipseSector.js.map +1 -1
  191. package/src/esm/Vector.js.map +1 -1
  192. package/src/esm/VertTuple.js.map +1 -1
  193. package/src/esm/Vertex.d.ts +3 -2
  194. package/src/esm/Vertex.js +9 -3
  195. package/src/esm/Vertex.js.map +1 -1
  196. package/src/esm/VertexAttr.d.ts +2 -1
  197. package/src/esm/VertexAttr.js +2 -1
  198. package/src/esm/VertexAttr.js.map +1 -1
  199. package/src/esm/VertexListeners.d.ts +1 -1
  200. package/src/esm/VertexListeners.js.map +1 -1
  201. package/src/esm/draw.js.map +1 -1
  202. package/src/esm/drawgl.js.map +1 -1
  203. package/src/esm/drawutilssvg.d.ts +17 -3
  204. package/src/esm/drawutilssvg.js +28 -22
  205. package/src/esm/drawutilssvg.js.map +1 -1
  206. package/src/esm/geomutils.js +2 -2
  207. package/src/esm/geomutils.js.map +1 -1
  208. package/src/esm/interfaces/DrawLib.d.ts +2 -2
  209. package/src/esm/interfaces/core.d.ts +3 -3
  210. package/src/esm/interfaces/externals.d.ts +12 -0
  211. package/src/esm/utils/InitializationObserver.d.ts +18 -0
  212. package/src/esm/utils/InitializationObserver.js +50 -0
  213. package/src/esm/utils/InitializationObserver.js.map +1 -0
  214. package/src/esm/utils/NGons.d.ts +13 -0
  215. package/src/esm/utils/NGons.js +33 -0
  216. package/src/esm/utils/NGons.js.map +1 -0
  217. package/src/esm/utils/Params.js.map +1 -1
  218. package/src/esm/utils/WebColors.js.map +1 -1
  219. package/src/esm/utils/algorithms/CatmullRomPath.js.map +1 -1
  220. package/src/esm/utils/algorithms/CircleIntersections.d.ts +3 -2
  221. package/src/esm/utils/algorithms/CircleIntersections.js +11 -19
  222. package/src/esm/utils/algorithms/CircleIntersections.js.map +1 -1
  223. package/src/esm/utils/algorithms/ContourLineDetection.js.map +1 -1
  224. package/src/esm/utils/algorithms/CubicSplinePath.js.map +1 -1
  225. package/src/esm/utils/algorithms/HobbyPath.js.map +1 -1
  226. package/src/esm/utils/algorithms/Metaballs.d.ts +30 -0
  227. package/src/esm/utils/algorithms/Metaballs.js +109 -0
  228. package/src/esm/utils/algorithms/Metaballs.js.map +1 -0
  229. package/src/esm/utils/algorithms/arrayResize.d.ts +8 -0
  230. package/src/esm/utils/algorithms/arrayResize.js +20 -0
  231. package/src/esm/utils/algorithms/arrayResize.js.map +1 -0
  232. package/src/esm/utils/algorithms/clearDuplicateVertices.js.map +1 -1
  233. package/src/esm/utils/algorithms/clearPolygonDuplicateVertices.js.map +1 -1
  234. package/src/esm/utils/algorithms/convexHull.js.map +1 -1
  235. package/src/esm/utils/algorithms/convexPolygonIncircle.js.map +1 -1
  236. package/src/esm/utils/algorithms/delaunay.js.map +1 -1
  237. package/src/esm/utils/algorithms/delaunay2voronoi.js.map +1 -1
  238. package/src/esm/utils/algorithms/detectPaths.js.map +1 -1
  239. package/src/esm/utils/algorithms/findPolygonSelfIntersections.js.map +1 -1
  240. package/src/esm/utils/algorithms/matrixFill.js.map +1 -1
  241. package/src/esm/utils/algorithms/splitPolygonToNonIntersecting.js.map +1 -1
  242. package/src/esm/utils/algorithms/sutherlandHodgman.js.map +1 -1
  243. package/src/esm/utils/cloneVertexArray.js.map +1 -1
  244. package/src/esm/utils/datastructures/CircularIntervalSet.js.map +1 -1
  245. package/src/esm/utils/datastructures/Color.d.ts +2 -1
  246. package/src/esm/utils/datastructures/Color.js +33 -14
  247. package/src/esm/utils/datastructures/Color.js.map +1 -1
  248. package/src/esm/utils/datastructures/DataGrid2d.d.ts +1 -1
  249. package/src/esm/utils/datastructures/DataGrid2dListAdapter.d.ts +2 -2
  250. package/src/esm/utils/datastructures/DataGrid2dListAdapter.js.map +1 -1
  251. package/src/esm/utils/datastructures/GenericPath.js.map +1 -1
  252. package/src/esm/utils/datastructures/Girih.d.ts +3 -2
  253. package/src/esm/utils/datastructures/Girih.js +2 -1
  254. package/src/esm/utils/datastructures/Girih.js.map +1 -1
  255. package/src/esm/utils/datastructures/GirihBowtie.js.map +1 -1
  256. package/src/esm/utils/datastructures/GirihDecagon.js.map +1 -1
  257. package/src/esm/utils/datastructures/GirihHexagon.js.map +1 -1
  258. package/src/esm/utils/datastructures/GirihPenroseRhombus.js +1 -1
  259. package/src/esm/utils/datastructures/GirihPenroseRhombus.js.map +1 -1
  260. package/src/esm/utils/datastructures/GirihPentagon.js.map +1 -1
  261. package/src/esm/utils/datastructures/GirihRhombus.js.map +1 -1
  262. package/src/esm/utils/datastructures/GirihTile.js.map +1 -1
  263. package/src/esm/utils/datastructures/Matrix4x4.js.map +1 -1
  264. package/src/esm/utils/datastructures/VoronoiCell.js.map +1 -1
  265. package/src/esm/utils/datastructures/interfaces.d.ts +3 -3
  266. package/src/esm/utils/detectDarkMode.js.map +1 -1
  267. package/src/esm/utils/dom/guiSizeToggler.d.ts +17 -0
  268. package/src/esm/utils/dom/guiSizeToggler.js +38 -0
  269. package/src/esm/utils/dom/guiSizeToggler.js.map +1 -0
  270. package/src/esm/utils/findInVertexArray.js.map +1 -1
  271. package/src/esm/utils/gup.d.ts +8 -0
  272. package/src/esm/utils/gup.js +8 -0
  273. package/src/esm/utils/gup.js.map +1 -1
  274. package/src/esm/utils/helpers/BezierPathInteractionHelper.d.ts +6 -5
  275. package/src/esm/utils/helpers/BezierPathInteractionHelper.js +3 -2
  276. package/src/esm/utils/helpers/BezierPathInteractionHelper.js.map +1 -1
  277. package/src/esm/utils/helpers/CircleHelper.d.ts +38 -3
  278. package/src/esm/utils/helpers/CircleHelper.js +51 -11
  279. package/src/esm/utils/helpers/CircleHelper.js.map +1 -1
  280. package/src/esm/utils/helpers/CircleSectorHelper.d.ts +47 -1
  281. package/src/esm/utils/helpers/CircleSectorHelper.js +85 -14
  282. package/src/esm/utils/helpers/CircleSectorHelper.js.map +1 -1
  283. package/src/esm/utils/io/FileDrop.d.ts +3 -3
  284. package/src/esm/utils/io/FileDrop.js.map +1 -1
  285. package/src/esm/utils/parsers/OBJParser.d.ts +2 -2
  286. package/src/esm/utils/parsers/OBJParser.js.map +1 -1
  287. package/src/esm/utils/parsers/STLParser.d.ts +4 -3
  288. package/src/esm/utils/parsers/STLParser.js +63 -13
  289. package/src/esm/utils/parsers/STLParser.js.map +1 -1
  290. package/src/esm/utils/parsers/svg/parseSVGPathData.js.map +1 -1
  291. package/src/esm/utils/parsers/svg/splitSVGPathData.js.map +1 -1
  292. package/src/esm/utils/parsers/svg/types.d.ts +13 -13
  293. package/src/index-gl.js +77 -85
  294. package/src/index.js +124 -129
  295. package/src/ts/CircleSector.ts +134 -3
  296. package/src/ts/PlotBoilerplate.ts +51 -14
  297. package/src/ts/Vertex.ts +8 -3
  298. package/src/ts/VertexAttr.ts +3 -2
  299. package/src/ts/drawutilssvg.ts +38 -25
  300. package/src/ts/geomutils.ts +60 -64
  301. package/src/ts/interfaces/DrawLib.ts +0 -15
  302. package/src/ts/interfaces/externals.ts +16 -0
  303. package/src/ts/utils/InitializationObserver.ts +63 -0
  304. package/src/ts/utils/NGons.ts +35 -0
  305. package/src/ts/utils/algorithms/CircleIntersections.ts +280 -288
  306. package/src/ts/utils/algorithms/Metaballs.ts +144 -0
  307. package/src/ts/utils/algorithms/arrayResize.ts +22 -0
  308. package/src/ts/utils/datastructures/Color.ts +39 -15
  309. package/src/ts/utils/datastructures/Girih.ts +9 -8
  310. package/src/ts/utils/dom/guiSizeToggler.ts +45 -0
  311. package/src/ts/utils/gup.ts +10 -2
  312. package/src/ts/utils/helpers/BezierPathInteractionHelper.ts +9 -8
  313. package/src/ts/utils/helpers/CircleHelper.ts +70 -22
  314. package/src/ts/utils/helpers/CircleSectorHelper.ts +101 -17
  315. package/src/ts/utils/parsers/STLParser.ts +50 -16
@@ -84,12 +84,18 @@
84
84
  * @modified 2023-02-10 Cleaning up most type errors in the main class (mostly null checks).
85
85
  * @modified 2023-02-10 Adding `enableZoom` and `enablePan` (both default true) to have the option to disable these functions.
86
86
  * @modified 2023-09-29 Adding proper dicionary key and value types to the params of `PlotBoilerplate.utils.safeMergeByKeys` (was `object` before).
87
- * @version 1.17.3
87
+ * @modified 2024-07-08 Adding `PlotBoilerplate.getGUI()` to retrieve the GUI instance.
88
+ *
89
+ * @version 1.18.0
88
90
  *
89
91
  * @file PlotBoilerplate
90
92
  * @fileoverview The main class.
91
93
  * @public
92
94
  **/
95
+ var __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) {
96
+ if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : "";
97
+ return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name });
98
+ };
93
99
  Object.defineProperty(exports, "__esModule", { value: true });
94
100
  exports.PlotBoilerplate = void 0;
95
101
  var alloyfinger_typescript_1 = require("alloyfinger-typescript");
@@ -203,8 +209,8 @@ var PlotBoilerplate = /** @class */ (function () {
203
209
  * Note that changes from the postDraw hook might not be visible in the export.
204
210
  * @param {string=} [config.title=null] - Specify any hover tile here. It will be attached as a `title` attribute to the most elevated element.
205
211
  */
206
- function PlotBoilerplate(config) {
207
- var _a, _b;
212
+ function PlotBoilerplate(config, drawConfig) {
213
+ var _b, _c;
208
214
  /**
209
215
  * A discrete timestamp to identify single render cycles.
210
216
  * Note that using system time milliseconds is not a safe way to identify render frames, as on modern powerful machines
@@ -215,6 +221,10 @@ var PlotBoilerplate = /** @class */ (function () {
215
221
  * @private
216
222
  */
217
223
  this.renderTime = 0;
224
+ /**
225
+ * A storage variable for retrieving the GUI instance once it was created.
226
+ */
227
+ this._gui = null;
218
228
  // This should be in some static block ...
219
229
  VertexAttr_1.VertexAttr.model = {
220
230
  bezierAutoAdjust: false,
@@ -278,8 +288,8 @@ var PlotBoilerplate = /** @class */ (function () {
278
288
  enableTouch: f.bool(config, "enableTouch", true),
279
289
  enableKeys: f.bool(config, "enableKeys", true),
280
290
  enableMouseWheel: f.bool(config, "enableMouseWheel", true),
281
- enableZoom: f.bool(config, "enableZoom", true),
282
- enablePan: f.bool(config, "enablePan", true),
291
+ enableZoom: f.bool(config, "enableZoom", true), // default=true
292
+ enablePan: f.bool(config, "enablePan", true), // default=true
283
293
  // Experimental (and unfinished)
284
294
  enableGL: f.bool(config, "enableGL", false)
285
295
  }; // END confog
@@ -381,7 +391,7 @@ var PlotBoilerplate = /** @class */ (function () {
381
391
  this.canvasSize = { width: PlotBoilerplate.DEFAULT_CANVAS_WIDTH, height: PlotBoilerplate.DEFAULT_CANVAS_HEIGHT };
382
392
  var canvasElement = typeof config.canvas === "string" ? document.querySelector(config.canvas) : config.canvas;
383
393
  if (typeof canvasElement === "undefined") {
384
- throw "Cannot initialize PlotBoilerplate with a null canvas (element \"" + config.canvas + " not found).";
394
+ throw "Cannot initialize PlotBoilerplate with a null canvas (element \"".concat(config.canvas, " not found).");
385
395
  }
386
396
  // Which renderer to use: Canvas2D, WebGL (experimental) or SVG?
387
397
  if (canvasElement.tagName.toLowerCase() === "canvas") {
@@ -439,8 +449,8 @@ var PlotBoilerplate = /** @class */ (function () {
439
449
  if (config.title) {
440
450
  this.eventCatcher.setAttribute("title", config.title);
441
451
  }
442
- this.draw.scale.set((_a = this.config.scaleX) !== null && _a !== void 0 ? _a : 1.0, this.config.scaleY);
443
- this.fill.scale.set((_b = this.config.scaleX) !== null && _b !== void 0 ? _b : 1.0, this.config.scaleY);
452
+ this.draw.scale.set((_b = this.config.scaleX) !== null && _b !== void 0 ? _b : 1.0, this.config.scaleY);
453
+ this.fill.scale.set((_c = this.config.scaleX) !== null && _c !== void 0 ? _c : 1.0, this.config.scaleY);
444
454
  this.vertices = [];
445
455
  this.selectPolygon = null;
446
456
  this.draggedElements = [];
@@ -506,8 +516,9 @@ var PlotBoilerplate = /** @class */ (function () {
506
516
  var blob = new Blob(['<?xml version="1.0" encoding="utf-8"?>\n' + svgCode], { type: "image/svg;charset=utf-8" });
507
517
  // See documentation for FileSaver.js for usage.
508
518
  // https://github.com/eligrey/FileSaver.js
509
- if (typeof globalThis["saveAs"] !== "function")
519
+ if (typeof globalThis["saveAs"] !== "function") {
510
520
  throw "Cannot save file; did you load the ./utils/savefile helper function and the eligrey/SaveFile library?";
521
+ }
511
522
  var _saveAs = globalThis["saveAs"];
512
523
  _saveAs(blob, "plotboilerplate.svg");
513
524
  };
@@ -578,12 +589,12 @@ var PlotBoilerplate = /** @class */ (function () {
578
589
  * @private
579
590
  **/
580
591
  PlotBoilerplate.prototype.updateCSSscale = function () {
581
- var _a, _b, _c, _d;
592
+ var _b, _c, _d, _e;
582
593
  if (this.config.cssUniformScale) {
583
- PlotBoilerplate.utils.setCSSscale(this.canvas, (_a = this.config.cssScaleX) !== null && _a !== void 0 ? _a : 1.0, (_b = this.config.cssScaleX) !== null && _b !== void 0 ? _b : 1.0);
594
+ PlotBoilerplate.utils.setCSSscale(this.canvas, (_b = this.config.cssScaleX) !== null && _b !== void 0 ? _b : 1.0, (_c = this.config.cssScaleX) !== null && _c !== void 0 ? _c : 1.0);
584
595
  }
585
596
  else {
586
- PlotBoilerplate.utils.setCSSscale(this.canvas, (_c = this.config.cssScaleX) !== null && _c !== void 0 ? _c : 1.0, (_d = this.config.cssScaleY) !== null && _d !== void 0 ? _d : 1.0);
597
+ PlotBoilerplate.utils.setCSSscale(this.canvas, (_d = this.config.cssScaleX) !== null && _d !== void 0 ? _d : 1.0, (_e = this.config.cssScaleY) !== null && _e !== void 0 ? _e : 1.0);
587
598
  }
588
599
  };
589
600
  /**
@@ -856,8 +867,8 @@ var PlotBoilerplate = /** @class */ (function () {
856
867
  * @return The vertex near the given position or undefined if none was found there.
857
868
  **/
858
869
  PlotBoilerplate.prototype.getVertexNear = function (pixelPosition, pixelTolerance) {
859
- var _a, _b;
860
- var p = this.locatePointNear(this.transformMousePosition(pixelPosition.x, pixelPosition.y), pixelTolerance / Math.min((_a = this.config.cssScaleX) !== null && _a !== void 0 ? _a : 1.0, (_b = this.config.cssScaleY) !== null && _b !== void 0 ? _b : 1.0));
870
+ var _b, _c;
871
+ var p = this.locatePointNear(this.transformMousePosition(pixelPosition.x, pixelPosition.y), pixelTolerance / Math.min((_b = this.config.cssScaleX) !== null && _b !== void 0 ? _b : 1.0, (_c = this.config.cssScaleY) !== null && _c !== void 0 ? _c : 1.0));
861
872
  if (p && p.typeName == "vertex") {
862
873
  return this.vertices[p.vindex];
863
874
  }
@@ -975,16 +986,16 @@ var PlotBoilerplate = /** @class */ (function () {
975
986
  var curveIndex = 0;
976
987
  for (var c in d.bezierCurves) {
977
988
  // Restore these settings again in each loop (will be overwritten)
978
- this.draw.setCurrentId(d.uid + "-" + curveIndex);
979
- this.fill.setCurrentId(d.uid + "-" + curveIndex);
989
+ this.draw.setCurrentId("".concat(d.uid, "-").concat(curveIndex));
990
+ this.fill.setCurrentId("".concat(d.uid, "-").concat(curveIndex));
980
991
  this.draw.setCurrentClassName(d.className);
981
992
  this.fill.setCurrentClassName(d.className);
982
993
  draw.cubicBezier(d.bezierCurves[c].startPoint, d.bezierCurves[c].endPoint, d.bezierCurves[c].startControlPoint, d.bezierCurves[c].endControlPoint, this.drawConfig.bezier.color, this.drawConfig.bezier.lineWidth);
983
994
  if (this.drawConfig.drawBezierHandlePoints && this.drawConfig.drawHandlePoints) {
984
995
  if (d.bezierCurves[c].startPoint.attr.visible) {
985
996
  var df = this.drawConfig.bezier.pathVertex.fill ? fill : draw;
986
- df.setCurrentId(d.uid + "_h0");
987
- df.setCurrentClassName(d.className + "-start-handle");
997
+ df.setCurrentId("".concat(d.uid, "_h0"));
998
+ df.setCurrentClassName("".concat(d.className, "-start-handle"));
988
999
  if (d.bezierCurves[c].startPoint.attr.bezierAutoAdjust) {
989
1000
  df.squareHandle(d.bezierCurves[c].startPoint, 5, this._handleColor(d.bezierCurves[c].startPoint, this.drawConfig.bezier.pathVertex.color));
990
1001
  }
@@ -995,8 +1006,8 @@ var PlotBoilerplate = /** @class */ (function () {
995
1006
  d.bezierCurves[c].startPoint.attr.renderTime = renderTime;
996
1007
  if (d.bezierCurves[c].endPoint.attr.visible) {
997
1008
  var df = this.drawConfig.bezier.pathVertex.fill ? fill : draw;
998
- df.setCurrentId(d.uid + "_h0");
999
- df.setCurrentClassName(d.className + "-start-handle");
1009
+ df.setCurrentId("".concat(d.uid, "_h0"));
1010
+ df.setCurrentClassName("".concat(d.className, "-start-handle"));
1000
1011
  if (d.bezierCurves[c].endPoint.attr.bezierAutoAdjust) {
1001
1012
  df.squareHandle(d.bezierCurves[c].endPoint, 5, this._handleColor(d.bezierCurves[c].endPoint, this.drawConfig.bezier.pathVertex.color));
1002
1013
  }
@@ -1006,14 +1017,14 @@ var PlotBoilerplate = /** @class */ (function () {
1006
1017
  }
1007
1018
  if (d.bezierCurves[c].startControlPoint.attr.visible) {
1008
1019
  var df = this.drawConfig.bezier.controlVertex.fill ? fill : draw;
1009
- df.setCurrentId(d.uid + "_h2");
1010
- df.setCurrentClassName(d.className + "-start-control-handle");
1020
+ df.setCurrentId("".concat(d.uid, "_h2"));
1021
+ df.setCurrentClassName("".concat(d.className, "-start-control-handle"));
1011
1022
  df.circleHandle(d.bezierCurves[c].startControlPoint, 3, this._handleColor(d.bezierCurves[c].startControlPoint, this.drawConfig.bezier.controlVertex.color));
1012
1023
  }
1013
1024
  if (d.bezierCurves[c].endControlPoint.attr.visible) {
1014
1025
  var df = this.drawConfig.bezier.controlVertex.fill ? fill : draw;
1015
- df.setCurrentId(d.uid + "_h3");
1016
- df.setCurrentClassName(d.className + "-end-control-handle");
1026
+ df.setCurrentId("".concat(d.uid, "_h3"));
1027
+ df.setCurrentClassName("".concat(d.className, "-end-control-handle"));
1017
1028
  df.circleHandle(d.bezierCurves[c].endControlPoint, 3, this._handleColor(d.bezierCurves[c].endControlPoint, this.drawConfig.bezier.controlVertex.color));
1018
1029
  }
1019
1030
  d.bezierCurves[c].startPoint.attr.renderTime = renderTime;
@@ -1028,11 +1039,11 @@ var PlotBoilerplate = /** @class */ (function () {
1028
1039
  d.bezierCurves[c].endControlPoint.attr.renderTime = renderTime;
1029
1040
  }
1030
1041
  if (this.drawConfig.drawBezierHandleLines && this.drawConfig.drawHandleLines) {
1031
- draw.setCurrentId(d.uid + "_l0");
1032
- draw.setCurrentClassName(d.className + "-start-line");
1042
+ draw.setCurrentId("".concat(d.uid, "_l0"));
1043
+ draw.setCurrentClassName("".concat(d.className, "-start-line"));
1033
1044
  draw.handleLine(d.bezierCurves[c].startPoint, d.bezierCurves[c].startControlPoint);
1034
- draw.setCurrentId(d.uid + "_l1");
1035
- draw.setCurrentClassName(d.className + "-end-line");
1045
+ draw.setCurrentId("".concat(d.uid, "_l1"));
1046
+ draw.setCurrentClassName("".concat(d.className, "-end-line"));
1036
1047
  draw.handleLine(d.bezierCurves[c].endPoint, d.bezierCurves[c].endControlPoint);
1037
1048
  }
1038
1049
  curveIndex++;
@@ -1053,17 +1064,17 @@ var PlotBoilerplate = /** @class */ (function () {
1053
1064
  }
1054
1065
  else if (d instanceof VEllipse_1.VEllipse) {
1055
1066
  if (this.drawConfig.drawHandleLines) {
1056
- draw.setCurrentId(d.uid + "_e0");
1057
- draw.setCurrentClassName(d.className + "-v-line");
1067
+ draw.setCurrentId("".concat(d.uid, "_e0"));
1068
+ draw.setCurrentClassName("".concat(d.className, "-v-line"));
1058
1069
  // draw.line( d.center.clone().add(0,d.axis.y-d.center.y), d.axis, '#c8c8c8' );
1059
1070
  draw.handleLine(d.center.clone().add(0, d.signedRadiusV()).rotate(d.rotation, d.center), d.axis); // , "#c8c8c8");
1060
- draw.setCurrentId(d.uid + "_e1");
1061
- draw.setCurrentClassName(d.className + "-h-line");
1071
+ draw.setCurrentId("".concat(d.uid, "_e1"));
1072
+ draw.setCurrentClassName("".concat(d.className, "-h-line"));
1062
1073
  // draw.line( d.center.clone().add(d.axis.x-d.center.x,0), d.axis, '#c8c8c8' );
1063
1074
  draw.handleLine(d.center.clone().add(d.signedRadiusH(), 0).rotate(d.rotation, d.center), d.axis); // , "#c8c8c8");
1064
1075
  }
1065
1076
  draw.setCurrentId(d.uid);
1066
- draw.setCurrentClassName("" + d.className);
1077
+ draw.setCurrentClassName("".concat(d.className));
1067
1078
  draw.ellipse(d.center,
1068
1079
  // Math.abs(d.axis.x-d.center.x), Math.abs(d.axis.y-d.center.y),
1069
1080
  d.radiusH(), d.radiusV(), this.drawConfig.ellipse.color, this.drawConfig.ellipse.lineWidth, d.rotation);
@@ -1074,7 +1085,7 @@ var PlotBoilerplate = /** @class */ (function () {
1074
1085
  }
1075
1086
  else if (d instanceof VEllipseSector_1.VEllipseSector) {
1076
1087
  draw.setCurrentId(d.uid);
1077
- draw.setCurrentClassName("" + d.className);
1088
+ draw.setCurrentClassName("".concat(d.className));
1078
1089
  /* draw.ellipse( d.center,
1079
1090
  // Math.abs(d.axis.x-d.center.x), Math.abs(d.axis.y-d.center.y),
1080
1091
  d.radiusH(), d.radiusV(),
@@ -1107,8 +1118,8 @@ var PlotBoilerplate = /** @class */ (function () {
1107
1118
  else if (d instanceof Vector_1.Vector) {
1108
1119
  draw.arrow(d.a, d.b, this.drawConfig.vector.color);
1109
1120
  if (this.drawConfig.drawHandlePoints && d.b.attr.selectable && d.b.attr.visible) {
1110
- draw.setCurrentId(d.uid + "_h0");
1111
- draw.setCurrentClassName(d.className + "-handle");
1121
+ draw.setCurrentId("".concat(d.uid, "_h0"));
1122
+ draw.setCurrentClassName("".concat(d.className, "-handle"));
1112
1123
  draw.circleHandle(d.b, 3, "#a8a8a8");
1113
1124
  }
1114
1125
  else {
@@ -1121,15 +1132,15 @@ var PlotBoilerplate = /** @class */ (function () {
1121
1132
  }
1122
1133
  else if (d instanceof PBImage_1.PBImage) {
1123
1134
  if (this.drawConfig.drawHandleLines) {
1124
- draw.setCurrentId(d.uid + "_l0");
1125
- draw.setCurrentClassName(d.className + "-line");
1135
+ draw.setCurrentId("".concat(d.uid, "_l0"));
1136
+ draw.setCurrentClassName("".concat(d.className, "-line"));
1126
1137
  draw.line(d.upperLeft, d.lowerRight, this.drawConfig.image.color, this.drawConfig.image.lineWidth);
1127
1138
  }
1128
1139
  fill.setCurrentId(d.uid);
1129
1140
  fill.image(d.image, d.upperLeft, d.lowerRight.clone().sub(d.upperLeft));
1130
1141
  if (this.drawConfig.drawHandlePoints) {
1131
- draw.setCurrentId(d.uid + "_h0");
1132
- draw.setCurrentClassName(d.className + "-lower-right");
1142
+ draw.setCurrentId("".concat(d.uid, "_h0"));
1143
+ draw.setCurrentClassName("".concat(d.className, "-lower-right"));
1133
1144
  draw.circleHandle(d.lowerRight, 3, this.drawConfig.image.color);
1134
1145
  d.lowerRight.attr.renderTime = renderTime;
1135
1146
  }
@@ -1138,8 +1149,8 @@ var PlotBoilerplate = /** @class */ (function () {
1138
1149
  fill.setCurrentId(d.uid);
1139
1150
  fill.text(d.text, d.anchor.x, d.anchor.y, d);
1140
1151
  if (this.drawConfig.text.anchor) {
1141
- draw.setCurrentId(d.uid + "_a0");
1142
- draw.setCurrentClassName(d.className + "-anchor");
1152
+ draw.setCurrentId("".concat(d.uid, "_a0"));
1153
+ draw.setCurrentClassName("".concat(d.className, "-anchor"));
1143
1154
  (this.drawConfig.text.fill ? fill : draw).point(d.anchor, this.drawConfig.text.color);
1144
1155
  }
1145
1156
  d.anchor.attr.renderTime = renderTime;
@@ -1286,8 +1297,8 @@ var PlotBoilerplate = /** @class */ (function () {
1286
1297
  * @return {Bounds} The current viewport.
1287
1298
  **/
1288
1299
  PlotBoilerplate.prototype.viewport = function () {
1289
- var _a, _b;
1290
- return new Bounds_1.Bounds(this.transformMousePosition(0, 0), this.transformMousePosition(this.canvasSize.width * ((_a = this.config.cssScaleX) !== null && _a !== void 0 ? _a : 1.0), this.canvasSize.height * ((_b = this.config.cssScaleY) !== null && _b !== void 0 ? _b : 1.0)));
1300
+ var _b, _c;
1301
+ return new Bounds_1.Bounds(this.transformMousePosition(0, 0), this.transformMousePosition(this.canvasSize.width * ((_b = this.config.cssScaleX) !== null && _b !== void 0 ? _b : 1.0), this.canvasSize.height * ((_c = this.config.cssScaleY) !== null && _c !== void 0 ? _c : 1.0)));
1291
1302
  };
1292
1303
  /**
1293
1304
  * Trigger the saveFile.hook.
@@ -1336,12 +1347,12 @@ var PlotBoilerplate = /** @class */ (function () {
1336
1347
  **/
1337
1348
  PlotBoilerplate.prototype.resizeCanvas = function () {
1338
1349
  var _this = this;
1339
- var _a, _b, _c, _d, _e, _f;
1350
+ var _b, _c, _d, _e, _f, _g;
1340
1351
  var _self = this;
1341
1352
  var _setSize = function (w, h) {
1342
- var _a, _b;
1343
- w *= (_a = _self.config.canvasWidthFactor) !== null && _a !== void 0 ? _a : 1.0;
1344
- h *= (_b = _self.config.canvasHeightFactor) !== null && _b !== void 0 ? _b : 1.0;
1353
+ var _b, _c;
1354
+ w *= (_b = _self.config.canvasWidthFactor) !== null && _b !== void 0 ? _b : 1.0;
1355
+ h *= (_c = _self.config.canvasHeightFactor) !== null && _c !== void 0 ? _c : 1.0;
1345
1356
  _self.canvasSize.width = w;
1346
1357
  _self.canvasSize.height = h;
1347
1358
  if (_self.canvas instanceof HTMLCanvasElement) {
@@ -1349,12 +1360,12 @@ var PlotBoilerplate = /** @class */ (function () {
1349
1360
  _self.canvas.height = h;
1350
1361
  }
1351
1362
  else if (_self.canvas instanceof SVGElement) {
1352
- _this.canvas.setAttribute("viewBox", "0 0 " + w + " " + h);
1353
- _this.canvas.setAttribute("width", "" + w);
1354
- _this.canvas.setAttribute("height", "" + h);
1363
+ _this.canvas.setAttribute("viewBox", "0 0 ".concat(w, " ").concat(h));
1364
+ _this.canvas.setAttribute("width", "".concat(w));
1365
+ _this.canvas.setAttribute("height", "".concat(h));
1355
1366
  _this.draw.setSize(_self.canvasSize); // No need to set size to this.fill (instance copy)
1356
- _this.eventCatcher.style.width = w + "px";
1357
- _this.eventCatcher.style.height = h + "px";
1367
+ _this.eventCatcher.style.width = "".concat(w, "px");
1368
+ _this.eventCatcher.style.height = "".concat(h, "px");
1358
1369
  }
1359
1370
  else {
1360
1371
  console.error("Error: cannot resize canvas element because it seems neither be a HTMLCanvasElement nor an SVGElement.");
@@ -1370,8 +1381,8 @@ var PlotBoilerplate = /** @class */ (function () {
1370
1381
  var width = globalThis.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
1371
1382
  var height = globalThis.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
1372
1383
  _self.canvas.style.position = "absolute";
1373
- _self.canvas.style.width = ((_a = _self.config.canvasWidthFactor) !== null && _a !== void 0 ? _a : 1.0) * width + "px";
1374
- _self.canvas.style.height = ((_b = _self.config.canvasWidthFactor) !== null && _b !== void 0 ? _b : 1.0) * height + "px";
1384
+ _self.canvas.style.width = ((_b = _self.config.canvasWidthFactor) !== null && _b !== void 0 ? _b : 1.0) * width + "px";
1385
+ _self.canvas.style.height = ((_c = _self.config.canvasWidthFactor) !== null && _c !== void 0 ? _c : 1.0) * height + "px";
1375
1386
  _self.canvas.style.top = "0px";
1376
1387
  _self.canvas.style.left = "0px";
1377
1388
  _setSize(width, height);
@@ -1380,8 +1391,8 @@ var PlotBoilerplate = /** @class */ (function () {
1380
1391
  // Set editor size
1381
1392
  _self.canvas.style.position = "static";
1382
1393
  var space = this.getAvailableContainerSpace();
1383
- _self.canvas.style.width = ((_c = _self.config.canvasWidthFactor) !== null && _c !== void 0 ? _c : 1.0) * space.width + "px";
1384
- _self.canvas.style.height = ((_d = _self.config.canvasHeightFactor) !== null && _d !== void 0 ? _d : 1.0) * space.height + "px";
1394
+ _self.canvas.style.width = ((_d = _self.config.canvasWidthFactor) !== null && _d !== void 0 ? _d : 1.0) * space.width + "px";
1395
+ _self.canvas.style.height = ((_e = _self.config.canvasHeightFactor) !== null && _e !== void 0 ? _e : 1.0) * space.height + "px";
1385
1396
  _self.canvas.style.top = "";
1386
1397
  _self.canvas.style.left = "";
1387
1398
  _setSize(space.width, space.height);
@@ -1389,7 +1400,7 @@ var PlotBoilerplate = /** @class */ (function () {
1389
1400
  else {
1390
1401
  _self.canvas.style.width = "";
1391
1402
  _self.canvas.style.height = "";
1392
- _setSize((_e = _self.config.defaultCanvasWidth) !== null && _e !== void 0 ? _e : 1024, (_f = _self.config.defaultCanvasHeight) !== null && _f !== void 0 ? _f : 768);
1403
+ _setSize((_f = _self.config.defaultCanvasWidth) !== null && _f !== void 0 ? _f : 1024, (_g = _self.config.defaultCanvasHeight) !== null && _g !== void 0 ? _g : 768);
1393
1404
  }
1394
1405
  if (_self.config.redrawOnResize)
1395
1406
  _self.redraw();
@@ -1758,7 +1769,8 @@ var PlotBoilerplate = /** @class */ (function () {
1758
1769
  return { x: pos.x - bounds.left, y: pos.y - bounds.top };
1759
1770
  };
1760
1771
  // Make PB work together with both, AlloyFinger as a esm module or a commonjs function.
1761
- if (typeof globalThis["AlloyFinger"] === "function" || typeof globalThis["createAlloyFinger"] === "function") {
1772
+ if (typeof globalThis["AlloyFinger"] === "function" ||
1773
+ typeof globalThis["createAlloyFinger"] === "function") {
1762
1774
  try {
1763
1775
  var touchMovePos = null;
1764
1776
  var touchDownPos = null;
@@ -1893,7 +1905,9 @@ var PlotBoilerplate = /** @class */ (function () {
1893
1905
  }
1894
1906
  }; // END afProps
1895
1907
  if (window["createAlloyFinger"]) {
1896
- window["createAlloyFinger"](this.eventCatcher ? this.eventCatcher : this.canvas, afProps);
1908
+ // window["createAlloyFinger"](this.eventCatcher ? this.eventCatcher : this.canvas, afProps);
1909
+ var createAlloyFinger = window["createAlloyFinger"];
1910
+ createAlloyFinger(this.eventCatcher ? this.eventCatcher : this.canvas, afProps);
1897
1911
  }
1898
1912
  else {
1899
1913
  /* tslint:disable-next-line */
@@ -1951,10 +1965,23 @@ var PlotBoilerplate = /** @class */ (function () {
1951
1965
  PlotBoilerplate.prototype.createGUI = function (props) {
1952
1966
  // This function moved to the helper utils.
1953
1967
  // We do not want to include the whole dat.GUI package.
1954
- if (globalThis["utils"] && typeof globalThis["utils"].createGUI == "function")
1955
- return globalThis["utils"].createGUI(this, props);
1956
- else
1957
- throw "Cannot create dat.GUI instance; did you load the ./utils/creategui helper function an the dat.GUI library?";
1968
+ var utils = globalThis["utils"];
1969
+ // if (globalThis["utils"] && typeof globalThis["utils"].createGUI == "function") {
1970
+ // return (globalThis["utils" as keyof Object] as any as ({createGUI : (pb:PlotBoilerplate,props:DatGuiProps|undefined)=>GUI })).createGUI(this, props);
1971
+ if (utils && typeof utils.createGUI === "function") {
1972
+ return (this._gui = utils.createGUI(this, props));
1973
+ }
1974
+ else {
1975
+ throw "Cannot create dat.GUI or lil-gui instance; did you load the ./utils/creategui helper function an the dat.GUI/lil-gui library?";
1976
+ }
1977
+ };
1978
+ /**
1979
+ * Retriebe the GUI once it was created. If the `createGUI` method was not called or failed to create any
1980
+ * GUI then null is returned.
1981
+ * @returns {GUI | null}
1982
+ */
1983
+ PlotBoilerplate.prototype.getGUI = function () {
1984
+ return this._gui;
1958
1985
  };
1959
1986
  var _a;
1960
1987
  /** @constant {number} */
@@ -1983,6 +2010,7 @@ var PlotBoilerplate = /** @class */ (function () {
1983
2010
  };
1984
2011
  return class_1;
1985
2012
  }()),
2013
+ __setFunctionName(_a, "Draggable"),
1986
2014
  _a.VERTEX = "vertex",
1987
2015
  _a);
1988
2016
  /**
@@ -2072,7 +2100,8 @@ var PlotBoilerplate = /** @class */ (function () {
2072
2100
  * @return {void}
2073
2101
  **/
2074
2102
  setCSSscale: function (element, scaleX, scaleY) {
2075
- element.style["transform-origin"] = "0 0";
2103
+ // element.style["transform-origin"] = "0 0";
2104
+ element.style.transformOrigin = "0 0";
2076
2105
  if (scaleX == 1.0 && scaleY == 1.0) {
2077
2106
  // element.style.transform = null;
2078
2107
  element.style.removeProperty("transform");
@@ -2155,7 +2184,7 @@ var PlotBoilerplate = /** @class */ (function () {
2155
2184
  return fallback;
2156
2185
  return obj[key];
2157
2186
  }
2158
- },
2187
+ }, // END fetch
2159
2188
  /**
2160
2189
  * Installs vertex listeners to the path's vertices so that controlpoints
2161
2190
  * move with their path points when dragged.