@node-projects/web-component-designer 0.0.37 → 0.0.43

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 (82) hide show
  1. package/dist/commandHandling/CommandType.d.ts +3 -3
  2. package/dist/commandHandling/CommandType.js +3 -3
  3. package/dist/elements/controls/DesignerTabControl.js +1 -1
  4. package/dist/elements/controls/NumericInput.d.ts +0 -0
  5. package/dist/elements/controls/NumericInput.js +1 -0
  6. package/dist/elements/controls/NumericPopup.d.ts +6 -0
  7. package/dist/elements/controls/NumericPopup.js +39 -0
  8. package/dist/elements/controls/NumericStyleInput.d.ts +16 -0
  9. package/dist/elements/controls/NumericStyleInput.js +56 -0
  10. package/dist/elements/controls/ThicknessEditor copy.d.ts +33 -0
  11. package/dist/elements/controls/ThicknessEditor copy.js +145 -0
  12. package/dist/elements/controls/ThicknessEditor.d.ts +20 -4
  13. package/dist/elements/controls/ThicknessEditor.js +74 -9
  14. package/dist/elements/helper/LayoutHelper.d.ts +0 -0
  15. package/dist/elements/helper/LayoutHelper.js +4 -0
  16. package/dist/elements/services/BaseServiceContainer.js +0 -2
  17. package/dist/elements/services/DefaultServiceBootstrap.js +2 -0
  18. package/dist/elements/services/ServiceContainer.d.ts +5 -0
  19. package/dist/elements/services/ServiceContainer.js +4 -0
  20. package/dist/elements/services/htmlWriterService/HtmlWriterService.js +2 -2
  21. package/dist/elements/services/modelCommandService/DefaultInstanceService.d.ts +8 -0
  22. package/dist/elements/services/modelCommandService/DefaultInstanceService.js +14 -0
  23. package/dist/elements/services/modelCommandService/DefaultModelCommandService.d.ts +7 -0
  24. package/dist/elements/services/modelCommandService/DefaultModelCommandService.js +68 -0
  25. package/dist/elements/services/modelCommandService/IInstanceService.d.ts +8 -0
  26. package/dist/elements/services/modelCommandService/IInstanceService.js +1 -0
  27. package/dist/elements/services/modelCommandService/IModelCommandService.d.ts +7 -0
  28. package/dist/elements/services/modelCommandService/IModelCommandService.js +1 -0
  29. package/dist/elements/services/placementService/DefaultPlacementService.js +2 -2
  30. package/dist/elements/services/propertiesService/propertyEditors/BasePropertyEditor.js +6 -1
  31. package/dist/elements/services/propertiesService/propertyEditors/ThicknessPropertyEditor.js +2 -2
  32. package/dist/elements/services/undoService/UndoService.d.ts +3 -0
  33. package/dist/elements/services/undoService/UndoService.js +7 -0
  34. package/dist/elements/widgets/designerView/DomConverter.js +2 -2
  35. package/dist/elements/widgets/designerView/designerCanvas.d.ts +1 -2
  36. package/dist/elements/widgets/designerView/designerCanvas.js +18 -20
  37. package/dist/elements/widgets/designerView/extensions/AbstractExtension copy.d.ts +22 -0
  38. package/dist/elements/widgets/designerView/extensions/AbstractExtension copy.js +52 -0
  39. package/dist/elements/widgets/designerView/extensions/AbstractExtension.d.ts +2 -12
  40. package/dist/elements/widgets/designerView/extensions/AbstractExtension.js +3 -73
  41. package/dist/elements/widgets/designerView/extensions/AbstractExtensionBase.d.ts +16 -0
  42. package/dist/elements/widgets/designerView/extensions/AbstractExtensionBase.js +50 -0
  43. package/dist/elements/widgets/designerView/extensions/AltToEnterContainerExtension.js +2 -2
  44. package/dist/elements/widgets/designerView/extensions/CanvasExtension.js +2 -2
  45. package/dist/elements/widgets/designerView/extensions/EditText/EditTextExtension.js +4 -4
  46. package/dist/elements/widgets/designerView/extensions/ExtensionManager.d.ts +1 -0
  47. package/dist/elements/widgets/designerView/extensions/ExtensionManager.js +14 -0
  48. package/dist/elements/widgets/designerView/extensions/ExtensionType.d.ts +0 -3
  49. package/dist/elements/widgets/designerView/extensions/ExtensionType.js +0 -3
  50. package/dist/elements/widgets/designerView/extensions/GrayOutExtension.js +5 -5
  51. package/dist/elements/widgets/designerView/extensions/GridExtension.js +2 -2
  52. package/dist/elements/widgets/designerView/extensions/IExtensionManger.d.ts +1 -0
  53. package/dist/elements/widgets/designerView/extensions/InvisibleDivExtension.js +1 -1
  54. package/dist/elements/widgets/designerView/extensions/MouseOverExtension.js +2 -2
  55. package/dist/elements/widgets/designerView/extensions/PathExtension.js +2 -2
  56. package/dist/elements/widgets/designerView/extensions/PositionExtension.js +6 -6
  57. package/dist/elements/widgets/designerView/extensions/PrimarySelectionDefaultExtension.js +2 -2
  58. package/dist/elements/widgets/designerView/extensions/PrimarySelectionDefaultExtensionProvider.d.ts +1 -0
  59. package/dist/elements/widgets/designerView/extensions/PrimarySelectionDefaultExtensionProvider.js +4 -0
  60. package/dist/elements/widgets/designerView/extensions/ResizeExtension.js +21 -21
  61. package/dist/elements/widgets/designerView/extensions/ResizeExtensionProvider.d.ts +1 -0
  62. package/dist/elements/widgets/designerView/extensions/ResizeExtensionProvider.js +4 -0
  63. package/dist/elements/widgets/designerView/extensions/RotateExtension.js +3 -3
  64. package/dist/elements/widgets/designerView/extensions/SelectionDefaultExtension.js +1 -1
  65. package/dist/elements/widgets/designerView/extensions/TransformOriginExtension.js +6 -6
  66. package/dist/elements/widgets/designerView/extensions/pointerExtensions/AbstractDesignerPointerExtension.d.ts +3 -14
  67. package/dist/elements/widgets/designerView/extensions/pointerExtensions/AbstractDesignerPointerExtension.js +4 -75
  68. package/dist/elements/widgets/designerView/extensions/pointerExtensions/CursorLinePointerExtension copy.d.ts +13 -0
  69. package/dist/elements/widgets/designerView/extensions/pointerExtensions/CursorLinePointerExtension copy.js +27 -0
  70. package/dist/elements/widgets/designerView/extensions/pointerExtensions/CursorLinePointerExtension.d.ts +13 -0
  71. package/dist/elements/widgets/designerView/extensions/pointerExtensions/CursorLinePointerExtension.js +26 -0
  72. package/dist/elements/widgets/designerView/extensions/pointerExtensions/CursorLinePointerExtensionProvider.d.ts +7 -0
  73. package/dist/elements/widgets/designerView/extensions/pointerExtensions/CursorLinePointerExtensionProvider.js +10 -0
  74. package/dist/elements/widgets/designerView/extensions/pointerExtensions/CursorRectanglePointerExtension copy.d.ts +7 -1
  75. package/dist/elements/widgets/designerView/extensions/pointerExtensions/CursorRectanglePointerExtension copy.js +15 -8
  76. package/dist/elements/widgets/designerView/extensions/pointerExtensions/IDesignerPointerExtension.d.ts +1 -1
  77. package/dist/elements/widgets/designerView/extensions/pointerExtensions/IDesignerPointerExtensionProvider.d.ts +1 -4
  78. package/dist/elements/widgets/designerView/overlayLayerView.d.ts +4 -0
  79. package/dist/elements/widgets/designerView/overlayLayerView.js +62 -3
  80. package/dist/index.d.ts +5 -0
  81. package/dist/index.js +3 -0
  82. package/package.json +3 -3
