plotboilerplate 1.27.1 → 1.28.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.
- package/dist/index.esm.js +135 -36
- 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 +96 -17
- package/dist/plotboilerplate.min.js +1 -1
- package/package.json +2 -1
- package/src/cjs/PlotBoilerplate.d.ts +11 -1
- package/src/cjs/PlotBoilerplate.js +23 -7
- package/src/cjs/PlotBoilerplate.js.map +1 -1
- package/src/cjs/VertexListeners.d.ts +2 -1
- package/src/cjs/VertexListeners.js +5 -1
- package/src/cjs/VertexListeners.js.map +1 -1
- package/src/cjs/draw.d.ts +18 -2
- package/src/cjs/draw.js +21 -2
- package/src/cjs/draw.js.map +1 -1
- package/src/cjs/drawgl.d.ts +18 -3
- package/src/cjs/drawgl.js +19 -2
- package/src/cjs/drawgl.js.map +1 -1
- package/src/cjs/drawutilssvg.d.ts +19 -1
- package/src/cjs/drawutilssvg.js +28 -5
- package/src/cjs/drawutilssvg.js.map +1 -1
- package/src/cjs/interfaces/DrawLib.d.ts +18 -1
- package/src/cjs/interfaces/DrawLib.js +2 -0
- package/src/cjs/interfaces/DrawLib.js.map +1 -1
- package/src/cjs/utils/Params.d.ts +3 -2
- package/src/cjs/utils/Params.js +11 -3
- package/src/cjs/utils/Params.js.map +1 -1
- package/src/cjs/utils/WebColors.d.ts +2 -1
- package/src/cjs/utils/WebColors.js +15 -2
- package/src/cjs/utils/WebColors.js.map +1 -1
- package/src/cjs/utils/algorithms/HobbyPath.js +13 -16
- package/src/cjs/utils/algorithms/HobbyPath.js.map +1 -1
- package/src/cjs/utils/helpers/BezierResizeHelper.d.ts +144 -0
- package/src/cjs/utils/helpers/BezierResizeHelper.js +319 -0
- package/src/cjs/utils/helpers/BezierResizeHelper.js.map +1 -0
- package/src/esm/PlotBoilerplate.d.ts +11 -1
- package/src/esm/PlotBoilerplate.js +23 -7
- package/src/esm/PlotBoilerplate.js.map +1 -1
- package/src/esm/VertexListeners.d.ts +2 -1
- package/src/esm/VertexListeners.js +5 -1
- package/src/esm/VertexListeners.js.map +1 -1
- package/src/esm/draw.d.ts +18 -2
- package/src/esm/draw.js +21 -2
- package/src/esm/draw.js.map +1 -1
- package/src/esm/drawgl.d.ts +18 -3
- package/src/esm/drawgl.js +19 -2
- package/src/esm/drawgl.js.map +1 -1
- package/src/esm/drawutilssvg.d.ts +19 -1
- package/src/esm/drawutilssvg.js +28 -5
- package/src/esm/drawutilssvg.js.map +1 -1
- package/src/esm/interfaces/DrawLib.d.ts +18 -1
- package/src/esm/interfaces/DrawLib.js +2 -0
- package/src/esm/interfaces/DrawLib.js.map +1 -1
- package/src/esm/utils/Params.d.ts +3 -2
- package/src/esm/utils/Params.js +11 -3
- package/src/esm/utils/Params.js.map +1 -1
- package/src/esm/utils/WebColors.d.ts +2 -1
- package/src/esm/utils/WebColors.js +15 -2
- package/src/esm/utils/WebColors.js.map +1 -1
- package/src/esm/utils/algorithms/HobbyPath.js +13 -16
- package/src/esm/utils/algorithms/HobbyPath.js.map +1 -1
- package/src/esm/utils/helpers/BezierResizeHelper.d.ts +144 -0
- package/src/esm/utils/helpers/BezierResizeHelper.js +314 -0
- package/src/esm/utils/helpers/BezierResizeHelper.js.map +1 -0
- package/src/ts/PlotBoilerplate.ts +37 -11
- package/src/ts/VertexListeners.ts +5 -1
- package/src/ts/draw.ts +32 -2
- package/src/ts/drawgl.ts +38 -3
- package/src/ts/drawutilssvg.ts +33 -6
- package/src/ts/interfaces/DrawLib.ts +19 -1
- package/src/ts/utils/Params.ts +11 -3
- package/src/ts/utils/WebColors.ts +15 -2
- package/src/ts/utils/algorithms/HobbyPath.ts +248 -272
- package/src/ts/utils/helpers/BezierResizeHelper.ts +390 -0
- package/src/cjs/utils/_gup.js_ +0 -13
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* A helper to resize bezier paths in horizontal and vertical orientation.
|
|
4
|
+
*
|
|
5
|
+
* @requires PlotBoilerplate
|
|
6
|
+
* @requires BezierPath
|
|
7
|
+
* @requires Vertex
|
|
8
|
+
*
|
|
9
|
+
* @author Ikaros Kappler
|
|
10
|
+
* @date 2026-04-04 Copied from the ngdg project, made minor type adaptions.
|
|
11
|
+
* @version 1.2.0
|
|
12
|
+
*
|
|
13
|
+
*/
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.BezierResizeHelper = void 0;
|
|
16
|
+
var Vertex_1 = require("../../Vertex");
|
|
17
|
+
// A closure to hide helper functions.
|
|
18
|
+
var BezierResizeHelper = /** @class */ (function () {
|
|
19
|
+
/**
|
|
20
|
+
* The constructor.
|
|
21
|
+
*
|
|
22
|
+
* @param {PlotBoilerplate} pb
|
|
23
|
+
* @param {BezierPath} bezierPath
|
|
24
|
+
* @param {function} updateCallback
|
|
25
|
+
*/
|
|
26
|
+
function BezierResizeHelper(pb, bezierPath, updateCallback) {
|
|
27
|
+
this.pb = pb;
|
|
28
|
+
this.bezierPath = bezierPath;
|
|
29
|
+
// @public
|
|
30
|
+
this.topResizeHandle = new Vertex_1.Vertex(0, 0);
|
|
31
|
+
this.leftResizeHandle = new Vertex_1.Vertex(0, 0);
|
|
32
|
+
this.bottomResizeHandle = new Vertex_1.Vertex(0, 0);
|
|
33
|
+
this.rightResizeHandle = new Vertex_1.Vertex(0, 0);
|
|
34
|
+
// @private
|
|
35
|
+
this.topHandleDragStartPosition = null;
|
|
36
|
+
this.leftHandleDragStartPosition = null;
|
|
37
|
+
this.bottomHandleDragStartPosition = null;
|
|
38
|
+
this.rightHandleDragStartPosition = null;
|
|
39
|
+
this.__listeners = this.__installListeners(this, pb, bezierPath, updateCallback);
|
|
40
|
+
this.updateResizeHandles();
|
|
41
|
+
}
|
|
42
|
+
BezierResizeHelper.prototype.draw = function (draw, fill) {
|
|
43
|
+
this.drawHandleLines(draw, fill, "grey");
|
|
44
|
+
this.drawTriangles(draw, fill, "rgba(0,192,192,1.0)");
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Call this method from the outside to see active helper lines for those edges
|
|
48
|
+
* that are currently dragged.
|
|
49
|
+
*
|
|
50
|
+
* @param {DrawLib<any>} draw
|
|
51
|
+
* @param {DrawLib<any>} fill
|
|
52
|
+
* @param {string} lineColor
|
|
53
|
+
*/
|
|
54
|
+
BezierResizeHelper.prototype.drawHandleLines = function (draw, fill, lineColor) {
|
|
55
|
+
// console.log("drawResizeHandleLines", bezierResizer.verticalResizeHandleDragStartPosition);
|
|
56
|
+
var bounds = this.bezierPath.getBounds();
|
|
57
|
+
if (this.topHandleDragStartPosition) {
|
|
58
|
+
draw.line({ x: bounds.min.x, y: this.topResizeHandle.y }, { x: bounds.max.x, y: this.topResizeHandle.y }, lineColor, 1.0, {
|
|
59
|
+
dashOffset: 0.0,
|
|
60
|
+
dashArray: [5, 5]
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
if (this.leftHandleDragStartPosition) {
|
|
64
|
+
draw.line({ x: this.leftResizeHandle.x, y: bounds.min.y }, { x: this.leftResizeHandle.x, y: bounds.max.y }, lineColor, 1.0, { dashOffset: 0.0, dashArray: [5, 5] });
|
|
65
|
+
}
|
|
66
|
+
if (this.bottomHandleDragStartPosition) {
|
|
67
|
+
draw.line({ x: bounds.min.x, y: this.bottomResizeHandle.y }, { x: bounds.max.x, y: this.bottomResizeHandle.y }, lineColor, 1.0, {
|
|
68
|
+
dashOffset: 0.0,
|
|
69
|
+
dashArray: [5, 5]
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
if (this.rightHandleDragStartPosition) {
|
|
73
|
+
draw.line({ x: this.rightResizeHandle.x, y: bounds.min.y }, { x: this.rightResizeHandle.x, y: bounds.max.y }, lineColor, 1.0, { dashOffset: 0.0, dashArray: [5, 5] });
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
BezierResizeHelper.prototype.drawTriangles = function (draw, _fill, color) {
|
|
77
|
+
// this.__drawUpTriangle(draw, this.topResizeHandle, color);
|
|
78
|
+
// this.__drawDownTriangle(draw, this.bottomResizeHandle, color);
|
|
79
|
+
// this.__drawLeftTriangle(draw, this.leftResizeHandle, color);
|
|
80
|
+
// this.__drawRightTriangle(draw, this.rightResizeHandle, color);
|
|
81
|
+
this.drawTopTriangle(draw, _fill, color);
|
|
82
|
+
this.drawLeftTriangle(draw, _fill, color);
|
|
83
|
+
this.drawBottomTriangle(draw, _fill, color);
|
|
84
|
+
this.drawRightTriangle(draw, _fill, color);
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* Draws an up-trinangle at the top handle position.
|
|
88
|
+
*
|
|
89
|
+
* @param draw
|
|
90
|
+
* @param position
|
|
91
|
+
* @param color
|
|
92
|
+
*/
|
|
93
|
+
BezierResizeHelper.prototype.drawTopTriangle = function (draw, _fill, color) {
|
|
94
|
+
this.__drawUpTriangle(draw, _fill, this.topResizeHandle, color);
|
|
95
|
+
};
|
|
96
|
+
/**
|
|
97
|
+
* Draws an up-trinangle at the top handle position.
|
|
98
|
+
*
|
|
99
|
+
* @param draw
|
|
100
|
+
* @param position
|
|
101
|
+
* @param color
|
|
102
|
+
*/
|
|
103
|
+
BezierResizeHelper.prototype.drawLeftTriangle = function (draw, _fill, color) {
|
|
104
|
+
this.__drawLeftTriangle(draw, _fill, this.leftResizeHandle, color);
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* Draws an up-trinangle at the top handle position.
|
|
108
|
+
*
|
|
109
|
+
* @param draw
|
|
110
|
+
* @param position
|
|
111
|
+
* @param color
|
|
112
|
+
*/
|
|
113
|
+
BezierResizeHelper.prototype.drawBottomTriangle = function (draw, _fill, color) {
|
|
114
|
+
this.__drawDownTriangle(draw, _fill, this.bottomResizeHandle, color);
|
|
115
|
+
};
|
|
116
|
+
/**
|
|
117
|
+
* Draws an right-trinangle at the top handle position.
|
|
118
|
+
*
|
|
119
|
+
* @param draw
|
|
120
|
+
* @param position
|
|
121
|
+
* @param color
|
|
122
|
+
*/
|
|
123
|
+
BezierResizeHelper.prototype.drawRightTriangle = function (draw, _fill, color) {
|
|
124
|
+
this.__drawRightTriangle(draw, _fill, this.rightResizeHandle, color);
|
|
125
|
+
};
|
|
126
|
+
/**
|
|
127
|
+
* Draws an up-trinangle at the top handle position.
|
|
128
|
+
*
|
|
129
|
+
* @param draw
|
|
130
|
+
* @param position
|
|
131
|
+
* @param color
|
|
132
|
+
*/
|
|
133
|
+
BezierResizeHelper.prototype.__drawUpTriangle = function (draw, _fill, position, color) {
|
|
134
|
+
var arrowSize = 6.0;
|
|
135
|
+
var arrowSizeH = arrowSize / this.pb.config.scaleX;
|
|
136
|
+
var arrowSizeV = arrowSize / this.pb.config.scaleY;
|
|
137
|
+
var verts = [
|
|
138
|
+
{ x: position.x - arrowSizeH, y: position.y + arrowSizeV * 0.5 }, // left corner
|
|
139
|
+
{ x: position.x, y: position.y - arrowSizeV }, // up corner
|
|
140
|
+
{ x: position.x + arrowSizeH, y: position.y + arrowSizeV * 0.5 } // right corner
|
|
141
|
+
];
|
|
142
|
+
draw.polyline(verts, false, color, 1.0);
|
|
143
|
+
};
|
|
144
|
+
/**
|
|
145
|
+
* Draws an left-trinangle at the left handle position.
|
|
146
|
+
*
|
|
147
|
+
* @param draw
|
|
148
|
+
* @param position
|
|
149
|
+
* @param color
|
|
150
|
+
*/
|
|
151
|
+
BezierResizeHelper.prototype.__drawLeftTriangle = function (draw, _fill, position, color) {
|
|
152
|
+
var arrowSize = 6.0;
|
|
153
|
+
var arrowSizeH = arrowSize / this.pb.config.scaleX;
|
|
154
|
+
var arrowSizeV = arrowSize / this.pb.config.scaleY;
|
|
155
|
+
var verts = [
|
|
156
|
+
{ x: position.x - arrowSizeH, y: position.y }, // left corner
|
|
157
|
+
{ x: position.x + arrowSizeH * 0.5, y: position.y - arrowSizeV }, // up corner
|
|
158
|
+
{ x: position.x + arrowSizeH * 0.5, y: position.y + arrowSizeV } // down corner
|
|
159
|
+
];
|
|
160
|
+
draw.polyline(verts, false, color, 1.0);
|
|
161
|
+
};
|
|
162
|
+
/**
|
|
163
|
+
* Draws a down-trinangle at the top handle position.
|
|
164
|
+
*
|
|
165
|
+
* @param draw
|
|
166
|
+
* @param position
|
|
167
|
+
* @param color
|
|
168
|
+
*/
|
|
169
|
+
BezierResizeHelper.prototype.__drawDownTriangle = function (draw, _fill, position, color) {
|
|
170
|
+
var arrowSize = 6.0;
|
|
171
|
+
var arrowSizeH = arrowSize / this.pb.config.scaleX;
|
|
172
|
+
var arrowSizeV = arrowSize / this.pb.config.scaleY;
|
|
173
|
+
var verts = [
|
|
174
|
+
{ x: position.x + arrowSizeH, y: position.y - arrowSizeV * 0.5 }, // right corner
|
|
175
|
+
{ x: position.x, y: position.y + arrowSizeV }, // down corner
|
|
176
|
+
{ x: position.x - arrowSizeH, y: position.y - arrowSizeV * 0.5 } // left corner
|
|
177
|
+
];
|
|
178
|
+
draw.polyline(verts, false, color, 1.0);
|
|
179
|
+
};
|
|
180
|
+
/**
|
|
181
|
+
* Draws an left-trinangle at the left handle position.
|
|
182
|
+
*
|
|
183
|
+
* @param draw
|
|
184
|
+
* @param position
|
|
185
|
+
* @param color
|
|
186
|
+
*/
|
|
187
|
+
BezierResizeHelper.prototype.__drawRightTriangle = function (draw, _fill, position, color) {
|
|
188
|
+
var arrowSize = 6.0;
|
|
189
|
+
var arrowSizeH = arrowSize / this.pb.config.scaleX;
|
|
190
|
+
var arrowSizeV = arrowSize / this.pb.config.scaleY;
|
|
191
|
+
var verts = [
|
|
192
|
+
{ x: position.x + arrowSizeH, y: position.y }, // left corner
|
|
193
|
+
{ x: position.x - arrowSizeH * 0.5, y: position.y - arrowSizeV }, // up corner
|
|
194
|
+
{ x: position.x - arrowSizeH * 0.5, y: position.y + arrowSizeV } // down corner
|
|
195
|
+
];
|
|
196
|
+
draw.polyline(verts, false, color, 1.0);
|
|
197
|
+
};
|
|
198
|
+
/**
|
|
199
|
+
* Destroys this helper by removing all previously installed vertex listeners.
|
|
200
|
+
*/
|
|
201
|
+
BezierResizeHelper.prototype.destroy = function () {
|
|
202
|
+
this.topResizeHandle.listeners.removeDragStartListener(this.__listeners[0]);
|
|
203
|
+
this.topResizeHandle.listeners.removeDragEndListener(this.__listeners[1]);
|
|
204
|
+
this.leftResizeHandle.listeners.removeDragStartListener(this.__listeners[2]);
|
|
205
|
+
this.leftResizeHandle.listeners.removeDragEndListener(this.__listeners[3]);
|
|
206
|
+
this.bottomResizeHandle.listeners.removeDragStartListener(this.__listeners[4]);
|
|
207
|
+
this.bottomResizeHandle.listeners.removeDragEndListener(this.__listeners[5]);
|
|
208
|
+
this.rightResizeHandle.listeners.removeDragStartListener(this.__listeners[6]);
|
|
209
|
+
this.rightResizeHandle.listeners.removeDragEndListener(this.__listeners[7]);
|
|
210
|
+
};
|
|
211
|
+
/**
|
|
212
|
+
* Install all required drag-start and drag-end listeners.
|
|
213
|
+
*/
|
|
214
|
+
BezierResizeHelper.prototype.__installListeners = function (_self, pb, bezierPath, updateCallback) {
|
|
215
|
+
var listeners = [];
|
|
216
|
+
listeners.push(_self.topResizeHandle.listeners.addDragStartListener(function (e) {
|
|
217
|
+
var relPos = pb.transformMousePosition(e.params.draggedFrom.x, e.params.draggedFrom.y);
|
|
218
|
+
_self.topHandleDragStartPosition = relPos;
|
|
219
|
+
}));
|
|
220
|
+
listeners.push(_self.topResizeHandle.listeners.addDragEndListener(function (e) {
|
|
221
|
+
var relTargetPos = pb.transformMousePosition(e.params.pos.x, e.params.pos.y);
|
|
222
|
+
var targetHeightDifference = _self.topHandleDragStartPosition.y - relTargetPos.y;
|
|
223
|
+
_self.__changePathHeightTop(bezierPath, targetHeightDifference);
|
|
224
|
+
_self.updateResizeHandles();
|
|
225
|
+
_self.topHandleDragStartPosition = null;
|
|
226
|
+
updateCallback();
|
|
227
|
+
}));
|
|
228
|
+
listeners.push(_self.leftResizeHandle.listeners.addDragStartListener(function (e) {
|
|
229
|
+
var relPos = pb.transformMousePosition(e.params.draggedFrom.x, e.params.draggedFrom.y);
|
|
230
|
+
_self.leftHandleDragStartPosition = relPos;
|
|
231
|
+
}));
|
|
232
|
+
listeners.push(_self.leftResizeHandle.listeners.addDragEndListener(function (e) {
|
|
233
|
+
var relTargetPos = pb.transformMousePosition(e.params.pos.x, e.params.pos.y);
|
|
234
|
+
var targetWidthDifference = _self.leftHandleDragStartPosition.x - relTargetPos.x;
|
|
235
|
+
_self.__changePathWidthLeft(bezierPath, targetWidthDifference);
|
|
236
|
+
_self.updateResizeHandles();
|
|
237
|
+
_self.leftHandleDragStartPosition = null;
|
|
238
|
+
updateCallback();
|
|
239
|
+
}));
|
|
240
|
+
listeners.push(_self.bottomResizeHandle.listeners.addDragStartListener(function (e) {
|
|
241
|
+
var relPos = pb.transformMousePosition(e.params.draggedFrom.x, e.params.draggedFrom.y);
|
|
242
|
+
_self.bottomHandleDragStartPosition = relPos;
|
|
243
|
+
}));
|
|
244
|
+
listeners.push(_self.bottomResizeHandle.listeners.addDragEndListener(function (e) {
|
|
245
|
+
var relTargetPos = pb.transformMousePosition(e.params.pos.x, e.params.pos.y);
|
|
246
|
+
var targetHeightDifference = relTargetPos.y - _self.bottomHandleDragStartPosition.y;
|
|
247
|
+
_self.__changePathHeightBottom(bezierPath, targetHeightDifference);
|
|
248
|
+
_self.updateResizeHandles();
|
|
249
|
+
_self.bottomHandleDragStartPosition = null;
|
|
250
|
+
updateCallback();
|
|
251
|
+
}));
|
|
252
|
+
listeners.push(_self.rightResizeHandle.listeners.addDragStartListener(function (e) {
|
|
253
|
+
var relPos = pb.transformMousePosition(e.params.draggedFrom.x, e.params.draggedFrom.y);
|
|
254
|
+
_self.rightHandleDragStartPosition = relPos;
|
|
255
|
+
}));
|
|
256
|
+
listeners.push(_self.rightResizeHandle.listeners.addDragEndListener(function (e) {
|
|
257
|
+
var relTargetPos = pb.transformMousePosition(e.params.pos.x, e.params.pos.y);
|
|
258
|
+
var targetWidthDifference = relTargetPos.x - _self.rightHandleDragStartPosition.x;
|
|
259
|
+
_self.__changePathWidthRight(bezierPath, targetWidthDifference);
|
|
260
|
+
_self.updateResizeHandles();
|
|
261
|
+
_self.rightHandleDragStartPosition = null;
|
|
262
|
+
updateCallback();
|
|
263
|
+
}));
|
|
264
|
+
return listeners;
|
|
265
|
+
};
|
|
266
|
+
/**
|
|
267
|
+
* @param {BezierPath} bezierPath - The path to update.
|
|
268
|
+
* @param {number} heightAmount - The height difference to apply. Can be positive or negative or zero.
|
|
269
|
+
*/
|
|
270
|
+
BezierResizeHelper.prototype.__changePathHeightTop = function (bezierPath, heightAmount) {
|
|
271
|
+
var bounds = bezierPath.getBounds();
|
|
272
|
+
var scaleAnchor = bounds.max;
|
|
273
|
+
var verticalScaleFactor = (bounds.height + heightAmount) / bounds.height;
|
|
274
|
+
bezierPath.scaleXY({ x: 1.0, y: verticalScaleFactor }, scaleAnchor);
|
|
275
|
+
};
|
|
276
|
+
/**
|
|
277
|
+
* @param {BezierPath} bezierPath - The path to update.
|
|
278
|
+
* @param {number} widthAmount - The width difference to apply. Can be positive or negative or zero.
|
|
279
|
+
*/
|
|
280
|
+
BezierResizeHelper.prototype.__changePathWidthLeft = function (bezierPath, widthAmount) {
|
|
281
|
+
var bounds = bezierPath.getBounds();
|
|
282
|
+
var scaleAnchor = bounds.max;
|
|
283
|
+
var horizontalScaleFactor = (bounds.width + widthAmount) / bounds.width;
|
|
284
|
+
bezierPath.scaleXY({ x: horizontalScaleFactor, y: 1.0 }, scaleAnchor);
|
|
285
|
+
};
|
|
286
|
+
/**
|
|
287
|
+
* @param {BezierPath} bezierPath - The path to update.
|
|
288
|
+
* @param {number} heightAmount - The height difference to apply. Can be positive or negative or zero.
|
|
289
|
+
*/
|
|
290
|
+
BezierResizeHelper.prototype.__changePathHeightBottom = function (bezierPath, heightAmount) {
|
|
291
|
+
var bounds = bezierPath.getBounds();
|
|
292
|
+
var scaleAnchor = bounds.min;
|
|
293
|
+
var verticalScaleFactor = (bounds.height + heightAmount) / bounds.height;
|
|
294
|
+
bezierPath.scaleXY({ x: 1.0, y: verticalScaleFactor }, scaleAnchor);
|
|
295
|
+
};
|
|
296
|
+
/**
|
|
297
|
+
* @param {BezierPath} bezierPath - The path to update.
|
|
298
|
+
* @param {number} widthAmount - The width difference to apply. Can be positive or negative or zero.
|
|
299
|
+
*/
|
|
300
|
+
BezierResizeHelper.prototype.__changePathWidthRight = function (bezierPath, widthAmount) {
|
|
301
|
+
var bounds = bezierPath.getBounds();
|
|
302
|
+
var scaleAnchor = bounds.min;
|
|
303
|
+
var horizontalScaleFactor = (bounds.width + widthAmount) / bounds.width;
|
|
304
|
+
bezierPath.scaleXY({ x: horizontalScaleFactor, y: 1.0 }, scaleAnchor);
|
|
305
|
+
};
|
|
306
|
+
/**
|
|
307
|
+
* Set the handles to the new position after the path was resized.
|
|
308
|
+
*/
|
|
309
|
+
BezierResizeHelper.prototype.updateResizeHandles = function () {
|
|
310
|
+
var bounds = this.bezierPath.getBounds();
|
|
311
|
+
this.leftResizeHandle.set(bounds.min.x, bounds.min.y + bounds.height / 2.0);
|
|
312
|
+
this.topResizeHandle.set(bounds.min.x + bounds.width / 2.0, bounds.min.y);
|
|
313
|
+
this.rightResizeHandle.set(bounds.max.x, bounds.min.y + bounds.height / 2.0);
|
|
314
|
+
this.bottomResizeHandle.set(bounds.min.x + bounds.width / 2.0, bounds.max.y);
|
|
315
|
+
};
|
|
316
|
+
return BezierResizeHelper;
|
|
317
|
+
}()); // END class
|
|
318
|
+
exports.BezierResizeHelper = BezierResizeHelper;
|
|
319
|
+
//# sourceMappingURL=BezierResizeHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BezierResizeHelper.js","sourceRoot":"","sources":["../../../ts/utils/helpers/BezierResizeHelper.ts"],"names":[],"mappings":"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"}
|
|
@@ -92,8 +92,9 @@
|
|
|
92
92
|
* @modified 2025-05-07 Moving full vectors now by default when vector point a is moved.
|
|
93
93
|
* @modified 2025-05-20 Applying `lineWith` parameter in the draw routine for vectors (had been missing).
|
|
94
94
|
* @modified 2026-03-13 Changed visibility of `setZoom` and `setOffset` to public. There was no good reason to have the private.
|
|
95
|
+
* @modified 2026-04-04 Added `isInPanningMode` attribute and `isPanning` method.
|
|
95
96
|
*
|
|
96
|
-
* @version 1.
|
|
97
|
+
* @version 1.22.0
|
|
97
98
|
*
|
|
98
99
|
* @file PlotBoilerplate
|
|
99
100
|
* @fileoverview The main class.
|
|
@@ -258,6 +259,14 @@ export declare class PlotBoilerplate {
|
|
|
258
259
|
* @instance
|
|
259
260
|
*/
|
|
260
261
|
hooks: IHooks;
|
|
262
|
+
/**
|
|
263
|
+
* Indicator if the instance is currently in 'panning' mode.
|
|
264
|
+
* Please use `isPanning()` method to determine value.
|
|
265
|
+
* @member {boolean}
|
|
266
|
+
* @memberof PlotBoilerplate
|
|
267
|
+
* @instance
|
|
268
|
+
*/
|
|
269
|
+
private isInPanningMode;
|
|
261
270
|
/**
|
|
262
271
|
* A list of content change listeners.
|
|
263
272
|
*/
|
|
@@ -370,6 +379,7 @@ export declare class PlotBoilerplate {
|
|
|
370
379
|
* @private
|
|
371
380
|
**/
|
|
372
381
|
private _setToRetina;
|
|
382
|
+
isPanning(): boolean;
|
|
373
383
|
/**
|
|
374
384
|
* Set the current zoom and draw offset to fit the given bounds.
|
|
375
385
|
*
|
|
@@ -92,8 +92,9 @@
|
|
|
92
92
|
* @modified 2025-05-07 Moving full vectors now by default when vector point a is moved.
|
|
93
93
|
* @modified 2025-05-20 Applying `lineWith` parameter in the draw routine for vectors (had been missing).
|
|
94
94
|
* @modified 2026-03-13 Changed visibility of `setZoom` and `setOffset` to public. There was no good reason to have the private.
|
|
95
|
+
* @modified 2026-04-04 Added `isInPanningMode` attribute and `isPanning` method.
|
|
95
96
|
*
|
|
96
|
-
* @version 1.
|
|
97
|
+
* @version 1.22.0
|
|
97
98
|
*
|
|
98
99
|
* @file PlotBoilerplate
|
|
99
100
|
* @fileoverview The main class.
|
|
@@ -551,6 +552,9 @@ export class PlotBoilerplate {
|
|
|
551
552
|
this.resizeCanvas();
|
|
552
553
|
this.updateCSSscale();
|
|
553
554
|
}
|
|
555
|
+
isPanning() {
|
|
556
|
+
return this.isInPanningMode;
|
|
557
|
+
}
|
|
554
558
|
/**
|
|
555
559
|
* Set the current zoom and draw offset to fit the given bounds.
|
|
556
560
|
*
|
|
@@ -1430,13 +1434,12 @@ export class PlotBoilerplate {
|
|
|
1430
1434
|
**/
|
|
1431
1435
|
// TODO: this was moved to the DOM utils
|
|
1432
1436
|
getAvailableContainerSpace() {
|
|
1433
|
-
const
|
|
1434
|
-
|
|
1435
|
-
|
|
1436
|
-
var padding = this.getFProp(container, "padding") || 0, border = this.getFProp(_self.canvas, "border-width") || 0, pl = this.getFProp(container, "padding-left") || padding, pr = this.getFProp(container, "padding-right") || padding, pt = this.getFProp(container, "padding-top") || padding, pb = this.getFProp(container, "padding-bottom") || padding, bl = this.getFProp(_self.canvas, "border-left-width") || border, br = this.getFProp(_self.canvas, "border-right-width") || border, bt = this.getFProp(_self.canvas, "border-top-width") || border, bb = this.getFProp(_self.canvas, "border-bottom-width") || border;
|
|
1437
|
+
const container = this.canvas.parentNode; // Element | Document | DocumentFragment;
|
|
1438
|
+
this.canvas.style.display = "none";
|
|
1439
|
+
var padding = this.getFProp(container, "padding") || 0, border = this.getFProp(this.canvas, "border-width") || 0, pl = this.getFProp(container, "padding-left") || padding, pr = this.getFProp(container, "padding-right") || padding, pt = this.getFProp(container, "padding-top") || padding, pb = this.getFProp(container, "padding-bottom") || padding, bl = this.getFProp(this.canvas, "border-left-width") || border, br = this.getFProp(this.canvas, "border-right-width") || border, bt = this.getFProp(this.canvas, "border-top-width") || border, bb = this.getFProp(this.canvas, "border-bottom-width") || border;
|
|
1437
1440
|
var w = container.clientWidth;
|
|
1438
1441
|
var h = container.clientHeight;
|
|
1439
|
-
|
|
1442
|
+
this.canvas.style.display = "block";
|
|
1440
1443
|
return { width: w - pl - pr - bl - br, height: h - pt - pb - bt - bb };
|
|
1441
1444
|
}
|
|
1442
1445
|
/**
|
|
@@ -1698,7 +1701,8 @@ export class PlotBoilerplate {
|
|
|
1698
1701
|
// not this one. So this tab will never receive any [Ctrl-down] events
|
|
1699
1702
|
// until next keypress; the implication is, that [Ctrl] would still
|
|
1700
1703
|
// considered to be pressed which is not true.
|
|
1701
|
-
if (this.keyHandler && (this.keyHandler.isDown("alt") || this.keyHandler.isDown("spacebar"))) {
|
|
1704
|
+
// if (this.keyHandler && (this.keyHandler.isDown("alt") || this.keyHandler.isDown("spacebar"))) {
|
|
1705
|
+
if (this.isInPanningMode) {
|
|
1702
1706
|
if (!this.config.enablePan) {
|
|
1703
1707
|
return;
|
|
1704
1708
|
}
|
|
@@ -2049,6 +2053,18 @@ export class PlotBoilerplate {
|
|
|
2049
2053
|
_self.selectVerticesInPolygon(_self.selectPolygon);
|
|
2050
2054
|
_self.selectPolygon = null;
|
|
2051
2055
|
_self.redraw();
|
|
2056
|
+
})
|
|
2057
|
+
.down("alt", function () {
|
|
2058
|
+
_self.isInPanningMode = true;
|
|
2059
|
+
})
|
|
2060
|
+
.up("alt", function () {
|
|
2061
|
+
_self.isInPanningMode = false;
|
|
2062
|
+
})
|
|
2063
|
+
.down("spacebar", function () {
|
|
2064
|
+
_self.isInPanningMode = true;
|
|
2065
|
+
})
|
|
2066
|
+
.up("spacebar", function () {
|
|
2067
|
+
_self.isInPanningMode = false;
|
|
2052
2068
|
});
|
|
2053
2069
|
} // END IF enableKeys?
|
|
2054
2070
|
else {
|