plotboilerplate 1.17.1 → 1.19.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 (117) hide show
  1. package/README.md +63 -6
  2. package/dist/index.esm.js +278 -60
  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 +276 -58
  9. package/dist/plotboilerplate.min.js +1 -1
  10. package/package.json +1 -1
  11. package/src/cjs/Bounds.d.ts +11 -1
  12. package/src/cjs/Bounds.js +13 -1
  13. package/src/cjs/Bounds.js.map +1 -1
  14. package/src/cjs/Circle.d.ts +36 -2
  15. package/src/cjs/Circle.js +81 -1
  16. package/src/cjs/Circle.js.map +1 -1
  17. package/src/cjs/CubicBezierCurve.d.ts +20 -3
  18. package/src/cjs/CubicBezierCurve.js +25 -2
  19. package/src/cjs/CubicBezierCurve.js.map +1 -1
  20. package/src/cjs/Line.d.ts +46 -4
  21. package/src/cjs/Line.js +60 -3
  22. package/src/cjs/Line.js.map +1 -1
  23. package/src/cjs/MouseHandler.d.ts +3 -2
  24. package/src/cjs/MouseHandler.js +16 -14
  25. package/src/cjs/MouseHandler.js.map +1 -1
  26. package/src/cjs/PlotBoilerplate.d.ts +4 -2
  27. package/src/cjs/PlotBoilerplate.js +44 -28
  28. package/src/cjs/PlotBoilerplate.js.map +1 -1
  29. package/src/cjs/Polygon.js +1 -1
  30. package/src/cjs/Polygon.js.map +1 -1
  31. package/src/cjs/Vector.d.ts +14 -3
  32. package/src/cjs/Vector.js +21 -2
  33. package/src/cjs/Vector.js.map +1 -1
  34. package/src/cjs/draw.d.ts +4 -1
  35. package/src/cjs/draw.js +15 -6
  36. package/src/cjs/draw.js.map +1 -1
  37. package/src/cjs/interfaces/additionals.d.ts +95 -0
  38. package/src/cjs/interfaces/additionals.js +3 -0
  39. package/src/cjs/interfaces/additionals.js.map +1 -0
  40. package/src/cjs/interfaces/core.d.ts +4 -0
  41. package/src/cjs/interfaces/core.js +1 -0
  42. package/src/cjs/interfaces/core.js.map +1 -1
  43. package/src/cjs/interfaces/index.d.ts +1 -0
  44. package/src/cjs/interfaces/index.js +1 -0
  45. package/src/cjs/interfaces/index.js.map +1 -1
  46. package/src/cjs/utils/algorithms/arrayShuffle.d.ts +8 -0
  47. package/src/cjs/utils/algorithms/arrayShuffle.js +15 -0
  48. package/src/cjs/utils/algorithms/arrayShuffle.js.map +1 -0
  49. package/src/cjs/utils/algorithms/detectPaths.d.ts +20 -0
  50. package/src/cjs/utils/algorithms/detectPaths.js +169 -0
  51. package/src/cjs/utils/algorithms/detectPaths.js.map +1 -0
  52. package/src/cjs/utils/datastructures/GenericPath.d.ts +75 -0
  53. package/src/cjs/utils/datastructures/GenericPath.js +105 -0
  54. package/src/cjs/utils/datastructures/GenericPath.js.map +1 -0
  55. package/src/cjs/utils/datastructures/GirihTile.d.ts +1 -1
  56. package/src/esm/Bounds.d.ts +11 -1
  57. package/src/esm/Bounds.js +13 -1
  58. package/src/esm/Bounds.js.map +1 -1
  59. package/src/esm/Circle.d.ts +36 -2
  60. package/src/esm/Circle.js +81 -1
  61. package/src/esm/Circle.js.map +1 -1
  62. package/src/esm/CubicBezierCurve.d.ts +20 -3
  63. package/src/esm/CubicBezierCurve.js +25 -2
  64. package/src/esm/CubicBezierCurve.js.map +1 -1
  65. package/src/esm/Line.d.ts +46 -4
  66. package/src/esm/Line.js +60 -3
  67. package/src/esm/Line.js.map +1 -1
  68. package/src/esm/MouseHandler.d.ts +3 -2
  69. package/src/esm/MouseHandler.js +16 -14
  70. package/src/esm/MouseHandler.js.map +1 -1
  71. package/src/esm/PlotBoilerplate.d.ts +4 -2
  72. package/src/esm/PlotBoilerplate.js +44 -28
  73. package/src/esm/PlotBoilerplate.js.map +1 -1
  74. package/src/esm/Polygon.js +1 -1
  75. package/src/esm/Polygon.js.map +1 -1
  76. package/src/esm/Vector.d.ts +13 -2
  77. package/src/esm/Vector.js +23 -4
  78. package/src/esm/Vector.js.map +1 -1
  79. package/src/esm/draw.d.ts +4 -1
  80. package/src/esm/draw.js +15 -6
  81. package/src/esm/draw.js.map +1 -1
  82. package/src/esm/interfaces/additionals.d.ts +95 -0
  83. package/src/esm/interfaces/additionals.js +2 -0
  84. package/src/esm/interfaces/additionals.js.map +1 -0
  85. package/src/esm/interfaces/core.d.ts +4 -0
  86. package/src/esm/interfaces/core.js +1 -0
  87. package/src/esm/interfaces/core.js.map +1 -1
  88. package/src/esm/interfaces/index.d.ts +1 -0
  89. package/src/esm/interfaces/index.js +1 -0
  90. package/src/esm/interfaces/index.js.map +1 -1
  91. package/src/esm/utils/algorithms/arrayShuffle.d.ts +8 -0
  92. package/src/esm/utils/algorithms/arrayShuffle.js +11 -0
  93. package/src/esm/utils/algorithms/arrayShuffle.js.map +1 -0
  94. package/src/esm/utils/algorithms/detectPaths.d.ts +20 -0
  95. package/src/esm/utils/algorithms/detectPaths.js +165 -0
  96. package/src/esm/utils/algorithms/detectPaths.js.map +1 -0
  97. package/src/esm/utils/datastructures/GenericPath.d.ts +75 -0
  98. package/src/esm/utils/datastructures/GenericPath.js +100 -0
  99. package/src/esm/utils/datastructures/GenericPath.js.map +1 -0
  100. package/src/esm/utils/datastructures/GirihTile.d.ts +1 -1
  101. package/src/ts/Bounds.ts +14 -1
  102. package/src/ts/Circle.ts +92 -2
  103. package/src/ts/CubicBezierCurve.ts +29 -4
  104. package/src/ts/Line.ts +70 -6
  105. package/src/ts/MouseHandler.ts +16 -15
  106. package/src/ts/PlotBoilerplate.ts +47 -32
  107. package/src/ts/Polygon.ts +1 -1
  108. package/src/ts/Vector.ts +24 -4
  109. package/src/ts/draw.ts +15 -6
  110. package/src/ts/interfaces/additionals.ts +105 -0
  111. package/src/ts/interfaces/core.ts +2 -0
  112. package/src/ts/interfaces/index.ts +1 -0
  113. package/src/ts/utils/algorithms/arrayShuffle.ts +11 -0
  114. package/src/ts/utils/algorithms/detectPaths.ts +195 -0
  115. package/src/ts/utils/datastructures/GenericPath.ts +113 -0
  116. package/src/ts/utils/datastructures/GirihTile.ts +1 -1
  117. package/changelog.md +0 -722