@@ -1,7 +1,13 @@
1
1
  import { AbstractDesignerPointerExtension } from './AbstractDesignerPointerExtension';
2
2
  export declare class CursorRectanglePointerExtension extends AbstractDesignerPointerExtension {
3
- private _rect;
3
+ private _lineOffset;
4
+ private _lineLength;
5
+ private _line1;
6
+ private _line2;
7
+ private _line3;
8
+ private _line4;
4
9
  extend(event: PointerEvent): void;
5
10
  refresh(event: PointerEvent): void;
6
11
  dispose(): void;
12
+ style: CSSStyleSheet;
7
13
  }
@@ -1,20 +1,27 @@
1
+ import { css } from '@node-projects/base-custom-webcomponent';
1
2
  import { OverlayLayer } from '../OverlayLayer.js';
2
3
  import { AbstractDesignerPointerExtension } from './AbstractDesignerPointerExtension';
3
4
  export class CursorRectanglePointerExtension extends AbstractDesignerPointerExtension {
4
- _rect;
5
+ _lineOffset = 5;
6
+ _lineLength = 10;
7
+ _line1;
8
+ _line2;
9
+ _line3;
10
+ _line4;
5
11
  extend(event) {
6
- this._rect = document.createElementNS("http://www.w3.org/2000/svg", "rect");
7
- this.overlayLayerView.addOverlay(this._rect, OverlayLayer.Foregorund);
12
+ this.refresh(event);
8
13
  }
9
14
  refresh(event) {
10
15
  let mp = this.designerView.getNormalizedEventCoordinates(event);
11
- this._rect.setAttribute('class', 'svg-selector');
12
- this._rect.setAttribute('x', (mp.x - 5));
13
- this._rect.setAttribute('y', (mp.y - 5));
14
- this._rect.setAttribute('width', (10));
15
- this._rect.setAttribute('height', (10));
16
+ this._line1 = this._drawLine(mp.x, mp.y - this._lineOffset, mp.x, mp.y - this._lineOffset - this._lineLength, 'svg-cursor-line', this._line1, OverlayLayer.Foregorund);
17
+ this._line2 = this._drawLine(mp.x, mp.y + this._lineOffset, mp.x, mp.y + this._lineOffset + this._lineLength, 'svg-cursor-line', this._line2, OverlayLayer.Foregorund);
18
+ this._line3 = this._drawLine(mp.x - this._lineOffset, mp.y, mp.x - this._lineOffset - this._lineLength, mp.y, 'svg-cursor-line', this._line3, OverlayLayer.Foregorund);
19
+ this._line4 = this._drawLine(mp.x + this._lineOffset, mp.y, mp.x + this._lineOffset + this._lineLength, mp.y, 'svg-cursor-line', this._line4, OverlayLayer.Foregorund);
16
20
  }
17
21
  dispose() {
18
22
  super._removeAllOverlays();
19
23
  }
24
+ style = css `
25
+ .svg-cursor-line { stroke: black; pointer-events: none }
26
+ `;
20
27
  }
