plotboilerplate 1.20.0 → 1.20.2

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 (89) hide show
  1. package/README.md +17 -0
  2. package/dist/index.esm.js +101 -50
  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 +102 -50
  9. package/dist/plotboilerplate.min.js +1 -1
  10. package/package.json +2 -1
  11. package/src/cjs/BezierPath.js +2 -3
  12. package/src/cjs/BezierPath.js.map +1 -1
  13. package/src/cjs/PlotBoilerplate.d.ts +7 -1
  14. package/src/cjs/PlotBoilerplate.js +76 -33
  15. package/src/cjs/PlotBoilerplate.js.map +1 -1
  16. package/src/cjs/Triangle.js +1 -0
  17. package/src/cjs/Triangle.js.map +1 -1
  18. package/src/cjs/draw.d.ts +6 -5
  19. package/src/cjs/draw.js +4 -3
  20. package/src/cjs/draw.js.map +1 -1
  21. package/src/cjs/drawgl.d.ts +7 -6
  22. package/src/cjs/drawgl.js +5 -4
  23. package/src/cjs/drawgl.js.map +1 -1
  24. package/src/cjs/drawutilssvg.d.ts +8 -6
  25. package/src/cjs/drawutilssvg.js +14 -7
  26. package/src/cjs/drawutilssvg.js.map +1 -1
  27. package/src/cjs/interfaces/DrawLib.d.ts +4 -3
  28. package/src/cjs/interfaces/DrawLib.js +1 -0
  29. package/src/cjs/interfaces/DrawLib.js.map +1 -1
  30. package/src/cjs/interfaces/core.d.ts +33 -30
  31. package/src/cjs/interfaces/core.js +1 -0
  32. package/src/cjs/interfaces/core.js.map +1 -1
  33. package/src/cjs/utils/datastructures/Color.d.ts +3 -1
  34. package/src/cjs/utils/datastructures/Color.js +12 -1
  35. package/src/cjs/utils/datastructures/Color.js.map +1 -1
  36. package/src/cjs/utils/module.js +4 -2
  37. package/src/cjs/utils/parsers/svg/parseSVGPathData.d.ts +2 -1
  38. package/src/cjs/utils/parsers/svg/parseSVGPathData.js +228 -205
  39. package/src/cjs/utils/parsers/svg/parseSVGPathData.js.map +1 -1
  40. package/src/cjs/utils/parsers/svg/splitSVGPathData.js +6 -2
  41. package/src/cjs/utils/parsers/svg/splitSVGPathData.js.map +1 -1
  42. package/src/cjs/utils/parsers/svg/types.d.ts +29 -9
  43. package/src/cjs/utils/parsers/svg/types.js +4 -3
  44. package/src/cjs/utils/parsers/svg/types.js.map +1 -1
  45. package/src/esm/BezierPath.js +2 -3
  46. package/src/esm/BezierPath.js.map +1 -1
  47. package/src/esm/PlotBoilerplate.d.ts +7 -1
  48. package/src/esm/PlotBoilerplate.js +75 -33
  49. package/src/esm/PlotBoilerplate.js.map +1 -1
  50. package/src/esm/Triangle.js +1 -0
  51. package/src/esm/Triangle.js.map +1 -1
  52. package/src/esm/draw.d.ts +6 -5
  53. package/src/esm/draw.js +4 -3
  54. package/src/esm/draw.js.map +1 -1
  55. package/src/esm/drawgl.d.ts +7 -6
  56. package/src/esm/drawgl.js +5 -4
  57. package/src/esm/drawgl.js.map +1 -1
  58. package/src/esm/drawutilssvg.d.ts +8 -6
  59. package/src/esm/drawutilssvg.js +14 -7
  60. package/src/esm/drawutilssvg.js.map +1 -1
  61. package/src/esm/interfaces/DrawLib.d.ts +4 -3
  62. package/src/esm/interfaces/DrawLib.js +1 -0
  63. package/src/esm/interfaces/DrawLib.js.map +1 -1
  64. package/src/esm/interfaces/core.d.ts +33 -30
  65. package/src/esm/interfaces/core.js +1 -0
  66. package/src/esm/interfaces/core.js.map +1 -1
  67. package/src/esm/utils/datastructures/Color.d.ts +3 -1
  68. package/src/esm/utils/datastructures/Color.js +12 -1
  69. package/src/esm/utils/datastructures/Color.js.map +1 -1
  70. package/src/esm/utils/parsers/svg/parseSVGPathData.d.ts +2 -1
  71. package/src/esm/utils/parsers/svg/parseSVGPathData.js +228 -205
  72. package/src/esm/utils/parsers/svg/parseSVGPathData.js.map +1 -1
  73. package/src/esm/utils/parsers/svg/splitSVGPathData.js +6 -2
  74. package/src/esm/utils/parsers/svg/splitSVGPathData.js.map +1 -1
  75. package/src/esm/utils/parsers/svg/types.d.ts +29 -9
  76. package/src/esm/utils/parsers/svg/types.js +4 -3
  77. package/src/esm/utils/parsers/svg/types.js.map +1 -1
  78. package/src/ts/BezierPath.ts +2 -3
  79. package/src/ts/PlotBoilerplate.ts +75 -32
  80. package/src/ts/Triangle.ts +2 -1
  81. package/src/ts/draw.ts +6 -5
  82. package/src/ts/drawgl.ts +9 -8
  83. package/src/ts/drawutilssvg.ts +23 -16
  84. package/src/ts/interfaces/DrawLib.ts +4 -3
  85. package/src/ts/interfaces/core.ts +33 -30
  86. package/src/ts/utils/datastructures/Color.ts +13 -1
  87. package/src/ts/utils/parsers/svg/parseSVGPathData.ts +271 -212
  88. package/src/ts/utils/parsers/svg/splitSVGPathData.ts +6 -2
  89. package/src/ts/utils/parsers/svg/types.ts +29 -9