package/README.md CHANGED
@@ -47,12 +47,18 @@ often use for the visualization of 2D geometries. Basic features are
47
47
  - text
48
48
  ([docs](https://plotboilerplate.io/docs_typedoc/classes/pbtext.html "PBText class"),
49
49
  [example](https://plotboilerplate.io/repo/demos/basic-PBText "PBText example"))
50
- - configuration of the canvas behavior (fullsize, interaction, raster)
51
- - mouse interaction (zoom, pan, drag elements)
52
- - keyboard interaction
53
- - touch interaction for dragging vertices (mobile devices: zoom, pan, drag elements)
54
-
55
- The compressed library has 128kb.
50
+ - configuration of the canvas behavior
51
+ - fullsize and auto-resizing
52
+ - enable/disable mouse, touch or keyboard interaction
53
+ - draw rasters
54
+ - default colors and darkmode
55
+ - mouse and touch interaction
56
+ - zoom
57
+ - pan
58
+ - drag and select elements
59
+ - keyboard interaction customizable
60
+
61
+ The compressed library has 133kb.
56
62
 
57
63
  ## Install the package via npm
58
64
 
@@ -143,6 +149,8 @@ globalThis.addEventListener("load", () => {
143
149
  });
144
150
  ```
145
151
 
152
+ For a guide of how to [Getting Started click here](https://github.com/IkarosKappler/plotboilerplate/blob/master/Getting-Started.md "Getting Started click here.").
153
+
146
154
  A full working demo repository about the [Usage with Typescript is here](https://github.com/IkarosKappler/plotboilerplate-typescript-example "usage with Typescript is here").
147
155
 
148
156
  ### Screenshot
@@ -442,6 +450,55 @@ vert.listeners.addDragListener(function (e) {
442
450
  - Touch & move (2 fingers): Pan the area
443
451
  - Touch & pinch: Zoom in/out
444
452
 
453
+ ## Custom keyboard events
454
+
455
+ ```javascript
456
+ new KeyHandler({ trackAll: true })
457
+ .down("enter", function () {
458
+ console.log("ENTER was hit.");
459
+ })
460
+ .press("enter", function () {
461
+ console.log("ENTER was pressed.");
462
+ })
463
+ .up("enter", function () {
464
+ console.log("ENTER was released.");
465
+ })
466
+ .down("e", function () {
467
+ console.log("e was hit. shift is pressed?", keyHandler.isDown("shift"));
468
+ })
469
+ .up("spacebar", function () {
470
+ console.log("spacebar was released.");
471
+ });
472
+ ```
473
+
474
+ For a list of all supported key codes see [Full list of supported key codes](https://github.com/IkarosKappler/plotboilerplate/blob/master/keycodes.md "Full list of supported key codes").
475
+
476
+ ## Custom mouse event
477
+
478
+ ```javascript
479
+ new MouseHandler(document.getElementById("mycanvas"))
480
+ .drag(function (e) {
481
+ console.log("Mouse dragged: " + JSON.stringify(e));
482
+ if (e.params.leftMouse);
483
+ else if (e.params.rightMouse);
484
+ })
485
+ .move(function (e) {
486
+ console.log("Mouse moved: " + JSON.stringify(e.params));
487
+ })
488
+ .up(function (e) {
489
+ console.log("Mouse up. Was dragged?", e.params.wasDragged);
490
+ })
491
+ .down(function (e) {
492
+ console.log("Mouse down.");
493
+ })
494
+ .click(function (e) {
495
+ console.log("Click.");
496
+ })
497
+ .wheel(function (e) {
498
+ console.log("Wheel. delta=" + e.deltaY);
499
+ });
500
+ ```
501
+
445
502
  ## Build the package
446
503
 
447
504
  [Compile and build howto](https://github.com/IkarosKappler/plotboilerplate/blob/master/build.md "Compile and build howto")