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
@@ -255,6 +255,32 @@ export class CircleSector {
255
255
  });
256
256
  }
257
257
  //--- END --- Implement interface `Intersectable`
258
+ describeSVGPath(options) {
259
+ // const buffer: SVGPathParams = [];
260
+ // const start = this.getStartPoint();
261
+ // const end = this.getEndPoint();
262
+ // // describeSVGArc
263
+ // // x: number,
264
+ // // y: number,
265
+ // // radius: number,
266
+ // // startAngle: number,
267
+ // // endAngle: number,
268
+ // // options?: { moveToStart: boolean }
269
+ // // ): SVGPathParams => {
270
+ // var arcRotation = 0.0;
271
+ // var largeArcFlag = 1;
272
+ // var sweepFlag = 0;
273
+ // if (options && options.moveToStart) {
274
+ // buffer.push("M", start.x, start.y);
275
+ // }
276
+ // buffer.push("A", cSector.circle.radius, cSector.circle.radius, arcRotation, largeArcFlag, sweepFlag, end.x, end.y);
277
+ // return buffer;
278
+ const arc = CircleSector.circleSectorUtils.describeSVGArc(this.circle.center.x, // end.x,
279
+ this.circle.center.y, // end.y,
280
+ this.circle.radius, this.startAngle, this.endAngle, options // options?: { moveToStart: boolean }
281
+ );
282
+ return arc;
283
+ }
258
284
  /**
259
285
  * This function should invalidate any installed listeners and invalidate this object.
260
286
  * After calling this function the object might not hold valid data any more and
@@ -294,8 +320,9 @@ CircleSector.circleSectorUtils = {
294
320
  * @return [ 'A', radiusx, radiusy, rotation=0, largeArcFlag=1|0, sweepFlag=0, endx, endy ]
295
321
  */