@@ -20,11 +20,15 @@ exports.splitSVGPathData = void 0;
20
20
  * @param {string} dataString - The SVG path data to split. This should be some string
21
21
  **/
22
22
  var splitSVGPathData = function (dataString) {
23
+ // I used a modified version of this Josh Frank's SVG path data RexEx.
23
24
  // Source
24
25
  // https://javascript.plainenglish.io/june-3-parsing-and-validating-svg-paths-with-regex-7bd0e245115
25
- var validCommand = /([ml](\s?-?((\d+(\.\d+)?)|(\.\d+)))[,\s]?(-?((\d+(\.\d+)?)|(\.\d+))))|([hv](\s?-?((\d+(\.\d+)?)|(\.\d+))))|(c(\s?-?((\d+(\.\d+)?)|(\.\d+)))([,\s]?(-?((\d+(\.\d+)?)|(\.\d+)))){5})|(q(\s?-?((\d+(\.\d+)?)|(\.\d+)))([,\s]?(-?((\d+(\.\d+)?)|(\.\d+)))){3}(\s?t?(\s?-?((\d+(\.\d+)?)|(\.\d+)))[,\s]?(-?((\d+(\.\d+)?)|(\.\d+))))*)|(a(\s?-?((\d+(\.\d+)?)|(\.\d+)))([,\s]?(-?((\d+(\.\d+)?)|(\.\d+)))){2}[,\s]?[01][,\s]+[01][,\s]+([,\s]?(-?((\d+(\.\d+)?)|(\.\d+)))){2})|(s(\s?-?((\d+(\.\d+)?)|(\.\d+)))([,\s]?(-?((\d+(\.\d+)?)|(\.\d+)))){3})|z/gi;
26
+ // const validCommand =
27
+ // /([ml](\s?-?((\d+(\.\d+)?)|(\.\d+)))[,\s]?(-?((\d+(\.\d+)?)|(\.\d+))))|([hv](\s?-?((\d+(\.\d+)?)|(\.\d+))))|(c(\s?-?((\d+(\.\d+)?)|(\.\d+)))([,\s]?(-?((\d+(\.\d+)?)|(\.\d+)))){5})|(q(\s?-?((\d+(\.\d+)?)|(\.\d+)))([,\s]?(-?((\d+(\.\d+)?)|(\.\d+)))){3}(\s?t?(\s?-?((\d+(\.\d+)?)|(\.\d+)))[,\s]?(-?((\d+(\.\d+)?)|(\.\d+))))*)|(a(\s?-?((\d+(\.\d+)?)|(\.\d+)))([,\s]?(-?((\d+(\.\d+)?)|(\.\d+)))){2}[,\s]?[01][,\s]+[01][,\s]+([,\s]?(-?((\d+(\.\d+)?)|(\.\d+)))){2})|(s(\s?-?((\d+(\.\d+)?)|(\.\d+)))([,\s]?(-?((\d+(\.\d+)?)|(\.\d+)))){3})|z/gi;
28
+ //
29
+ // My Version allows multiple param sets, too, like 'm|M (x y)+' or 'q|Q (x1 y1 x y)+'. Look at the plus.
30
+ var validCommand = /([ml]((\s?-?((\d+(\.\d+)?)|(\.\d+)))[,\s]?(-?((\d+(\.\d+)?)|(\.\d+))))+)|([hv]((\s?-?((\d+(\.\d+)?)|(\.\d+))))+)|(c((\s?-?((\d+(\.\d+)?)|(\.\d+)))([,\s]?(-?((\d+(\.\d+)?)|(\.\d+)))){5})+)|(q((\s?-?((\d+(\.\d+)?)|(\.\d+)))([,\s]?(-?((\d+(\.\d+)?)|(\.\d+)))){3})+(\s?(t?(\s?-?((\d+(\.\d+)?)|(\.\d+)))[,\s]?(-?((\d+(\.\d+)?)|(\.\d+))))*)+)|(a((\s?-?((\d+(\.\d+)?)|(\.\d+)))([,\s]?(-?((\d+(\.\d+)?)|(\.\d+)))){2}[,\s]?[01][,\s]+[01][,\s]+([,\s]?(-?((\d+(\.\d+)?)|(\.\d+)))){2})+)|(s(\s?-?((\d+(\.\d+)?)|(\.\d+)))([,\s]?(-?((\d+(\.\d+)?)|(\.\d+)))){3})|z/gi;
26
31
  var dataElements = dataString.match(validCommand);
27
- // console.log("Splitted: ", dataElements);
28
32
  if (!dataElements) {
29
33
  return null;
30
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"splitSVGPathData.js","sourceRoot":"","sources":["../../../../ts/utils/parsers/svg/splitSVGPathData.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AAIH;;;;IAII;AACG,IAAM,gBAAgB,GAAG,UAAC,UAAkB;IACjD,SAAS;IACT,uGAAuG;IACvG,IAAM,YAAY,GAChB,uhBAAuhB,CAAC;IAE1hB,IAAM,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACpD,2CAA2C;IAC3C,IAAI,CAAC,YAAY,EAAE;QACjB,OAAO,IAAI,CAAC;KACb;IAED,IAAM,MAAM,GAA0B,EAAE,CAAC;IAEzC,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE;QAC9B,IAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QAC9B,0CAA0C;QAC1C,sHAAsH;QACtH,IAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACvD,IAAI,OAAO,EAAE;YACX,MAAM,CAAC,IAAI,CAAC,OAAyB,CAAC,CAAC;SACxC;aAAM;YACL,eAAe;SAChB;QACD,CAAC,EAAE,CAAC;KACL;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC,CAAC,uBAAuB;AA5Bb,QAAA,gBAAgB,oBA4B3B"}
1
+ {"version":3,"file":"splitSVGPathData.js","sourceRoot":"","sources":["../../../../ts/utils/parsers/svg/splitSVGPathData.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AAIH;;;;IAII;AACG,IAAM,gBAAgB,GAAG,UAAC,UAAkB;IACjD,sEAAsE;IACtE,SAAS;IACT,uGAAuG;IACvG,uBAAuB;IACvB,2hBAA2hB;IAC3hB,EAAE;IACF,yGAAyG;IACzG,IAAM,YAAY,GAChB,yiBAAyiB,CAAC;IAE5iB,IAAM,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACpD,IAAI,CAAC,YAAY,EAAE;QACjB,OAAO,IAAI,CAAC;KACb;IAED,IAAM,MAAM,GAA0B,EAAE,CAAC;IAEzC,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE;QAC9B,IAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QAC9B,0CAA0C;QAC1C,sHAAsH;QACtH,IAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACvD,IAAI,OAAO,EAAE;YACX,MAAM,CAAC,IAAI,CAAC,OAAyB,CAAC,CAAC;SACxC;aAAM;YACL,eAAe;SAChB;QACD,CAAC,EAAE,CAAC;KACL;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC,CAAC,uBAAuB;AAhCb,QAAA,gBAAgB,oBAgC3B"}
@@ -7,17 +7,28 @@
7
7
  * https://www.w3.org/TR/SVG/paths.html
8
8
  *
9
9
  *
10
- * @author Ikaros Kappler
11
- * @date 2022-12-21 (winter solstice night – yes the days & nights are dark and I have nothing else to do)
12
- * @version 0.0.1-alpha
10
+ * @author Ikaros Kappler
11
+ * @date 2022-12-21 (winter solstice night – yes the days & nights are dark and I have nothing else to do)
12
+ * @modified 2023-01-17 Added multiple parameter sets.
13
+ * @version 0.0.2-alpha
13
14
  */
14
15
  export declare type NumericString = `${number}`;
15
16
  export declare type BooleanString = "0" | "1" | `${boolean}`;
16
17
  export declare type SVGPathMoveToCommand = ["M" | "m", NumericString, NumericString];
17
- export declare type SVGPathLineToCommand = ["L" | "l", NumericString, NumericString];
18
+ export declare type SVGPathLineToCommand = ["L" | "l", NumericString, NumericString, ...Array<NumericString>];
18
19
  export declare type SVGPathVerticalLineToCommand = ["V" | "v", NumericString];
19
20
  export declare type SVGPathHorizontalLineToCommand = ["H" | "h", NumericString];
20
- export declare type SVGPathQuadraticCurveToCommand = ["Q" | "q", NumericString, NumericString, NumericString, NumericString] | ["Q" | "q", NumericString, NumericString, NumericString, NumericString, "T" | "t", NumericString, NumericString];
21
+ export declare type SVGPathQuadraticCurveToCommand = ["Q" | "q", NumericString, NumericString, NumericString, NumericString] | [
22
+ "Q" | "q",
23
+ NumericString,
24
+ NumericString,
25
+ NumericString,
26
+ NumericString,
27
+ "T" | "t",
28
+ NumericString,
29
+ NumericString,
30
+ ...Array<NumericString>
31
+ ];
21
32
  export declare type SVGPathCubicCurveToCommand = [
22
33
  "C" | "c",
23
34
  NumericString,
@@ -25,9 +36,17 @@ export declare type SVGPathCubicCurveToCommand = [
25
36
  NumericString,
26
37
  NumericString,
27
38
  NumericString,
28
- NumericString
39
+ NumericString,
40
+ ...Array<NumericString>
41
+ ];
42
+ export declare type SVGPathShorthandCubicCurveToCommand = [
43
+ "S" | "s",
44
+ NumericString,
45
+ NumericString,
46
+ NumericString,
47
+ NumericString,
48
+ ...Array<NumericString>
29
49
  ];
30
- export declare type SVGPathShorthandCubicCurveToCommand = ["S" | "s", NumericString, NumericString, NumericString, NumericString];
31
50
  export declare type SVGPathArcToCommand = [
32
51
  "A" | "a",
33
52
  NumericString,
@@ -36,8 +55,9 @@ export declare type SVGPathArcToCommand = [
36
55
  BooleanString,
37
56
  BooleanString,
38
57
  NumericString,
39
- NumericString
58
+ NumericString,
59
+ ...Array<NumericString>
40
60
  ];
41
61
  export declare type SVGPathCloseCommand = ["Z" | "z"];
42
- export declare type SVGPathShorthandQuadraticCurveToCommand = ["T" | "t", NumericString, NumericString];
62
+ export declare type SVGPathShorthandQuadraticCurveToCommand = ["T" | "t", NumericString, NumericString, ...Array<NumericString>];
43
63
  export declare type SVGPathCommand = SVGPathMoveToCommand | SVGPathLineToCommand | SVGPathVerticalLineToCommand | SVGPathHorizontalLineToCommand | SVGPathQuadraticCurveToCommand | SVGPathCubicCurveToCommand | SVGPathShorthandCubicCurveToCommand | SVGPathArcToCommand | SVGPathCloseCommand;
@@ -8,9 +8,10 @@
8
8
  * https://www.w3.org/TR/SVG/paths.html
9
9
  *
10
10
  *
11
- * @author Ikaros Kappler
12
- * @date 2022-12-21 (winter solstice night – yes the days & nights are dark and I have nothing else to do)
13
- * @version 0.0.1-alpha
11
+ * @author Ikaros Kappler
12
+ * @date 2022-12-21 (winter solstice night – yes the days & nights are dark and I have nothing else to do)
13
+ * @modified 2023-01-17 Added multiple parameter sets.
14
+ * @version 0.0.2-alpha
14
15
  */
15
16
  Object.defineProperty(exports, "__esModule", { value: true });
16
17
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../ts/utils/parsers/svg/types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../ts/utils/parsers/svg/types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG"}
@@ -1195,8 +1195,7 @@ export class BezierPath {
1195
1195
  static fromReducedList(pointArray, adjustCircular) {
1196
1196
  // Convert to object
1197
1197
  var bezierPath = new BezierPath(null); // No points yet
1198
- // var firstStartPoint: Vertex;
1199
- var startPoint;
1198
+ var startPoint = new Vertex();
1200
1199
  var startControlPoint;
1201
1200
  var endControlPoint;
1202
1201
  var endPoint;
@@ -1218,7 +1217,7 @@ export class BezierPath {
1218
1217
  startPoint = endPoint;
1219
1218
  i += 6;
1220
1219
  } while (i + 2 < pointArray.length);
1221
- bezierPath.adjustCircular = adjustCircular;
1220
+ bezierPath.adjustCircular = adjustCircular !== null && adjustCircular !== void 0 ? adjustCircular : false;
1222
1221
  if (adjustCircular) {
1223
1222
  bezierPath.bezierCurves[bezierPath.bezierCurves.length - 1].endPoint = bezierPath.bezierCurves[0].startPoint;
1224
1223
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BezierPath.js","sourceRoot":"","sources":["../ts/BezierPath.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BezierPath.js","sourceRoot":"","sources":["../ts/BezierPath.ts"],"names":[],"mappings":"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"}
@@ -78,7 +78,11 @@
78
78
  * @modified 2022-10-25 Added the `origin` to the default draw config.
79
79
  * @modified 2022-11-06 Adding an XML declaration to the SVG export routine.
80
80
  * @modified 2022-11-23 Added the `drawRaster` (default=true) option to the config/drawconfig.
81
- * @version 1.17.0
81
+ * @modified 2023-02-04 Fixed a bug in the `drawDrawable` function; fill's current classname was not set.
82
+ * @modified 2023-02-10 Fixing an issue of the `style.position` setting when `fitToParent=true` from `absolute` to `static` (default).
83
+ * @modified 2023-02-10 Cleaning up most type errors in the main class (mostly null checks).
84
+ * @modified 2023-02-10 Adding `enableZoom` and `enablePan` (both default true) to have the option to disable these functions.
85
+ * @version 1.17.2
82
86
  *
83
87
  * @file PlotBoilerplate
84
88
  * @fileoverview The main class.
@@ -314,6 +318,8 @@ export declare class PlotBoilerplate {
314
318
  * @param {boolean=} [config.enableTouch=true] - Indicates if the application should handle touch events for you.
315
319
  * @param {boolean=} [config.enableKeys=true] - Indicates if the application should handle key events for you.
316
320
  * @param {boolean=} [config.enableMouseWheel=true] - Indicates if the application should handle mouse wheel events for you.
321
+ * @param {boolean=} [config.enablePan=true] - (default true) Set to false if you want to disable panning completely.
322
+ * @param {boolean=} [config.enableZoom=true] - (default true) Set to false if you want to disable zooming completely.
317
323
  * @param {boolean=} [config.enableGL=false] - Indicates if the application should use the experimental WebGL features (not recommended).
318
324
  * @param {boolean=} [config.enableSVGExport=true] - Indicates if the SVG export should be enabled (default is true).
319
325
  * Note that changes from the postDraw hook might not be visible in the export.
@@ -78,7 +78,11 @@
78
78
  * @modified 2022-10-25 Added the `origin` to the default draw config.
79
79
  * @modified 2022-11-06 Adding an XML declaration to the SVG export routine.
80
80
  * @modified 2022-11-23 Added the `drawRaster` (default=true) option to the config/drawconfig.
81
- * @version 1.17.0
81
+ * @modified 2023-02-04 Fixed a bug in the `drawDrawable` function; fill's current classname was not set.
82
+ * @modified 2023-02-10 Fixing an issue of the `style.position` setting when `fitToParent=true` from `absolute` to `static` (default).
83
+ * @modified 2023-02-10 Cleaning up most type errors in the main class (mostly null checks).
84
+ * @modified 2023-02-10 Adding `enableZoom` and `enablePan` (both default true) to have the option to disable these functions.
85
+ * @version 1.17.2
82
86
  *
83
87
  * @file PlotBoilerplate
84
88
  * @fileoverview The main class.
@@ -189,6 +193,8 @@ export class PlotBoilerplate {
189
193
  * @param {boolean=} [config.enableTouch=true] - Indicates if the application should handle touch events for you.
190
194
  * @param {boolean=} [config.enableKeys=true] - Indicates if the application should handle key events for you.
191
195
  * @param {boolean=} [config.enableMouseWheel=true] - Indicates if the application should handle mouse wheel events for you.
196
+ * @param {boolean=} [config.enablePan=true] - (default true) Set to false if you want to disable panning completely.
197
+ * @param {boolean=} [config.enableZoom=true] - (default true) Set to false if you want to disable zooming completely.
192
198
  * @param {boolean=} [config.enableGL=false] - Indicates if the application should use the experimental WebGL features (not recommended).
193
199
  * @param {boolean=} [config.enableSVGExport=true] - Indicates if the SVG export should be enabled (default is true).
194
200
  * Note that changes from the postDraw hook might not be visible in the export.
@@ -269,6 +275,8 @@ export class PlotBoilerplate {
269
275
  enableTouch: f.bool(config, "enableTouch", true),
270
276
  enableKeys: f.bool(config, "enableKeys", true),
271
277
  enableMouseWheel: f.bool(config, "enableMouseWheel", true),
278
+ enableZoom: f.bool(config, "enableZoom", true),
279
+ enablePan: f.bool(config, "enablePan", true),
272
280
  // Experimental (and unfinished)
273
281
  enableGL: f.bool(config, "enableGL", false)
274
282
  }; // END confog
@@ -933,7 +941,7 @@ export class PlotBoilerplate {
933
941
  this.draw.setCurrentId(d.uid);
934
942
  this.fill.setCurrentId(d.uid);
935
943
  this.draw.setCurrentClassName(d.className);
936
- this.draw.setCurrentClassName(d.className);
944
+ this.fill.setCurrentClassName(d.className);
937
945
  this.drawDrawable(d, renderTime, draw, fill);
938
946
  }
939
947
  }
@@ -954,7 +962,13 @@ export class PlotBoilerplate {
954
962
  **/
955
963
  drawDrawable(d, renderTime, draw, fill) {
956
964
  if (d instanceof BezierPath) {
965
+ var curveIndex = 0;
957
966
  for (var c in d.bezierCurves) {
967
+ // Restore these settings again in each loop (will be overwritten)
968
+ this.draw.setCurrentId(`${d.uid}-${curveIndex}`);
969
+ this.fill.setCurrentId(`${d.uid}-${curveIndex}`);
970
+ this.draw.setCurrentClassName(d.className);
971
+ this.fill.setCurrentClassName(d.className);
958
972
  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);
959
973
  if (this.drawConfig.drawBezierHandlePoints && this.drawConfig.drawHandlePoints) {
960
974
  if (d.bezierCurves[c].startPoint.attr.visible) {
@@ -1011,7 +1025,8 @@ export class PlotBoilerplate {
1011
1025
  draw.setCurrentClassName(`${d.className}-end-line`);
1012
1026
  draw.line(d.bezierCurves[c].endPoint, d.bezierCurves[c].endControlPoint, this.drawConfig.bezier.handleLine.color, this.drawConfig.bezier.handleLine.lineWidth);
1013
1027
  }
1014
- }
1028
+ curveIndex++;
1029
+ } // END for
1015
1030
  }
1016
1031
  else if (d instanceof Polygon) {
1017
1032
  draw.polygon(d, this.drawConfig.polygon.color, this.drawConfig.polygon.lineWidth);
@@ -1122,10 +1137,10 @@ export class PlotBoilerplate {
1122
1137
  else {
1123
1138
  console.error("Cannot draw object. Unknown class.");
1124
1139
  }
1125
- draw.setCurrentClassName(undefined);
1126
- draw.setCurrentId(undefined);
1127
- fill.setCurrentClassName(undefined);
1128
- fill.setCurrentId(undefined);
1140
+ draw.setCurrentClassName(null);
1141
+ draw.setCurrentId(null);
1142
+ fill.setCurrentClassName(null);
1143
+ fill.setCurrentId(null);
1129
1144
  }
1130
1145
  /**
1131
1146
  * Draw the select-polygon (if there is one).
@@ -1215,8 +1230,8 @@ export class PlotBoilerplate {
1215
1230
  this.drawSelectPolygon(draw);
1216
1231
  // Clear IDs and classnames (postDraw hook might draw somthing and the do not want
1217
1232
  // to interfered with that).
1218
- draw.setCurrentId(undefined);
1219
- draw.setCurrentClassName(undefined);
1233
+ draw.setCurrentId(null);
1234
+ draw.setCurrentClassName(null);
1220
1235
  } // END redraw
1221
1236
  /**
1222
1237
  * This function clears the canvas with the configured background color.<br>
@@ -1352,7 +1367,7 @@ export class PlotBoilerplate {
1352
1367
  }
1353
1368
  else if (_self.config.fitToParent) {
1354
1369
  // Set editor size
1355
- _self.canvas.style.position = "absolute";
1370
+ _self.canvas.style.position = "static";
1356
1371
  const space = this.getAvailableContainerSpace();
1357
1372
  _self.canvas.style.width = ((_c = _self.config.canvasWidthFactor) !== null && _c !== void 0 ? _c : 1.0) * space.width + "px";
1358
1373
  _self.canvas.style.height = ((_d = _self.config.canvasHeightFactor) !== null && _d !== void 0 ? _d : 1.0) * space.height + "px";
@@ -1423,24 +1438,24 @@ export class PlotBoilerplate {
1423
1438
  **/
1424
1439
  handleClick(e) {
1425
1440
  const _self = this;
1426
- var p = this.locatePointNear(_self.transformMousePosition(e.params.pos.x, e.params.pos.y), PlotBoilerplate.DEFAULT_CLICK_TOLERANCE / Math.min(_self.config.cssScaleX, _self.config.cssScaleY));
1427
- if (p) {
1428
- _self.vertices[p.vindex].listeners.fireClickEvent(e);
1441
+ var point = this.locatePointNear(_self.transformMousePosition(e.params.pos.x, e.params.pos.y), PlotBoilerplate.DEFAULT_CLICK_TOLERANCE / Math.min(_self.config.cssScaleX || 1.0, _self.config.cssScaleY || 1.0));
1442
+ if (point) {
1443
+ _self.vertices[point.vindex].listeners.fireClickEvent(e);
1429
1444
  if (this.keyHandler && this.keyHandler.isDown("shift")) {
1430
- if (p.typeName == "bpath") {
1431
- let vert = _self.paths[p.pindex].bezierCurves[p.cindex].getPointByID(p.pid);
1445
+ if (point.typeName == "bpath") {
1446
+ let vert = _self.paths[point.pindex].bezierCurves[point.cindex].getPointByID(point.pid);
1432
1447
  if (vert.attr.selectable)
1433
1448
  vert.attr.isSelected = !vert.attr.isSelected;
1434
1449
  }
1435
- else if (p.typeName == "vertex") {
1436
- let vert = _self.vertices[p.vindex];
1450
+ else if (point.typeName == "vertex") {
1451
+ let vert = _self.vertices[point.vindex];
1437
1452
  if (vert.attr.selectable)
1438
1453
  vert.attr.isSelected = !vert.attr.isSelected;
1439
1454
  }
1440
1455
  _self.redraw();
1441
1456
  }
1442
- else if (this.keyHandler.isDown("y")) {
1443
- _self.vertices[p.vindex].attr.bezierAutoAdjust = !_self.vertices[p.vindex].attr.bezierAutoAdjust;
1457
+ else if (this.keyHandler && this.keyHandler.isDown("y")) {
1458
+ _self.vertices[point.vindex].attr.bezierAutoAdjust = !_self.vertices[point.vindex].attr.bezierAutoAdjust;
1444
1459
  _self.redraw();
1445
1460
  }
1446
1461
  }
@@ -1507,11 +1522,11 @@ export class PlotBoilerplate {
1507
1522
  const _self = this;
1508
1523
  if (e.button != 0)
1509
1524
  return; // Only react on left mouse or touch events
1510
- var p = _self.locatePointNear(_self.transformMousePosition(e.params.pos.x, e.params.pos.y), PlotBoilerplate.DEFAULT_CLICK_TOLERANCE / Math.min(_self.config.cssScaleX, _self.config.cssScaleY));
1511
- if (!p)
1525
+ var draggablePoint = _self.locatePointNear(_self.transformMousePosition(e.params.pos.x, e.params.pos.y), PlotBoilerplate.DEFAULT_CLICK_TOLERANCE / Math.min(_self.config.cssScaleX, _self.config.cssScaleY));
1526
+ if (!draggablePoint)
1512
1527
  return;
1513
1528
  // Drag all selected elements?
1514
- if (p.typeName == "vertex" && _self.vertices[p.vindex].attr.isSelected) {
1529
+ if (draggablePoint.typeName == "vertex" && _self.vertices[draggablePoint.vindex].attr.isSelected) {
1515
1530
  // Multi drag
1516
1531
  // for( var i in _self.vertices ) {
1517
1532
  for (var i = 0; i < _self.vertices.length; i++) {
@@ -1523,13 +1538,15 @@ export class PlotBoilerplate {
1523
1538
  }
1524
1539
  else {
1525
1540
  // Single drag
1526
- if (!_self.vertices[p.vindex].attr.draggable)
1541
+ if (!_self.vertices[draggablePoint.vindex].attr.draggable)
1527
1542
  return;
1528
- _self.draggedElements.push(p);
1529
- if (p.typeName == "bpath")
1530
- _self.paths[p.pindex].bezierCurves[p.cindex].getPointByID(p.pid).listeners.fireDragStartEvent(e);
1531
- else if (p.typeName == "vertex")
1532
- _self.vertices[p.vindex].listeners.fireDragStartEvent(e);
1543
+ _self.draggedElements.push(draggablePoint);
1544
+ if (draggablePoint.typeName == "bpath")
1545
+ _self.paths[draggablePoint.pindex].bezierCurves[draggablePoint.cindex]
1546
+ .getPointByID(draggablePoint.pid)
1547
+ .listeners.fireDragStartEvent(e);
1548
+ else if (draggablePoint.typeName == "vertex")
1549
+ _self.vertices[draggablePoint.vindex].listeners.fireDragStartEvent(e);
1533
1550
  }
1534
1551
  _self.redraw();
1535
1552
  }
@@ -1556,7 +1573,10 @@ export class PlotBoilerplate {
1556
1573
  // not this one. So this tab will never receive any [Ctrl-down] events
1557
1574
  // until next keypress; the implication is, that [Ctrl] would still
1558
1575
  // considered to be pressed which is not true.
1559
- if (this.keyHandler.isDown("alt") || this.keyHandler.isDown("spacebar")) {
1576
+ if (this.keyHandler && (this.keyHandler.isDown("alt") || this.keyHandler.isDown("spacebar"))) {
1577
+ if (!this.config.enablePan) {
1578
+ return;
1579
+ }
1560
1580
  _self.setOffset(_self.draw.offset.clone().add(e.params.dragAmount));
1561
1581
  _self.redraw();
1562
1582
  }
@@ -1625,6 +1645,9 @@ export class PlotBoilerplate {
1625
1645
  * @return {void}
1626
1646
  **/
1627
1647
  mouseWheelHandler(e) {
1648
+ if (!this.config.enableZoom) {
1649
+ return;
1650
+ }
1628
1651
  var zoomStep = 1.25; // Make configurable?
1629
1652
  // CHANGED replaced _self by this
1630
1653
  const _self = this;
@@ -1764,6 +1787,9 @@ export class PlotBoilerplate {
1764
1787
  if (evt.touches.length == 1 && draggedElement) {
1765
1788
  evt.preventDefault();
1766
1789
  evt.stopPropagation();
1790
+ if (!touchDownPos || !touchMovePos) {
1791
+ return;
1792
+ }
1767
1793
  var rel = relPos({ x: evt.touches[0].clientX, y: evt.touches[0].clientY });
1768
1794
  var trans = _self.transformMousePosition(rel.x, rel.y);
1769
1795
  var diff = new Vertex(_self.transformMousePosition(touchMovePos.x, touchMovePos.y)).difference(trans);
@@ -1788,6 +1814,9 @@ export class PlotBoilerplate {
1788
1814
  touchMovePos = new Vertex(rel);
1789
1815
  }
1790
1816
  else if (evt.touches.length == 2) {
1817
+ if (!this.config.enablePan) {
1818
+ return;
1819
+ }
1791
1820
  // If at least two fingers touch and move, then change the draw offset (panning).
1792
1821
  evt.preventDefault();
1793
1822
  evt.stopPropagation();
@@ -1800,6 +1829,9 @@ export class PlotBoilerplate {
1800
1829
  touchEnd: (evt) => {
1801
1830
  // Note: e.touches.length is 0 here
1802
1831
  if (draggedElement && draggedElement.typeName == "vertex") {
1832
+ if (!touchDownPos) {
1833
+ return;
1834
+ }
1803
1835
  var draggingVertex = _self.vertices[draggedElement.vindex];
1804
1836
  var fakeEvent = {
1805
1837
  isTouchEvent: true,
@@ -1832,9 +1864,17 @@ export class PlotBoilerplate {
1832
1864
  multiTouchStartScale = null;
1833
1865
  },
1834
1866
  pinch: (evt) => {
1867
+ if (!this.config.enableZoom) {
1868
+ return;
1869
+ }
1870
+ const touchItem0 = evt.touches.item(0);
1871
+ const touchItem1 = evt.touches.item(1);
1872
+ if (!evt.touches || !multiTouchStartScale || !touchItem0 || !touchItem1) {
1873
+ return;
1874
+ }
1835
1875
  // For pinching there must be at least two touch items
1836
- const fingerA = new Vertex(evt.touches.item(0).clientX, evt.touches.item(0).clientY);
1837
- const fingerB = new Vertex(evt.touches.item(1).clientX, evt.touches.item(1).clientY);
1876
+ const fingerA = new Vertex(touchItem0.clientX, touchItem0.clientY);
1877
+ const fingerB = new Vertex(touchItem1.clientX, touchItem1.clientY);
1838
1878
  const center = new Line(fingerA, fingerB).vertAt(0.5);
1839
1879
  _self.setZoom(multiTouchStartScale.x * evt.zoom, multiTouchStartScale.y * evt.zoom, center);
1840
1880
  _self.redraw();
@@ -1982,8 +2022,10 @@ PlotBoilerplate.utils = {
1982
2022
  **/
1983
2023
  setCSSscale: (element, scaleX, scaleY) => {
1984
2024
  element.style["transform-origin"] = "0 0";
1985
- if (scaleX == 1.0 && scaleY == 1.0)
1986
- element.style.transform = null;
2025
+ if (scaleX == 1.0 && scaleY == 1.0) {
2026
+ // element.style.transform = null;
2027
+ element.style.removeProperty("transform");
2028
+ }
1987
2029
  else
1988
2030
  element.style.transform = "scale(" + scaleX + "," + scaleY + ")";
1989
2031
  },