@node-projects/web-component-designer 0.0.61 → 0.0.65

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 (54) hide show
  1. package/.vscode/settings.json +1 -1
  2. package/ACKNOWLEDGMENTS +7 -0
  3. package/dist/elements/controls/DesignerTabControl.js +4 -2
  4. package/dist/elements/controls/PlainScrollbar.d.ts +15 -0
  5. package/dist/elements/controls/PlainScrollbar.js +482 -0
  6. package/dist/elements/controls/SimpleSplitView.d.ts +11 -0
  7. package/dist/elements/controls/SimpleSplitView.js +67 -0
  8. package/dist/elements/controls/SimpleSplitView2.d.ts +11 -0
  9. package/dist/elements/controls/SimpleSplitView2.js +63 -0
  10. package/dist/elements/controls/aa.d.ts +24 -0
  11. package/dist/elements/controls/aa.js +98 -0
  12. package/dist/elements/documentContainer.d.ts +6 -1
  13. package/dist/elements/documentContainer.js +51 -14
  14. package/dist/elements/helper/PathDataPolyfill.d.ts +5 -1
  15. package/dist/elements/helper/PathDataPolyfill.js +49 -1
  16. package/dist/elements/helper/contextMenu/ContextMenuHelper.js +1 -0
  17. package/dist/elements/services/DefaultServiceBootstrap.js +8 -0
  18. package/dist/elements/services/htmlParserService/NodeHtmlParserService.js +2 -0
  19. package/dist/elements/services/undoService/UndoService.js +3 -0
  20. package/dist/elements/widgets/codeView/code-view-monaco.js +2 -2
  21. package/dist/elements/widgets/designerView/IDesignerCanvas.d.ts +4 -0
  22. package/dist/elements/widgets/designerView/designerCanvas.d.ts +8 -1
  23. package/dist/elements/widgets/designerView/designerCanvas.js +48 -22
  24. package/dist/elements/widgets/designerView/designerView.d.ts +2 -1
  25. package/dist/elements/widgets/designerView/designerView.js +68 -18
  26. package/dist/elements/widgets/designerView/extensions/MouseOverExtension.js +1 -1
  27. package/dist/elements/widgets/designerView/extensions/PositionExtension.js +4 -4
  28. package/dist/elements/widgets/designerView/extensions/PrimarySelectionDefaultExtension.js +2 -2
  29. package/dist/elements/widgets/designerView/extensions/ResizeExtension.d.ts +2 -1
  30. package/dist/elements/widgets/designerView/extensions/ResizeExtension.js +19 -15
  31. package/dist/elements/widgets/designerView/extensions/RotateExtension.js +1 -1
  32. package/dist/elements/widgets/designerView/extensions/SelectionDefaultExtension.js +1 -1
  33. package/dist/elements/widgets/designerView/extensions/TransformOriginExtension.js +2 -2
  34. package/dist/elements/widgets/designerView/overlayLayerView.d.ts +1 -0
  35. package/dist/elements/widgets/designerView/overlayLayerView.js +6 -0
  36. package/dist/elements/widgets/designerView/tools/DrawEllipsisTool.d.ts +13 -0
  37. package/dist/elements/widgets/designerView/tools/DrawEllipsisTool.js +72 -0
  38. package/dist/elements/widgets/designerView/tools/DrawLineTool.d.ts +13 -0
  39. package/dist/elements/widgets/designerView/tools/DrawLineTool.js +75 -0
  40. package/dist/elements/widgets/designerView/tools/DrawPathTool.d.ts +0 -2
  41. package/dist/elements/widgets/designerView/tools/DrawPathTool.js +5 -18
  42. package/dist/elements/widgets/designerView/tools/DrawRectTool.d.ts +18 -0
  43. package/dist/elements/widgets/designerView/tools/DrawRectTool.js +86 -0
  44. package/dist/elements/widgets/designerView/tools/NamedTools.d.ts +3 -0
  45. package/dist/elements/widgets/designerView/tools/NamedTools.js +3 -0
  46. package/dist/elements/widgets/designerView/tools/PanTool.js +14 -0
  47. package/dist/elements/widgets/designerView/tools/PointerTool.js +7 -0
  48. package/dist/elements/widgets/designerView/tools/RectangleSelectorTool.js +2 -2
  49. package/dist/elements/widgets/propertyGrid/PropertyGrid.js +1 -0
  50. package/dist/elements/widgets/propertyGrid/PropertyGridWithHeader.js +1 -0
  51. package/dist/elements/widgets/treeView/treeView.js +1 -1
  52. package/dist/index.d.ts +4 -0
  53. package/dist/index.js +4 -0
  54. package/package.json +1 -1