@@ -1,5 +1,5 @@
1
1
  import { IDisposable } from "../../../../../interfaces/IDisposable.js";
2
2
  export interface IDesignerPointerExtension extends IDisposable {
3
- extend(event: PointerEvent): any;
4
3
  refresh(event: PointerEvent): any;
4
+ style?: CSSStyleSheet;
5
5
  }
@@ -1,9 +1,6 @@
1
- import { IDesignItem } from "../../../../item/IDesignItem.js";
2
1
  import { IDesignerCanvas } from "../../IDesignerCanvas.js";
3
- import { IExtensionManager } from "../IExtensionManger.js";
4
2
  import { IDesignerPointerExtension } from "./IDesignerPointerExtension.js";
5
3
  export interface IDesignerPointerExtensionProvider {
6
- shouldExtend(extensionManager: IExtensionManager, designerView: IDesignerCanvas, designItem: IDesignItem): boolean;
7
- getExtension(extensionManager: IExtensionManager, designerView: IDesignerCanvas, designItem: IDesignItem): IDesignerPointerExtension;
4
+ getExtension(designerView: IDesignerCanvas): IDesignerPointerExtension;
8
5
  style?: CSSStyleSheet;
9
6
  }
@@ -17,4 +17,8 @@ export declare class OverlayLayerView extends BaseCustomWebComponentConstructorA
17
17
  removeAllNodesWithClass(className: string): void;
18
18
  createPoint(): DOMPointInit;
19
19
  elementFromPoint(x: number, y: number): Element;
