plotboilerplate 1.24.0 → 1.25.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.
- package/README.md +13 -1
- package/dist/index.esm.js +294 -129
- package/dist/index.esm.js.map +1 -1
- package/dist/index.esm.min.js +1 -1
- package/dist/index.esm.min.js.map +1 -1
- package/dist/plotboilerplate.browser.min.js +1 -1
- package/dist/plotboilerplate.browser.min.js.map +1 -1
- package/dist/plotboilerplate.js +12084 -11919
- package/dist/plotboilerplate.min.js +1 -1
- package/package.json +9 -5
- package/src/cjs/PlotBoilerplate.d.ts +37 -6
- package/src/cjs/PlotBoilerplate.js +222 -116
- package/src/cjs/PlotBoilerplate.js.map +1 -1
- package/src/cjs/Polygon.d.ts +26 -7
- package/src/cjs/Polygon.js +56 -10
- package/src/cjs/Polygon.js.map +1 -1
- package/src/cjs/Triangle.js +2 -2
- package/src/cjs/Triangle.js.map +1 -1
- package/src/cjs/Vertex.d.ts +15 -3
- package/src/cjs/Vertex.js +18 -1
- package/src/cjs/Vertex.js.map +1 -1
- package/src/cjs/interfaces/core.d.ts +28 -0
- package/src/cjs/interfaces/core.js +2 -0
- package/src/cjs/interfaces/core.js.map +1 -1
- package/src/cjs/utils/datastructures/Color.d.ts +147 -1
- package/src/cjs/utils/datastructures/Color.js +385 -41
- package/src/cjs/utils/datastructures/Color.js.map +1 -1
- package/src/cjs/utils/datastructures/ColorGradient.d.ts +79 -0
- package/src/cjs/utils/datastructures/ColorGradient.js +171 -0
- package/src/cjs/utils/datastructures/ColorGradient.js.map +1 -0
- package/src/cjs/utils/dom/components/ColorGradientPicker.d.ts +245 -0
- package/src/cjs/utils/dom/components/ColorGradientPicker.js +667 -0
- package/src/cjs/utils/dom/components/ColorGradientPicker.js.map +1 -0
- package/src/cjs/utils/dom/components/ColorGradientPickerJSX.d.ts +129 -0
- package/src/cjs/utils/dom/components/ColorGradientPickerJSX.js +520 -0
- package/src/cjs/utils/dom/components/ColorGradientPickerJSX.js.map +1 -0
- package/src/cjs/utils/dom/components/ColorGradientSelector.d.ts +117 -0
- package/src/cjs/utils/dom/components/ColorGradientSelector.js +325 -0
- package/src/cjs/utils/dom/components/ColorGradientSelector.js.map +1 -0
- package/src/cjs/utils/dom/components/Test.d.ts +7 -0
- package/src/cjs/utils/dom/components/Test.js +30 -0
- package/src/cjs/utils/dom/components/Test.js.map +1 -0
- package/src/cjs/utils/dom/guiSizeToggler.js +1 -1
- package/src/cjs/utils/dom/guiSizeToggler.js.map +1 -1
- package/src/cjs/utils/helpers/BezierPathInteractionHelper.d.ts +9 -3
- package/src/cjs/utils/helpers/BezierPathInteractionHelper.js +20 -13
- package/src/cjs/utils/helpers/BezierPathInteractionHelper.js.map +1 -1
- package/src/cjs/utils/helpers/CircleHelper.d.ts +10 -1
- package/src/cjs/utils/helpers/CircleHelper.js +13 -2
- package/src/cjs/utils/helpers/CircleHelper.js.map +1 -1
- package/src/cjs/utils/helpers/CircleSectorHelper.d.ts +2 -2
- package/src/cjs/utils/helpers/CircleSectorHelper.js +1 -0
- package/src/cjs/utils/helpers/CircleSectorHelper.js.map +1 -1
- package/src/cjs/utils/helpers/TriangleHelper.d.ts +57 -0
- package/src/cjs/utils/helpers/TriangleHelper.js +83 -0
- package/src/cjs/utils/helpers/TriangleHelper.js.map +1 -0
- package/src/cjs/utils/helpers/VEllipseHelper.d.ts +6 -4
- package/src/cjs/utils/helpers/VEllipseHelper.js +4 -2
- package/src/cjs/utils/helpers/VEllipseHelper.js.map +1 -1
- package/src/cjs/utils/helpers/VEllipseSectorHelper.d.ts +3 -2
- package/src/cjs/utils/helpers/VEllipseSectorHelper.js +1 -0
- package/src/cjs/utils/helpers/VEllipseSectorHelper.js.map +1 -1
- package/src/cjs/utils/parsers/LinearColorGradientParser.d.ts +78 -0
- package/src/cjs/utils/parsers/LinearColorGradientParser.js +224 -0
- package/src/cjs/utils/parsers/LinearColorGradientParser.js.map +1 -0
- package/src/createDemoDrawables.js +1 -0
- package/src/esm/PlotBoilerplate.d.ts +37 -6
- package/src/esm/PlotBoilerplate.js +222 -116
- package/src/esm/PlotBoilerplate.js.map +1 -1
- package/src/esm/Polygon.d.ts +26 -7
- package/src/esm/Polygon.js +53 -10
- package/src/esm/Polygon.js.map +1 -1
- package/src/esm/Triangle.js +2 -2
- package/src/esm/Triangle.js.map +1 -1
- package/src/esm/Vertex.d.ts +15 -3
- package/src/esm/Vertex.js +18 -1
- package/src/esm/Vertex.js.map +1 -1
- package/src/esm/interfaces/core.d.ts +28 -0
- package/src/esm/interfaces/core.js +2 -0
- package/src/esm/interfaces/core.js.map +1 -1
- package/src/esm/utils/datastructures/Color.d.ts +147 -1
- package/src/esm/utils/datastructures/Color.js +386 -42
- package/src/esm/utils/datastructures/Color.js.map +1 -1
- package/src/esm/utils/datastructures/ColorGradient.d.ts +79 -0
- package/src/esm/utils/datastructures/ColorGradient.js +166 -0
- package/src/esm/utils/datastructures/ColorGradient.js.map +1 -0
- package/src/esm/utils/dom/components/ColorGradientPicker.d.ts +245 -0
- package/src/esm/utils/dom/components/ColorGradientPicker.js +732 -0
- package/src/esm/utils/dom/components/ColorGradientPicker.js.map +1 -0
- package/src/esm/utils/dom/components/ColorGradientPickerJSX.d.ts +129 -0
- package/src/esm/utils/dom/components/ColorGradientPickerJSX.js +582 -0
- package/src/esm/utils/dom/components/ColorGradientPickerJSX.js.map +1 -0
- package/src/esm/utils/dom/components/ColorGradientSelector.d.ts +117 -0
- package/src/esm/utils/dom/components/ColorGradientSelector.js +332 -0
- package/src/esm/utils/dom/components/ColorGradientSelector.js.map +1 -0
- package/src/esm/utils/dom/components/Test.d.ts +7 -0
- package/src/esm/utils/dom/components/Test.js +26 -0
- package/src/esm/utils/dom/components/Test.js.map +1 -0
- package/src/esm/utils/dom/guiSizeToggler.js +1 -1
- package/src/esm/utils/dom/guiSizeToggler.js.map +1 -1
- package/src/esm/utils/helpers/BezierPathInteractionHelper.d.ts +9 -3
- package/src/esm/utils/helpers/BezierPathInteractionHelper.js +20 -13
- package/src/esm/utils/helpers/BezierPathInteractionHelper.js.map +1 -1
- package/src/esm/utils/helpers/CircleHelper.d.ts +10 -1
- package/src/esm/utils/helpers/CircleHelper.js +13 -2
- package/src/esm/utils/helpers/CircleHelper.js.map +1 -1
- package/src/esm/utils/helpers/CircleSectorHelper.d.ts +2 -2
- package/src/esm/utils/helpers/CircleSectorHelper.js +1 -0
- package/src/esm/utils/helpers/CircleSectorHelper.js.map +1 -1
- package/src/esm/utils/helpers/TriangleHelper.d.ts +57 -0
- package/src/esm/utils/helpers/TriangleHelper.js +78 -0
- package/src/esm/utils/helpers/TriangleHelper.js.map +1 -0
- package/src/esm/utils/helpers/VEllipseHelper.d.ts +6 -4
- package/src/esm/utils/helpers/VEllipseHelper.js +4 -2
- package/src/esm/utils/helpers/VEllipseHelper.js.map +1 -1
- package/src/esm/utils/helpers/VEllipseSectorHelper.d.ts +3 -2
- package/src/esm/utils/helpers/VEllipseSectorHelper.js +1 -0
- package/src/esm/utils/helpers/VEllipseSectorHelper.js.map +1 -1
- package/src/esm/utils/parsers/LinearColorGradientParser.d.ts +78 -0
- package/src/esm/utils/parsers/LinearColorGradientParser.js +217 -0
- package/src/esm/utils/parsers/LinearColorGradientParser.js.map +1 -0
- package/src/external.d.ts +9 -0
- package/src/ts/PlotBoilerplate.ts +233 -105
- package/src/ts/Polygon.ts +68 -14
- package/src/ts/Triangle.ts +2 -2
- package/src/ts/Vertex.ts +21 -3
- package/src/ts/interfaces/core.ts +31 -0
- package/src/ts/utils/datastructures/Color.ts +423 -44
- package/src/ts/utils/datastructures/ColorGradient.ts +196 -0
- package/src/ts/utils/dom/components/ColorGradientPicker.tsx +877 -0
- package/src/ts/utils/dom/components/ColorGradientSelector.tsx +445 -0
- package/src/ts/utils/dom/components/Test.tsx +44 -0
- package/src/ts/utils/dom/components/_ColorGradientPicker_raw.ts_ +392 -0
- package/src/ts/utils/dom/guiSizeToggler.ts +1 -1
- package/src/ts/utils/helpers/BezierPathInteractionHelper.ts +25 -15
- package/src/ts/utils/helpers/CircleHelper.ts +17 -3
- package/src/ts/utils/helpers/CircleSectorHelper.ts +4 -2
- package/src/ts/utils/helpers/TriangleHelper.ts +102 -0
- package/src/ts/utils/helpers/VEllipseHelper.ts +6 -4
- package/src/ts/utils/helpers/VEllipseSectorHelper.ts +3 -2
- package/src/ts/utils/parsers/LinearColorGradientParser.ts +297 -0
package/src/ts/Vertex.ts
CHANGED
|
@@ -35,7 +35,8 @@
|
|
|
35
35
|
* @modified 2024-12-17 Outsourced the euclidean distance calculation of `Vertex.distance` to `geomutils.dist4`.
|
|
36
36
|
* @modified 2025-03-24 Making the second parameter `center` of the `Vertex.rotate` method optional.
|
|
37
37
|
* @modified 2025-04-13 Adding the `Vertex.move(amount: XYCoords)` method (does the same as `add`, added by naming convention).
|
|
38
|
-
* @
|
|
38
|
+
* @modified 2025-05-07 Class `Vertex` is now implementing interface `IBounded` (to meet convention).
|
|
39
|
+
* @version 2.11.0
|
|
39
40
|
*
|
|
40
41
|
* @file Vertex
|
|
41
42
|
* @public
|
|
@@ -44,8 +45,9 @@
|
|
|
44
45
|
import { IVertexAttr, VertexAttr } from "./VertexAttr";
|
|
45
46
|
import { UIDGenerator } from "./UIDGenerator";
|
|
46
47
|
import { VertexListeners } from "./VertexListeners";
|
|
47
|
-
import { XYCoords, SVGSerializable, UID } from "./interfaces";
|
|
48
|
+
import { XYCoords, SVGSerializable, UID, IBounded } from "./interfaces";
|
|
48
49
|
import { geomutils } from "./geomutils";
|
|
50
|
+
import { Bounds } from "./Bounds";
|
|
49
51
|
|
|
50
52
|
/**
|
|
51
53
|
* @classdesc A vertex is a pair of two numbers.<br>
|
|
@@ -61,7 +63,7 @@ import { geomutils } from "./geomutils";
|
|
|
61
63
|
* @requires XYCoords
|
|
62
64
|
*
|
|
63
65
|
*/
|
|
64
|
-
export class Vertex implements XYCoords, SVGSerializable {
|
|
66
|
+
export class Vertex implements IBounded, XYCoords, SVGSerializable {
|
|
65
67
|
private static readonly ZERO = new Vertex(0, 0);
|
|
66
68
|
|
|
67
69
|
/**
|
|
@@ -645,6 +647,22 @@ export class Vertex implements XYCoords, SVGSerializable {
|
|
|
645
647
|
return this;
|
|
646
648
|
}
|
|
647
649
|
|
|
650
|
+
//--- BEGIN --- Implement interface `IBounded`
|
|
651
|
+
/**
|
|
652
|
+
* Get the bounding box (bounds) of this Vertex.
|
|
653
|
+
* This is just by convention – any vertex is just a position without any useful with or height (0).
|
|
654
|
+
*
|
|
655
|
+
* @method getBounds
|
|
656
|
+
* @instance
|
|
657
|
+
* @memberof Vertex
|
|
658
|
+
* @return {Bounds} The rectangular bounds of this Vertex (width and height are zero).
|
|
659
|
+
**/
|
|
660
|
+
getBounds(): Bounds {
|
|
661
|
+
// return Bounds.computeFromVertices([this.a, this.b, this.c]);
|
|
662
|
+
return Bounds.computeFromVertices([this]);
|
|
663
|
+
}
|
|
664
|
+
//--- END --- Implement interface `IBounded`
|
|
665
|
+
|
|
648
666
|
/**
|
|
649
667
|
* Get a string representation of this vertex.
|
|
650
668
|
*
|
|
@@ -22,6 +22,8 @@
|
|
|
22
22
|
* @modified 2024-08-25 Added the `CSSBackdropFilterParams` params to the global params (all optional).
|
|
23
23
|
* @modified 2025-03-29 Added interface `Intersectable`.
|
|
24
24
|
* @modified 2025-04-16 Added interface `IBounded`.
|
|
25
|
+
* @modified 2025-05-07 Added callback `onContentChanged` to PB to track if the drawable content changed.
|
|
26
|
+
* @modified 2025-06-07 Adding helper type `PolygonIntersectionTuple` for re-usability.
|
|
25
27
|
**/
|
|
26
28
|
|
|
27
29
|
import { Vertex } from "../Vertex";
|
|
@@ -114,6 +116,18 @@ export interface CanvasWrapper {
|
|
|
114
116
|
setSize: (width: number, height: number) => void;
|
|
115
117
|
element: HTMLCanvasElement | SVGElement;
|
|
116
118
|
}
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* The interface for PB change events.
|
|
122
|
+
*/
|
|
123
|
+
export interface IPBChangeEvent {
|
|
124
|
+
type: "DRAWABLES_ADDED" | "DRAWABLES_REMOVED";
|
|
125
|
+
addedDrawables: Array<Drawable>;
|
|
126
|
+
removedDrawables: Array<Drawable>;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
export type PBContentChangeListener = (event: IPBChangeEvent) => void; // A callback function that will be triggered after content changed.
|
|
130
|
+
|
|
117
131
|
/**
|
|
118
132
|
* The config that's used by PB.
|
|
119
133
|
*/
|
|
@@ -303,3 +317,20 @@ export interface IBounded {
|
|
|
303
317
|
**/
|
|
304
318
|
getBounds(): IBounds;
|
|
305
319
|
}
|
|
320
|
+
|
|
321
|
+
export interface IShapeInteractionHelper {
|
|
322
|
+
/**
|
|
323
|
+
* Let this shape helper draw it's handle lines. It's up to the helper what they look like.
|
|
324
|
+
* @param {DrawLib<any>} draw - The draw library to use.
|
|
325
|
+
* @param {DrawLib<any>} fill - The fill library to use.
|
|
326
|
+
*/
|
|
327
|
+
drawHandleLines(draw: DrawLib<any>, fill: DrawLib<any>): void;
|
|
328
|
+
|
|
329
|
+
/**
|
|
330
|
+
* Destroys this helper. This means that all listeners get released and this helper
|
|
331
|
+
* will not receive or handle any events.
|
|
332
|
+
*/
|
|
333
|
+
destroy(): void;
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
export type PolygonIntersectionTuple<T> = { edgeIndex: number; intersection: T };
|