@@ -0,0 +1,86 @@
1
+ import { EventNames } from '../../../../enums/EventNames';
2
+ import { OverlayLayer } from '../extensions/OverlayLayer.js';
3
+ import { calculateNormLegth } from '../../../helper/PathDataPolyfill';
4
+ import { DesignItem } from '../../../item/DesignItem';
5
+ import { InsertAction } from '../../../services/undoService/transactionItems/InsertAction';
6
+ export class DrawRectTool {
7
+ cursor = 'crosshair';
8
+ _path;
9
+ _startPoint;
10
+ _minX;
11
+ _minY;
12
+ _maxX;
13
+ _maxY;
14
+ _px;
15
+ _py;
16
+ constructor() {
17
+ }
18
+ activated(serviceContainer) {
19
+ }
20
+ dispose() {
21
+ }
22
+ pointerEventHandler(designerCanvas, event, currentElement) {
23
+ const currentPoint = designerCanvas.getNormalizedEventCoordinates(event);
24
+ const offset = 50;
25
+ switch (event.type) {
26
+ case EventNames.PointerDown:
27
+ this._startPoint = currentPoint;
28
+ event.target.setPointerCapture(event.pointerId);
29
+ this._path = document.createElementNS("http://www.w3.org/2000/svg", "rect");
30
+ this._path.setAttribute("stroke", designerCanvas.serviceContainer.globalContext.strokeColor);
31
+ this._path.setAttribute("fill", designerCanvas.serviceContainer.globalContext.fillBrush);
32
+ this._path.setAttribute("stroke-width", designerCanvas.serviceContainer.globalContext.strokeThickness);
33
+ this._path.setAttribute("x", currentPoint.x.toString());
34
+ this._path.setAttribute("y", currentPoint.y.toString());
35
+ this._path.setAttribute("width", "0");
36
+ this._path.setAttribute("height", "0");
37
+ designerCanvas.overlayLayer.addOverlay(this._path, OverlayLayer.Foregorund);
38
+ break;
39
+ case EventNames.PointerMove:
40
+ if (this._path) {
41
+ this._minX = currentPoint.x < this._startPoint.x ? currentPoint.x : this._startPoint.x;
42
+ this._maxX = currentPoint.x > this._startPoint.x ? currentPoint.x : this._startPoint.x;
43
+ this._minY = currentPoint.y < this._startPoint.y ? currentPoint.y : this._startPoint.y;
44
+ this._maxY = currentPoint.y > this._startPoint.y ? currentPoint.y : this._startPoint.y;
45
+ if (event.shiftKey) {
46
+ const normLength = calculateNormLegth(this._startPoint, currentPoint);
47
+ this._px = currentPoint.x < this._startPoint.x ? this._startPoint.x - normLength : this._startPoint.x;
48
+ this._py = currentPoint.y < this._startPoint.y ? this._startPoint.y - normLength : this._startPoint.y;
49
+ this._path.setAttribute("x", this._px.toString());
50
+ this._path.setAttribute("y", this._py.toString());
51
+ this._path.setAttribute("width", (normLength).toString());
52
+ this._path.setAttribute("height", (normLength).toString());
53
+ }
54
+ else {
55
+ this._px = currentPoint.x < this._startPoint.x ? currentPoint.x : this._startPoint.x;
56
+ this._py = currentPoint.y < this._startPoint.y ? currentPoint.y : this._startPoint.y;
57
+ this._path.setAttribute("x", this._minX.toString());
58
+ this._path.setAttribute("y", this._minY.toString());
59
+ this._path.setAttribute("width", (this._maxX - this._minX).toString());
60
+ this._path.setAttribute("height", (this._maxY - this._minY).toString());
61
+ }
62
+ }
63
+ break;
64
+ case EventNames.PointerUp:
65
+ event.target.releasePointerCapture(event.pointerId);
66
+ const rect = this._path.getBoundingClientRect();
67
+ designerCanvas.overlayLayer.removeOverlay(this._path);
68
+ const svg = document.createElementNS("http://www.w3.org/2000/svg", "svg");
69
+ const mvX = rect.x - designerCanvas.containerBoundingRect.x - offset;
70
+ const mvY = rect.y - designerCanvas.containerBoundingRect.y - offset;
71
+ this._path.setAttribute("x", (this._px - mvX).toString());
72
+ this._path.setAttribute("y", (this._py - mvY).toString());
73
+ svg.appendChild(this._path);
74
+ svg.style.left = (mvX) + 'px';
75
+ svg.style.top = (mvY) + 'px';
76
+ svg.style.position = 'absolute';
77
+ svg.style.width = (rect.width + 2 * offset) + 'px';
78
+ svg.style.height = (rect.height + 2 * offset) + 'px';
79
+ this._path = null;
80
+ const di = DesignItem.createDesignItemFromInstance(svg, designerCanvas.serviceContainer, designerCanvas.instanceServiceContainer);
81
+ designerCanvas.instanceServiceContainer.undoService.execute(new InsertAction(designerCanvas.rootDesignItem, designerCanvas.rootDesignItem.childCount, di));
82
+ designerCanvas.serviceContainer.globalContext.finishedWithTool(this);
83
+ break;
84
+ }
85
+ }
86
+ }
@@ -2,6 +2,9 @@ export declare enum NamedTools {
2
2
  Pointer = "Pointer",
3
3
  DrawSelection = "DrawSelection",
4
4
  DrawPath = "DrawPath",
5
+ DrawRect = "DrawRect",
6
+ DrawEllipsis = "DrawEllipsis",
7
+ DrawLine = "DrawLine",
5
8
  Zoom = "Zoom",
6
9
  Pan = "Pan",
7
10
  MagicWandSelector = "MagicWandSelector",
@@ -3,6 +3,9 @@ export var NamedTools;
3
3
  NamedTools["Pointer"] = "Pointer";
4
4
  NamedTools["DrawSelection"] = "DrawSelection";
5
5
  NamedTools["DrawPath"] = "DrawPath";
6
+ NamedTools["DrawRect"] = "DrawRect";
7
+ NamedTools["DrawEllipsis"] = "DrawEllipsis";
8
+ NamedTools["DrawLine"] = "DrawLine";
6
9
  NamedTools["Zoom"] = "Zoom";
7
10
  NamedTools["Pan"] = "Pan";
8
11
  NamedTools["MagicWandSelector"] = "MagicWandSelector";
@@ -1,6 +1,20 @@
1
+ import { EventNames } from '../../../../enums/EventNames.js';
1
2
  export class PanTool {
2
3
  cursor = 'grab';
3
4
  pointerEventHandler(designerCanvas, event, currentElement) {
5
+ switch (event.type) {
6
+ case EventNames.PointerDown:
7
+ event.target.setPointerCapture(event.pointerId);
8
+ break;
9
+ case EventNames.PointerMove:
10
+ if (event.buttons == 1) {
11
+ designerCanvas.canvasOffset = { x: designerCanvas.canvasOffset.x + +event.movementX / designerCanvas.zoomFactor, y: designerCanvas.canvasOffset.y + event.movementY / designerCanvas.zoomFactor };
12
+ }
13
+ break;
14
+ case EventNames.PointerUp:
15
+ event.target.releasePointerCapture(event.pointerId);
16
+ break;
17
+ }
4
18
  }
5
19
  activated(serviceContainer) {
6
20
  }
@@ -23,6 +23,13 @@ export class PointerTool {
23
23
  dispose() {
24
24
  }
25
25
  pointerEventHandler(designerCanvas, event, currentElement) {
26
+ if ((event.ctrlKey || event.metaKey) && event.shiftKey) {
27
+ const panTool = designerCanvas.serviceContainer.designerTools.get(NamedTools.Pan);
28
+ if (panTool) {
29
+ panTool.pointerEventHandler(designerCanvas, event, currentElement);
30
+ return;
31
+ }
32
+ }
26
33
  switch (event.type) {
27
34
  case EventNames.PointerDown:
28
35
  event.target.setPointerCapture(event.pointerId);
@@ -16,8 +16,8 @@ export class RectangleSelectorTool {
16
16
  if (!this._rect)
17
17
  this._rect = document.createElementNS("http://www.w3.org/2000/svg", "rect");
18
18
  this._rect.setAttribute('class', 'svg-selector');
19
- this._rect.setAttribute('x', this._initialPoint.x);
20
- this._rect.setAttribute('y', this._initialPoint.y);
19
+ this._rect.setAttribute('x', (this._initialPoint.x * designerCanvas.scaleFactor));
20
+ this._rect.setAttribute('y', (this._initialPoint.y * designerCanvas.scaleFactor));
21
21
  this._rect.setAttribute('width', 0);
22
22
  this._rect.setAttribute('height', 0);
23
23
  designerCanvas.overlayLayer.addOverlay(this._rect, OverlayLayer.Foregorund);
@@ -17,6 +17,7 @@ export class PropertyGrid extends BaseCustomWebComponentLazyAppend {
17
17
  display: block;
18
18
  height: 100%;
19
19
  user-select: none;
20
+ -webkit-user-select: none;
20
21
  }
21
22
  button:hover {
22
23
  box-shadow: inset 0 3px 0 var(--light-grey);
@@ -6,6 +6,7 @@ export class PropertyGridWithHeader extends BaseCustomWebComponentLazyAppend {
6
6
  display: block;
7
7
  height: 100%;
8
8
  user-select: none;
9
+ -webkit-user-select: none;
9
10
  background: var(--medium-grey, #2f3545);
10
11
  color: white;
11
12
  }
@@ -199,7 +199,7 @@ export class TreeView extends BaseCustomWebComponentLazyAppend {
199
199
  // If the target is a <span>, you clicked on the span inside the button
200
200
  // so you need to use currentTarget.
201
201
  let item = event.target;
202
- if (item.tagName === 'SPAN') {
202
+ if (item.localName === 'span') {
203
203
  item = item.parentElement;
204
204
  }
205
205
  this._selectTreeElements([item]);
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from "./elements/controls/DesignerTabControl.js";
2
+ export * from "./elements/controls/PlainScrollbar.js";
2
3
  export * from "./elements/services/DefaultServiceBootstrap.js";
3
4
  export * from "./elements/helper/CssAttributeParser.js";
4
5
  export * from "./elements/helper/CssCombiner.js";
@@ -96,6 +97,9 @@ export type { ITool } from "./elements/widgets/designerView/tools/ITool.js";
96
97
  export * from "./elements/widgets/designerView/tools/NamedTools.js";
97
98
  export * from "./elements/widgets/designerView/tools/DrawElementTool.js";
98
99
  export * from "./elements/widgets/designerView/tools/DrawPathTool.js";
100
+ export * from "./elements/widgets/designerView/tools/DrawRectTool.js";
101
+ export * from "./elements/widgets/designerView/tools/DrawEllipsisTool.js";
102
+ export * from "./elements/widgets/designerView/tools/DrawLineTool.js";
99
103
  export * from "./elements/widgets/designerView/tools/MagicWandSelectorTool.js";
100
104
  export * from "./elements/widgets/designerView/tools/PanTool.js";
101
105
  export * from "./elements/widgets/designerView/tools/PickColorTool.js";
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from "./elements/controls/DesignerTabControl.js";
2
+ export * from "./elements/controls/PlainScrollbar.js";
2
3
  export * from "./elements/services/DefaultServiceBootstrap.js";
3
4
  export * from "./elements/helper/CssAttributeParser.js";
4
5
  export * from "./elements/helper/CssCombiner.js";
@@ -61,6 +62,9 @@ export * from "./elements/widgets/designerView/defaultConfiguredDesignerView.js"
61
62
  export * from "./elements/widgets/designerView/tools/NamedTools.js";
62
63
  export * from "./elements/widgets/designerView/tools/DrawElementTool.js";
63
64
  export * from "./elements/widgets/designerView/tools/DrawPathTool.js";
65
+ export * from "./elements/widgets/designerView/tools/DrawRectTool.js";
66
+ export * from "./elements/widgets/designerView/tools/DrawEllipsisTool.js";
67
+ export * from "./elements/widgets/designerView/tools/DrawLineTool.js";
64
68
  export * from "./elements/widgets/designerView/tools/MagicWandSelectorTool.js";
65
69
  export * from "./elements/widgets/designerView/tools/PanTool.js";
66
70
  export * from "./elements/widgets/designerView/tools/PickColorTool.js";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "description": "A UI designer for Polymer apps",
3
3
  "name": "@node-projects/web-component-designer",
4
- "version": "0.0.61",
4
+ "version": "0.0.65",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "author": "",