20
+ drawLine(x1: number, y1: number, x2: number, y2: number, className?: string, line?: SVGLineElement, overlayLayer?: OverlayLayer): SVGLineElement;
21
+ drawCircle(x: number, y: number, radius: number, className?: string, circle?: SVGCircleElement, overlayLayer?: OverlayLayer): SVGCircleElement;
22
+ drawRect(x: number, y: number, w: number, h: number, className?: string, rect?: SVGRectElement, overlayLayer?: OverlayLayer): SVGRectElement;
23
+ drawText(text: string, x: number, y: number, className?: string, textEl?: SVGTextElement, overlayLayer?: OverlayLayer): SVGTextElement;
20
24
  }
@@ -17,8 +17,6 @@ export class OverlayLayerView extends BaseCustomWebComponentConstructorAppend {
17
17
  .svg-snapline { stroke: purple; stroke-dasharray: 4; fill: transparent; }
18
18
  .svg-selector { stroke: black; fill: #3899ec55; stroke-width: 1; stroke-dasharray: 2; }
19
19
  .svg-primary-selection-move { stroke: #3899ec; fill: #3899ec; cursor: move; pointer-events: all }
20
- .svg-text { stroke: none; fill: white; stroke-width: 1; font-size: 10px; font-family: monospace; }
21
- .svg-primary-resizer { stroke: #3899ec; fill: white; pointer-events: all }
22
20
  .svg-position { stroke: black; stroke-dasharray: 2; }
23
21
  .svg-path { stroke: #3899ec; fill: orange; pointer-events: all }
24
22
  .svg-path-line { stroke: #3899ec; stroke-dasharray: 2; }
@@ -47,6 +45,11 @@ export class OverlayLayerView extends BaseCustomWebComponentConstructorAppend {
47
45
  }
48
46
  }
49
47
  }
48
+ for (const ext of this._serviceContainer.designerPointerExtensions) {
49
+ if (ext.style) {
50
+ styles.push(ext.style);
51
+ }
52
+ }
50
53
  this.shadowRoot.adoptedStyleSheets = styles;
51
54
  }
52
55
  addOverlay(element, overlayLayer = OverlayLayer.Normal) {
@@ -63,7 +66,13 @@ export class OverlayLayerView extends BaseCustomWebComponentConstructorAppend {
63
66
  }
64
67
  }
65
68
  removeOverlay(element) {
66
- element.parentElement.removeChild(element);
69
+ try {
70
+ if (element)
71
+ element.parentElement.removeChild(element);
72
+ }
73
+ catch (err) {
74
+ console.error(err);
75
+ }
67
76
  }
68
77
  removeAllNodesWithClass(className) {
69
78
  const nodes = this._svg.querySelectorAll('.' + className);
@@ -79,5 +88,55 @@ export class OverlayLayerView extends BaseCustomWebComponentConstructorAppend {
79
88
  //@ts-ignore
80
89
  return this.shadowRoot.elementFromPoint(x, y);
81
90
  }
91
+ drawLine(x1, y1, x2, y2, className, line, overlayLayer) {
92
+ if (!line) {
93
+ line = document.createElementNS("http://www.w3.org/2000/svg", "line");
94
+ this.addOverlay(line, overlayLayer);
95
+ }
96
+ line.setAttribute('x1', x1);
97
+ line.setAttribute('y1', y1);
98
+ line.setAttribute('x2', x2);
99
+ line.setAttribute('y2', y2);
100
+ if (className)
101
+ line.setAttribute('class', className);
102
+ return line;
103
+ }
104
+ drawCircle(x, y, radius, className, circle, overlayLayer) {
105
+ if (!circle) {
106
+ circle = document.createElementNS("http://www.w3.org/2000/svg", "circle");
107
+ this.addOverlay(circle, overlayLayer);
108
+ }
109
+ circle.setAttribute('cx', x);
110
+ circle.setAttribute('cy', y);
111
+ circle.setAttribute('r', radius);
112
+ if (className)
113
+ circle.setAttribute('class', className);
114
+ return circle;
115
+ }
116
+ drawRect(x, y, w, h, className, rect, overlayLayer) {
117
+ if (!rect) {
118
+ rect = document.createElementNS("http://www.w3.org/2000/svg", "rect");
119
+ this.addOverlay(rect, overlayLayer);
120
+ }
121
+ rect.setAttribute('x', x);
122
+ rect.setAttribute('y', y);
123
+ rect.setAttribute('width', w);
124
+ rect.setAttribute('height', h);
125
+ if (className)
126
+ rect.setAttribute('class', className);
127
+ return rect;
128
+ }
129
+ drawText(text, x, y, className, textEl, overlayLayer) {
130
+ if (!textEl) {
131
+ textEl = document.createElementNS("http://www.w3.org/2000/svg", "text");
132
+ this.addOverlay(textEl, overlayLayer);
133
+ }
134
+ textEl.setAttribute('x', x);
135
+ textEl.setAttribute('y', y);
136
+ textEl.textContent = text;
137
+ if (className)
138
+ textEl.setAttribute('class', className);
139
+ return textEl;
140
+ }
82
141
  }
83
142
  customElements.define(OverlayLayerView.is, OverlayLayerView);
package/dist/index.d.ts CHANGED
@@ -135,6 +135,11 @@ export * from "./elements/widgets/designerView/extensions/contextMenu/CopyPasteC
135
135
  export * from "./elements/widgets/designerView/extensions/contextMenu/ItemsBelowContextMenu.js";
136
136
  export * from "./elements/widgets/designerView/extensions/contextMenu/MultipleItemsSelectedContextMenu.js";
137
137
  export * from "./elements/widgets/designerView/extensions/contextMenu/ZMoveContextMenu.js";
138
+ export type { IDesignerPointerExtension } from "./elements/widgets/designerView/extensions/pointerExtensions/IDesignerPointerExtension.js";
139
+ export type { IDesignerPointerExtensionProvider } from "./elements/widgets/designerView/extensions/pointerExtensions/IDesignerPointerExtensionProvider.js";
140
+ export * from "./elements/widgets/designerView/extensions/pointerExtensions/AbstractDesignerPointerExtension.js";
141
+ export * from "./elements/widgets/designerView/extensions/pointerExtensions/CursorLinePointerExtension.js";
142
+ export * from "./elements/widgets/designerView/extensions/pointerExtensions/CursorLinePointerExtensionProvider.js";
138
143
  export * from "./elements/widgets/demoView/demoView.js";
139
144
  export * from "./elements/widgets/paletteView/paletteElements.js";
140
145
  export * from "./elements/widgets/paletteView/paletteView.js";
package/dist/index.js CHANGED
@@ -98,6 +98,9 @@ export * from "./elements/widgets/designerView/extensions/contextMenu/CopyPasteC
98
98
  export * from "./elements/widgets/designerView/extensions/contextMenu/ItemsBelowContextMenu.js";
99
99
  export * from "./elements/widgets/designerView/extensions/contextMenu/MultipleItemsSelectedContextMenu.js";
100
100
  export * from "./elements/widgets/designerView/extensions/contextMenu/ZMoveContextMenu.js";
101
+ export * from "./elements/widgets/designerView/extensions/pointerExtensions/AbstractDesignerPointerExtension.js";
102
+ export * from "./elements/widgets/designerView/extensions/pointerExtensions/CursorLinePointerExtension.js";
103
+ export * from "./elements/widgets/designerView/extensions/pointerExtensions/CursorLinePointerExtensionProvider.js";
101
104
  export * from "./elements/widgets/demoView/demoView.js";
102
105
  export * from "./elements/widgets/paletteView/paletteElements.js";
103
106
  export * from "./elements/widgets/paletteView/paletteView.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.37",
4
+ "version": "0.0.43",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "author": "",
@@ -11,14 +11,14 @@
11
11
  "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js"
12
12
  },
13
13
  "dependencies": {
14
- "@node-projects/base-custom-webcomponent": "^0.2.0",
14
+ "@node-projects/base-custom-webcomponent": "^0.3.0",
15
15
  "construct-style-sheets-polyfill": "^3.0.4"
16
16
  },
17
17
  "devDependencies": {
18
18
  "@node-projects/lean-he-esm": "^3.3.0",
19
19
  "@node-projects/node-html-parser-esm": "^2.4.1",
20
20
  "@types/codemirror": "^5.60.5",
21
- "@types/jquery": "^3.5.8",
21
+ "@types/jquery": "^3.5.9",
22
22
  "@types/jquery.fancytree": "0.0.7",
23
23
  "ace-builds": "^1.4.13",
24
24
  "codemirror": "^5.64.0",