296
322
  describeSVGArc: (x, y, radius, startAngle, endAngle, options) => {
297
- if (typeof options === "undefined")
323
+ if (typeof options === "undefined") {
298
324
  options = { moveToStart: true };
325
+ }
299
326
  const end = CircleSector.circleSectorUtils.polarToCartesian(x, y, radius, endAngle);
300
327
  const start = CircleSector.circleSectorUtils.polarToCartesian(x, y, radius, startAngle);
301
328
  // Split full circles into two halves.
@@ -1 +1 @@
1
- {"version":3,"file":"CircleSector.js","sourceRoot":"","sources":["../ts/CircleSector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CircleSector.js","sourceRoot":"","sources":["../ts/CircleSector.ts"],"names":[],"mappings":"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"}
@@ -86,8 +86,13 @@
86
86
  * @modified 2024-07-08 Adding `PlotBoilerplate.getGUI()` to retrieve the GUI instance.
87
87
  * @modified 2024-08-25 Extending main class `PlotBoilerplate` optional param `isBackdropFiltersEnabled`.
88
88
  * @modified 2024-12-02 Adding the `triggerRedraw` to the `removeAll` method.
89
+ * @modified 2025-05-07 Changing the return type of `removeVertex` from `void` to `boolean`.
90
+ * @modified 2025-05-07 Handling content changes now with `contentChangeListeners`.
91
+ * @modified 2025-05-07 Added `PlogBoilerplate.addContentChangeListener` and `.removeContentChangeListener`.
92
+ * @modified 2025-05-07 Moving full vectors now by default when vector point a is moved.
93
+ * @modified 2025-05-20 Applying `lineWith` parameter in the draw routine for vectors (had been missing).
89
94
  *
90
- * @version 1.20.0
95
+ * @version 1.21.1
91
96
  *
92
97
  * @file PlotBoilerplate
93
98
  * @fileoverview The main class.
@@ -100,7 +105,7 @@ import { Grid } from "./Grid";
100
105
  import { Polygon } from "./Polygon";
101
106
  import { Vertex } from "./Vertex";
102
107
  import { IDraggable, Config, DrawLib, Drawable, DrawConfig, IHooks, PBParams, XYCoords, XYDimension, DatGuiProps, // DEPRECATED. Please do not use any more.
103
- LilGuiProps } from "./interfaces";
108
+ LilGuiProps, PBContentChangeListener } from "./interfaces";
104
109
  /**
105
110
  * @classdesc The main class of the PlotBoilerplate.
106
111
  *
@@ -252,6 +257,10 @@ export declare class PlotBoilerplate {
252
257
  * @instance
253
258
  */
254
259
  hooks: IHooks;
260
+ /**
261
+ * A list of content change listeners.
262
+ */
263
+ contentChangeListeners: Array<PBContentChangeListener>;
255
264
  /**
256
265
  * @member {KeyHandler|undefined}
257
266
  * @memberof PlotBoilerplate
@@ -389,6 +398,27 @@ export declare class PlotBoilerplate {
389
398
  * @private
390
399
  **/
391
400
  private updateCSSscale;
401
+ /**
402
+ * Adds a new content change listener to this instance. Adding duplicates is not possible.
403
+ *
404
+ * @param {PBContentChangeListener} listener - The listenre to add.
405
+ * @method addContentChangeListener
406
+ * @instance
407
+ * @memberof PlotBoilerplate
408
+ * @returns {void}
409
+ */
410
+ addContentChangeListener(listener: PBContentChangeListener): void;
411
+ /**
412
+ * Removes an existing content change listener from this instance.
413
+ *
414
+ * @param {PBContentChangeListener} listener - The listenre to add.
415
+ * @method removeContentChangeListener
416
+ * @instance
417
+ * @memberof PlotBoilerplate
418
+ * @returns {void}
419
+ */
420
+ removeContentChangeListener(listener: PBContentChangeListener): void;
421
+ private _fireContentChanged;
392
422
  /**
393
423
  * Add a drawable object.<br>
394
424
  * <br>
@@ -413,7 +443,7 @@ export declare class PlotBoilerplate {
413
443
  * @memberof PlotBoilerplate
414
444
  * @return {void}
415
445
  **/
416
- add(drawable: Drawable | Array<Drawable>, redraw?: boolean): void;
446
+ add(drawable: Drawable | Array<Drawable>, redraw?: boolean, doNotFireEvent?: boolean): void;
417
447
  /**
418
448
  * Remove a drawable object.<br>
419
449
  * <br>
@@ -432,12 +462,13 @@ export declare class PlotBoilerplate {
432
462
  *
433
463
  * @param {Drawable|Array<Drawable>} drawable - The drawable (of one of the allowed class instance) to remove.
434
464
  * @param {boolean} [redraw=false]
465
+ * @param {removeWidth}
435
466
  * @method remove
436
467
  * @instance
437
468
  * @memberof PlotBoilerplate
438
469
  * @return {void}
439
470
  **/
440
- remove(drawable: Drawable | Array<Drawable>, redraw?: boolean, removeWithVertices?: boolean): void;
471
+ remove(drawable: Drawable | Array<Drawable>, redraw?: boolean, removeWithVertices?: boolean, doNotFireEvent?: boolean): boolean;
441
472
  /**
442
473
  * Remove a vertex from the vertex list.<br>
443
474
  *
@@ -446,9 +477,9 @@ export declare class PlotBoilerplate {
446
477
  * @method removeVertex
447
478
  * @instance
448
479
  * @memberof PlotBoilerplate
449
- * @return {void}
480
+ * @return {boolean}
450
481
  **/
451
- removeVertex(vert: Vertex, redraw?: boolean): void;
482
+ removeVertex(vert: Vertex, redraw?: boolean, doNotFireEvent?: boolean): boolean;
452
483
  /**
453
484
  * Remove all elements.
454
485
  *
@@ -86,8 +86,13 @@
86
86
  * @modified 2024-07-08 Adding `PlotBoilerplate.getGUI()` to retrieve the GUI instance.
87
87
  * @modified 2024-08-25 Extending main class `PlotBoilerplate` optional param `isBackdropFiltersEnabled`.
88
88
  * @modified 2024-12-02 Adding the `triggerRedraw` to the `removeAll` method.
89
+ * @modified 2025-05-07 Changing the return type of `removeVertex` from `void` to `boolean`.
90
+ * @modified 2025-05-07 Handling content changes now with `contentChangeListeners`.
91
+ * @modified 2025-05-07 Added `PlogBoilerplate.addContentChangeListener` and `.removeContentChangeListener`.
92
+ * @modified 2025-05-07 Moving full vectors now by default when vector point a is moved.
93
+ * @modified 2025-05-20 Applying `lineWith` parameter in the draw routine for vectors (had been missing).
89
94
  *
90
- * @version 1.20.0
95
+ * @version 1.21.1
91
96
  *
92
97
  * @file PlotBoilerplate
93
98
  * @fileoverview The main class.
@@ -211,6 +216,10 @@ export class PlotBoilerplate {
211
216
  */
212
217
  constructor(config, drawConfig) {
213
218
  var _b, _c;
219
+ /**
220
+ * A list of content change listeners.
221
+ */
222
+ this.contentChangeListeners = [];
214
223
  /**
215
224
  * A discrete timestamp to identify single render cycles.
216
225
  * Note that using system time milliseconds is not a safe way to identify render frames, as on modern powerful machines
@@ -598,6 +607,52 @@ export class PlotBoilerplate {
598
607
  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);
599
608
  }
600
609
  }
610
+ /**
611
+ * Adds a new content change listener to this instance. Adding duplicates is not possible.
612
+ *
613
+ * @param {PBContentChangeListener} listener - The listenre to add.
614
+ * @method addContentChangeListener
615
+ * @instance
616
+ * @memberof PlotBoilerplate
617
+ * @returns {void}
618
+ */
619
+ addContentChangeListener(listener) {
620
+ for (var i in this.contentChangeListeners) {
621
+ if (this.contentChangeListeners[i] === listener) {
622
+ return;
623
+ }
624
+ }
625
+ this.contentChangeListeners.push(listener);
626
+ }
627
+ /**
628
+ * Removes an existing content change listener from this instance.
629
+ *
630
+ * @param {PBContentChangeListener} listener - The listenre to add.
631
+ * @method removeContentChangeListener
632
+ * @instance
633
+ * @memberof PlotBoilerplate
634
+ * @returns {void}
635
+ */
636
+ removeContentChangeListener(listener) {
637
+ for (var i = 0; i < this.contentChangeListeners.length; i++) {
638
+ if (this.contentChangeListeners[i] === listener) {
639
+ this.contentChangeListeners.splice(i, 1);
640
+ return;
641
+ }
642
+ }
643
+ }
644
+ _fireContentChanged(addedDrawables, removedDrawables) {
645
+ for (var i in this.contentChangeListeners) {
646
+ const listener = this.contentChangeListeners[i];
647
+ if (listener && typeof listener === "function") {
648
+ listener({
649
+ type: addedDrawables.length > 0 ? "DRAWABLES_ADDED" : "DRAWABLES_REMOVED",
650
+ addedDrawables: addedDrawables,
651
+ removedDrawables: removedDrawables
652
+ });
653
+ }
654
+ }
655
+ }
601
656
  /**
602
657
  * Add a drawable object.<br>
603
658
  * <br>
@@ -622,100 +677,121 @@ export class PlotBoilerplate {
622
677
  * @memberof PlotBoilerplate
623
678
  * @return {void}
624
679
  **/
625
- add(drawable, redraw) {
680
+ add(drawable, redraw, doNotFireEvent) {
626
681
  if (Array.isArray(drawable)) {
627
682
  const arr = drawable;
628
683
  for (var i = 0; i < arr.length; i++) {
629
- this.add(arr[i], false);
684
+ this.add(arr[i], false, doNotFireEvent);
630
685
  }
686
+ // !doNotFireEvent && this._fireContentChanged(arr, []);
631
687
  }
632
- else if (drawable instanceof Vertex) {
633
- this.drawables.push(drawable);
634
- this.vertices.push(drawable);
635
- }
636
- else if (drawable instanceof Line) {
637
- // Add some lines
638
- this.drawables.push(drawable);
639
- this.vertices.push(drawable.a);
640
- this.vertices.push(drawable.b);
641
- }
642
- else if (drawable instanceof Vector) {
643
- this.drawables.push(drawable);
644
- this.vertices.push(drawable.a);
645
- this.vertices.push(drawable.b);
646
- }
647
- else if (drawable instanceof VEllipse) {
648
- this.vertices.push(drawable.center);
649
- this.vertices.push(drawable.axis);
650
- this.drawables.push(drawable);
651
- drawable.center.listeners.addDragListener((event) => {
652
- drawable.axis.add(event.params.dragAmount);
653
- });
654
- }
655
- else if (drawable instanceof VEllipseSector) {
656
- this.vertices.push(drawable.ellipse.center);
657
- this.vertices.push(drawable.ellipse.axis);
658
- this.drawables.push(drawable);
659
- drawable.ellipse.center.listeners.addDragListener((event) => {
660
- drawable.ellipse.axis.add(event.params.dragAmount);
661
- });
662
- }
663
- else if (drawable instanceof Circle) {
664
- this.vertices.push(drawable.center);
665
- this.drawables.push(drawable);
666
- }
667
- else if (drawable instanceof CircleSector) {
668
- this.vertices.push(drawable.circle.center);
669
- this.drawables.push(drawable);
670
- }
671
- else if (drawable instanceof Polygon) {
672
- this.drawables.push(drawable);
673
- for (var i = 0; i < drawable.vertices.length; i++) {
674
- this.vertices.push(drawable.vertices[i]);
688
+ else {
689
+ const addedDrawables = [drawable];
690
+ if (drawable instanceof Vertex) {
691
+ this.drawables.push(drawable);
692
+ this.vertices.push(drawable);
675
693
  }
676
- }
677
- else if (drawable instanceof Triangle) {
678
- this.drawables.push(drawable);
679
- this.vertices.push(drawable.a);
680
- this.vertices.push(drawable.b);
681
- this.vertices.push(drawable.c);
682
- }
683
- else if (drawable instanceof BezierPath) {
684
- this.drawables.push(drawable);
685
- const bezierPath = drawable;
686
- for (var i = 0; i < bezierPath.bezierCurves.length; i++) {
687
- if (!drawable.adjustCircular && i == 0) {
688
- this.vertices.push(bezierPath.bezierCurves[i].startPoint);
694
+ else if (drawable instanceof Line) {
695
+ // Add some lines
696
+ this.drawables.push(drawable);
697
+ this.vertices.push(drawable.a);
698
+ this.vertices.push(drawable.b);
699
+ addedDrawables.push(drawable.a, drawable.b);
700
+ }
701
+ else if (drawable instanceof Vector) {
702
+ this.drawables.push(drawable);
703
+ this.vertices.push(drawable.a);
704
+ this.vertices.push(drawable.b);
705
+ addedDrawables.push(drawable.a, drawable.b);
706
+ drawable.a.listeners.addDragListener((event) => {
707
+ drawable.b.add(event.params.dragAmount);
708
+ });
709
+ }
710
+ else if (drawable instanceof VEllipse) {
711
+ this.vertices.push(drawable.center);
712
+ this.vertices.push(drawable.axis);
713
+ addedDrawables.push(drawable.center, drawable.axis);
714
+ this.drawables.push(drawable);
715
+ drawable.center.listeners.addDragListener((event) => {
716
+ drawable.axis.add(event.params.dragAmount);
717
+ });
718
+ }
719
+ else if (drawable instanceof VEllipseSector) {
720
+ this.vertices.push(drawable.ellipse.center);
721
+ this.vertices.push(drawable.ellipse.axis);
722
+ addedDrawables.push(drawable.ellipse.center, drawable.ellipse.axis);
723
+ this.drawables.push(drawable);
724
+ drawable.ellipse.center.listeners.addDragListener((event) => {
725
+ drawable.ellipse.axis.add(event.params.dragAmount);
726
+ });
727
+ }
728
+ else if (drawable instanceof Circle) {
729
+ this.vertices.push(drawable.center);
730
+ addedDrawables.push(drawable.center);
731
+ this.drawables.push(drawable);
732
+ }
733
+ else if (drawable instanceof CircleSector) {
734
+ this.vertices.push(drawable.circle.center);
735
+ addedDrawables.push(drawable.circle.center);
736
+ this.drawables.push(drawable);
737
+ }
738
+ else if (drawable instanceof Polygon) {
739
+ this.drawables.push(drawable);
740
+ for (var i = 0; i < drawable.vertices.length; i++) {
741
+ this.vertices.push(drawable.vertices[i]);
742
+ addedDrawables.push(drawable.vertices[i]);
689
743
  }
690
- this.vertices.push(bezierPath.bezierCurves[i].endPoint);
691
- this.vertices.push(bezierPath.bezierCurves[i].startControlPoint);
692
- this.vertices.push(bezierPath.bezierCurves[i].endControlPoint);
693
- bezierPath.bezierCurves[i].startControlPoint.attr.selectable = false;
694
- bezierPath.bezierCurves[i].endControlPoint.attr.selectable = false;
695
744
  }
696
- PlotBoilerplate.utils.enableBezierPathAutoAdjust(drawable);
697
- }
698
- else if (drawable instanceof PBImage) {
699
- this.vertices.push(drawable.upperLeft);
700
- this.vertices.push(drawable.lowerRight);
701
- this.drawables.push(drawable);
702
- // Todo: think about a IDragEvent interface
703
- drawable.upperLeft.listeners.addDragListener((e) => {
704
- drawable.lowerRight.add(e.params.dragAmount);
705
- });
706
- drawable.lowerRight.attr.selectable = false;
707
- }
708
- else if (drawable instanceof PBText) {
709
- this.vertices.push(drawable.anchor);
710
- this.drawables.push(drawable);
711
- drawable.anchor.attr.selectable = false;
712
- }
713
- else {
714
- throw "Cannot add drawable of unrecognized type: " + typeof drawable + ".";
745
+ else if (drawable instanceof Triangle) {
746
+ this.drawables.push(drawable);
747
+ this.vertices.push(drawable.a);
748
+ this.vertices.push(drawable.b);
749
+ this.vertices.push(drawable.c);
750
+ addedDrawables.push(drawable.a, drawable.b, drawable.c);
751
+ }
752
+ else if (drawable instanceof BezierPath) {
753
+ this.drawables.push(drawable);
754
+ const bezierPath = drawable;
755
+ for (var i = 0; i < bezierPath.bezierCurves.length; i++) {
756
+ if (!drawable.adjustCircular && i == 0) {
757
+ this.vertices.push(bezierPath.bezierCurves[i].startPoint);
758
+ addedDrawables.push(bezierPath.bezierCurves[i].startPoint);
759
+ }
760
+ this.vertices.push(bezierPath.bezierCurves[i].endPoint);
761
+ this.vertices.push(bezierPath.bezierCurves[i].startControlPoint);
762
+ this.vertices.push(bezierPath.bezierCurves[i].endControlPoint);
763
+ addedDrawables.push(bezierPath.bezierCurves[i].endPoint, bezierPath.bezierCurves[i].startControlPoint, bezierPath.bezierCurves[i].endControlPoint);
764
+ bezierPath.bezierCurves[i].startControlPoint.attr.selectable = false;
765
+ bezierPath.bezierCurves[i].endControlPoint.attr.selectable = false;
766
+ }
767
+ PlotBoilerplate.utils.enableBezierPathAutoAdjust(drawable);
768
+ }
769
+ else if (drawable instanceof PBImage) {
770
+ this.vertices.push(drawable.upperLeft);
771
+ this.vertices.push(drawable.lowerRight);
772
+ addedDrawables.push(drawable.upperLeft, drawable.lowerRight);
773
+ this.drawables.push(drawable);
774
+ // Todo: think about a IDragEvent interface
775
+ drawable.upperLeft.listeners.addDragListener((e) => {
776
+ drawable.lowerRight.add(e.params.dragAmount);
777
+ });
778
+ drawable.lowerRight.attr.selectable = false;
779
+ }
780
+ else if (drawable instanceof PBText) {
781
+ this.vertices.push(drawable.anchor);
782
+ addedDrawables.push(drawable.anchor);
783
+ this.drawables.push(drawable);
784
+ drawable.anchor.attr.selectable = false;
785
+ }
786
+ else {
787
+ throw "Cannot add drawable of unrecognized type: " + typeof drawable + ".";
788
+ }
789
+ !doNotFireEvent && this._fireContentChanged(addedDrawables, []);
715
790
  }
716
791
  // This is a workaround for backwards compatibility when the 'redraw' param was not yet present.
717
- if (redraw || typeof redraw == "undefined")
792
+ if (redraw || typeof redraw == "undefined") {
718
793
  this.redraw();
794
+ }
719
795
  }
720
796
  /**
721
797
  * Remove a drawable object.<br>
@@ -735,88 +811,113 @@ export class PlotBoilerplate {
735
811
  *
736
812
  * @param {Drawable|Array<Drawable>} drawable - The drawable (of one of the allowed class instance) to remove.
737
813
  * @param {boolean} [redraw=false]
814
+ * @param {removeWidth}
738
815
  * @method remove
739
816
  * @instance
740
817
  * @memberof PlotBoilerplate
741
818
  * @return {void}
742
819
  **/
743
- remove(drawable, redraw, removeWithVertices) {
820
+ remove(drawable, redraw, removeWithVertices, doNotFireEvent) {
744
821
  if (Array.isArray(drawable)) {
822
+ const removedDrawables = [];
745
823
  for (var i = 0; i < drawable.length; i++) {
746
- this.remove(drawable[i], false, removeWithVertices);
824
+ if (this.remove(drawable[i], false, removeWithVertices, true)) {
825
+ removedDrawables.push(drawable[i]);
826
+ }
747
827
  }
748
828
  if (redraw) {
749
829
  this.redraw();
750
830
  }
751
- return;
831
+ !doNotFireEvent && this._fireContentChanged([], removedDrawables);
832
+ return removedDrawables.length > 0;
752
833
  }
753
834
  if (drawable instanceof Vertex) {
754
- this.removeVertex(drawable, false);
835
+ const wasRemoved = this.removeVertex(drawable, false, false);
755
836
  if (redraw) {
756
837
  this.redraw();
757
838
  }
839
+ !doNotFireEvent && this._fireContentChanged([], [drawable]);
840
+ return wasRemoved;
758
841
  }
842
+ let wasRemoved = false;
843
+ const removedDrawables = [];
759
844
  for (var i = 0; i < this.drawables.length; i++) {
760
845
  if (this.drawables[i] === drawable || this.drawables[i].uid === drawable.uid) {
761
846
  this.drawables.splice(i, 1);
847
+ removedDrawables.push(drawable);
762
848
  if (removeWithVertices) {
763
849
  // Check if some listeners need to be removed
764
850
  if (drawable instanceof Line) {
765
851
  // Add some lines
766
- this.removeVertex(drawable.a, false);
767
- this.removeVertex(drawable.b, false);
852
+ this.removeVertex(drawable.a, false, true);
853
+ this.removeVertex(drawable.b, false, true);
854
+ removedDrawables.push(drawable.a, drawable.b);
768
855
  }
769
856
  else if (drawable instanceof Vector) {
770
- this.removeVertex(drawable.a, false);
771
- this.removeVertex(drawable.b, false);
857
+ this.removeVertex(drawable.a, false, true);
858
+ this.removeVertex(drawable.b, false, true);
859
+ removedDrawables.push(drawable.a, drawable.b);
772
860
  }
773
861
  else if (drawable instanceof VEllipse) {
774
- this.removeVertex(drawable.center, false);
775
- this.removeVertex(drawable.axis, false);
862
+ this.removeVertex(drawable.center, false, true);
863
+ this.removeVertex(drawable.axis, false, true);
864
+ removedDrawables.push(drawable.center, drawable.axis);
776
865
  }
777
866
  else if (drawable instanceof VEllipseSector) {
778
- this.removeVertex(drawable.ellipse.center);
779
- this.removeVertex(drawable.ellipse.axis);
867
+ this.removeVertex(drawable.ellipse.center, false, true);
868
+ this.removeVertex(drawable.ellipse.axis, false, true);
869
+ removedDrawables.push(drawable.ellipse.center, drawable.ellipse.axis);
780
870
  }
781
871
  else if (drawable instanceof Circle) {
782
- this.removeVertex(drawable.center, false);
872
+ this.removeVertex(drawable.center, false, true);
783
873
  }
784
874
  else if (drawable instanceof CircleSector) {
785
- this.removeVertex(drawable.circle.center, false);
875
+ this.removeVertex(drawable.circle.center, false, true);
876
+ removedDrawables.push(drawable.circle.center);
786
877
  }
787
878
  else if (drawable instanceof Polygon) {
788
879
  // for( var i in drawable.vertices )
789
- for (var i = 0; i < drawable.vertices.length; i++)
790
- this.removeVertex(drawable.vertices[i], false);
880
+ for (var i = 0; i < drawable.vertices.length; i++) {
881
+ this.removeVertex(drawable.vertices[i], false, true);
882
+ removedDrawables.push(drawable.vertices[i]);
883
+ }
791
884
  }
792
885
  else if (drawable instanceof Triangle) {
793
- this.removeVertex(drawable.a, false);
794
- this.removeVertex(drawable.b, false);
795
- this.removeVertex(drawable.c, false);
886
+ this.removeVertex(drawable.a, false, true);
887
+ this.removeVertex(drawable.b, false, true);
888
+ this.removeVertex(drawable.c, false, true);
889
+ removedDrawables.push(drawable.a, drawable.b, drawable.c);
796
890
  }
797
891
  else if (drawable instanceof BezierPath) {
798
892
  for (var i = 0; i < drawable.bezierCurves.length; i++) {
799
- this.removeVertex(drawable.bezierCurves[i].startPoint, false);
800
- this.removeVertex(drawable.bezierCurves[i].startControlPoint, false);
801
- this.removeVertex(drawable.bezierCurves[i].endControlPoint, false);
893
+ this.removeVertex(drawable.bezierCurves[i].startPoint, false, true);
894
+ this.removeVertex(drawable.bezierCurves[i].startControlPoint, false, true);
895
+ this.removeVertex(drawable.bezierCurves[i].endControlPoint, false, true);
896
+ removedDrawables.push(drawable.bezierCurves[i].startPoint, drawable.bezierCurves[i].startControlPoint, drawable.bezierCurves[i].endControlPoint);
802
897
  if (i + 1 == drawable.bezierCurves.length) {
803
- this.removeVertex(drawable.bezierCurves[i].endPoint, false);
898
+ this.removeVertex(drawable.bezierCurves[i].endPoint, false, true);
899
+ removedDrawables.push(drawable.bezierCurves[i].endPoint);
804
900
  }
805
901
  }
806
902
  }
807
903
  else if (drawable instanceof PBImage) {
808
- this.removeVertex(drawable.upperLeft, false);
809
- this.removeVertex(drawable.lowerRight, false);
904
+ this.removeVertex(drawable.upperLeft, false, true);
905
+ this.removeVertex(drawable.lowerRight, false, true);
906
+ removedDrawables.push(drawable.upperLeft, drawable.lowerRight);
810
907
  }
811
908
  else if (drawable instanceof PBText) {
812
- this.removeVertex(drawable.anchor, false);
909
+ this.removeVertex(drawable.anchor, false, true);
910
+ removedDrawables.push(drawable.anchor);
813
911
  }
814
912
  } // END removeWithVertices
815
913
  if (redraw) {
816
914
  this.redraw();
817
915
  }
818
- }
819
- }
916
+ !doNotFireEvent && this._fireContentChanged([], removedDrawables);
917
+ wasRemoved = true;
918
+ } // END if
919
+ } // END for
920
+ return wasRemoved;
820
921
  }
821
922
  /**
822
923
  * Remove a vertex from the vertex list.<br>
@@ -826,18 +927,20 @@ export class PlotBoilerplate {
826
927
  * @method removeVertex
827
928
  * @instance
828
929
  * @memberof PlotBoilerplate
829
- * @return {void}
930
+ * @return {boolean}
830
931
  **/
831
- removeVertex(vert, redraw) {
932
+ removeVertex(vert, redraw, doNotFireEvent) {
832
933
  for (var i = 0; i < this.vertices.length; i++) {
833
934
  if (this.vertices[i] === vert) {
834
935
  this.vertices.splice(i, 1);
835
936
  if (redraw) {
836
937
  this.redraw();
837
938
  }
838
- return;
939
+ !doNotFireEvent && this._fireContentChanged([], [vert]);
940
+ return true;
839
941
  }
840
942
  }
943
+ return false;
841
944
  }
842
945
  /**
843
946
  * Remove all elements.
@@ -852,13 +955,16 @@ export class PlotBoilerplate {
852
955
  * @return {void}
853
956
  */
854
957
  removeAll(keepVertices, triggerRedraw) {
958
+ let removedDrawables = this.drawables;
855
959
  this.drawables = [];
856
960
  if (!Boolean(keepVertices)) {
961
+ removedDrawables = removedDrawables.concat(this.vertices);
857
962
  this.vertices = [];
858
963
  }
859
964
  if (triggerRedraw || typeof triggerRedraw === "undefined") {
860
965
  this.redraw();
861
966
  }
967
+ removedDrawables.length > 0 && this._fireContentChanged([], removedDrawables);
862
968
  }
863
969
  /**
864
970
  * Find the vertex near the given position.
@@ -1113,7 +1219,7 @@ export class PlotBoilerplate {
1113
1219
  d.b.attr.renderTime = renderTime;
1114
1220
  }
1115
1221
  else if (d instanceof Vector) {
1116
- draw.arrow(d.a, d.b, this.drawConfig.vector.color);
1222
+ draw.arrow(d.a, d.b, this.drawConfig.vector.color, this.drawConfig.vector.lineWidth);
1117
1223
  if (this.drawConfig.drawHandlePoints && d.b.attr.selectable && d.b.attr.visible) {
1118
1224
  draw.setCurrentId(`${d.uid}_h0`);
1119
1225
  draw.setCurrentClassName(`${d.className}-handle`);